#simulator instance set ns [new Simulator] $ns color 1 blue $ns color 2 red #Open file for nam trace file set nf [open out1.nam w] $ns namtrace-all $nf #Finish procedure proc finish {} { global ns nf $ns flush-trace #close trace file close $nf #execute nam exec nam out1.nam & exit 0 } #define topology # # r2--r5 # / \ # n1---r1 r4---n2 # \ / # \_r3_/ # # packet to be routed from: n1-r1-r2-r5-r4-n2 ########################## #Define nodes set n1 [new ManualRtNode] set n2 [new ManualRtNode] set r1 [new ManualRtNode] set r2 [new ManualRtNode] set r3 [new ManualRtNode] set r4 [new ManualRtNode] set r5 [new ManualRtNode] #Define links $ns duplex-link $n1 $r1 1Mb 10ms DropTail $ns duplex-link $r1 $r2 1Mb 10ms DropTail $ns duplex-link $r2 $r5 1Mb 10ms DropTail $ns duplex-link $r1 $r3 1Mb 10ms DropTail $ns duplex-link $r5 $r4 1Mb 10ms DropTail $ns duplex-link $r3 $r4 1Mb 10ms DropTail $ns duplex-link $r4 $n2 1Mb 10ms DropTail # manual set route $n1 add-route-to-adj-node $r1 $r1 add-route-to-adj-node $r2 $r2 add-route-to-adj-node $r5 $r5 add-route-to-adj-node $r4 $r4 add-route-to-adj-node $n2 #Define agent set udp1 [new Agent/UDP] $ns attach-agent $n1 $udp1 set cbr1 [new Application/Traffic/CBR] $cbr1 set packetSize_ 100 $cbr1 set rate_ 1Mb $cbr1 set fid_ 1 $cbr1 attach-agent $udp1 set udp2 [new Agent/UDP] $ns attach-agent $n1 $udp2 set cbr2 [new Application/Traffic/CBR] $cbr2 set packetSize_ 100 $cbr2 set rate_ 1Mb $cbr2 set fid_ 2 $cbr2 attach-agent $udp2 set sink1 [new Agent/LossMonitor] $ns attach-agent $n2 $sink1 $ns connect $udp1 $sink1 set sink2 [new Agent/LossMonitor] $ns attach-agent $n2 $sink2 $ns connect $udp2 $sink2 # event $ns at 0.05 "$cbr1 start" $ns at 0.10 "$cbr2 start" $ns at 5.0 "$cbr1 stop" $ns at 4.0 "$cbr2 stop" $ns at 5.05 "finish" $ns run