Dear all,

The following code is a available dsRED example  in ns-2. It run normally.
But when i add the routing protocol, for example "$ns rtproto DV", I received 
the error notification "The policy object doesn't exist, ERROR !!!".

Could you help me to modify this code !!!

Thank you very much

Best Regards,


#--------------------------------------------------------------------------------
 # cbr-tb.tcl
 # Author: Jeremy Ethridge.
 # Dates: June 29-July 5, 1999.
 # Notes: A DS-RED script that uses CBR traffic agents and the Token Bucket 
policer.
 #
 #    ----
 #    |s1|-----------
 #    ----   10 Mb   \
  #            5 ms    \
 #                     \----            ------          ----           ------
 #                      |e1|-----------|core|----------|e2|-----------|dest|
 #                     /----   10 Mb   ------   5 Mb   ----   10 Mb   ------
 #                     /         5 ms            5 ms           5 ms
 #    ----           /
 #     |s2|-----------
 #    ----   10 Mb
 #            5 ms
 #
 
#--------------------------------------------------------------------------------
 
 
 set ns [new Simulator]
 
 set cir0  1000000
 set cbs0     3000
 set rate0 2000000
 set cir1  1000000
 set cbs1    10000
 set rate1 3000000
 
 set testTime 85.0
 set packetSize 1000
 
 
 
 # Set up the network topology shown at the top of this file:
 set s1 [$ns node]
 set s2 [$ns node]
 set e1 [$ns node]
 set core [$ns node]
 set  e2 [$ns node]
 set dest [$ns node]
 
 $ns duplex-link $s1 $e1 10Mb 5ms DropTail
 $ns duplex-link $s2 $e1 10Mb 5ms DropTail
 
 $ns simplex-link $e1 $core 10Mb 5ms dsRED/edge
 $ns simplex-link $core $e1 10Mb 5ms dsRED/core
 
 $ns simplex-link $core $e2 5Mb 5ms dsRED/core
 $ns  simplex-link $e2 $core 5Mb 5ms dsRED/edge
 
 $ns duplex-link $e2 $dest 10Mb 5ms DropTail
 
 
 $ns duplex-link-op $s1 $e1 orient down-right
 $ns duplex-link-op $s2 $e1 orient up-right
 $ns duplex-link-op $e1 $core orient right
 $ns duplex-link-op $core $e2 orient right
 $ns duplex-link-op $e2 $dest orient right
 
 
 set qE1C [[$ns link $e1 $core] queue]
 set qE2C [[$ns link $e2 $core] queue]
 set qCE1 [[$ns link $core $e1] queue]
 set qCE2 [[$ns link $core $e2] queue]
 
 # Set DS RED parameters from Edge1 to Core:
 $qE1C meanPktSize $packetSize
 $qE1C set numQueues_ 1
 $qE1C setNumPrec 2
 $qE1C addPolicyEntry  [$s1 id] [$dest id] TokenBucket 10 $cir0 $cbs0
 $qE1C addPolicyEntry [$s2 id] [$dest id] TokenBucket 10 $cir1 $cbs1
 $qE1C addPolicerEntry TokenBucket 10 11
 $qE1C addPHBEntry 10 0 0
 $qE1C addPHBEntry 11 0 1
 $qE1C configQ 0 0 20 40 0.02
 $qE1C configQ 0 1 10 20 0.10
 
 # Set DS RED  parameters from Edge2 to Core:
 $qE2C meanPktSize $packetSize
 $qE2C set numQueues_ 1
 $qE2C setNumPrec 2
 $qE2C addPolicyEntry [$dest id] [$s1 id] TokenBucket 10 $cir0 $cbs0
 $qE2C addPolicyEntry [$dest id] [$s2 id] TokenBucket 10 $cir1 $cbs1
 $qE2C addPolicerEntry TokenBucket 10 11
 $qE2C addPHBEntry 10 0 0
 $qE2C addPHBEntry 11 0 1
 $qE2C configQ 0 0 20 40 0.02
 $qE2C configQ 0 1 10 20 0.10
 
 # Set DS RED parameters from Core to Edge1:
 $qCE1 meanPktSize $packetSize
 $qCE1 set numQueues_ 1
 $qCE1 setNumPrec 2
 $qCE1 addPHBEntry 10 0 0
 $qCE1 addPHBEntry 11 0 1
 $qCE1 configQ 0 0 20 40 0.02
 $qCE1 configQ 0 1  10 20 0.10
 
 # Set DS RED parameters from Core to Edge2:
 $qCE2 meanPktSize $packetSize
 $qCE2 set numQueues_ 1
 $qCE2 setNumPrec 2
 $qCE2 addPHBEntry 10 0 0
 $qCE2 addPHBEntry 11 0 1
 $qCE2 configQ 0 0 20 40 0.02
 $qCE2 configQ 0 1 10 20 0.10
 
 
 # Set up one CBR  connection between each source and the destination:
 set udp0 [new Agent/UDP]
 $ns attach-agent $s1 $udp0
 set cbr0 [new Application/Traffic/CBR]
 $cbr0 attach-agent $udp0
 $cbr0 set packet_size_ $packetSize
 $udp0 set packetSize_ $packetSize
 $cbr0 set rate_ $rate0
 set null0 [new Agent/Null]
 $ns attach-agent $dest $null0
 $ns connect $udp0 $null0
 
 set udp1 [new Agent/UDP]
 $ns attach-agent $s2 $udp1
 set cbr1 [new Application/Traffic/CBR]
 $cbr1 attach-agent $udp1
 $cbr1 set packet_size_ $packetSize
 $udp1 set packetSize_ $packetSize
 $cbr1 set rate_ $rate1
 set null1 [new Agent/Null]
 $ns attach-agent $dest  $null1
 $ns connect $udp1 $null1
 
 
 proc finish {} {
     global ns 
     exit 0
 }
 
 $qE1C printPolicyTable
 $qE1C printPolicerTable
 
 $ns at 0.0 "$cbr0 start"
 $ns at 0.0 "$cbr1 start"
 $ns at 20.0 "$qCE2 printStats"
 $ns at  40.0 "$qCE2 printStats"
 $ns at 60.0 "$qCE2 printStats"
 $ns at 80.0 "$qCE2 printStats"
 $ns at $testTime "$cbr0 stop"
 $ns at $testTime "$cbr1 stop"
 $ns at [expr $testTime + 1.0] "finish"
 
 $ns run
       
---------------------------------
Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, 
photos & more. 

Reply via email to