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

[ns] ns-diffsrev scripts test question?



This script is written by referring to RFC 2698 "A Rate Adaptive Shaper for Differentiated Services"
(there are not trRAS in this script)
when I run this script in ns-2.7, the number of "green" packets is very small.
 
 
Why? Help!!!
 
 
 
set ns [new Simulator]
 
Queue set limit_   1000
 
set packetSize  1000
set testTime 100
set ER1 [$ns node]
set ER2 [$ns node]
 
for {set i  1} {$i <= 10} { incr i} {
     set c1($i) [$ns node]
     set c2($i) [$ns node]
     set u1($i) [$ns node]
     set u2($i) [$ns node]
}
 
proc queue_init {src dest packetSize} {
  set ns [Simulator instance]
  set q [[$ns link $src $dest] queue]
  $q meanPktSize $packetSize
  $q set numQueues_ 1
  $q setNumPrec 3
  $q addPHBEntry 10 0 0
  $q addPHBEntry 11 0 1
  $q addPHBEntry 12 0 2
  $q configQ  0 0 400 800 0.02
  $q configQ  0 1 200 400 0.05
  $q configQ  0 2 100 200 0.1
}
 
$ns simplex-link $ER1 $ER2 70Mb 1ms  dsRED/core
$ns simplex-link $ER2 $ER1 70Mb 1ms  dsRED/core
queue_init $ER1 $ER2 $packetSize
queue_init $ER2 $ER1 $packetSize
 
for {set i  1} {$i <= 10} { incr i} {
     $ns simplex-link $c1($i) $ER1 34Mb 2.5ms dsRED/edge 
     $ns simplex-link $ER1 $c1($i) 34Mb 2.5ms dsRED/core
     queue_init  $c1($i) $ER1 $packetSize
     queue_init  $ER1 $c1($i) $packetSize
   
     $ns simplex-link $c2($i) $ER2 34Mb 2.5ms dsRED/edge 
     $ns simplex-link $ER2 $c2($i) 34Mb 2.5ms dsRED/core
     queue_init  $c2($i) $ER2 $packetSize
     queue_init  $ER2 $c2($i) $packetSize
     
     $ns duplex-link $u1($i) $c1($i) 10Mb 1ms DropTail
     $ns duplex-link $u2($i) $c2($i) 10Mb 1ms DropTail
}   
    
for {set i  1} {$i <= 10} { incr i } {
  set q1($i) [[$ns link $c1($i) $ER1] queue]
  set q2($i) [[$ns link $c2($i) $ER2] queue]
  if {$i <= 5 } {
    $q1($i) addPolicyEntry [$u1($i) id] [$u2($i) id]  trTCM  10 [expr $i*2]Mb 3k [expr $i*4]Mb 6k
    $q2($i) addPolicyEntry [$u2($i) id] [$u1($i) id]  trTCM  10 [expr $i*2]Mb 3k [expr $i*4]Mb 6k
    $q1($i) addPolicerEntry trTCM  10 11 12
    $q2($i) addPolicerEntry trTCM  10 11 12
} else {
    $q1($i) addPolicyEntry [$u1($i) id] [$u2($i) id]  trTCM 10 [expr ($i-5)*2]Mb 30000 [expr ($i-5)*4]Mb 6k
    $q2($i) addPolicyEntry [$u2($i) id] [$u1($i) id]  trTCM 10 [expr ($i-5)*2]Mb 30000 [expr ($i-5)*4]Mb 6k
    $q1($i) addPolicerEntry trTCM  10 11 12
    $q2($i) addPolicerEntry trTCM  10 11 12
   }  
}
 
for {set i  1} {$i <= 10} { incr i } {
  set src($i) [new Agent/TCP/Sack1]
  $src($i) set window_  60kb
  set sink($i) [new Agent/TCPSink/Sack1]
  $ns attach-agent $u1($i) $src($i)
  $ns attach-agent $u2($i) $sink($i)
  $ns connect $src($i) $sink($i)
 
  set ftp($i) [new Application/FTP]
  $ftp($i) attach-agent $src($i)
}
 
proc finish {src} {
    global ns  src
   
   exit 0
}
 

for {set i  1} {$i <= 10} { incr i } {
  $ns at 0.0 "$ftp($i) start"
}
 
for {set i  1} {$i <= 10} { incr i } {
  $ns at $testTime "$ftp($i) stop"
}
 
for {set i  1} {$i <= 10} { incr i } {
   $ns at 80 "$q1($i) printStats"
}
 
$ns at [expr $testTime + 1.0] "finish"
 
$ns run