hi,
i downloaded ason from net and installed it.i get the following error when 
using $ns rtproto LS OR DV .even a small hint is highly welcomed.


* Nodes created *
* Links created *
wrong # args: should be "set varName ?newValue?"
    while executing
"set nodeslist _o10 _o15 _o40"
    ("eval" body line 1)
    invoked from within
"eval "set nodeslist $args""
    (procedure "Agent/rtProto/DV" line 5)
    (Agent/rtProto/DV init-all line 5)
    invoked from within
"Agent/rtProto/DV init-all _o10 _o15 _o40"
    ("eval" body line 1)
    invoked from within
"eval Agent/rtProto/$proto init-all $rtprotos_($proto)"
    ("foreach" body line 2)
    invoked from within
"foreach proto [array names rtprotos_] {
eval Agent/rtProto/$proto init-all $rtprotos_($proto)
}"
    invoked from within
"if [info exists rtprotos_] {
foreach proto [array names rtprotos_] {
eval Agent/rtProto/$proto init-all $rtprotos_($proto)
}
} else {
Agent/rtProto/St..."
    (procedure "_o45" line 3)
    (RouteLogic configure line 3)
    invoked from within
"[$self get-routelogic] configure"
    (procedure "_o3" line 5)
    (Simulator run line 5)
    invoked from within
"$ns run"
    (file "example1.tcl" line 414)



THE EXAMPLE FILE IS INCLUDED HERE FOR REFERENCE


set BASENAME            "example1"              ;# whatever
set DEBUG               yes                     ;# yes, no

set TRAFFIC             CBR                     ;# CBR, Expoo, Pareto
set PACKET_SIZE         100                     ;# packet size in *bytes*
set CBR_RATE            100Mb
set CBR_MAXPKTS         125000                  ;# max of CBR_MAXPKTS = (1sec * 
CBR_RATE)/(PACKET_SIZE * 8 bits/Byte) :-)
set EXPOO_RATE          100Mb
set BURST_TIME          0.002                   ;# in seconds
set IDLE_TIME           0.002                   ;# in seconds

set STRATEGY            restoration             ;# restoration, n&l_protection, 
path_protection
set TRIGGER             data-driven             ;# data-driven, control-driven
set FAILURE             link                    ;# link, node, node-link, 
twolinks
set RTPROTO             DV                      ;# LS, DV, Static, Session

set LINK_BW             622Mb                   ;# 622 Mbps
set LINK_DELAY          0.00001                 ;# 10 �ec ==> 2*10^8 
m/sec * 10^(-5) m = 2000 m

set WL_NUM              16
set WL_BW               2500000000              ;# 2.5 Gbps (STM-16)
set FIBER_BW            [expr $WL_NUM * $WL_BW]
set FIBER_DELAY         0.000001                ;# 1 �ec ==> 2*10^8 
m/sec * 10^(-6) m = 200 m

set LINK_FAIL           45                      ;# 24, 45
set NODE_FAIL           no                      ;# 4
set LINK_FAIL_2         23                      ;# 23
set TRACENS             no                      ;# yes, no
set XGRAPH              no                      ;# yes, no

# DEBUGGING
if { $DEBUG == "yes" } {
        #Classifier/ASON set debug_   true
        #RtModule/ASON set debug_     true
        RtModule/ASON set cc_debug_  true
        #RtModule/ASON set lrm_debug_ true
        #RtModule/ASON set rc_debug_  true
        #RtModule/ASON set sm_debug_  true
        #DelayLink/Fiber set debug_   true
}


#########################################################
#                                                       #
#                       COMMON CODE                     #
#                                                       #
#      The rest of the file remains always the same     #
#########################################################

# Create a simulator object
set ns [new Simulator]

# Open the trace and xgraph file
if {$TRACENS == "yes"} {
        set tracef [open $BASENAME.trace w]
        $ns trace-all $tracef
}

if {$XGRAPH == "yes"} {
        set xgraphf [open $BASENAME.xgraph w]
}

