Hi
        I tried to simulate sctp multi-homing over wired-cum-wireless
network on ns-2.30
        I have read the paper on 
        http://www.lib.ncsu.edu/theses/available/etd-05162005-094333/.
<http://www.lib.ncsu.edu/theses/available/etd-05162005-094333/> 
 
        According to The FAQS of the paper , I modified two parts.
        1.$ns_ node-config -wiredRouting OFF 
        2.commented out the line 
        //Tcl::instance().evalf("\%s no-slot \%ld", name(), cl)
        in classifier.cc
 
        I created multihoming nodes(mobile node) in WLAN .
        while i execute ... it shows the following error message which is
the same as the paper mentioned.
 
        num_nodes is set 4
        INITIALIZE THE LIST xListHead
        Starting Simulation...
        can't read "Node_(5)": no such element in array
        while executing
        "return $Node_($id)"
            (procedure "_o3" line 3)
            (Simulator get-node-by-id line 3)
            invoked from within
        "$self get-node-by-id [lindex $L 0]"
            (procedure "_o3" line 14)
            (Simulator compute-hier-routes line 14)
            invoked from within
        "$self compute-hier-routes "
            invoked from within
        "if [Simulator hier-addr?] {
        $self compute-hier-routes 
        } else {
        $self compute-flat-routes
        }"
            (procedure "_o3" line 2)
            (Simulator compute-routes line 2)
            invoked from within
        "[Simulator instance] compute-routes"
            (procedure "Agent/rtProto/Static" line 2)
            (Agent/rtProto/Static init-all line 2)
            invoked from within
        "Agent/rtProto/Static init-all"
            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 "_o191" 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 "wired-cum-wireless-sim_miga3.tcl" line 215)
 
        I have succeed ... when using mobilenode without multihoming .
 
        My script is as following.
        
## This simulation is an example of combination of wired and wireless 
### topologies.
 
Trace set show_sctphdr_ 1
 
global opt
set opt(chan)       Channel/WirelessChannel
set opt(prop)       Propagation/TwoRayGround
set opt(netif)      Phy/WirelessPhy
set opt(mac)        Mac/802_11
set opt(ifq)        Queue/DropTail/PriQueue
set opt(ll)         LL
set opt(ant)        Antenna/OmniAntenna
set opt(x)             1000   
set opt(y)              1000   
set opt(ifqlen)         50   
set opt(tr)          wired-and-wireless.tr
set opt(namtr)       wired-and-wireless.nam
set opt(nn)             3                       
set opt(adhocRouting)   DSDV                      
set opt(cp)             ""                        
set opt(stop)           250                           
set num_wired_nodes      1
set num_bs_nodes         1
 
 
set ns_   [new Simulator]
# set up for hierarchical routing
  $ns_ node-config -addressType hierarchical
  AddrParams set domain_num_ 2          
  lappend cluster_num 1 1                
  AddrParams set cluster_num_ $cluster_num
  lappend eilastlevel 4 2              
  AddrParams set nodes_num_ $eilastlevel 
 
$ns_ use-newtrace
  set tracefd  [open $opt(tr) w]
  $ns_ trace-all $tracefd
  set namtracefd [open $opt(namtr) w]
  $ns_ namtrace-all-wireless $namtracefd $opt(x) $opt(y)
 
 
  set topo   [new Topography]
  $topo load_flatgrid $opt(x) $opt(y)
  # god needs to know the number of all wireless interfaces
  create-god [expr $opt(nn) + $num_bs_nodes]
 
  #create wired nodes
  set W(0) [$ns_ node 0.0.0] 
  set W(1) [$ns_ node 0.0.1]
  
  $W(0) set X_ 500.0
  $W(0) set Y_ 500.0
  $W(0) set Z_ 0.0
  
  $W(1) set X_ 500.0
  $W(1) set Y_ 800.0
  $W(1) set Z_ 0.0
  
  #$ns_ initial_node_pos $W(0) 20
  #$ns_ initial_node_pos $W(1) 20
  
  #configure BS node
  $ns_ node-config -adhocRouting $opt(adhocRouting) \
                 -llType $opt(ll) \
                 -macType $opt(mac) \
                 -ifqType $opt(ifq) \
                 -ifqLen $opt(ifqlen) \
                 -antType $opt(ant) \
                 -propInstance [new $opt(prop)] \
                 -phyType $opt(netif) \
                 -channel [new $opt(chan)] \
                 -topoInstance $topo \
                 -wiredRouting ON \
                 -agentTrace ON \
                 -routerTrace OFF \
                 -macTrace OFF
 
  set BS(0) [$ns_ node 1.0.0]
  $BS(0) random-motion 0 
 
  $BS(0) set X_ 100.0
  $BS(0) set Y_ 100.0
  $BS(0) set Z_ 0.0
  
  #$ns_ initial_node_pos $BS(0) 20
  
  #configure for mobilenodes
  $ns_ node-config -wiredRouting OFF
 
  #Create SCTP moblie nodes
