                           Introduzione a UIDIGI 

                 Copyright 2000 Marco Savegnago IW3FQG


UIDIGI e' un firmware da utilizzare con un normale TNC2 per realizzare
un digipeater packet radio con funzioni avanzate adatto all'uso come
digipeater APRS (APRS is a register trademark of Bob Bruninga WB4APR).

Questo firmware NON serve a coloro che fanno uso dei vari software di
localizzazione utilizzando il protocollo APRS.
I firmware compresi nei TNC sono gia' sufficenti per questo.

Il sistema APRS sfrutta la caratteristica del protocollo AX.25 (che tipicamente
e' un protocollo dove le stazioni che si scambiano informazioni sono
virtualmente connesse tra loro) di inviare frame con informazioni definiti UI
(Unnumbered Information) anche tra stazioni che non risultano connesse tra loro.

Tale metodo al contrario del trasporto di informazioni tra due stazioni
connesse da un lato permette di trasmettere informazioni con il criterio uno
a molti, dall'altro non garantisce che tutti i possibili destinatari ricevano
le informazioni con certezza.

Il sistema APRS si affida a questa caratteristica del protocollo AX.25 per
trasmettere le informazioni tra le stazioni.

In origine il metodo di propagazione dei frame AX.25 usati dal sistema APRS
era una semplice ripetizione di frame destinati a nominativi generici ( CQ o
APRS) e con percorsi di ripetizione generici (RELAY o WIDE) in modo da
permettere a stazioni in movimento sul territorio di spostarsi permettendo
ai propri beacon di propagarsi senza dover modificare alcun parametro del TNC.

Questo si realizzava semplicemente installando dei digipeater costituiti da TNC
ai quali veniva impostato come nominativo il nome del digipeater e come alias
un nominativo generico (RELAY o WIDE).

Questo sistema ha funzionato e funziona finche' stazioni e digipeater
isofrequenza sono pochi ma comincia ad andare in crisi quando le stazioni
aumentano e il territorio da coprire si estende.

Per questo nel corso degli anni sono stati introdotti dei metodi di ripetizione
applicati ai digipeater che consentono di limitare i problemi dovuti alla
progressiva congestione dei canali radio dovuta al traffico e all'eccesso di
ripetizioni dei frame.

Tutte le regole che seguono sono delle modifiche richieste dal sistema APRS
al comportamento standard di un puro digipeater AX.25 perche' va' ricordato
che il sistema APRS si serve di AX.25 per funzionare.

Il primo metodo introdotto fu' quello che forza la sostituzione, da parte del
digipeater che ripete il frame, del nominativo generico usato dalla stazione
che ha trasmesso in origine il frame.

Cosi' un frame del tipo:
IW3FQG>APRS v RELAY, WIDE, WIDE

viene ripetuto dal primo UIDIGI con la sostituzione del call:
IW3FQG>APRS v UIDIGI*, WIDE, WIDE

Questo consente che frame gia' ripetuti da un digipeater non vengano nuovamente
ripetuti generando loop e duplicazioni e in definitiva traffico inutile.

Il secondo metodo e' stato quello di introdurre delle semplici regole di
propagazione dei frame fino a certo numero di 'salti' senza dover aumentare
eccessivamente la lunghezza del frame da trasmettere e ricevere.

La prima di queste regole fa' in modo che frame inviati a nominativi tipo
WIDEn-n (con n > 0 e n < 8) vengano trattati in questo modo:

Un frame del tipo:
IW3FQG>APRS v RELAY,WIDE1-1

viene ripetuto dal primo UIDIGI:
IW3FQG>APRS v UIDIGI*, WIDE1-1

