sir,
  I am using  below tcl  code  to generate  xgraph  but it  give the
following error:

  "can't read "n0": no such variable
    while executing
"$ns attach-agent $n0 $udp0"
    (procedure "attach-expoo-traffic" line 6)
    invoked from within
"attach-expoo-traffic $n4 $Sink0 200 2s 1s 100k"
    invoked from within
"set udp0 [attach-expoo-traffic $n4 $Sink0 200 2s 1s 100k]"
    (file "blue1.tcl" line 145)"



---------------------------------blue.tcl-------------------------------------------------------------------
#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



proc finish {} {
        global ns f0 f1 f2 f3
        
        $ns flush-trace
        close $f0
        close $f1
        close $f2
        exec nam out2.nam &
        
        exec xgraph out0.tr out1.tr -geometry 800x400 &
        exit 0
}


#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


proc attach-expoo-traffic { node sink size burst idle rate } {
        set ns [Simulator instance]
        set udp0 [new Agent/UDP]
        $udp0 set fid_ 1
        $udp0 set ecn_ 1
        $ns attach-agent $n0 $udp0

        set udp1 [new Agent/UDP]
        $udp1 set fid_ 2
        $udp1 set ecn_ 1
        $ns attach-agent $n1 $udp1

        #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 traffic0 [new Application/Traffic/Pareto]
       $traffic0 set packetSize_ 1000
       $traffic0 set burst_time_ 200ms
       $traffic0 set idle_time_ 200ms
       $traffic0 set shape_ 1.5
       $traffic0 set rate_ 10000K
       $traffic0 attach-agent $udp0


       set traffic1 [new Application/Traffic/Pareto]
       $traffic1 set packetSize_ 1000
       $traffic1 set burst_time_ 200ms
       $traffic1 set idle_time_ 200ms
       $traffic1 set shape_ 1.5
       $traffic1 set rate_ 10000K
       $traffic1 attach-agent $udp1


        $ns connect $udp0 $Sink0
        $ns connect $udp1 $Sink1
        return $traffic0
        return $traffic1
}
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"
}

set Sink0 [new Agent/LossMonitor]
set Sink1 [new Agent/LossMonitor]

$ns attach-agent $n4 $Sink0
$ns attach-agent $n5 $Sink1

set udp0 [attach-expoo-traffic $n4 $Sink0 200 2s 1s 100k]
set udp1 [attach-expoo-traffic $n5 $Sink1 200 2s 1s 200k]

$ns at 0.0 "record"


$ns at 10.0 "$udp0 start"
$ns at 10.0 "$udp1 start"
$ns at 90.0 "$udp0 stop"
$ns at 95.0 "$udp1 stop"

$ns at 100.0 "finish"

$ns run



plz  solve  error or  tell me how to above error.

thank  you

Reply via email to