[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ns] CBQ and multicast prune fid_



> 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?

This is probably because you didn't configure CBQ in both sides os your
duplex links. When you create a CBQ link, no queue is created
automatically.
Although you are sending CBR traffic just in one direction, some routing
protocolos send packtes in both directions! (I never used PIM in ns)
So, eihter you configure CBQ in both directions of your CBQ links, or you
create two simplex links, one CBQ and one DropTail (for instance).

I think this will work!

Carlos

>
> 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
>
>
>
>
>
>
>
>
>