Differences between revisions 2 and 3
Revision 2 as of 2009-04-15 11:00:28
Size: 698
Editor: anonymous
Comment:
Revision 3 as of 2009-04-15 19:12:17
Size: 1494
Editor: anonymous
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
Questa viene istanziata nel costruttore della [[../ClasseNtkNode|classe NtkNode]]. Si mette in ascolto degli eventi prodotti dalla classe Neighbour (vedi il [[../ModuloRadar|modulo Radar]]). In particolare {{{NEIGH_NEW}}}, {{{NEIGH_REM_CHGED}}} e {{{NEIGH_DELETED}}}. Questa viene istanziata nel costruttore della [[../ClasseNtkNode|classe NtkNode]]. Si mette in ascolto degli eventi prodotti dalla classe Neighbour (vedi il [[../ModuloRadar|modulo Radar]]).
In particolare è interessata agli eventi {{{NEIGH_NEW}}}, {{{NEIGH_REM_CHGED}}} e {{{NEIGH_DELETED}}}, che sono emessi quando viene rilevato un nuovo vicino, oppure cambia l'efficienza del link ad un vicino, oppure un vicino abbandona la rete.
Line 8: Line 9:
 * Aggiorna la mappa e le routes note chiamando i metodi {{{routeneigh_xxx}}} della [[../ClasseMapRoute|classe MapRoute]];  * Aggiorna la mappa delle routes note chiamando i metodi {{{routeneigh_xxx}}} della [[../ClasseMapRoute|classe MapRoute]];
Line 12: Line 13:
Per generare gli ETP si avvale del metodo {{{bestroutes_get}}} della [[../ClasseMapRoute|classe MapRoute]]. Inoltre emette i segnali {{{ETP_EXECUTED}}} e {{{NET_COLLISION}}}. Entrambi sono gestiti dalla [[../ClasseHook|classe Hook]], entrambi con funzioni [[../ModuloMicro|microfunc]] di tipo "''con dispatcher''".

== Caso "vicino con REM modificata" ==
In questo evento la classe intraprende le seguenti azioni:
<<BR>>
Aggiorna la mappa con la nuova REM del vicino.
<<BR>>
Avvalendosi del metodo {{{bestroutes_get}}} della [[../ClasseMapRoute|classe MapRoute]], crea la lista {{{M}}}^|^; è una lista di 4 liste, una per ogni livello; ogni lista contiene le migliori routes per ogni destinazione, tra tutte quelle conosciute.
<<BR>>
Filtra questa lista {{{M}}}^|^ eliminando quelle che hanno come gateway il vicino stesso.
<<BR>>

Il modulo qspn

Nel modulo qspn.py viene definita la classe Etp.
Questa viene istanziata nel costruttore della classe NtkNode. Si mette in ascolto degli eventi prodotti dalla classe Neighbour (vedi il modulo Radar). In particolare è interessata agli eventi NEIGH_NEW, NEIGH_REM_CHGED e NEIGH_DELETED, che sono emessi quando viene rilevato un nuovo vicino, oppure cambia l'efficienza del link ad un vicino, oppure un vicino abbandona la rete.
In risposta a questi eventi:

  • Aggiorna la mappa delle routes note chiamando i metodi routeneigh_xxx della classe MapRoute;

  • Genera gli ETP;
  • Tramite i TCPClient li invia ai vicini interessati.

Inoltre emette i segnali ETP_EXECUTED e NET_COLLISION. Entrambi sono gestiti dalla classe Hook, entrambi con funzioni microfunc di tipo "con dispatcher".

Caso "vicino con REM modificata"

In questo evento la classe intraprende le seguenti azioni:
Aggiorna la mappa con la nuova REM del vicino.
Avvalendosi del metodo bestroutes_get della classe MapRoute, crea la lista M|; è una lista di 4 liste, una per ogni livello; ogni lista contiene le migliori routes per ogni destinazione, tra tutte quelle conosciute.
Filtra questa lista M| eliminando quelle che hanno come gateway il vicino stesso.

Netsukuku/ita/ModuloQSPN (last edited 2009-05-29 21:37:26 by lukisi)