[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: question on CBQ
1) you must insert also topclass:
$cbqlink insert $topClass
2) fid is for agents, not traffic generators, so:
$s1 set fid_ 1
instead of
$exp1 set fid_ 1
and
$s2 set fid_ 2
instead of
$exp2 set fid_ 2
Max.
> wuwei wrote:
>
> Dear all,
> I just begin using the ns to simulate the CBQ and can't find the
> reason of errors in my script.Please give me some suggestions.
> Thanks in advance.
>
> My script is as follows:
>
>
> #Create a simulator object
>
> set ns [new Simulator]
>
> #Open the nam trace file
>
> set nf [open out.nam w]
>
> $ns namtrace-all $nf
>
> #Create 4 nodes
>
> set n1 [$ns node]
>
> set n2 [$ns node]
>
> set n3 [$ns node]
>
> set n4 [$ns node]
>
> #Connect the nodes
>
> $ns duplex-link $n1 $n3 10Mb 100ms DropTail
>
> $ns duplex-link $n2 $n3 10Mb 100ms DropTail
>
> $ns duplex-link $n3 $n4 1Mb 100ms CBQ
>
>
>
> set cbqlink [$ns link $n3 $n4]
>
> $ns duplex-link-op $n1 $n3 orient right-up
>
> $ns duplex-link-op $n2 $n3 orient right
>
> $ns duplex-link-op $n3 $n4 orient right
>
>
>
> #Monitor the queue for the link between node 3 and node 4
>
> $ns duplex-link-op $n3 $n4 queuePos 0.5
>
>
>
> #Set two leaf classes: lowerClass1 and lowerClass2
>
> set topClass [new CBQClass]
>
> set lowerClass1 [new CBQClass]
>
> set lowerClass2 [new CBQClass]
>
> $topClass setparams none 0 0.80 auto 0 2 0
>
> $lowerClass1 setparams $topClass true 0.35 auto 1 1 100ms
>
> $lowerClass2 setparams $topClass true 0.35 auto 2 1 150ms
>
>
>
> set q1 [new Queue/DropTail]
>
> $q1 set limit_ 20
>
> set q2 [new Queue/DropTail]
>
> $q2 set limit_ 30
>
>
>
> $lowerClass1 install-queue $q1
>
> $lowerClass2 install-queue $q2
>
> $cbqlink insert $lowerClass1
>
> $cbqlink insert $lowerClass2
>
> $cbqlink bind $lowerClass1 1
>
> $cbqlink bind $lowerClass2 2
>
> #generate traffic from n1 , n2 to n4 via n3
>
> set null1 [new Agent/Null]
>
> $ns attach-agent $n4 $null1
>
> set s1 [new Agent/UDP]
>
> $ns attach-agent $n1 $s1
>
> $ns connect $s1 $null1
>
> set exp1 [new Application/Traffic/Exponential]
>
> $exp1 set packet_size_ 210
>
> $exp1 set burst_time_ 500ms
>
> $exp1 set idle_time_ 500ms
>
> $exp1 set rate_ 100k
>
> $exp1 set fid_ 1
>
> $exp1 attach-agent $s1
>
>
>
> set s2 [new Agent/UDP]
>
> $ns attach-agent $n2 $s2
>
> $ns connect $s2 $null1
>
> set exp2 [new Application/Traffic/Exponential]
>
> $exp2 set packet_size_ 210
>
> $exp2 set burst_time_ 500ms
>
> $exp2 set idle_time_ 500ms
>
> $exp2 set rate_ 100k
>
> $exp2 set fid_ 2
>
> $exp2 attach-agent $s2
>
> #Define a 'finish' procedure
>
> proc finish {} {
>
> global ns nf
>
> $ns flush-trace
>
> #Close the trace file
>
> close $nf
>
> #Execute nam on the trace file
>
> exec nam out.nam &
>
> exit 0
>
> }
>
>
>
> $ns at 1.0 "$exp1 start"
>
> $ns at 1.0 "$exp2 start"
>
> $ns at 5.0 "$exp1 stop"
>
> $ns at 5.0 "$exp2 stop"
>
> #Run the simulation
>
> $ns run
>
> The error message is:
>
>
> ns: _o59 unknown-flow 256 768 0 0:
> (_o59 cmd line 1)
> invoked from within
> "_o59 cmd unknown-flow 256 768 0 0"
> invoked from within
> "catch "$self cmd $args" ret"
> (procedure "_o59" line 2)
> (SplitObject unknown line 2)
> invoked from within
> "_o59 unknown-flow 256 768 0 0"
--
Massimo Pegorer, student
Dipartimento di Elettronica e Informatica
Universita' degli Studi di Padova
Padova - ITALIA