# Define a 'finish' procedure
proc finish {} {
        global ns TRACENAM TRACENS XGRAPH basename
        $ns flush-trace

        if {$TRACENS == "yes"} {
                global tracef
                close $tracef
        }

        if {$XGRAPH == "yes"} {
                global xgraphf
                close $xgraphf
                exec xgraph $BASENAME.xgraph -geometry 800x400 &

        }

        exit 0
}


######################################################
#       TOPOLOGY
######################################################

$ns readAsonDelays delays.txt

#
# make nodes
#
$ns node-config -MPLS ON
set LSR0 [$ns node]
set LSR1 [$ns node]

$ns node-config -MPLS OFF -ASON ON

set ASON2 [$ns node]
set ASON3 [$ns node]
set ASON4 [$ns node]
set ASON5 [$ns node]

$ns node-config -ASON OFF -MPLS  ON

set LSR6 [$ns node]
$ns node-config -MPLS OFF

$LSR6 add-neighbor $LSR1

puts "* Nodes created *"

#puts "* LSR0:  $LSR0 *\n* LSR1:  $LSR1 *\n* ASON2: $ASON2 *\n* ASON3: $ASON3 *"
#puts "* ASON4: $ASON4 *\n* ASON5: $ASON5 *\n* LSR6:  $LSR6 *"
$ns rtproto $RTPROTO $LSR0 $LSR1 $LSR6


#
# make links
#
$ns duplex-link         $LSR0   $LSR1   $LINK_BW        $LINK_DELAY     
DropTail        0
$ns duplex-link         $LSR0   $ASON2  $LINK_BW        $LINK_DELAY     
DropTail        0
$ns duplex-link         $LSR1   $ASON3  $LINK_BW        $LINK_DELAY     
DropTail        0

$ns queue-limit         $LSR0   $ASON2  $CBR_MAXPKTS
$ns queue-limit         $LSR1   $ASON3  $CBR_MAXPKTS

$ns duplex-FiberLink    $ASON2  $ASON3  $FIBER_BW       $FIBER_DELAY    $WL_NUM
$ns duplex-FiberLink    $ASON2  $ASON4  $FIBER_BW       $FIBER_DELAY    $WL_NUM
$ns duplex-FiberLink    $ASON3  $ASON5  $FIBER_BW       $FIBER_DELAY    $WL_NUM
$ns duplex-FiberLink    $ASON4  $ASON5  $FIBER_BW       $FIBER_DELAY    $WL_NUM

$ns duplex-link         $ASON5  $LSR6   $LINK_BW        $LINK_DELAY     
DropTail        0

$ns queue-limit         $ASON5  $LSR6   $CBR_MAXPKTS

puts "* Links created *"

if {$TRACENS == "yes"} {
        #$ns trace-all  $tracef

        #$ns trace-queue $LSR0  $ASON2 $tracef
        #$ns trace-queue $LSR0  $LSR1  $tracef
        #$ns trace-queue $ASON5 $LSR6  $tracef
        #$ns trace-queue $ASON2 $ASON3 $tracef
        #$ns trace-queue $ASON2 $ASON4 $tracef
        #$ns trace-queue $ASON4 $ASON5 $tracef

        #$ns trace-node  $ASON2 $BASENAME.ason2
        #$ns trace-node  $ASON4 $BASENAME.ason4
}

###########################################################
#       LSRs' CONFIGURATION
###########################################################

#
# configure ldp agents on all mpls nodes
#
$ns LDP-peer $LSR0 $LSR1
$ns LDP-peer $LSR0 $LSR6
$ns LDP-peer $LSR1 $LSR6
[$LSR0 get-module "MPLS"] enable-reroute "new"
[$LSR1 get-module "MPLS"] enable-reroute "new"
[$LSR6 get-module "MPLS"] enable-reroute "new"

#
# set ldp-message color
#
$ns ldp-request-color       blue
$ns ldp-mapping-color       red
$ns ldp-withdraw-color      magenta
$ns ldp-release-color       orange
$ns ldp-notification-color  yellow


