[ns] trouble with error model over wired links
Hello, I am having unusual trouble getting a simple error model to work over wired links in ns2.29. I have checked the mailing list archives and could not find a similar problem/solution. Below is my tcl script which represents a simple network topology of 3 nodes connected in a chain using duplex-links. I have a CBR/UDP flow between the nodes 0 and 3. The flow path is 0-1-2-3. If I don't use any error on the links, everything works fine as is confirmed by the trace file and the nam visualization. However, if I include a simple error model and attach it to each of the three links, the whole simulation goes awry. In the trace file I see packets going from node 0 to node 1. There is no data flow between node 2 and node 3 and there is a data flow between nodes 2 and 3. Basically the packets disappear on node 1 and magically reappear at node 2. In nam visualization, it is even worse...there is just one flow between nodes 0 and 1thats it.no other data flows. Changing the error rate does not help. When I have a more complex topology ( like a mesh topology of 8x8 nodes) the whole simulation goes so bizarre, that it is even hard to trace what is going wrong. That's why I am using this simple 3 node topology to illustrate the problem. I am hoping that there is some fundamental mistake on my part. Please point in the right direction. Thanks, Abdul. Here's the TCL script -- set ns [new Simulator] set tf [open simout.tr w] $ns trace-all $tf set nf [open simout.nam w] $ns namtrace-all $nf proc finish {} { global ns nf tf $ns flush-trace close $nf close $tf exec nam simout.nam & exit 0 } for {set i 0} {$i < 4} {incr i} { set n($i) [$ns node] } $ns duplex-link $n(0) $n(1) 500Mb 10ms DropTail $ns duplex-link $n(1) $n(2) 500Mb 10ms DropTail $ns duplex-link $n(2) $n(3) 500Mb 10ms DropTail set em [new ErrorModel] $em unit pkt $em set rate_ 0.01 $em ranvar [new RandomVariable/Uniform] $em drop-target [new Agent/Null] $ns link-lossmodel $em $n(0) $n(1) $ns link-lossmodel $em $n(1) $n(2) $ns link-lossmodel $em $n(2) $n(3) set udp0 [new Agent/UDP] $ns attach-agent $n(0) $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 1000 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n(3) $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run
[ns] trouble with error model over wired links
Hello, I am having unusual trouble getting a simple error model to work over wired links in ns2.29. I have checked the mailing list archives and could not find a similar problem/solution. Below is my tcl script which represents a simple network topology of 3 nodes connected in a chain using duplex-links. I have a CBR/UDP flow between the nodes 0 and 3. The flow path is 0-1-2-3. If I don't use any error on the links, everything works fine as is confirmed by the trace file and the nam visualization. However, if I include a simple error model and attach it to each of the three links, the whole simulation goes awry. In the trace file I see packets going from node 0 to node 1. There is no data flow between node 2 and node 3 and there is a data flow between nodes 2 and 3. Basically the packets disappear on node 1 and magically reappear at node 2. In nam visualization, it is even worse...there is just one flow between nodes 0 and 1thats it.no other data flows. Changing the error rate does not help. When I have a more complex topology ( like a mesh topology of 8x8 nodes) the whole simulation goes so bizarre, that it is even hard to trace what is going wrong. That's why I am using this simple 3 node topology to illustrate the problem. I am hoping that there is some fundamental mistake on my part. Please point in the right direction. Thanks, Abdul. Here's the TCL script -- set ns [new Simulator] set tf [open simout.tr w] $ns trace-all $tf set nf [open simout.nam w] $ns namtrace-all $nf proc finish {} { global ns nf tf $ns flush-trace close $nf close $tf exec nam simout.nam & exit 0 } for {set i 0} {$i < 4} {incr i} { set n($i) [$ns node] } $ns duplex-link $n(0) $n(1) 500Mb 10ms DropTail $ns duplex-link $n(1) $n(2) 500Mb 10ms DropTail $ns duplex-link $n(2) $n(3) 500Mb 10ms DropTail set em [new ErrorModel] $em unit pkt $em set rate_ 0.01 $em ranvar [new RandomVariable/Uniform] $em drop-target [new Agent/Null] $ns link-lossmodel $em $n(0) $n(1) $ns link-lossmodel $em $n(1) $n(2) $ns link-lossmodel $em $n(2) $n(3) set udp0 [new Agent/UDP] $ns attach-agent $n(0) $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 1000 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n(3) $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run
Re: [ns] trouble with error model over wired links
Hi there, This is another fine post to the ns-users mailing list. Good subject, good question overall == totally in line with http://www.catb.org/~esr/faqs/smart-questions.html the problem is that you are putting the loss-model in all 3 links; I report exactly the same tracea and NAM problems. Instead, Try this: #$ns link-lossmodel $em $n(0) $n(1) $ns link-lossmodel $em $n(1) $n(2) #$ns link-lossmodel $em $n(2) $n(3) pedro vale estrela http://tagus.inesc-id.pt/~pestrela/ns2/ > -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf > Of Abdul Jabbar > Sent: sexta-feira, 29 de Setembro de 2006 17:45 > To: ns-users@ISI.EDU > Subject: [ns] trouble with error model over wired links > > > Hello, > > I am having unusual trouble getting a simple error model to work over > wired links in ns2.29. I have checked the mailing list archives and > could not find a similar problem/solution. Below is my tcl script which > represents a simple network topology of 3 nodes connected in a chain > using duplex-links. I have a CBR/UDP flow between the nodes 0 and 3. The > flow path is 0-1-2-3. > > If I don't use any error on the links, everything works fine as is > confirmed by the trace file and the nam visualization. > > However, if I include a simple error model and attach it to each of the > three links, the whole simulation goes awry. In the trace file I see > packets going from node 0 to node 1. There is no data flow between node > 2 and node 3 and there is a data flow between nodes 2 and 3. Basically > the packets disappear on node 1 and magically reappear at node 2. In > nam visualization, it is even worse...there is just one flow between > nodes 0 and 1thats it.no other data flows. Changing the error > rate does not help. > > When I have a more complex topology ( like a mesh topology of 8x8 nodes) > the whole simulation goes so bizarre, that it is even hard to trace what > is going wrong. That's why I am using this simple 3 node topology to > illustrate the problem. > > I am hoping that there is some fundamental mistake on my part. Please > point in the right direction. > > Thanks, > Abdul. > > Here's the TCL script > -- > set ns [new Simulator] > set tf [open simout.tr w] > $ns trace-all $tf > set nf [open simout.nam w] > $ns namtrace-all $nf > proc finish {} { > global ns nf tf > $ns flush-trace > close $nf > close $tf > exec nam simout.nam & > exit 0 > } > > for {set i 0} {$i < 4} {incr i} { > set n($i) [$ns node] > } > > $ns duplex-link $n(0) $n(1) 500Mb 10ms DropTail > $ns duplex-link $n(1) $n(2) 500Mb 10ms DropTail > $ns duplex-link $n(2) $n(3) 500Mb 10ms DropTail > > set em [new ErrorModel] > $em unit pkt > $em set rate_ 0.01 > $em ranvar [new RandomVariable/Uniform] > $em drop-target [new Agent/Null] > > $ns link-lossmodel $em $n(0) $n(1) > $ns link-lossmodel $em $n(1) $n(2) > $ns link-lossmodel $em $n(2) $n(3) > > set udp0 [new Agent/UDP] > $ns attach-agent $n(0) $udp0 > set cbr0 [new Application/Traffic/CBR] > $cbr0 set packetSize_ 1000 > $cbr0 set interval_ 0.005 > $cbr0 attach-agent $udp0 > > set null0 [new Agent/Null] > $ns attach-agent $n(3) $null0 > $ns connect $udp0 $null0 > > $ns at 0.5 "$cbr0 start" > $ns at 4.5 "$cbr0 stop" > $ns at 5.0 "finish" > > $ns run
Re: [ns] trouble with error model over wired links
I was able to solve this problem. I would like to thank both Pedro and Alam for their response. The solution provided by Pedro: that is to apply the error to just one link does work. However, my intention was to simulate a network where every link has a certain error rate. The solution provided by Alam: that is to use a separate errorModel object for each link works exactly as I intended. The mistake on my part was that after attaching the errorModel object to one link, I was trying to attach the same object to a second link. However, the response of ns was very confusing. Thanks, Abdul. Abdul Jabbar wrote: > Hello, > > I am having unusual trouble getting a simple error model to work over > wired links in ns2.29. I have checked the mailing list archives and > could not find a similar problem/solution. Below is my tcl script > which represents a simple network topology of 3 nodes connected in a > chain using duplex-links. I have a CBR/UDP flow between the nodes 0 > and 3. The flow path is 0-1-2-3. > > If I don't use any error on the links, everything works fine as is > confirmed by the trace file and the nam visualization. > > However, if I include a simple error model and attach it to each of > the three links, the whole simulation goes awry. In the trace file I > see packets going from node 0 to node 1. There is no data flow between > node 2 and node 3 and there is a data flow between nodes 2 and 3. > Basically the packets disappear on node 1 and magically reappear at > node 2. In nam visualization, it is even worse...there is just one > flow between nodes 0 and 1thats it.no other data flows. > Changing the error rate does not help. > > When I have a more complex topology ( like a mesh topology of 8x8 > nodes) the whole simulation goes so bizarre, that it is even hard to > trace what is going wrong. That's why I am using this simple 3 node > topology to illustrate the problem. > > I am hoping that there is some fundamental mistake on my part. Please > point in the right direction. > > Thanks, > Abdul. > > Here's the TCL script > -- > set ns [new Simulator] > set tf [open simout.tr w] > $ns trace-all $tf > set nf [open simout.nam w] > $ns namtrace-all $nf > proc finish {} { > global ns nf tf > $ns flush-trace > close $nf > close $tf > exec nam simout.nam & > exit 0 > } > > for {set i 0} {$i < 4} {incr i} { > set n($i) [$ns node] > } > > $ns duplex-link $n(0) $n(1) 500Mb 10ms DropTail > $ns duplex-link $n(1) $n(2) 500Mb 10ms DropTail > $ns duplex-link $n(2) $n(3) 500Mb 10ms DropTail > > set em [new ErrorModel] > $em unit pkt > $em set rate_ 0.01 > $em ranvar [new RandomVariable/Uniform] > $em drop-target [new Agent/Null] > > $ns link-lossmodel $em $n(0) $n(1) > $ns link-lossmodel $em $n(1) $n(2) > $ns link-lossmodel $em $n(2) $n(3) > > set udp0 [new Agent/UDP] > $ns attach-agent $n(0) $udp0 > set cbr0 [new Application/Traffic/CBR] > $cbr0 set packetSize_ 1000 > $cbr0 set interval_ 0.005 > $cbr0 attach-agent $udp0 > > set null0 [new Agent/Null] > $ns attach-agent $n(3) $null0 > $ns connect $udp0 $null0 > > $ns at 0.5 "$cbr0 start" > $ns at 4.5 "$cbr0 stop" > $ns at 5.0 "finish" > > $ns run >