Использование AODV в проводной симуляции
Я пытаюсь использовать AODV в проводной симуляции, но я не могу заставить ее работать, возможно ли связать 2 AODVRouters по проводам и использовать протокол AODV?? или я должен использовать 2 standardhost и изменить AODVrouting.cc??
РЕДАКТИРОВАТЬ: Я просто имитирую пример AODV simpleRREQ, используя стандартные хосты вместо AODVrouters и используя режим отладки, он падает в следующем фрагменте кода:
void AODVRouting::sendAODVPacket(AODVControlPacket *packet, const L3Address& destAddr, unsigned int timeToLive, double delay)
{INetworkProtocolControlInfo *networkProtocolControlInfo = addressType->createNetworkProtocolControlInfo();
networkProtocolControlInfo->setHopLimit(timeToLive);
networkProtocolControlInfo->setTransportProtocol(IP_PROT_MANET);
networkProtocolControlInfo->setDestinationAddress(destAddr);
networkProtocolControlInfo->setSourceAddress(getSelfIPAddress());
// TODO: Implement: support for multiple interfaces
InterfaceEntry *ifEntry = interfaceTable->getInterfaceByName("AODV");
networkProtocolControlInfo->setInterfaceId(ifEntry->getInterfaceId());
UDPPacket *udpPacket = new UDPPacket(packet->getName());
udpPacket->encapsulate(packet);
udpPacket->setSourcePort(aodvUDPPort);
udpPacket->setDestinationPort(aodvUDPPort);
udpPacket->setControlInfo(dynamic_cast<cObject *>(networkProtocolControlInfo));
if (destAddr.isBroadcast())
lastBroadcastTime = simTime();
if (delay == 0)
send(udpPacket, "ipOut");
else
sendDelayed(udpPacket, delay, "ipOut");
}
Как я могу отправить пакет AODV, выбрасывая все порты Ethernet маршрутизатора?