#
# Label Allocation and Distribution Scheme:
# upstream or downstream-on-demand (both for data-driven)
#
Classifier/Addr/MPLS enable-on-demand

#
# Label Distribution Control Mode:
# independent or ordered mode (both for data-driven)
#
Classifier/Addr/MPLS enable-ordered-control

#
# LSP Trigger:
# control-driven (pre-demanded established LSPs), or
# data-driven (LSPs on traffic demand)
#
#[$LSR0 get-module "MPLS"] enable-data-driven
#[$LSR1 get-module "MPLS"] enable-data-driven
#[$LSR6 get-module "MPLS"] enable-data-driven


###########################################################
#       AGENTS
###########################################################

#
# Define a procedure which periodically records the bandwidth received by the
# traffic sink sink0 and writes it to the file xgraphf.
#
proc record {} {
        global sink0 xgraphf

        set ns [Simulator instance]

        # Set the time after which the procedure should be called again
        set time 0.002

        # How many bytes have been received by the traffic sink(s)?
        set bw0 [$sink0 set bytes_]

        # Get the current time
        set now [$ns now]

        # Calculate the bandwidth (in MBit/s) and write it to the file(s)
        puts $xgraphf "$now [expr $bw0/$time*8/1000000]"

        # Reset the bytes_ values on the traffic sink(s)
        $sink0 set bytes_ 0

        # Re-schedule the procedure
        $ns at [expr $now+$time] "record"
}


#
# Define a procedure which outputs to stdout lost & received packets
# using LossMonitor class variables: nlost_, npkts_
#
proc recv-pkts {} {
        global sink0 TRAFFIC BASENAME

        puts "\n* $BASENAME: Total received packets in dest: [$sink0 set 
npkts_] *"
        puts "* $BASENAME: Total lost packets in dest: [$sink0 set nlost_] *"

}

#
# Create UDP Agent and attach it to ASON1
#
set src0 [new Agent/UDP]
$ns attach-agent $LSR0 $src0
#puts "* New UDP agent created and attached to node LSR0 *"

#
# Create traffic sink of type LossMonitor so as to measure
# received bandwidth and attach to ASON4
#
set sink0 [new Agent/LossMonitor]
$ns attach-agent $LSR6 $sink0
#puts "* New Sink agent created and attached to node LSR5 *"

#
# connect the source agent with the sink agent
#
$ns connect $src0 $sink0


###########################################################
#       TRAFFIC
###########################################################

if {$TRAFFIC == "Expoo"} {
        # attach exponential traffic to source agent src0
        set exp0 [new Application/Traffic/Exponential]
        $exp0 set packetSize_ $PACKET_SIZE
        $exp0 set burst_time_ $BURST_TIME
        $exp0 set idle_time_  $IDLE_TIME
        $exp0 set rate_       $EXPOO_RATE

        $exp0 attach-agent $src0

        #puts "* Exponential traffic created and attached to agent udp *"

} elseif {$TRAFFIC == "CBR"} {
        # attach CBR traffic to source agent src0 (in LSR0)
        set cbr0 [new Application/Traffic/CBR]
        $cbr0 set packetSize_ $PACKET_SIZE
        $cbr0 set rate_       $CBR_RATE
        $cbr0 set maxpkts_    $CBR_MAXPKTS

        $cbr0 attach-agent $src0

        #puts "* CBR traffic created and attached to agent udp *"
}


###########################################################
#       SIMULATION EVENTS
###########################################################

#
# Setup manually the RT of the ASON nodes
#
# [$node get-module "ASON"]     setNextHop      dst     nextHop(node)
[$ASON3 get-module "ASON"]      setNextHop      0       1

#
# Setup manually the TT of the ASON nodes
#
# [$node get-module "ASON"]     setNeighbor     neighbor
#[$ASON2 get-module "ASON"]     setNeighbor     0
#[$ASON3 get-module "ASON"]     setNeighbor     1
#[$ASON5 get-module "ASON"]     setNeighbor     6


