Size: 2516
Comment:
|
Size: 2797
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 11: | Line 11: |
. {{{etp = (R, TPL, flag)}}} | . {{{etp = (R, TPL, flag_of_interest)}}} |
Line 31: | Line 31: |
. {{{rem}}} è un'istanza di Rem che indica l'efficienza del link tra il (g)nodo {{{pair}}}''{{{n}}}'' e {{{pair}}}''{{{(n-1)}}}''; se questo {{{pair}}} è il primo del {{{block}}} la Rem si riferisce al link verso l'ultimo {{{pair}}} del {{{block}}} precedente; se questo {{{block}}} è il primo del {{{TPL}}} la Rem non indica nulla e sarà sicuramente una {{{NullRem}}}. <<BR>> Considera che ad ogni passo percorso dall'ETP il corrente nodo si mette in coda a questa TPL. Il nodo che '''riceve''' un ETP valorizza la Rem del link da lui stesso verso il nodo che glielo ha appena trasmesso. Lo fa costruendo un nuovo {{{pair}}} da accodare al TPL. . {{{flag = 1 # oppure 0}}} |
. {{{rem}}} è un'istanza di Rem che indica l'efficienza del link tra il (g)nodo {{{pair}}}''{{{n}}}'' e {{{pair}}}''{{{(n-1)}}}''; se questo {{{pair}}} è il primo del {{{block}}} la Rem si riferisce al link verso l'ultimo {{{pair}}} del {{{block}}} precedente ('''''Nota''': questa ultima frase, che mi pare sensata, non sembra implementata; bisognerebbe passare gwrem nella riga 246 di qspn.py''); se questo {{{block}}} è il primo del {{{TPL}}} la Rem non indica nulla e sarà sicuramente una {{{NullRem}}}. <<BR>> Considera che ad ogni passo percorso dall'ETP il corrente nodo si mette in coda a questa TPL. Il nodo che '''riceve''' un ETP valorizza la Rem del link da lui stesso verso il nodo che glielo ha appena trasmesso. Lo fa costruendo un nuovo {{{pair}}} da accodare al TPL. . {{{flag_of_interest}}} era usato nel passo 5 della processazione di ETP, che è stato omesso. Vedi "Processazione degli ETP " nel [[../ModuloQSPN|modulo QSPN]]. |
Extended Tracer Packet (ETP)
Come concetto generale, un ETP è un Acyclic Tracer Packet (ATP) che contiene una porzione di una mappa di routes.
Siccome una route è rappresentata da un Tracer Packet (TP) possiamo dire che un ETP è composto da un ATP e un insieme di TP.
Inoltre l'ETP contiene anche un flag di interesse, perché è sottoposto alla "Interesting Information Rule".
Per un maggiore dettaglio dei concetti di Tracer Packet e derivati rimandiamo al documento qspn.pdf.
Dal punto di vista della struttura dati che il programma Netsukuku usa e che i nodi si scambiano, un ETP è:
etp = (R, TPL, flag_of_interest)
- dove:
R = [L0, L1, L2, L3]
- dove:
Li = [tuple0, tuple1, ...]
- dove:
tuplej = (dst, rem)
- dove:
dst è l'ID di un (g)nodo di livello i di cui abbiamo una route nota all'host che ha spedito l'ETP
rem è l'efficienza della route di cui sopra
TPL = [block0, block1, ...]
- dove:
blockm = (lvl, TP)
- dove:
lvl è il livello a cui si trovano i (g)nodi rappresentati in questo block
TP = [pair0, pair1, ...]
- dove:
pairn = (hop, rem)
- dove:
hop a volte è l'ID a livello lvl del (g)nodo rappresentato da questo pair; altre volte è l'intero netsukuku-ip del (g)nodo rappresentato da questo pair; se è memorizzato il solo ID di un livello significa che il pair rappresentato appartiene allo stesso g-nodo di livello lvl dei pair presenti nel block successivo; TODO capire e spiegare meglio...
rem è un'istanza di Rem che indica l'efficienza del link tra il (g)nodo pairn e pair(n-1); se questo pair è il primo del block la Rem si riferisce al link verso l'ultimo pair del block precedente (Nota: questa ultima frase, che mi pare sensata, non sembra implementata; bisognerebbe passare gwrem nella riga 246 di qspn.py); se questo block è il primo del TPL la Rem non indica nulla e sarà sicuramente una NullRem.
Considera che ad ogni passo percorso dall'ETP il corrente nodo si mette in coda a questa TPL. Il nodo che riceve un ETP valorizza la Rem del link da lui stesso verso il nodo che glielo ha appena trasmesso. Lo fa costruendo un nuovo pair da accodare al TPL.
flag_of_interest era usato nel passo 5 della processazione di ETP, che è stato omesso. Vedi "Processazione degli ETP " nel modulo QSPN.