使用veines_inet从aodvRouter向adhocHost发送消息时出错

问题描述 投票:0回答:1

我正在使用inet和静脉s_inet模拟叶片。当数据包从一个节点发送到另一个节点或从一个节点发送到rsu时,我希望我的节点使用Aodv路由数据包,以实现此目的,我做了以下工作:我将节点声明为aodvRouters并将其移动性设置为VeinsInetMobility:

*.node[*].typename = "AodvRouter"
*.node[*].mobility.typename = "VeinsInetMobility"

和rsu作为具有固定移动性的AdhocHost

*.rsu.typename = "AdhocHost"
*.rsu.mobility.typename = "StationaryMobility":

当我使用以下代码将消息从节点[43]发送到节点[101]或其他节点时,它会起作用:

bool nodeApp::startApplication(){
if (getParentModule()->getIndex() == 43) {
        destAddress = L3AddressResolver().addressOf(getModuleByPath("node[101]"),27);
                 auto tipChunk = makeShared<tip>();
                 timestampPayload(tipChunk);
                 tipChunk->setChunkLength(B(100));
                 tipChunk->setPacket_type("tip");
                 auto packet = createPacket("tip");
                 packet->insertAtBack(tipChunk);
                 socket.sendTo(packet.release(), destAddress, 9001);
               }
         return true;
}

但是当我将dest地址更改为rsu地址时,它不起作用,我得到以下错误:

A runtime error occurred:

handlePacket(): Unknown protocol: id = 55, name = nexthopforwarding -- in module (inet::MessageDispatcher) Network.node[34].tn (id=3241), at t=20.000076211898s, event #1103

为解决此错误,我添加了以下标记

auto req = packet->addTagIfAbsent<DispatchProtocolReq>();
req->setProtocol(&Protocol::udp); 
auto packetProtocolTag = packet->addTagIfAbsent<PacketProtocolTag>();
packetProtocolTag->setProtocol(&Protocol::udp

但是我有followwing错误

A runtime error occurred:

Implicit chunk serialization is disabled to prevent unpredictable performance degradation (you may consider changing the Chunk::enableImplicitChunkSerialization flag or passing the PF_ALLOW_SERIALIZATION flag to peek) -- in module (inet::Udp) Network.node[12].udp (id=1216), at t=2.000076936898s, event #378

任何人都可以帮助我从节点向rsu发送消息而不广播数据包

omnet++ veins
1个回答
0
投票

您找到解决方案了吗?对我来说,我已经准备了自己的静脉静脉注射液样本。在那之后,我想使用inet中存在的aodv,但是我没有找到如何开始!如果可以通过一些提示指导我,我需要帮助。非常感谢。

© www.soinside.com 2019 - 2024. All rights reserved.