[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ns] WFQ trace
Hi all !
I'm a novice student in NS and I'm working on QoS, and need to use WFQ.
I've found an exemple using RED to trace files (size and average) but I don't
know how to do with WFQ. Which file(s) do I have to modify ? Is there an
exemple like RED for that ?
Thanx in advance..
PS : this is the program for RED :
set ns [new Simulator]
set node_(s1) [$ns node]
set node_(s2) [$ns node]
set node_(r1) [$ns node]
set node_(r2) [$ns node]
set node_(s3) [$ns node]
set node_(s4) [$ns node]
$ns duplex-link $node_(s1) $node_(r1) 20Mb 2ms DropTail
$ns duplex-link $node_(s2) $node_(r1) 20Mb 3ms DropTail
$ns duplex-link $node_(r1) $node_(r2) 1.5Mb 20ms RED
$ns queue-limit $node_(r1) $node_(r2) 5
$ns queue-limit $node_(r2) $node_(r1) 5
$ns duplex-link $node_(s3) $node_(r2) 20Mb 4ms DropTail
$ns duplex-link $node_(s4) $node_(r2) 20Mb 5ms DropTail
$ns duplex-link-op $node_(s1) $node_(r1) orient right-down
$ns duplex-link-op $node_(s2) $node_(r1) orient right-up
$ns duplex-link-op $node_(r1) $node_(r2) orient right
$ns duplex-link-op $node_(r1) $node_(r2) queuePos 0.5
$ns duplex-link-op $node_(r2) $node_(r1) queuePos 0.5
$ns duplex-link-op $node_(s3) $node_(r2) orient left-down
$ns duplex-link-op $node_(s4) $node_(r2) orient left-up
set tcp1 [$ns create-connection TCP $node_(s1) TCPSink $node_(s3) 0]
set tcp2 [$ns create-connection TCP $node_(s2) TCPSink $node_(s4) 1]
set ftp1 [$tcp1 attach-source FTP]
set ftp2 [$tcp2 attach-source FTP]
set redq [[$ns link $node_(r1) $node_(r2)] queue]
set charge_ [open all.q w]
$redq trace curq_
$redq trace ave_
$redq attach $charge_
$ns at 0.0 "$ftp1 start"
$ns at 3.0 "$ftp2 start"
$ns at 10 "finish"
proc finish {} {
global charge_
set awkCode {
{
if ($1 == "Q" && NF>2) {
print $2, $3 >> "temp.q";
set end $2
}
else if ($1 == "a" && NF>2)
print $2, $3 >> "temp.a";
}
}
set f [open temp.queue w]
puts $f "TitleText: COMPORTEMENT DE RED"
puts $f "Device: Postscript"
if { [info exists charge_] } {
close $charge_
}
exec rm -f temp.q temp.a
exec touch temp.a temp.q
exec awk $awkCode all.q
puts $f \"Occupation_file
exec cat temp.q >@ $f
puts $f \n\"Moyenne_charge
exec cat temp.a >@ $f
close $f
exec xgraph -bb -tk -x time -y queue_size temp.queue &
exit 0
}
$ns run