[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ns] CBQ and multicast prune fid_
Hi,
I'm trying to get CBQ to work so that prunes are queued differently than
regular cbr traffic. In my version (ns2.1b4) the prune agent is set
to fid_ 30 in the class DM method 'send-ctrl'. For some reason, although
the *.tr file shows the fid_ as 30, I get an error message about an
unrecognized flow when the first prune is queued and the program crashes.
Anybody know what's going on?
My code is based on these 2 previous ns2 discussion-group postings:
http://www.cin.ufpe.br/~cak/ns/cbq_example.tcl
http://www.isi.edu/nsnam/archive/ns-users/webarch/1999/msg02660.html
The error msg I get is this:
_o129 unknown-flow 1024 0 30 30
Does anyone know what is going on?
Thanks!
-Lori
-----------------------------------------------------------
The following is the code I'm using:
Simulator instproc makeCBQlink { node1 node2 timeLink} {
set topClass [new CBQClass]
set lowerClass1 [new CBQClass]
set lowerClass2 [new CBQClass]
set lowerClass3 [new CBQClass]
$topClass setparams none 0 1.00 auto 0 3 0
$lowerClass1 setparams $topClass true 1.00 auto 3 1 $timeLink
$lowerClass2 setparams $topClass true 1.00 auto 2 1 $timeLink
$lowerClass3 setparams $topClass true 1.00 auto 1 1 $timeLink
set q1 [new Queue/DropTail]
$q1 set limit_ 50
set q2 [new Queue/DropTail]
$q2 set limit_ 30
set q3 [new Queue/DropTail]
$q3 set limit_ 30
$lowerClass1 install-queue $q1
$lowerClass2 install-queue $q2
$lowerClass3 install-queue $q3
$self instvar Node_
set cbqlink [$self link $Node_($node1) $Node_($node2)]
$cbqlink insert $topClass
$cbqlink insert $lowerClass1
$cbqlink insert $lowerClass2
$cbqlink insert $lowerClass3
$cbqlink bind $lowerClass1 30
$cbqlink bind $lowerClass2 31
$cbqlink bind $lowerClass3 0
}
set ns [new Simulator -multicast on]
Simulator set NumberInterfaces_ 1
#configure network, all CBQ links between nodes:
$ns duplex-link $n(0) $n(9) 1.5Mb 40ms CBQ
$ns makeCBQlink 0 9 40
$ns duplex-link $n(0) $n(4) 1.5Mb 60ms CBQ
$ns makeCBQlink 0 4 60
$ns duplex-link $n(0) $n(2) 1.5Mb 40ms CBQ
$ns makeCBQlink 0 2 40
$ns duplex-link $n(1) $n(8) 1.5Mb 70ms CBQ
$ns makeCBQlink 1 8 70
$ns duplex-link $n(2) $n(6) 1.5Mb 70ms CBQ
$ns makeCBQlink 2 6 70
$ns duplex-link $n(3) $n(9) 1.5Mb 20ms CBQ
$ns makeCBQlink 3 9 20
$ns duplex-link $n(3) $n(8) 1.5Mb 70ms CBQ
$ns makeCBQlink 3 8 70
$ns duplex-link $n(3) $n(5) 1.5Mb 70ms CBQ
$ns makeCBQlink 3 5 70
$ns duplex-link $n(4) $n(7) 1.5Mb 70ms CBQ
$ns makeCBQlink 4 7 70
$ns duplex-link $n(4) $n(6) 1.5Mb 40ms CBQ
$ns makeCBQlink 4 6 40
$ns duplex-link $n(5) $n(9) 1.5Mb 70ms CBQ
$ns makeCBQlink 5 9 70
$ns duplex-link $n(5) $n(7) 1.5Mb 40ms CBQ
$ns makeCBQlink 5 7 40
$ns duplex-link $n(7) $n(9) 1.5Mb 60ms CBQ
$ns makeCBQlink 7 9 60
$ns duplex-link $n(8) $n(9) 1.5Mb 70ms CBQ
$ns makeCBQlink 8 9 70
set mproto pimDM
set cbr1 [new Agent/CBR]
$ns attach-agent $n(0) $cbr1
$cbr1 set fid_ 0;
$cbr1 set packetSize_ 500
$cbr1 set interval_ 0.005
set group [Node allocaddr]
$cbr1 set dst_ $group
$ns at 0.2 "$cbr1 start"
$ns at 3.0 "finish"
proc finish {} {
global ns nf
$ns flush-trace
close $nf
exit 0
}
$ns run