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, atp, flag)
- dove:
R = [L0, L1, L2, L3]
- dove:
Li = [TP0, TP1, ...]
- dove:
TPj = (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
atp = [block0, block1, ...]
- dove:
blocky = (lvl, TP)
- dove:
lvl è il livello a cui si trovano i (g)nodi rappresentati in questo block
TP = [pair1, pair2, ...]
- dove:
pairn = (hop, rem)
- dove:
hop è l'ID a livello lvl del (g)nodo rappresentato da questo pair
rem è un'istanza di Rem che indica l'efficienza del link tra il (g)nodo pairn e pair(n+1), oppure il blocco successivo, oppure il nodo che ha ricevuto l'ETP. TODO chiarire chi valorizza questo REM: il nodo che invia l'ETP o quello che lo riceve?
flag = 1 # oppure 0