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

[ns] Problems with CBR traffic generator



Hi,

I'm using 2 CBR Traffics over RTP.
The first CBR agent has got a rate = 448 kbit/s and a packetSize_ = 200.
The second CBR agent has got a rate = 320 kbit/s and a packetSize_ = 200.

I collect the output of theses two traffics in LossMonitor Agent.
The problem is that the two CBR traffic output are equal (same average
bitrate) :o(
I don't know why.

----------------------------------
set ns [new Simulator]

set s0 [$ns node]
set s1 [$ns node]
set s2 [$ns node]
set s3 [$ns node]
set i0 [$ns node]
set d0 [$ns node]

$ns duplex-link $s0 $i0 5Mb 0ms DropTail
$ns duplex-link $s1 $i0 5Mb 0ms DropTail
$ns duplex-link $s2 $i0 5Mb 0ms DropTail
$ns duplex-link $s3 $i0 5Mb 0ms DropTail
$ns duplex-link $i0 $d0 5Mb 0ms DropTail

proc attach-expoo-traffic { node sink size burst idle rate } {
          #Get an instance of the simulator
          set ns [Simulator instance]
          #Create a UDP agent and attach it to the node
          set source [new Agent/CBR/UDP]
          $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
  }

set sink0 [new Agent/LossMonitor]
set sink1 [new Agent/LossMonitor]
set sink2 [new Agent/LossMonitor]
set sink3 [new Agent/LossMonitor]

$ns attach-agent $d0 $sink0
$ns attach-agent $d0 $sink1
$ns attach-agent $d0 $sink2
$ns attach-agent $d0 $sink3

# source 0 au node s0 : cbr
set source0 [new Agent/RTP]
$ns attach-agent $s0 $source0
set source0agent [new Application/Traffic/CBR]
$source0agent set packetSize_ 200
$source0agent set rate 448k
$source0agent attach-agent $source0
$ns connect $source0 $sink0

# source 1 au node s1 : cbr
set source1 [new Agent/RTP]
$ns attach-agent $s1 $source1
set source1agent [new Application/Traffic/CBR]
$source1agent set packetSize_ 200
$source1agent set rate 320k
$source1agent attach-agent $source1
$ns connect $source1 $sink1

# source 2 au node s2 : exp
set source2 [attach-expoo-traffic $s2 $sink2 200 5s 10s 768k]

# source 3 au node s3 : exp
set source3 [attach-expoo-traffic $s3 $sink3 200 10s 10s 1024k]

set f0 [open res0.tr w]
set f1 [open res1.tr w]
set f2 [open res2.tr w]
set f3 [open res3.tr w]

proc finish {} {
          global f0 f1 f2 f3
          close $f0
          close $f1
          close $f2
          close $f3
          exit 0
  }

proc record {} {
          global sink0 sink1 sink2 sink3 f0 f1 f2 f3

          set ns [Simulator instance]

          set time 30

          set bw0 [$sink0 set bytes_]
          set bw1 [$sink1 set bytes_]
          set bw2 [$sink2 set bytes_]
          set bw3 [$sink3 set bytes_]

          set now [$ns now]

          puts $f0 "$now [expr $bw0/$time*8]"
          puts $f1 "$now [expr $bw1/$time*8]"
          puts $f2 "$now [expr $bw2/$time*8]"
          puts $f3 "$now [expr $bw3/$time*8]"

          $sink0 set bytes_ 0
          $sink1 set bytes_ 0
          $sink2 set bytes_ 0
          $sink3 set bytes_ 0

          $ns at [expr $now+$time] "record"
  }

$ns at 0.0 "record"
$ns at 0.0 "$source0agent start"
$ns at 0.0 "$source1agent start"
$ns at 0.0 "$source2 start"
$ns at 0.0 "$source3 start"
$ns at 600.1 "finish"

$ns run