• Non ci sono risultati.

Strutture dei messaggi Appendice A

N/A
N/A
Protected

Academic year: 2021

Condividi "Strutture dei messaggi Appendice A"

Copied!
10
0
0

Testo completo

(1)

315

Appendice A

Strutture dei messaggi

In questa appendice riportiamo il formato delle strutture dei messaggi utilizzati dal programma. I messaggi di dimensione variabile sono in genere rappresentati con due strutture: una struttura rappresenta la parte fissa del messaggio; l’altra struttura rappresenta l’elemento base che può essere ripetuto più di una volta dopo la parte fissa del messaggio.

I messaggi rispecchiano il formato specificato nell’ultima redline dello standard in nostro possesso. Il campo lifetime dei messaggi non viene utilizzato nell’attuale implementazione, sebbene nel software siano stati introdotti tutti i controlli di coerenza previsti; la validità di un messaggio si basa solamente sui valori del campo ttl e degli eventuali sequence number.

(2)

316

Local Link State Announcement (LLSA)

Route Error (RERR)

Il byte riservato ai flag non contiene nessuna informazione secondo gli ultimi draft dello standard. Il flag “tree” è stato introdotto per la gestione del meccanismo di mantenimento dell’albero nel protocollo di routing tree-based.

typedef struct { u_int8_t id; u_int8_t length;

u_int8_t tree:1; // “Tree” RERR u_int8_t reserved:7; u_int8_t num_of_dst; } rerr; struct _rerr_route { mac_address mac; u_int32_t seq;

struct _rerr_route *next; }; typedef struct { u_int8_t id; u_int8_t length; u_int16_t rate; u_int16_t ept; } llsa;

(3)

317

Route Request (RREQ)

