【发布时间】:2017-07-12 16:05:21
【问题描述】:
我目前正在从事一个 MANET 项目,并希望创建一个定制的无线主机来模仿一个自私的节点,该节点会立即丢弃它在 MANET 中接收到的消息。 我创建了一个名为 SelfishNode.NED 的简单模块,代码如下:
simple SelfishNode {
parameters:
@display("i=block/buffer");
gates:
input radioIn[numRadios] @directIn;
inout pppg[] @labels(PPPFrame-conn);
inout ethg[] @labels(EtherFrame-conn);
}
2。然后,我用下面的代码创建了它的 C++ 文件:
#include "SelfishNode.h"
#include <string.h>
#include <omnetpp.h>
void SelfishNode::initialize()
{
}
void SelfishNode::handleMessage(cMessage *msg)
{
delete msg;
}
3。接下来,我创建了一个名为 snode.NED 的复合模块,它扩展了 AODVRouter,代码如下:
import inet.node.aodv.AODVRouter;
module snode extends AODVRouter
{
parameters:
@networkNode;
@display("i=device/wifilaptop");
@labels(wireless-node);
submodules:
bad: SelfishNode {
@display("p=273,350");
}
}
-
接下来,我创建了一个名为 ManetA.NED 的网络模块:
import inet.common.figures.DelegateSignalConfigurator; import inet.networklayer.configurator.ipv4.IPv4NetworkConfigurator; import inet.physicallayer.ieee80211.packetlevel.Ieee80211ScalarRadioMedium; import inet.visualizer.integrated.IntegratedCanvasVisualizer; import inet.environment.common.PhysicalEnvironment; network ManetA { parameters: int numHosts; int numBadNodes; submodules: visualizer: IntegratedCanvasVisualizer { @display("p=59,103"); } configurator: IPv4NetworkConfigurator { @display("p=59,164"); } radioMedium: Ieee80211ScalarRadioMedium { @display("p=60,50,i=misc/sun"); } figureHelper: DelegateSignalConfigurator { @display("p=61,236"); } hostBad[numBadNodes]: snode { @display("i=device/palm"); } physicalEnvironment: PhysicalEnvironment { @display("p=59,306"); } } -
最后,我在 omnetpp.ini 中配置了移动类型和坏节点的数量如下:
*.numBadNodes = ${HOST=5} *.hostBad.mobilityType = "inet.mobility.single.RandomWPMobility"
这是正确的吗? 而且当我运行模拟时,节点根本没有移动。我研究了一整天,但无法解决。
【问题讨论】: