[ns] help urgent please

nature-ca@voila.fr nature-ca at voila.fr
Thu Nov 29 13:45:04 PST 2007


Hi ns-users,

when I run this example I have this error

On envoie le fichier de 3000Ko
ns: record: invalid command name ""
    while executing
"$flow set bdepartures_"
    (procedure "record" line 8)
    invoked from within
"record"


the example is 

set ns [new Simulator]

#création des fichiers de trace du monitor

set filetrace [open out.tr w]

#function Final

proc finish {} {
    global ns flowmon fcl filetrace
    #On ferme le fichier de trace du monitor
    close $filetrace
    #On lance le programme Xgraph
    exec xgraph out.tr -geometry 800x400 &
    #on termine le programme NS
    exit 0
}

#function Record

proc record {} {
        global ns flowmon bwOld filetrace
        set fid 1
        #Set the time after which the procedure should be called again
        set time 0.5
        #How many bytes have been received by the traffic sinks?
        set flow [[$flowmon classifier] lookup auto 0 0 $fid]
        set bw [$flow set bdepartures_]
        #Get the current time
        set now [$ns now]
        #Calculate the bandwidth (in MBit/s) and write it to the files
        puts $filetrace "$now [expr ($bw-$bwOld)/$time*8/1000000]"
        #extra information
        if {$flow != "" } {
             set bytes [$flow set bdepartures_]
             puts "class: $fid per-link pkts [$flow set pdepartures_]"
             puts "Kbytes [expr $bytes / 1000]"
             puts "drops [$flow set pdrops_]"
             puts "marks [$flow set pmarks_]"
        }
        set bwOld $bw 
        #Re-schedule the procedure
        $ns at [expr $now+$time] "record"
}

#création des noeuds

set n0 [$ns node]
set n1 [$ns node]   

#création du lien entre les deux noeuds

$ns duplex-link $n0 $n1 50.0Mb 200.0ms DropTail       
$ns queue-limit $n0 $n1 20

#création de la couche transport

set tcp0 [new Agent/TCP]
$tcp0 set packetSize_ 125
$ns attach-agent $n0 $tcp0

set null0 [new Agent/TCPSink]
$ns attach-agent $n1 $null0

$ns connect $tcp0 $null0        

#on initialise le flow monitor

#flow monitor
set flowmon [$ns makeflowmon Fid]
#Attache le monitor au lien 
set lien [$ns link $n0 $n1]
$ns attach-fmon $lien $flowmon 

#On initialise le model erreur

##Loss Model
set lossModel [new ErrorModel]
$lossModel unit packet
$lossModel set rate_ 0.1
$lossModel ranvar [new RandomVariable/Uniform]
$lossModel drop-target [new Agent/Null]

$ns lossmodel $lossModel $n0 $n1

#scheduler

puts "On envoie le fichier de 3000Ko" 
$ns at 10.0 "$tcp0 send 3000000"
$ns at 11.0 "record"
$ns at 100.0 "finish"

#lancement de la simulation

$ns run 





More information about the Ns-users mailing list