Error : Finished standard no-slot{} default handler [ns-2]

Error : Finished standard no-slot{} default handler [ns-2]

我的 ns-2 模拟有问题...当我 运行 我的模拟时它给我这个错误 :

--- Classfier::no-slot{} default handler (tcl/lib/ns-lib.tcl) ---
    _o52: no target for slot -1
    _o52 type: Classifier/Port
content dump:
classifier _o52
    0 offset
    0 shift
    2147483647 mask
    2 slots
        slot 0: _o67 (CMUTrace/Recv)
        slot 255: _o54 (CMUTrace/Recv)
---------- Finished standard no-slot{} default handler ----------

我试图在互联网上找到解决方案,但以前没有人回答过这个问题。 有谁知道这个错误是什么?

这是我的代码:

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)             4                         ;# number of mobilenodes
set val(rp)             AODV                       ;# routing protocol
set val(x)      250
set val(y)      250

set ns_ [new Simulator]

set tracefile [open W.tr w]
$ns_ trace-all $tracefile

set namfile [open N.nam w]
$ns_ namtrace-all-wireless $namfile $val(x) $val(y)

set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)

set god_ [create-god $val(nn)]

set chan_ [new $val(chan)]

$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) \
     -topoInstance $topo \
     -agentTrace ON \
     -routerTrace ON \
     -macTrace ON \
     -movementTrace ON \
     -channel $chan_

     for {set i 0} {$i < $val(nn)} {incr i} {
         set node($i) [$ns_ node]
         $node($i) random-motion 0
         set xx_ [expr rand()*200]
         set yy_ [expr rand()*200]
         #$ns_ at 0.0 "$node($i) setdest $xx_ $yy_ 0.0"
         puts "xx_ $xx_"
         puts "yy_ $yy_"
         $node($i) set X_ $xx_
         $node($i) set Y_ $yy_
         $node($i) set Z_ 0.0
         $ns_ initial_node_pos $node($i) 10
     }

for {set i 0} {$i < [expr $val(nn) / 2]} {incr i} {
set tcp($i) [new Agent/TCP]
set udp($i) [new Agent/UDP]
set cbr($i) [new Application/Traffic/CBR]
set ftp($i) [new Application/FTP]
set null($i) [new Agent/Null]
set tcpsink($i) [new Agent/TCPSink]
}

$ns_ attach-agent $node(0) $tcp(0)
$ns_ attach-agent $node(1) $tcpsink(0)
$ftp(0) attach-agent $tcp(0)
$ns_ connect $tcp(0) $tcpsink(0)

proc stop {} {
 global ns_ namfile tracefile
 $ns_ flush-trace
 close $namfile
 close $tracefile
 exec nam N.nam
 exit 0
}

for {set i 0} {$i < 1} {incr i} {
$ns_ at $i "$ftp([expr $i / 2]) start"
$ns_ at 20.0 "$ftp([expr $i / 2]) stop"
$ns_ at 25.0 "puts \"NS EXITING...\""
$ns_ at 25.0 "stop"
}

puts "Starting simulation..."
$ns_ run

» Classfier::no-slot{}+default+handler (tcl/lib/ns-lib.tcl) « 可能有几个原因:

错误 OS,你的 tcl 代码错误,(错误的 ns2 版本?)等等


如果您需要解决方案,还需要更多信息:

  • OS 名称/版本/架构,如 Fedora 22 - i686,Ubuntu 14.04 - i686.

  • ns2版本。 simulation.tcl 的名称。使用的协议。

  • 如果script.tcl是新的,请出示代码,或上传文件。

@Jenova,您的 ns-2.35 版本可能已损坏?您是否更改了 ns-2.35 中的一些代码?比如添加带有额外协议的补丁?

建议的 ns-2.35 版本是:ns-allinone-2。35_gcc482.tar.gz https://drive.google.com/file/d/0B7S255p3kFXNSGJCZ2YzUGJDVk0/view?usp=sharing

即'Nov 2014 update' : 可以使用所有 gcc/g++ 版本 4.4.x .. 5.2.0


您的代码:我得到相同的 OK 输出 → 使用任何 OS、任何体系结构(i686 或 x86_64)、任何 ns2 版本、向该 ns2 添加的任何(无害)协议:示例OS的,用来测试你上面的file.tcl→→ PCLinuxOS 2015 - i686,Ubuntu 12.04 - i686,Ubuntu 12.04 - x86_64,Ubuntu 14.04 - x86_64, Ubuntu14.04-i686.

$ ns AODV-Jenova.tcl

num_nodes is set 4
INITIALIZE THE LIST xListHead
xx_ 74.759948474708921
yy_ 90.454014432827947
xx_ 60.620572539335384
yy_ 49.962668609788018
xx_ 122.57132470727494
yy_ 56.254355169951154
xx_ 66.947341368974804
yy_ 183.96638835965021
Starting simulation...
channel.cc:sendUp - Calc highestAntennaZ_ and distCST_
highestAntennaZ_ = 1.5,  distCST_ = 550.0
SORTING LISTS ...DONE!
NS EXITING...

.. 和 'nam' 打开一个漂亮的动画。


...我们仍然不知道您拥有哪个 Ubuntu 14.04。请显示

的回复
$ uname -m

参考。您的评论:»» tcl.evalf("$ns_ at 0.0 \"$node(0) color MediumBlue\""); ««

我认为是tcl代码。并且不能添加到 c++ 文件中,AFAIK。

参见https://www.google.com/webhp?hl=all&gws_rd=ssl#hl=en&q=tcl.evalf("%24ns_+at+0.0+\"%24node(0)+color+MediumBlue\"")%3B+

请参考this
您很可能要求 NS2 将数据包发送到不存在的 目的。在开始发送数据包之前,您可能想检查是否正确连接了源节点和目标节点