[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