L2cat

Aus DXL-Wiki
Zur Navigation springen Zur Suche springen

!!! Artikel ist noch in Arbeit !!!

Über l2cat

l2cat ist ein Kommandozeilentool um sich mit einem Packet Radio Knoten über AXUDP zu verbinden. Es gibt keine weiteren Abhängigkeiten, ist also standalone lauffähig.

L2cat.png

Parameter in der Kurzübersicht

l2cat -h

 -a                                autodetect deflate + ppp on first bytes
                                     ppp + deflate:"!p",deflate;"!d"
                                     LF to CR:"!l", strip LF:"!L", transparent:"!8"
 -C <destination>                  slave connect destination -C "OE0AAA-12 OE5XBL"
                                     if no "-C" run as server waiting for connect
 -c <cmdline>                      execute command on connect -c "/bin/bash bash %m %u"
                                     %m=mycall %u=usercall %U=same no SSID %%=%
                                     if no "-c" data path is stdin/stdout
 -D <bytes>                        discard longer ppp frames if pr tx buffer full
 -d                                deflate on
 -h                                this
 -i <mycall> <mycall> ...          connectable calls -i "OE0AAA OE0AAA-15"
                                     first mycall is digi and used to connect out
 -j <1..6>                         1:del LF, 2:del LF+CR>LF, 3:CR>LF, 4:del CR
                                     5:del CR+LF>CR, 6:LF>CR in stream from pr
 -l                                convert LF to CR in stream to pr
 -L                                strip LF in stream to pr
 -m <0..2>                         ax25 Monitor to stderr (2 with info)
 -n <port> <parm> <value>          layer 2 parms, "-n a" set on all ports
                                     parm t:txwait d:dwait o:maxfr f:t1 F:t3
                                     parm I:ipoll n:retr h:halfdup
 -P                                ppp + deflate on
 -p <filename>                     data to/from this device/pipe -p /dev/ttyS0
 -R <ms>                           enable slave "keep connected" with max reconnet delay
                                     (max 4000000ms) (120000)
 -r <ms>                           enable slave "keep connected" with min reconnet delay
                                     and doubles delay each conn try till "-R"  (2000)
 -U <x.x.x.x:destport:listenport>  axudp (autodetect axudp2)
                                     listenport=0 uses a free port
                                     repeat -U for more ports
 -v                                verbous
 -V                                more verbous
 -w <n>                            check dupe axudp frames last n frames or n*10ms


Ausführliche Beschreibung der Parameter

Parameter Beschreibung
a Erkenne deflate + ppp automatisch an den ersten Bytes
ppp + deflate:"!p",deflate;"!d"
LF to CR:"!l", strip LF:"!L", transparent:"!8"
C <destination> Zielrufzeichen, mit dem man sich verbinden will (ansonsten wartet L2CAT drauf bis man selbst connected wird).
c <cmdline> Führt Befehle nach den Connect aus
-c "/bin/bash bash %m %u"
%m=mycall %u=usercall %U=same no SSID %%=%
if no "-c" data path is stdin/stdout
D <bytes> Verwerfe längere ppp Frames wenn der PR Sendepuffer voll ist.
d deflate = an
h Parameterübersicht
i <mycall> <mycall> ... Eigenes Rufzeichen, ggf. mit SSID.
j <1..6> Wie der Zeilenumbruch behandelt werden soll.
1:del LF
2:del LF+CR>LF
3:CR>LF
4:del CR
5:del CR+LF>CR
6:LF>CR in stream from pr
l Konvertiert das Linux Zeilenende LF zu CR von Linux zu Packet Radio (es gibt sonst Probleme mit den Zeilenumbrüchen).
L Schneidet LF zu Packet Radio ab.
m <0..2> Zeigt den AX.25 Monitor an. "2" ist mit allen Informationen.
n <port> <parm> <value> Setzt die Layer 2 Parameter der Verbindung
"-n a" setzt den Parameter auf allen ports.
t=txwait, d=dwait o=maxfr f=T1 Timer, F:T3-Timer(FRACK), I=ipoll n=Retries h=halbduplex.
P ppp und deflate = an
p <filename> data to/from this device/pipe -p /dev/ttyS0
R <ms> enable slave "keep connected" with max reconnet delay (max 4000000ms) (Standard = 120000)
r <ms> enable slave "keep connected" with min reconnet delay and doubles delay each conn try till "-R" (Standard = 2000)
U <x.x.x.x:destport:listenport> Packet Radio AXUDP Einstieg mit Ziel-IP und Ziel-Port. Bei Listen Port = 0 wird dieser automatisch vergeben.
v Zeige Informationen in der Bildschirmausgabe.
V Zeige erweiterten Informationen in der Bildschirmausgabe.
w <n> Überprüfe auf doppelte AXUDP Frames in den letzten n Frames oder n*10ms

Beispiele

./l2cat -i MYCALL -U 44.130.60.100:93:0 -v -l -j 2 -n a n 40 -n a f 80 -n a F 150 -C DB0FHN

  • -i = Genutztes AFu Rufzeichen
  • -U = Packet Radio AXUDP Einstieg, im Beispiel DB0FHN auf Destination Port 93. Listen Port bleibt auf 0, dieser wird dann automatisch vergeben. Es kann natürlich jeder andere Einstieg genutzt werden sofern IP-Adresse und Port bekannt sind.
  • -v = gibt eventuelle Meldungen der Anwendung aus
  • -l = Konvertiert das Linux Zeilenende LF zu CR von Linux zu Packet Radio (es gibt sonst Probleme mit den Zeilenumbrüchen)
  • -j 2 = Wandelt Zeilenumbruch von PR zu Linux passend zurück
  • -n a n 40 = Setzt Layer 2 Parameter "Retries" auf 40
  • -n a f 80 = Setzt Layer 2 Parameter "T1 Timer" auf 80
  • -n a F 150 = Setzt Layer 2 Parameter "FRACK" auf 150
  • -C = Zielrufzeichen, mit dem man sich verbinden will (ansonsten wartet L2CAT drauf bis man selbst connected wird)

Die Layer 2 Parameter diesen nur dazu die Verbindung stabil zu halten

Beispielskript

Das folgende Beispielskript als pr.sh gespeichert und mit Ausführungsrechten versehen (chmod 755 pr.sh) erlaubt die schnelle Verbindung mit dem Packet Radio Netzwerk, vorausgesetzt man hat Zugriff auf das Hamnet per HF oder VPN. Getestet wurde das Skript unter dem aktuellem Raspberry Pi OS (Raspbian).

Man gibt das eigene Rufzeichen als Option mit an, z.B.

./pr.sh DL1NUX-7
pr.sh

# pr.sh öffnet ein Packet Radio Terminal über AXUDP zu DB0FHN
# Voraussetzung: Es besteht im aktuellen Netzwerk Zugriff auf das HAMNET.
#                Internetzugriff reicht nicht aus!
# Bitte das eigene Call als Parameter zum Aufruf angeben. SSID ist möglich.
# Beispiel:  ./pr.sh MY1CAL-5
# Mehr Infos hier: http://dxlwiki.dl1nux.de/index.php?title=L2cat
if [ -z $1 ]; then
        echo "Bitte eigenes Rufzeichen als Option angeben!"
        echo "Beispiel:  ./pr.sh MY1CAL-5"
        exit 1
fi

./l2cat -i $1 -U 44.130.60.100:93:0 -v -l -j 2 -n a n 40 -n a f 80 -n a F 150 -C DB0FHN