# Create a simple six node topology:
#
# s0 d0
# / /
# 10Mb,2ms / 1.5Mb,20ms / 10Mb,4ms
# r1 --------- r2
# 10Mb,3ms / / 10Mb,5ms
# / /
# s1 d1
set ns [new Simulator]
set nd [open out.tr w]
$ns trace-all $nd
set nf [open out.nam w]
$ns namtrace-all $nf
set r0 [$ns node]
set r1 [$ns node]
set s0 [$ns node]
set s1 [$ns node]
set d0 [$ns node]
set d1 [$ns node]
$ns duplex-link $r0 $r1 1.5Mb 20ms RED
# Tracing a queue
set redq [[$ns link $r0 $r1] queue]
set tchan_ [open curq.q w]
$redq trace curq_
$redq attach $tchan_
#use new ared
$redq set adaptive_ 1
#set new ared parameters
$redq set thresh_ 10
$redq set maxthresh_ 30
$redq set limit_ 1000
$redq set mean_pktsize_ 500
$redq set q_weight_ 0.004
$redq set mark_p_ 0.1
$redq set interval_ 0.1
$ns duplex-link $s0 $r0 10Mb 2ms DropTail
$ns duplex-link $s1 $r0 10Mb 3ms DropTail
$ns duplex-link $r1 $d0 10Mb 4ms DropTail
$ns duplex-link $r1 $d1 10Mb 5ms DropTail
$ns queue-limit $r0 $r1 25
$ns queue-limit $r1 $r0 25
$ns duplex-link-op $s0 $r0 orient right-down
$ns duplex-link-op $s1 $r0 orient right-up
$ns duplex-link-op $r0 $r1 orient right
$ns duplex-link-op $r0 $r1 queuePos 0
$ns duplex-link-op $r1 $r0 queuePos 0
$ns duplex-link-op $d0 $r1 orient left-down
$ns duplex-link-op $d1 $r1 orient left-up
set tcp0 [$ns create-connection TCP/Reno $s0 TCPSink $d0 0]
$tcp0 set window_ 15
set tcp1 [$ns create-connection TCP/Reno $s1 TCPSink $d1 1]
$tcp1 set window_ 15
set ftp0 [$tcp0 attach-source FTP]
set ftp1 [$tcp1 attach-source FTP]
$ns at 0.0 "$ftp0 start"
$ns at 3.0 "$ftp1 start"
$ns at 50 "finish"
proc finish {} {
global tchan_ nf nd
if { [info exists tchan_] } {
close $tchan_
}
close $nf
close $nd
exit 0
}
$ns run