#
# Setup manually a lightpath with lpID
#
# $node manualSetSM     lpID    prevHop(node)   inWid   nextHop(node)   outWid  
src     dst

#
# COMMON ENEVTS
#
if {$XGRAPH == "yes"} {
        $ns at 0.0 "record"
}

$ns at 0.0 "$ns startASON"
$ns at 0.0 "[$LSR0 set classifier_] install 6 [[$ns set link_(0:2)] head]"

#$ns at 0.1  "[$LSR0 get-module MPLS] make-explicit-route 6 2 3000 -1"
#$ns at 0.2  "[$LSR0 get-module MPLS] reroute-binding 6 -1 3000"

#$ns at 0.9 "[$LSR0 set classifier_] dump"
#$ns at 0.9 "[$LSR0 set dmux_] dump"
#$ns at 0.9 "[$LSR0 get-module {MPLS}] lib-dump"
#$ns at 0.9 "[$LSR1 set classifier_] dump"
#$ns at 0.9 "[$LSR6 set classifier_] dump"


if { $LINK_FAIL == "24" } {
        $ns at 1.1   "$ns fiber-down $ASON2 $ASON4"
        #$ns at 1.101 "[$ASON2 get-module {ASON}] notify-link-down"
        #$ns at 1.101 "[$ASON4 get-module {ASON}] notify-link-down"
        #$ns at 1.6   "$ns fiber-up   $ASON2 $ASON4"
        #$ns at 1.601 "$ASON2 notify-link-up"
        #$ns at 1.601 "$ASON4 notify-link-up"

} elseif { $LINK_FAIL == "45" } {
        $ns at 1.1   "$ns fiber-down $ASON4 $ASON5"
        #$ns at 1.1   "[$ASON4 get-module {ASON}] printTT"
        #$ns at 1.101 "[$ASON4 set classifier_] detectedLoL"
        #$ns at 1.101 "[$ASON5 set classifier_] detectedLoL"
        #$ns at 1.6   "$ns fiber-up   $ASON4 $ASON5"
        #$ns at 1.601 "$ASON4 notify-link-up"
        #$ns at 1.601 "$ASON5 notify-link-up"
}

if { $NODE_FAIL == "4" } {
        $ns at 1.1 "[$ASON4 get-module {ASON}] node-down"
}

if { $LINK_FAIL_2 == "23" } {
        $ns at 1.1   "$ns fiber-down $ASON2 $ASON3"
        #$ns at 1.101 "[$ASON2 set classifier_] detectedLoL"
        #$ns at 1.101 "[$ASON3 set classifier_] detectedLoL"
        #$ns at 1.6   "$ns fiber-up   $ASON2 $ASON4"
        #$ns at 1.601 "$ASON2 notify-link-up"
        #$ns at 1.601 "$ASON4 notify-link-up"
}

#$ns at 2.5 "$ns printTTs"
#$ns at 2.5 "$ns printRTs"
#$ns at 2.5 "$ns printSMs"
#$ns at 2.5 "$ns printLRTs"
#$ns at 2.5 "[$ASON2 get-module {ASON}] printRT"
$ns at 2.5 "recv-pkts"
$ns at 2.5 "finish"

#
# Events according to TRAFFIC TYPE
#

if {$TRAFFIC == "Expoo"} {
        $ns at 1.0 "puts \"* Exponential Traffic started *\""
        $ns at 1.0 "$exp0 start"
        $ns at 2.0 "$exp0 stop"

} elseif {$TRAFFIC == "CBR"} {
        $ns at 1.0 "puts \"* CBR Traffic started *\""
        $ns at 1.0 "$cbr0 start"
        $ns at 2.0 "$cbr0 stop"
}


############################################################
# Run the simulation
############################################################
$ns run




any help is highly appreciated.
thanks in advance
vishnu priya

Reply via email to