sir,
when i am using to generate nam file its properly work in ns2.35
but when I am using to generate xgraph we modify nam file it
gives the following error:
"invalid command name "Agent/TCPSink/Sack1/DeAck"
while executing
"Agent/TCPSink/Sack1/DeAck create _o108 "
invoked from within
"catch "$className create $o $args" msg"
invoked from within
"if [catch "$className create $o $args" msg] {
if [string match "__FAILED_SHADOW_OBJECT_" $msg] {
delete $o
return ""
}
global errorInfo
error "class $..."
(procedure "new" line 3)
invoked from within
"new Agent/TCPSink/Sack1/DeAck"
invoked from within
"set Sink0 [new Agent/TCPSink/Sack1/DeAck]"
(file "blue.tcl" line 75)"
this tcl file for nam:
------------------------------------------------------blue.tcl
------------------------for nam file it properly work------
#script illustrating the BLUE algorithm
#Senders are TCP-SACK senders, and receivers are TCP-SACK sinks
set ns [new Simulator]
# turn on ns and nam tracing
set f [open out.tr w]
$ns trace-all $f
$ns namtrace-all [open out.nam w]
#set the no of TCP flows here
set nodenum 5
set start_time 1.0
set finish_time 100
# create the nodes
#First create TCP senders and receivers
for {set i 0} {$i < $nodenum} {incr i} {
set s($i) [$ns node]
set r($i) [$ns node]
}
#Then create the 2 back-bone routers
set n1 [$ns node]
set n2 [$ns node]
# create the links
#betwwen the senders and n1, receivers and n2
for {set i 0} {$i < $nodenum} {incr i} {
$ns duplex-link $s($i) $n1 10Mb 1ms DropTail
$ns duplex-link $r($i) $n2 10Mb 1ms DropTail
}
#Bottle neck link between between n1 and n2
$ns simplex-link $n1 $n2 1Mbps 100ms Blue
$ns simplex-link $n2 $n1 1Mbps 100ms DropTail
#Configure BLUE queue parameters here
set blueq [[$ns link $n1 $n2] queue]
$blueq set decrement 0.00025
$blueq set increment 0.0025
$blueq set dhold-time 100ms
$blueq set ihold-time 100ms
#Enable ECN here
$blueq set setbit true
#set the queue-limit between n1 and n2
$ns queue-limit $n1 $n2 50
#set up queue monitor, sample every 0.5 seconds
set qfile [open "test-blue-qsize.out" w]
set qm [$ns monitor-queue $n1 $n2 $qfile 0.5]
[$ns link $n1 $n2] queue-sample-timeout
#create the random number generator
set rng [new RNG]
# create TCP agents
for {set i 0} {$i < $nodenum} {incr i} {
set tcp($i) [new Agent/TCP/Sack1]
$tcp($i) set fid_ [expr ($i + 1)]
$tcp($i) set ecn_ 1
set sink($i) [new Agent/TCPSink/Sack1/DelAck]
$sink($i) set ecn_ 1
$ns attach-agent $s($i) $tcp($i)
$ns attach-agent $r($i) $sink($i)
$ns connect $tcp($i) $sink($i)
set ftp($i) [new Application/FTP]
$ftp($i) attach-agent $tcp($i)
set p($i) [new Application/Traffic/Pareto]
$p($i) set packetSize_ 1000
$p($i) set burst_time_ 200ms
$p($i) set idle_time_ 200ms
$p($i) set shape_ 1.5
$p($i) set rate_ 10000K
$p($i) attach-agent $tcp($i)
set start_time [$rng uniform 0 1]
$ns at $start_time "$ftp($i) start"
$ns at $start_time "$p($i) start"
}
$ns at $finish_time "finish"
proc finish {} {
global ns sink nodenum qfile
$ns flush-trace
close $qfile
puts "running nam..."
exec nam out.nam &
#exec xgraph out.tr -geometry 800x400 &
exit 0
}
$ns run
-------------------------------------------blue.tcl-----------after
modify above blue.tcl for xgraph but it gives above
error--------------------------------------------
#script illustrating the BLUE algorithm
#Senders are TCP-SACK senders, and receivers are TCP-SACK sinks
set ns [new Simulator]
# turn on ns and nam tracing
$ns color 0 red
#set the no of TCP flows here
set f0 [open out0.tr w]
set f1 [open out1.tr w]
set f2 [open out2.nam w]
$ns namtrace-all $f2
# create the nodes
#First create TCP senders and receivers
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
# create the links
#betwwen the senders and n1, receivers and n2
$ns duplex-link $n0 $n2 10Mb 1ms DropTail
$ns duplex-link $n1 $n2 10Mb 1ms DropTail
#Bottle neck link between between n1 and n2
$ns simplex-link $n2 $n3 1Mbps 100ms Blue
$ns simplex-link $n4 $n3 1Mbps 100ms DropTail
$ns simplex-link $n5 $n3 1Mbps 100ms DropTail
#Configure BLUE queue parameters here
set blueq [[$ns link $n2 $n3] queue]
$blueq set decrement 0.00025
$blueq set increment 0.0025
$blueq set dhold-time 100ms
$blueq set ihold-time 100ms
#Enable ECN here
$blueq set setbit true
#set the queue-limit between n1 and n2
$ns queue-limit $n2 $n3 50
#set up queue monitor, sample every 0.5 seconds
set qfile [open "test-blue-qsize.out" w]
set qm [$ns monitor-queue $n2 $n3 $qfile 0.5]
[$ns link $n2 $n3] queue-sample-timeout
#create the random number generator
#set rng [new RNG]
# create TCP agents
set tcp0 [new Agent/TCP/Sack1]
$tcp0 set fid_ 1
$tcp0 set ecn_ 1
$ns attach-agent $n0 $tcp0
set tcp1 [new Agent/TCP/Sack1]
$tcp1 set fid_ 2
$tcp1 set ecn_ 1
$ns attach-agent $n1 $tcp1
set Sink0 [new Agent/TCPSink/Sack1/DeAck]
$Sink0 set ecn_ 1
$ns attach-agent $n4 $Sink0
set Sink1 [new Agent/TCPSink/Sack1/DeAck]
$Sink1 set ecn_ 1
$ns attach-agent $n5 $Sink1
set ftp0 [new Application/Traffic/Pareto]
$ftp0 attach-agent $tcp0
set p0 [new Application/Traffic/Pareto]
$p0 set packetSize_ 1000
$p0 set burst_time_ 200ms
$p0 set idle_time_ 200ms
$p0 set shape_ 1.5
$p0 set rate_ 10000K
$p0 attach-agent $tcp0
set ftp1 [new Application/Traffic/Pareto]
$ftp1 attach-agent $tcp1
set p1 [new Application/Traffic/Pareto]
$p1 set packetSize_ 1000
$p1 set burst_time_ 200ms
$p1 set idle_time_ 200ms
$p1 set shape_ 1.5
$p1 set rate_ 10000K
$p1 attach-agent $tcp1
set Sink0 [new Agent/LossMonitor]
set Sink1 [new Agent/LossMonitor]
$ns connect $tcp0 $Sink0
$ns connect $tcp1 $Sink1
proc record {} {
global Sink0 Sink1 f0 f1
set ns [Simulator instance]
set time 0.5
set bw0 [$Sink0 set bytes_]
set bw1 [$Sink1 set bytes_]
set now [$ns now]
puts $f0 "$now [expr $bw0/$time*8/1000000]"
puts $f1 "$now [expr $bw1/$time*8/1000000]"
$Sink0 set bytes_ 0
$Sink1 set bytes_ 0
$ns at [expr $now+$time] "record"
}
$ns at 0.0 "record"
$ns at 10.0 "$ftp0 start"
$ns at 10.0 "$p0 start"
$ns at 10.0 "$ftp1 start"
$ns at 10.0 "$p1 start"
$ns at 99.0 "$ftp0 stop"
$ns at 99.0 "$p0 stop"
$ns at 99.0 "$ftp1 stop"
$ns at 99.0 "$p1 stop"
$ns at 100.0 "finish"
proc finish {} {
global ns f0 f1 f2
$ns flush-trace
close $f0
close $f1
close $f2
close $qfile
puts "running nam..."
exec nam out2.nam &
exec xgraph out0.tr out1.tr -geometry 800x400 &
exit 0
}
$ns run
plz solve this problem and give me solution.
thank you