#set node_(0) [$ns_ node 1.0.1]
set node0_if0 [$ns_ node 1.0.2]
set node0_if1 [$ns_ node 1.0.3]
 
        $node0_if0 color Red
        $node0_if1 color Red
        
        $ns_ node-config -multihome-core\
                        -wiredRouting OFF
                                                                            
        set node_(0) [$ns_ node 1.0.1]
        $node_(0) color Red
 
        #$ns_ set-multihome-core $node_(0)
        $ns_ multihome-add-interface $node_(0) $node0_if0
        $ns_ multihome-add-interface $node_(0) $node0_if1
        
        $node_(0) base-station [AddrParams addr2id [$BS(0) node-addr]]
        $node0_if0 base-station [AddrParams addr2id [$BS(0) node-addr]]
        $node0_if1 base-station [AddrParams addr2id [$BS(0) node-addr]]
  
  $node_(0) set X_ 50.0
  $node_(0) set Y_ 10.0
  $node_(0) set Z_ 0.0
  
  $ns_ initial_node_pos $node_(0) 20
  
  $node0_if0 set X_ 5.0
  $node0_if0 set Y_ 10.0
  $node0_if0 set Z_ 0.0
  
  $ns_ initial_node_pos $node0_if0 20
  
  $node0_if1 set X_ 80.0
  $node0_if1 set Y_ 10.0
  $node0_if1 set Z_ 0.0
  
  $ns_ initial_node_pos $node0_if1 20
  
  
  #create links between wired and BS nodes
  $ns_ duplex-link $W(0) $W(1) 5Mb 2ms DropTail
  $ns_ duplex-link $W(0) $BS(0) 5Mb 2ms DropTail  
  $ns_ duplex-link-op $W(0) $W(1) orient up
  $ns_ duplex-link-op $W(0) $BS(0) orient left-down
  
  #Create a SCTP agent and attach it to node_(0)
        set sctp0 [new Agent/SCTP]
        $ns_ multihome-attach-agent $node_(0) $sctp0
        $sctp0 force-source $node0_if0
        
        #Create a SCTP agent and attach it to node n1
        set sctp1 [new Agent/SCTP]
        $ns_ attach-agent $W(1) $sctp1
 
        $ns_ connect $sctp0 $sctp1
  
  # Create a CBR traffic source and attach it to sctp0 at 400kbps
        set cbr0 [new Application/Traffic/CBR]
        $cbr0 attach-agent $sctp0
        $cbr0 set packetSize_ 1000
        $cbr0 set rate_ 2Mb
        $cbr0 set random_ false
        $ns_ at 80 "$cbr0 start"
        
  $ns_ at $opt(stop).0000010 "$node_(0) reset";
  $ns_ at $opt(stop).0000010 "$node0_if0 reset";
  $ns_ at $opt(stop).0000010 "$node0_if1 reset";
  $ns_ at $opt(stop).0000010 "$BS(0) reset";
$ns_ at $opt(stop).1 "finish"
  #$ns_ at $opt(stop).1 "puts \"NS EXITING...\" ; $ns_ halt"
 
proc finish { } {                               ;# new a procedure finish
     global ns_ namtracefd tracefd opt             ;# set global variable 
     $ns_ flush-trace
     close $namtracefd                            ;# close file
     close $tracefd                             ;# close file 
     exec nam $opt(namtr) &
     exit 0
}
 
  puts "Starting Simulation..."
  $ns_ run
 
 
 
  Please help me.

Thank you very much.

Reply via email to