Il protocollo Rose fu concepito ed implementato da Tom Moulton W2VY come un'implementazione del livello di pacchetto X.25 ed è stato progettato per operare col protocollo AX.25 come protocollo a livello dati. Esso fornisce anche un layer di rete. L'indirizzamento in Rose è costituito da un numero a 10 cifre. Le prime quattro rappresentano il Codice Identificativo dei Dati di rete (Data Network Identification Code) (DNIC) come indicato dalla Raccomandazione CCIT X.121 Appendice B. Maggiori informazioni sul protocollo Rose si possono trovare sul Web server RATS.
Alan Cox è stato lo sviluppatore del primo supporto AX.25 nel kernel di Linux, successivamente preso in carico da Jonathon Naylor che ha aggiunto anche il supporto per NET/ROM e Rose. Il supporto per il protocollo DAMA è stato sviluppato da Joerg, DL1BKE, mentre il supporto per il Baycom e il SoundModem è stato aggiunto da Thomas Sailer. Il software specifico per AX.25 è ora sviluppato e mantenuto da un piccolo gruppo di sviluppatori su SourceForge.
Il codice sviluppato per Linux supporta i TNC (Terminal Node Controllers) in modo KISS o basati su 6PACK, l'Ottawa PI card, la Gracilis PacketTwin card e le altre schede SCC basate su Z8530 attraverso il driver generico SCC, diversi modem Baycom seriali e paralleli e i modem YAM con interfaccia seriale. Il driver soundmodem di Thomas Sailer permette l'utilizzo delle SoundBlaster e delle schede sonore basate sul chipset Crystal; inoltre il suo più recente soundmodem, che funziona in user-mode, utilizza i driver standard del kernel, per cui dovrebbe funzionare con ogni scheda audio supportata da Linux.
I programmi utente sono costituiti da un semplice PMS (Personal Message System), un beacon, un programma a linea di comando per effettuare connessioni, listen (un esempio su come catturare tutti i frame AX.25 a livello di interfaccia) e programmi per configurare il protocollo NET/ROM. È incluso anche un programma tipo server AX.25 per gestire ed instradare connessioni AX.25 e un demone NET/ROM che svolge la maggior parte del lavoro di supporto per questo protocollo.
Ci sono anche programmi di utilità che supportano l'APRS, fornendo funzionalità quali il digipeating e il gateway verso Internet.
Diagramma semplificato dei livelli dei protocolli di rete
_____________________________________________ | | | | | | AF_AX25 |AF_NET/ROM | AF_INET | AF_ROSE | |=========|===========|=============|=========| | | | | | | | | TCP/IP | | | | |________ | | | | NET/ROM | | ROSE | | |____________________|____|_________| | AX.25 | |_____________________________________________| |
Diagramma dei moduli software dell'implementazione di rete in Linux
___________________________________________________________________________ | | | || | | | User | Programmi | call node || Daemons | ax25d mheardd | | | | pms mheard || | inetd NET/ROMd | |_________|___________|_______________________||__________|_________________| | | Sockets |open(), close(), listen(), read(), write(), connect()| | | |_____________________________________________________| | | | AF_AX25 | AF_NET/ROM | AF_ROSE | AF_INET | | |___________|_____________|_____________|_____________|___________| |Kernel | Protocolli| AX.25 | NET/ROM | ROSE | IP/TCP/UDP| | |___________|_____________|_____________|_____________|___________| | | Devices | ax0,ax1 | nr0,nr1 | rose0,rose1 | eth0,ppp0 | | |___________|_____________|_____________|_____________|___________| | | Drivers | Kiss PI2 PacketTwin SCC BPQ | slip ppp | | | | Soundmodem Baycom | ethernet | |_________|___________|_________________________________________|___________| |Hardware | PI2 Card, PacketTwin Card, SCC card, Serial port, Ethernet Card | |_________|_________________________________________________________________| |