@@ -383,7 +383,14 @@ double L3NetworkConfiguratorBase::computeWirelessLinkWeight(Link *link, const ch
383
383
cModule *receiverInterfaceModule = receiverInterfaceInfo->networkInterface ;
384
384
const IRadio *transmitterRadio = check_and_cast<IRadio *>(transmitterInterfaceModule->getSubmodule (" radio" ));
385
385
const IRadio *receiverRadio = check_and_cast<IRadio *>(receiverInterfaceModule->getSubmodule (" radio" ));
386
- const Packet *macFrame = new Packet ();
386
+ Packet *macFrame = new Packet ();
387
+ auto byteCountChunk = makeShared<ByteCountChunk>(B (transmitterInterfaceInfo->networkInterface ->getMtu ()));
388
+ macFrame->insertAtBack (byteCountChunk);
389
+
390
+ // KLUDGE the frame must contain the PHY header to create a transmission
391
+ macFrame->addTag <PacketProtocolTag>()->setProtocol (&Protocol::ackingMac);
392
+ check_and_cast<const Radio *>(transmitterRadio)->encapsulate (macFrame);
393
+
387
394
const IRadioMedium *radioMedium = receiverRadio->getMedium ();
388
395
const ITransmission *transmission = transmitterRadio->getTransmitter ()->createTransmission (transmitterRadio, macFrame, simTime ());
389
396
const IArrival *arrival = radioMedium->getPropagation ()->computeArrival (transmission, receiverRadio->getAntenna ()->getMobility ());
@@ -409,7 +416,7 @@ double L3NetworkConfiguratorBase::computeWirelessLinkWeight(Link *link, const ch
409
416
auto byteCountChunk = makeShared<ByteCountChunk>(B (transmitterInterfaceInfo->networkInterface ->getMtu ()));
410
417
transmittedFrame->insertAtBack (byteCountChunk);
411
418
412
- // KLUDGE
419
+ // KLUDGE the frame must contain the PHY header to create a transmission
413
420
transmittedFrame->addTag <PacketProtocolTag>()->setProtocol (&Protocol::ackingMac);
414
421
check_and_cast<const Radio *>(transmitterRadio)->encapsulate (transmittedFrame);
415
422
0 commit comments