官方淘宝店 易迪拓培训 旧站入口
首页 > 无线通信 > 通信技术学习讨论 > 请问有前辈成功运行过AOMDV吗?

请问有前辈成功运行过AOMDV吗?

12-16
就是Ahmad Khayyat的aomdv for ns2.29  
我只下载了源码,没找到具体怎么运行的方法。 运行的时候出错。。。。
我把我的方法叙述如下,请前辈们指出问题之所在。。。

环境:cygwin+ns2.29
1.       先安装ns2.29,一切正常
2.       将Ahmad Khayyat的代码拷贝进ns2.29的目录,覆盖了几个文件。。。
3.       ./ configure    make clean    make depend       make
4.       在make的时候会报错    proxytrace2any.cc文件出错  但是网上有人说这是
正常情况  是因为我的环境不是纯linux
5.       修改simple-wireless.tcl,将协议改成AOMDV  报错  错误代码如下:
$ ns simple-wireless.tcl
num_nodes is set 2
warning: Please use -channel as shown in tcl/ex/wireless-mitf.tcl
    (_o14 cmd line 1)
    invoked from within
"_o14 cmd addr"
    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
"_o14 addr"
    ("eval" body line 1)
    invoked from within
"eval $node addr $args"
    ("default" arm line 2)
    invoked from within
"switch -exact $routingAgent_ {
DSDV {
set ragent [$self create-dsdv-agent $node]
}
DSR {
$self at 0.0 "$node start-dsr"
}
AODV {
set ragent [$self cre..."
    (procedure "_o3" line 11)
    (Simulator create-wireless-node line 11)
    invoked from within
"_o3 create-wireless-node"
    ("eval" body line 1)
    invoked from within
"eval $self create-wireless-node $args"
    (procedure "_o3" line 23)
    (Simulator node line 23)
    invoked from within
"$ns_ node"
    ("for" body line 2)
    invoked from within
"for {set i 0} {$i < $val(nn) } {incr i} {
                set node_($i) [$ns_ node]
                $node_($i) random-motion 0              ;# disable random mo
tion
        }"
    (file "simple-wireless.tcl" line 93)

装配协议栈的时候没有找到新的零件AOMDV,它的螺母.螺栓都应该在ns-lib.tcl里的那个DSR,AODV,TORA那几个装配地上同时加上

螺母.螺栓........   这个这个...........
是不是在里面加一句          
AOMDV {
set ragent [$self create-aomdv-agent $node]
}
就ok了?
或者还要加上
Simulator instproc create-aomdv-agent { node } {
        #  Create AOMDV routing agent
        set ragent [new Agent/AOMDV [$node node-addr]]
        $self at 0.0 "$ragent start"     ;# start BEACON/HELLO Messages
        $node set ragent_ $ragent
        return $ragent
}

是的

我加进去了之后还是报错   错误如下   请前辈再次指点。。。
$ ns simple-wireless.tcl
num_nodes is set 20
warning: Please use -channel as shown in tcl/ex/wireless-mitf.tcl
invalid command name "Agent/AOMDV"
    while executing
"Agent/AOMDV create _o17 0"
    invoked from within
"catch "$className create $o $args" msg"
    invoked from within
"if [catch "$className create $o $args" msg] {
if [string match "__FAILED_SHADOW_OBJECT_" $msg] {
delete $o
return ""
}
global errorInfo
error "class $..."
    (procedure "new" line 3)
    invoked from within
"new Agent/AOMDV [$node node-addr]"
    (procedure "_o3" line 2)
    (Simulator create-aomdv-agent line 2)
    invoked from within
"$self create-aomdv-agent $node"
    ("AOMDV" arm line 2)
    invoked from within
"switch -exact $routingAgent_ {
DSDV {
set ragent [$self create-dsdv-agent $node]
}
DSR {
$self at 0.0 "$node start-dsr"
}
AODV {
set ragent [$self cre..."
    (procedure "_o3" line 11)
    (Simulator create-wireless-node line 11)
    invoked from within
"_o3 create-wireless-node"
    ("eval" body line 1)
    invoked from within
"eval $self create-wireless-node $args"
    (procedure "_o3" line 23)
    (Simulator node line 23)
    invoked from within
"$ns_ node"
    ("for" body line 2)
    invoked from within
"for {set i 0} {$i < $val(nn) } {incr i} {
                set node_($i) [$ns_ node]
                $node_($i) random-motion 0              ;# disable random mo
tion
        }"
    (file "simple-wireless.tcl" line 93)

我看了一下。。。
问题并不是我原来以为的smthvv指出的那个,实际问题是:
你用的这个实现并没有单独产生一个新的叫“Agent/AOMDV”的agent,实际上,它的名字叫:“Agent/rtProto/AODV”,并且代码都只是在原来AODV的基础上改的。
这个如何解决你需要看AOMDV那个包里提供的TCl文件,照搬来用。
===
另外,出问题先看人家的readme,示例代码。。。

谢谢。。。。   还是一头雾水。。。。。
最大的问题就是    这个源码根本就没有readme和示例啊。。。

我看到readme和实例了哇,从作者的主页上下载的。

这个这个。。。。   可不可以告诉一下地址。。。

Top