求助 基于Ramon模型拓展后的ns2,在进行 多接口多信道仿真的错误,求各位大神解决
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(rp) DSR ;# routing protocol
set val(x) 100 ;# X dimension of topography
set val(y) 100 ;# Y dimension of topography
set val(stop) 10.0 ;# time of simulation end
set val(ni) 12 ;#number of interface
set val(nn) 25 ;# number of mobilenodes
set filename multi-interface
Mac/802_11 set dataRate_ 11Mb
Mac/802_11 set basicRate_ 1Mb
Phy/WirelessPhy set RXThresh_ 3.97269e-07
for {set i 0} {$i < $val(ni)} {incr i} {
set chan_($i) [new $val(chan)]
}
#set chan_ [new $val(chan)]
create-god [expr $val(nn)*$val(ni)]
#create-god $val(nn)
#Create a ns simulator
set ns_ [new Simulator]
#Setup topography object
set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)
#create-god $val(nn)
#Open the NS trace file
set tracefd [open $filename.tr w]
$ns_ use-newtrace
$ns_ trace-all $tracefd
#Open the NAM trace file
set namfile [open $filename.nam w]
$ns_ namtrace-all $namfile
$ns_ namtrace-all-wireless $namfile $val(x) $val(y)
#===================================
# Mobile node parameter setup
#===================================
$ns_ node-config -adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(ant) \
-propType $val(prop) \
-phyType $val(netif) \
-channel $chan_(0) \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON \
-macTrace OFF \
-movementTrace OFF \
-ifNum $val(ni)
#===================================
# Nodes Definition
#===================================
#Create 3 nodes
#for {set i 0} {$i < $val(nn) } {incr i} {
#set node_($i) [$ns_ node ]
#$node_($i) random-motion 0
#}
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(8) ;#9
$ns_ add-channel 1 $chan_(0) ;#10
set node_(0) [$ns_ node]
$node_(0) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(8)
$ns_ add-channel 1 $chan_(9)
set node_(1) [$ns_ node]
$node_(1) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(8)
$ns_ add-channel 1 $chan_(9)
set node_(2) [$ns_ node]
$node_(2) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(8)
$ns_ add-channel 0 $chan_(9)
set node_(3) [$ns_ node]
$node_(3) random-motion 0
set node_(4) [$ns_ node]
$node_(4) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(0)
$ns_ add-channel 1 $chan_(9)
set node_(5) [$ns_ node]
$node_(5) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(9)
$ns_ add-channel 1 $chan_(6)
set node_(6) [$ns_ node]
$node_(6) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(9)
$ns_ add-channel 1 $chan_(2)
set node_(7) [$ns_ node]
$node_(7) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(9)
$ns_ add-channel 1 $chan_(2)
set node_(8) [$ns_ node]
$node_(8) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(9)
$ns_ add-channel 1 $chan_(5)
set node_(9) [$ns_ node]
$node_(9) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(6)
$ns_ add-channel 1 $chan_(9)
set node_(10) [$ns_ node]
$node_(10) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(2)
$ns_ add-channel 1 $chan_(6)
set node_(11) [$ns_ node]
$node_(11) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(2)
$ns_ add-channel 1 $chan_(1)
set node_(12) [$ns_ node]
$node_(12) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(2)
$ns_ add-channel 1 $chan_(3)
set node_(13) [$ns_ node]
$node_(13) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(3)
$ns_ add-channel 1 $chan_(5)
set node_(14) [$ns_ node]
$node_(14) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(6)
$ns_ add-channel 1 $chan_(9)
set node_(15) [$ns_ node]
$node_(15) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(0)
$ns_ add-channel 1 $chan_(6)
set node_(16) [$ns_ node]
$node_(16) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(0)
$ns_ add-channel 1 $chan_(1)
set node_(17) [$ns_ node]
$node_(17) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(0)
$ns_ add-channel 1 $chan_(3)
set node_(18) [$ns_ node]
$node_(18) random-motion 0
$ns_ change-numifs 1
$ns_ add-channel 0 $chan_(3)
set node_(19) [$ns_ node]
$node_(19) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(9)
$ns_ add-channel 1 $chan_(6)
set node_(20) [$ns_ node]
$node_(20) random-motion 0
$ns_ change-numifs 1
$ns_ add-channel 0 $chan_(6)
set node_(21) [$ns_ node]
$node_(21) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(1)
$ns_ add-channel 1 $chan_(7)
set node_(22) [$ns_ node]
$node_(22) random-motion 0
$ns_ change-numifs 2
$ns_ add-channel 0 $chan_(3)
$ns_ add-channel 1 $chan_(7)
set node_(23) [$ns_ node]
$node_(23) random-motion 0
$ns_ change-numifs 1
$ns_ add-channel 0 $chan_(6)
set node_(24) [$ns_ node]
$node_(24) random-motion 0
$node_(0) set X_ 11
$node_(0) set Y_ 11
$node_(0) set Z_ 0.0
$node_(1) set X_ 11
$node_(1) set Y_ 33
$node_(1) set Z_ 0.0
$node_(2) set X_ 11
$node_(2) set Y_ 55
$node_(2) set Z_ 0.0
$node_(3) set X_ 11
$node_(3) set Y_ 77
$node_(3) set Z_ 0.0
$node_(4) set X_ 11
$node_(4) set Y_ 99
$node_(4) set Z_ 0.0
$node_(5) set X_ 33
$node_(5) set Y_ 11
$node_(5) set Z_ 0.0
$node_(6) set X_ 33
$node_(6) set Y_ 33
$node_(6) set Z_ 0.0
$node_(7) set X_ 33
$node_(7) set Y_ 55
$node_(7) set Z_ 0.0
$node_(8) set X_ 33
$node_(8) set Y_ 77
$node_(8) set Z_ 0.0
$node_(9) set X_ 33
$node_(9) set Y_ 99
$node_(9) set Z_ 0.0
$node_(10) set X_ 55
$node_(10) set Y_ 11
$node_(10) set Z_ 0.0
$node_(11) set X_ 55
$node_(11) set Y_ 33
$node_(11) set Z_ 0.0
$node_(12) set X_ 55
$node_(12) set Y_ 55
$node_(12) set Z_ 0.0
$node_(13) set X_ 55
$node_(13) set Y_ 77
$node_(13) set Z_ 0.0
$node_(14) set X_ 55
$node_(14) set Y_ 99
$node_(14) set Z_ 0.0
$node_(15) set X_ 77
$node_(15) set Y_ 11
$node_(15) set Z_ 0.0
$node_(16) set X_ 77
$node_(16) set Y_ 33
$node_(16) set Z_ 0.0
$node_(17) set X_ 77
$node_(17) set Y_ 55
$node_(17) set Z_ 0.0
$node_(18) set X_ 77
$node_(18) set Y_ 77
$node_(18) set Z_ 0.0
$node_(19) set X_ 77
$node_(19) set Y_ 99
$node_(19) set Z_ 0.0
$node_(20) set X_ 99
$node_(20) set Y_ 11
$node_(20) set Z_ 0.0
$node_(21) set X_ 99
$node_(21) set Y_ 33
$node_(21) set Z_ 0.0
$node_(22) set X_ 99
$node_(22) set Y_ 55
$node_(22) set Z_ 0.0
$node_(23) set X_ 99
$node_(23) set Y_ 77
$node_(23) set Z_ 0.0
$node_(24) set X_ 99
$node_(24) set Y_ 99
$node_(24) set Z_ 0.0
for {set i 0} {$i < $val(nn) } {incr i} {
$ns_ initial_node_pos $node_($i) 5
}
# nodes: 25, max conn: 9, send rate: 1, seed: 25
#
#
# 1 connecting to 2 at time 63.903890905857033
#
set udp_(0) [new Agent/UDP]
$ns_ attach-agent $node_(12) $udp_(0)
set null_(0) [new Agent/LossMonitor]
$ns_ attach-agent $node_(23) $null_(0)
set cbr_(0) [new Application/Traffic/CBR]
$cbr_(0) set packetSize_ 1000
$cbr_(0) set rate_ 24kb
$cbr_(0) set random_ 1
$cbr_(0) set maxpkts_ 10000
$cbr_(0) attach-agent $udp_(0)
$ns_ connect $udp_(0) $null_(0)
$ns_ at 5.00 "$cbr_(0) start"
#
# 3 connecting to 4 at time 148.3165846990033
#
#Total sources/connections: 5/9
#
set TotBytes_0 0
set f0 [open testing.tr w]
proc record {} {
global ns_ f0 null_
set ns_ [Simulator instance]
set now [$ns_ now]
set time 0.4
set aggrbw 0.0
set n 4
set sum 0
# 0th flow
global null_(0)
set bw0 [$null_(0) set bytes_]
set aggrbw [expr ($aggrbw + $bw0)]
puts $f0 "0 $now [expr ($bw0 * 8)/($time * 1e6)]"
$null_(0) set bytes_ 0
puts $f0 "A $now [expr ($aggrbw * 8)/($time * 1e6)]"
$ns_ at [expr $now+$time] "record"
}
#Start logging the received bandwidth
$ns_ at 5.0 "record"
#
# Tell nodes when the simulation ends
#
for {set i 0} {$i < $val(nn) } {incr i} {
$ns_ at 100.0 "$node_($i) reset";
}
$ns_ at 100.0 "stop"
$ns_ at 100.01 "puts \"NS EXITING...\" ; $ns_ halt"
proc stop {} {
global ns_ tracefd namfile filename f0
$ns_ flush-trace
close $f0
close $tracefd
close $namfile
exec nam $filename.nam &
exit 0
}
puts "Starting Simulation..."
$ns_ run
运行后的错误提示
num_nodes is set 300
INITIALIZE THE LIST xListHead
INITIALIZE THE LIST xListHead
INITIALIZE THE LIST xListHead
INITIALIZE THE LIST xListHead
INITIALIZE THE LIST xListHead
INITIALIZE THE LIST xListHead
INITIALIZE THE LIST xListHead
INITIALIZE THE LIST xListHead
INITIALIZE THE LIST xListHead
Starting Simulation...
channel.cc:sendUp - Calc highestAntennaZ_ and distCST_
highestAntennaZ_ = 1.5, distCST_ = 550.0
SORTING LISTS ...DONE!
SORTING LISTS ...DONE!
段错误 (核心已转储)