typedef struct {

u_int8_t d:1; //"destination only" u_int8_t f:1; //"reply and forward" u_int8_t reserved_d:6; mac_address dst_mac; u_int32_t dsn; } rreq_data; typedef struct { u_int8_t id; u_int8_t length;

u_int8_t p:1; // portal role: u_int8_t g:1; // 0: group address,

1: individually address u_int8_t r:1; // Proactive RREP u_int8_t proxy:1; // proxy

u_int8_t reserved:4; u_int8_t hop_count; u_int8_t ttl; u_int32_t rreq_id;

mac_address orig_mac; //originator address u_int32_t orig_seqn; // originator seq. number mac_address proxy_address; u_int32_t lifetime; u_int32_t path_metric; u_int8_t dst_count; rreq_data standard; } rreq;

(4)

318

Route Reply (RREP)

typedef struct { u_int8_t id; u_int8_t lenght;

u_int8_t proxy:1; // proxy u_int8_t reserved:7; u_int8_t hop_count; u_int8_t ttl; mac_address dst_mac; u_int32_t dst_seqn; mac_address proxy_address; u_int32_t lifetime; u_int32_t path_metric; mac_address orig_mac; u_int32_t orig_seqn;

u_int8_t dep_num; // Dependent } rrep;

// Struttura che contiene i nodi “dependent”

typedef struct {

mac_address dep_mac; u_int32_t dep_dsn; } rrep_dep;

(5)

319

Proxy Update Confirmation (PUC)

Root Announcement (RANN)

typedef struct { u_int8_t id; u_int8_t length; u_int8_t flag; u_int8_t seqn; mac_address dst_mac; } puc; typedef struct { u_int8_t id; u_int8_t length; u_int8_t t:1; u_int8_t reserved:7; u_int8_t hop_count; u_int8_t ttl; mac_address root_addr; u_int32_t dsn; u_int32_t lifetime; u_int32_t path_metric; } rann;

(6)

320

Proxy Update (PU)

typedef struct { u_int8_t id; u_int8_t length; u_int8_t p:1; u_int8_t reserved:7; u_int8_t seqn; mac_address proxy_mac; u_int16_t sta_num; } pu; typedef struct { mac_address mac; } hwmp_pu_mac;

(7)

321

Appendice B

Parametri del programma

I parametri utilizzati nel programma sono molti e sono stati raccolti, per semplicità, nel file parametri.h. La maggior parte dei parametri riguarda aspetti protocollari che sono definiti dallo standard, mentre altri sono utilizzati per la gestione dei meccanismi introdotti in questo progetto, come il mantenimento dell’albero. I valori sono stati assegnati in modo qualitativo per permettere la verifica delle funzionalità del programma.

Parametri generali

• BEACON_INTERVAL: intervallo di trasmissione dei beacon

• ALLOWED_LLSA_LOSS: numero di LLSA persi tollerati prima di dichiarare invalido un vicino

• HWMP_NET_DIAMETER:numero massimo di hop che un pacchetto può effettuare prima di essere scartato (ttl max)

(8)

322

• RREQ_RETRIES: numero massimo di tentativi di ritrasmissione di un RREQ

• MAX_PU: numero massimo di tentativi di ritrasmissione di un PU • TEMPO_INATTIVITÀ: tempo di inattività dopo il quale una stazione

viene eliminata dalla Proxy Table locale di un MP.

Timer

• ROOT_ANNOUNCEMENT_INTERVAL: intervallo di scheduling del TASK_RANN_ANNOUNCEMENT e TASK_PRREQ_ANNOUNCEMENT

• INTERVALLO_PROCEDURE: intervallo di scheduling del

TASK_PROCEDURE

• ROOT_GWROUTE_TIMEOUT: tempo di vita della entry relativa alla Root nella MPP Table, valore indicativo:

2* ROOT_ANNOUNCEMENT_INTERVAL

• RANN_PROPAGATION_DELAY: intervallo di propagazione dei RANN

• PRREQ_PROPAGATION_DELAY: intervallo di propagazione dei PRREQ

• PU_TIMEOUT: intervallo di tempo entro il quale se non arriva il PUC viene ritrasmesso il PU (TASK_RESEND_PU)

• FIRST_LLSA_INTERVAL: intervallo di scheduling della trasmissione del primo LLSA

• LLSA_INTERVAL: intervallo di scheduling del TASK_SEND_LLSA a regime

(9)

323

• STATS_INTERVAL: tempo di scheduling del

TASK_AGGIORNA_STATISTICHE a regime

• FIRST_STATS_INTERVAL: tempo di scheduling del primo TASK_AGGIORNA_STATISTICHE

• CLEANUP_INTERVAL: tempo di scheduling del TASK_CLEANUP, che esegue il flush delle tabelle Route Table e Flood ID Table

• MY_PROXY_ENTRY_LIFETIME: tempo di vita delle entry della Proxy Table associate al MP stesso (Proxy Owner)

• PROXY_ENTRY_LIFETIME: tempo di vita delle entry della Proxy Table di cui non sono il proxy

• ACTIVE_GWROUTE_TIMEOUT: intervallo di scheduling del TASK_FLUSH_GWTABLE, che esegue il flush periodico della Mesh Portal Table; valore indicativo:

2 * ROOT_ANNOUNCEMENT_INTERVAL + 1000

• ACTIVE_ROUTE_TIMEOUT: tempo di vita delle entry della Route Table di tipo 0, relative ai MP inseriti nella procedura on-demand • ACTIVE_TREE_ROUTE_TIMEOUT: tempo di vita delle entry della

Route Table di tipo 1, relative ai MP che fanno parte dell'albero • ACTIVE_STA_ROUTE_TIMEOUT: tempo di vita delle entry della

Route Table di tipo 2, relative alle stazioni inserite dalla procedura on-demand

• NEIGH_LIFETIME: tempo di vita di una entry nella Neighbor Table; valore indicativo:

(10)

324

• DELETE_PERIOD: tempo a cui settare il lifetime di una entry scaduta, sia nella Route Table che nella Neighbor Table, dopo il quale cancellare definitivamente la entry dalla tabella

• NET_TRASVERSAL_TIME: tempo di attraversamento della rete, dopo il quale ritrasmettere un RREQ se non si vede arrivare il relativo RREP. Viene utilizzato dal TASK_RESEND_RREQ

• TIMEOUT_DELAY_ROUTE_UPDATE: intervallo di scheduling del

TASK_DELAY_ROUTE_UPDATE e

TASK_DELAY_ROUTE_UPDATE_PROXY

• PATH_DISCOVERY_TIME: tempo di validità di una entry nella Flood ID Table; valore indicativo: 2 * NET_TRASVERSAL_TIME

Lifiteme da inserire nei pacchetti

• HWMP_ACTIVE_ROOT_TIMEOUT: lifetime da inserire nei pacchetti RREQ, RREP

• HWMP_ACTIVE_ORIG_TIMEOUTE: lifetime da inserire nei RREQ senza proxied

• RREP_LIFETIME: tempo di vita da inserire nei pacchetti GRREP • HWMP_PATH2ROOT_TIMEOUT: lifetime da inserire nei pacchetti

Riferimenti

Documenti correlati

I risultati del 2017 indicano che le aziende che si sono trovate dinanzi alle accuse, sono quelle che si trovano nelle prime o nelle ultime fasce della Benchmark. Vale a dire, che

Si dice operazione esterna a sinistra su un insieme A e a coefficienti in un insieme K una qualunque applicazione f definita sul prodotto cartesiano a valori in A:. K si dice

Siete i miei soldati che dovete combattere ogni giorno sempre di più contro questo male facendo i cenacoli, i gruppi di preghiera che ho chiesto ovunque, perché questi cenacoli,

N.1596/2019 - Modulo sperimentale Residenzialità Assistenziale Intermedia - Setting 3 (Cure Intermedie in RSA): approvazione Relazione conclusiva monitoraggio

RITENUTO, necessario, in considerazione del contesto post Covid 19 e in attesa della riorganizzazione definitiva delle Cure Intermedie sul territorio della

La tecnologia, in ogni periodo storico, è sempre stata neutra e irrinunciabile: può supportare il consumismo emotivo più bieco oppure aiutarci a veicolare la speculazione

RITENUTO pertanto di provvedere alla costituzione dell’Agenzia di continuità Ospedale Territorio della Zona Distretto – SdS Lunigiana nella seguente composizione:.

In questo contesto si considerano come prioritarie: la stima accurata della produttività primaria e del suo uso alimentare; la riduzione del fabbisogno complessivo, dei surplus