Inhalt

20. AX.25-, NetROM- und ROSE-Programmierung

Der vielleicht größte Vorteil bei der Nutzung der kernelbasierten Implementationen der Packet-Radio-Protokolle besteht in der Leichtigkeit, mit der Programme und Anwendungen zu ihrer Nutzung entwickelt werden können. Das Thema Netzwerk-Programmierung unter UNIX würde den Rahmen dieses Textes sprengen; hier sollen die elementaren Details der Nutzung der AX.25-, NetROM- und ROSE-Protokolle in eigener Software besprochen werden.

20.1 Adreßfamilien

Die Netzwerkprogrammierung für AX.25, NetROM und ROSE ist der TCP/IP-Programmierung unter Linux sehr ähnlich.

Die hauptsächlichen Unterschiede ergeben sich aus den verwendenden Adreßfamilien und -strukturen, die entsprechend angeordnet werden müssen. Die Adreßfamilien tragen die Namen AF_AX25, AF_NETROM und AF_ROSE für die jeweiligen Protokolle.

20.2 Headerdateien

In eigenen Quelltexten muß immer ein ğincludeĞ-Statement für ax25.h, netrom.h oder rose.h vorgesehen werden, wenn man mit diesen Protokollen arbeitet.

Für AX.25:

#include <ax25.h>
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_AX25

Für NetRom:

#include <ax25.h>
#include <netrom.h>
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_NETROM;

Für ROSE:

#include <ax25.h>
#include <rose.h>
int s, addrlen = sizeof(struct sockaddr_rose);
struct sockaddr_rose sockaddr;
sockaddr.srose_family = AF_ROSE;

20.3 Rufzeichenhandhabung und Beispiele

Die Rufzeichenumwandlungen werden von Routinen erledigt, welche in der zu den AX.25-Utilities gehörenden Bibliothek /lib/ax25.a stehen.

Natürlich kann man sich auch seine eigenen schreiben. Die User_call-Programme sind ein gutes Beispiel, von dem man starten kann. Ihre Quelltexte sind im Paket der AX.25-Utilities mit enthalten.

Wenn man sich ein wenig damit befaßt, wird man feststellen, daß 90% der Arbeit in der Vorbereitung zum Öffnen des Sockets bestehen. Die Herstellung einer Verbindung ist einfach, nur die Vorbereitung braucht Zeit.

Diese Beispiele sollten so einfach sein, daß sie nicht zu Verwirrungen führen. Wer Fragen hat, sollte sie an die Linux-Hams-Mailingliste schicken. Es wird sich dann sicherlich jemand finden, der weiterhilft.


Inhalt