21. Programmazione di rete per AX.25, NET/ROM e Rose

Il vantaggio più grande nell'usare un'implementazione dei protocolli packet per radioamatori è probabilmente la facilità con cui si possono sviluppare applicazioni e programmi che li sfruttino.

Sebbene la programmazione di applicativi di rete in Unix vada al di là degli scopi di questo documento, si descriveranno gli elementi essenziali per utilizzare i protocolli AX.25, NET/ROM e Rose all'interno dei vostri programmi.

21.1. Le famiglie degli indirizzi

La programmazione di rete per AX.25, NET/ROM e Rose è, in Linux, piuttosto simile a quella per TCP/IP, visto che la differenza maggiore sta nelle diverse famiglie di indirizzi e nella loro diversa struttura.

I nomi delle famiglie degli indirizzi per AX.25, NET/ROM e Rose sono rispettivamente AF_AX25, AF_NET/ROM e AF_ROSE.

21.2. I file header

Occorre sempre includere i file header 'netax25/ax25.h', nonchè 'NET/ROM/NET/ROM.h' o 'netrose/rose.h' se avete a che fare con questi protocolli. La struttura di base sarà simile alla seguente:

Per AX.25:

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

Per NET/ROM:

#include <netax25/ax25.h>
#include <NET/ROM/NET/ROM.h>
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_NET/ROM;

Per ROSE:

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

21.3. Trattamento dei nominativi ed esempi

Nella libreria lib/ax25.a delle AX.25-utilities vi sono routine che effettuano la conversione e il trattamento dei nominativi, anche se naturalmente potete scriverne di vostre.

Le utilità user_call sono eccellenti esempi su cui impostare il vostro lavoro; spendendoci su un po' di tempo si comprende come il novanta percento del lavoro consiste nel riuscire ad aprire il socket. Per la verità effettuare la connessione è semplice, è la preparazione che richiede tempo.

Gli esempi sono semplici a sufficienza da non creare confusione. In caso di dubbi è buona cosa rivolgersi alla mailing list linux-hams, dove senz'altro ci sarà qualcuno che vi darà una mano.