[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Problem with CBQ and TCP Traffic
Hi, I'm trying to use a CBQ queue with TCP traffic, but I get the
following error:
ns: _o34 unknown-flow 1280 768 3 3:
(_o34 cmd line 1)
invoked from within
"_o34 cmd unknown-flow 1280 768 3 3"
invoked from within
"catch "$self cmd $args" ret"
(procedure "_o34" line 2)
(SplitObject unknown line 2)
invoked from within
"_o34 unknown-flow 1280 768 3 3"
The code that I'm using is the following:
proc finish {} {
global ns nf sender receiver
$ns flush-trace
close $nf
close $sender
close $receiver
exit 0
}
proc attach-expoo-traffic { node sink size burst idle rate type} {
#Get an instance of the simulator
set ns [Simulator instance]
#Create a UDP agent and attach it to the node
set source [new $type]
$ns attach-agent $node $source
#Create an Expoo traffic agent and set its configuration parameters
set traffic [new Traffic/Expoo]
$traffic set packet-size $size
$traffic set burst-time $burst
$traffic set idle-time $idle
$traffic set rate $rate
#Attach the traffic agent to the traffic source
$source attach-traffic $traffic
#Connect the source and the sink
$ns connect $source $sink
return $source
}
#Create link between n1 and n2
##############################
proc setupLink {n1 n2 bw delay qtype} {
global ns
$ns duplex-link $n1 $n2 $bw $delay $qtype
#if queue type is CBq, then setup CBQ queue
###########################################
if { "$qtype" == "CBQ" } {
setupCBQ $n1 $n2
}
}
#Setup a CBQ Queue. Create two queues:
# audioClass: audio queue. Priority 0 (highest)
# dataClass : data queue. Priority 1
###############################################
proc setupCBQ {n1 n2} {
global ns
#Get link
#########
set cbqlink [$ns link $n1 $n2]
#Create classes for the queue
#############################
set topClass [new CBQClass]
set audioClass [new CBQClass]
set dataClass [new CBQClass]
#Install DropTail queue in audioClass and dataClass
###################################################
$audioClass install-queue [new Queue/DropTail]
$dataClass install-queue [new Queue/DropTail]
#set parameters for audioClass and dataClass
############################################
# parent borrow? bw all. delay prty type extra delay
# ------ ------- ------- ----- ----- ---- -----------
$topClass setparams none 0 0.50 auto 8 2 0
$audioClass setparams $topClass true 0.11 auto 1 1 0
$dataClass setparams $topClass true 0.40 auto 2 1 0
#Insert new classes into the link
#################################
$cbqlink insert $topClass
$cbqlink insert $audioClass
$cbqlink insert $dataClass
#Attach flow ids to each queue
##############################
$cbqlink bind $audioClass 0 2
$cbqlink bind $dataClass 3 10
}
################
# MAIN PROGRAM #
################
#Some important variables
########################
#Start environment
##################
set ns [new Simulator]
$ns color 1 Red
$ns color 2 Yellow
$ns color 3 Blue
$ns color 4 Green
#Trace files
############
set nf [open out.nam w]
$ns namtrace-all $nf
set sender [open out.log w]
set receiver [open in.log w]
#Create nodes
#############
set C0 [$ns node]
set C1 [$ns node]
set t1 [$ns node]
set t2 [$ns node]
set c1 [$ns node]
set c2 [$ns node]
#Set up links between nodes
###########################
#Hop links
##########
setupLink $C0 $C1 1.5Mb 5ms CBQ
#Transmision link
#################
setupLink $t1 $C0 64Kb 5ms DropTail
setupLink $t2 $C0 64Kb 5ms DropTail
#Recepcion link
###############
setupLink $C1 $c1 64Kb 5ms DropTail
setupLink $C1 $c2 1.5Mb 5ms DropTail
#TEST TEST TEST
set tcp_src1 [new Agent/TCP]
set tcp_src2 [new Agent/TCP]
set tcp_snk1 [new Agent/TCPSink]
set tcp_snk2 [new Agent/TCPSink]
$ns attach-agent $t2 $tcp_src1
$ns attach-agent $c2 $tcp_snk1
$ns attach-agent $c2 $tcp_src2
$ns attach-agent $t2 $tcp_snk2
$tcp_src1 set fid_ 3
$tcp_src2 set fid_ 4
$ns connect $tcp_src1 $tcp_snk1
$ns connect $tcp_src2 $tcp_snk2
set ftp1 [$tcp_src1 attach-source FTP]
set ftp2 [$tcp_src2 attach-source FTP]
#TEST TEST TEST
#Create sinks
#############
set null1 [new Agent/LossMonitor]
$ns attach-agent $c1 $null1
#Create agents
##############
set cbr1 [attach-expoo-traffic $t1 $null1 200 2s 1s 64k Agent/CBR/UDP]
$cbr1 set fid_ 1
#Connect agents
###############
$ns connect $cbr1 $null1
#Set trace files
################
#$ns trace-queue $t1 $C0 $sender
#$ns trace-queue $C2 $c1 $receiver
#Start the simulation
#####################
#$ns at 0.0 "result"
$ns duplex-link-op $C0 $C1 queuePos 0.5
$ns at 0.5 "$cbr1 start"
$ns at 1.0 "$ftp1 start"
$ns at 2.0 "$ftp2 start"
$ns at 90.6 "$cbr1 stop"
$ns at 100.0 "finish"
Everything works OK except for the part that is between the TEST
comments. If I change the queue between C0 and C1 to a DropTail queue,
the simulation works. If I change the queue back again to a CBQ queue, I
get the previous error message.
I'm new to ns and it is very probably that I'm doing something wrong.
Any clue?
Thanks,
Oscar.