left.gif (284 bytes)  up.gif (289 bytes)  right.gif (280 bytes)

Eventi

 

Una volta definita la topologia della rete creando nodi, links e agents, nello script OTcl devono essere introdotti degli eventi. Ad esempio si deve specificare in quale istante una sorgente deve iniziare a spedire pacchetti e quando deve smettere di farlo, si puņ far cadere un link o ripristinarlo, si possono instaurare delle connessioni fra agents, si possono far iscrivere dei nodi a dei gruppi multicast, si puņ in generale riconfigurare dinamicamente il simulatore, e si deve sempre stabilire dopo quanto tempo la simulazione deve terminare.

Nel simulatore ns gli eventi sono oggetti appartenenti alla classe "at-events" e sono, in generale, procedure la cui esecuzione deve avvenire in un istante specificato. La simulazione inizia nell'istante 0.0 secondi. Per far eseguire la procedura proc all'istante time, si deve scrivere:

$ns at time "proc"

L'insieme di procedure ammesse comprende anche tutte le funzioni normalmente usate in modo statico come ad esempio attach-agent, detach-agent, cost, connect, disconnect, set, color, join, add-mark, ecc. Inoltre si possono definire delle proprie procedure per farle eseguire in un preciso istante. Si definisce sempre una procedura finish all'interno della quale si inseriscono tutti i comandi che si vuole che vengano eseguiti alla fine della simulazione, come ad esempio la chiusura dei trace file sui quali sono state scritte le informazioni durante la simulazione, l'esecuzione automatica del nam e/o di xgraph, l'uscita da ns.

Per fare in modo che all'istante time una sorgente <src> inizi a spedire pacchetti:

$ns at time "<src> start"

Per fare in modo che all'istante time una sorgente <src> smetta di spedire pacchetti:

$ns at time "<src> stop"

Per far cadere un link tra i nodi <node1> e <node2> all'istante time:

$ns rtmodel-at time down <node1> <node2>

Per ripristinare un un link tra i nodi <node1> e <node2> all'istante time:

$ns rtmodel-at time up <node1> <node2>

left.gif (284 bytes)  up.gif (289 bytes)  right.gif (280 bytes)