求助 基于Ramon模型拓展后的ns2,在进行 多接口多信道仿真的错误,求各位大神解决

zhangab512 2015-01-23 10:53:12
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!
段错误 (核心已转储)







...全文
248 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_32460309 2016-03-17
  • 打赏
  • 举报
回复
问题解决了吗?

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