Hello.
Please consider the following script. I have written it for demonstrating 
cross-layering:

# Define options 
set val(chan)           Channel/WirelessChannel    ;# channel type 
set val(prop)           Propagation/TwoRayGround   ;# radio-propagation model 
set val(netif)          Phy/WirelessPhy            ;# network interface type 
set val(mac)            Mac/802_11                 ;# MAC type 
set val(ifq)            Queue/DropTail/PriQueue    ;# interface queue type 
set val(ll)             LL                         ;# link layer type 
set val(ant)            Antenna/OmniAntenna        ;# antenna model 
set val(ifqlen)         50                         ;# max packet in ifq 
set val(nn)             3                          ;# number of mobilenodes 
set val(rp)             AODV                       ;# routing protocol 
set val(x)              500                  ;# X dimension of topography 
set val(y)              400                  ;# Y dimension of topography   
set val(stop)        150               ;# time of simulation end 
 
set ns          [new Simulator] 
set tracefd       [open cros_ex1_tr.tr w] 
set namtrace      [open cros_ex1_nam.nam w]     
 
$ns trace-all $tracefd 
$ns namtrace-all-wireless $namtrace $val(x) $val(y) 
 
# set up topography object 
set topo       [new Topography] 
 
$topo load_flatgrid $val(x) $val(y) 
 
create-god $val(nn) 
 
# 
#  Create nn mobilenodes [$val(nn)] and attach them to the channel.  
# 

set chan_1_ [new $val(chan)]
 
# configure the nodes 
        $ns node-config -adhocRouting $val(rp) \ 
             -llType $val(ll) \ 
             -macType $val(mac) \
             -channel $chan_1_ \ 
             -ifqType $val(ifq) \ 
             -ifqLen $val(ifqlen) \ 
             -antType $val(ant) \ 
             -propType $val(prop) \ 
             -phyType $val(netif) \ 
             -topoInstance $topo \ 
             -agentTrace ON \ 
             -routerTrace ON \ 
             -macTrace OFF \ 
             -movementTrace ON \    
              
              
    for {set i 0} {$i < $val(nn) } { incr i } { 
        set node_($i) [$ns node]     
    } 
 
# Provide initial location of mobilenodes 
$node_(0) set X_ 5.0 
$node_(0) set Y_ 5.0 
$node_(0) set Z_ 0.0 
 
$node_(1) set X_ 490.0 
$node_(1) set Y_ 285.0 
$node_(1) set Z_ 0.0 
 
$node_(2) set X_ 150.0 
$node_(2) set Y_ 240.0 
$node_(2) set Z_ 0.0 
 
# Generation of movements 
$ns at 10.0 "$node_(0) setdest 250.0 250.0 3.0" 
$ns at 15.0 "$node_(1) setdest 45.0 285.0 5.0" 
$ns at 110.0 "$node_(0) setdest 480.0 300.0 5.0"  

set udp_ [new Agent/UDP]
$ns attach-agent $node_(0) $udp_

set null [new Agent/Null]
$ns attach-agent $node_(1) $null

set exp_ [new Application/Traffic/Exponential]

$exp_ set burst_time_ 0.01ms
$exp_ set idle_time_ 0.04ms
$exp_ set rate_ 1.5Mbps
$exp_ attach-agent $udp_

$exp_ attach-agent $udp_
$ns connect $udp_ $null

set ll_src_ [$node_(0) getLL 0]
$udp_ target $ll_src_

set ftp [new Application/FTP] 
$ftp attach-agent $udp_ 
$ns at 10.0 "$ftp start" 
 
# Define node initial position in nam 
for {set i 0} {$i < $val(nn)} { incr i } { 
# 30 defines the node size for nam 
$ns initial_node_pos $node_($i) 30 
} 
 
# Telling nodes when the simulation ends 
for {set i 0} {$i < $val(nn) } { incr i } { 
    $ns at $val(stop) "$node_($i) reset"; 
} 
 
# ending nam and the simulation  
$ns at $val(stop) "$ns nam-end-wireless $val(stop)" 
$ns at $val(stop) "stop" 
$ns at 150.01 "puts \"end simulation\" ; $ns halt" 
proc stop {} { 
    global ns tracefd namtrace 
    $ns flush-trace 
    close $tracefd 
    close $namtrace 
} 
 
$ns run 
 

But this is the output:

num_nodes is set 3
INITIALIZE THE LIST xListHead

    (_o14 cmd line 1)
    invoked from within
"_o14 cmd getLL 0"
    invoked from within
"catch "$self cmd $args" ret"
    invoked from within
"if [catch "$self cmd $args" ret] {
set cls [$self info class]
global errorInfo
set savedInfo $errorInfo
error "error when calling class $cls: $args" $..."
    (procedure "_o14" line 2)
    (SplitObject unknown line 2)
    invoked from within
"$node_(0) getLL 0"
    invoked from within
"set ll_src_ [$node_(0) getLL 0]"
    (file "cros_ex1.tcl" line 96)

I have read5th chapter of
"Introduction to Network Simulator NS2", that explains the Connector
class
[http://books.google.com/books?id=cD69He_oU60C&pg=PP1&dq=Introduction+to+Network+Simulator+NS2#v=onepage&q=&f=false
 ]
and also got help from Urlan 
[http://mailman.isi.edu/pipermail/ns-users/2009-October/066621.html]

Please someone point out the mistake(s)  or provide me with  example script of 
your own.
Thanks in advance.



      

Reply via email to