L'avantage le plus important lié à l'utilisation des protocoles par paquets radioamateurs du noyau réside en la facilité de développement des programmes et applications qui les emploient.
Bien que la programmation réseau sous Unix déborde du cadre de ce document, je vais décrire les principaux éléments d'utilisation des protocoles AX.25, NetRom et Rose au sein de vos programmes.
La programmation AX.25, NetRom et Rose est assez semblable à la programmation TCP/IP sous Linux. LEs principales différences se font au niveau des familles d'adresses et des structures d'adresse à mettre en place.
Les noms de familles d'adresses pour AX.25, NetRom et Rose sont respectivement
AF_AX.25
, AF_NETROM
et AF_ROSE
.
Incluez toujours les fichiers `ax25.h
', `netrom.h
' ou `rose.h
'
si vous vous servez de ces protocoles. Les débuts de fichiers-types
ressemblent à quelque chose du style :
Pour AX.25 :
#include <ax25.h>
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_AX.25
Pour 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;
Pour Rose :
#include <ax25.h>
#include <rose.h>
int s, addrlen = sizeof(struct sockaddr_rose);
struct sockaddr_rose sockaddr;
sockaddr.srose_family = AF_ROSE;
La librairie lib/ax25.a
du paquetage des utilitaires AX.25 contient
des routines de conversion des identifiants. Vous pouvez bien sûr écrire les
vôtres si vous le souhaitez.
Les programmes user_call sont d'excellents exemples à partir desquels travailler. Leur source code est inclus dans les outils AX.25. Si vous passez un peu de temps à les examiner, vous remarquerez rapidement que quatre-vingt-dix pour cent du travail consiste à préparer l'ouverture des sockets. En fait la connexion est rapide mais la mise en place prend du temps.
Les exemples sont assez simples pour ne pas prêter à confusion. Si vous avez
des questions, adressez-vous directement à la liste de diffusion
linux-hams
où quelqu'un vous aidera sûrement.