e dal secondo UIDIGI (viene decrementato l'ssid e NON viene settato il bit H):
IW3FQG>APRS v RELAY*, WIDE1-0

e dal terzo UIDIGI (non viene decrementato l'ssid perche' e' gia' zero e viene
settato il bit H):
IW3FQG>APRS v RELAY, WIDE1-0*

In definitiva il frame pur rimanendo con lunghezza limitate (ogni nominativo
nella lista digipeater occupa 7 byte) viene ripetuto automaticamente fino a
un massimo di 7 volte.

La seconda regola derivata dalla prima serve allo stesso scopo ma consente
alla stazione che riceve il frame di conoscere il percorso di ritrasmissione
che il frame ha compiuto:

Un frame del tipo:
IW3FQG>APRS v RELAY,TRACE1-1

viene ripetuto dal primo UIDIGI:
IW3FQG>APRS v UIDIGI*, TRACE1-1

e quindi dal secondo digipeater:
e dal secondo UIDIGI (viene decrementato l'ssid e viene inserito il call del
digipeater con il bit H settato):
IW3FQG>APRS v RELAY, DIGI1*, TRACE1-0

e dal terzo UIDIGI (l'ssid e' a zero viene fatta la sostituzione del
nominativo con quello del digipeater e su questo viene settato il bit H):
IW3FQG>APRS v RELAY, DIGI1, DIGI2*

Infine il terzo metodo piu' recente e' quello che consente a una stazione di
indicare il percorso di propagazione geografica da utilizzare e che i
digipeater opportunamente settati facciano compiere al frame.

Questo metodo e' ancora sperimentale e non completamente documentato si riassume
come segue:

Per SSID > 0 e SSID < 8 su qualunque AX.25 UI frame con qualunque callsign
di destinazione l'SSID viene decrementato di uno e il call del digipeater
viene inserito nel path della lista di digipeater.

Un frame

IW3FQG>APRS-7:

viene ripetuto:

IW3FQG>APRS-6, UIDIGI*:

Con SSID maggiore di 8 i frame viene trattato in maniera diversa perche' ci sono
le regole di direzione:

Se SSID e' uguale a 8 (Nord) su qualunque AX.25 UI frame con qualunque callsign
di destinazione l'SSID viene posto a zero il call del digipeater viene inserito
nel path della lista di digipeater seguito dal path per il nord inserito nella
lista dei digipeater.

Esempio un frame come:

IW3FQG>APRS-8:

viene ripetuto da un UIDIGI con NPATH = NORTH in:

IW3FQG>APRS,UIDIGI*,NORTH:

Se SSID e' uguale a 12 (Nord) su qualunque AX.25 UI frame con qualunque callsign
di destinazione l'SSID viene posto allo stesso di quello che e'  stato ricevuto
(es 12) il call del digipeater viene inserito nel path della lista di digipeater
seguito dal path per il nord inserito nella lista dei digipeater.

IW3FQG>APRS-12:

viene ripetuto da un UIDIGI con NPATH = NORTH in:

IW3FQG>APRS-12,UIDIGI*,NORTH:

La stessa regola vale per:

Sud        SSID  9, 13
Est        SSID 10, 14
Ovest      SSID 11, 15

In tutti i casi se il frame e' inviato al digipeater con anche un solo
indirizzo nella lista di digipeater il frame non viene ripetuto:

Es il frame:

IW3FQG>APRS-8,UIDIGI:

Non viene ripetuto.

Tutti questi metodi, che ripeto modificano il comportamento standard di un
digipeater standard AX.25, sono stati introdotti negli anni sia per iniziativa
dei vari produttori di TNC che per idee dei vari utilizzatori.

Il firmware UIDIGI e' liberamente utilizzabile e realizza tutto questo con un
TNC2 autocostruito.

Il risultato non e' molto bello, anche perche' manca un valido riferimento
certo su come le cose devono funzionare, ma si e' dimostrato funzionante.

La prospettiva (anche dal punto di vista di Bob Bruninga WB4APR), sempre che
ci sia una effettiva esigenza, e' quella di gestire la propagazione dei frame
tra le diverse aree locali con un mezzi piu' efficenti e meno dispersivi
dell'attuale.

Per fare questo occorrera' impiegare un hardware diverso (con almeno una porta
radio in piu') ma in ogni caso questa versione non andrebbe gettata via.


Aprile 2000

Marco Savegnago IW3FQG
