diff --git a/src/inet/linklayer/ieee80211/mac/FrameExchange.cc b/src/inet/linklayer/ieee80211/mac/FrameExchange.cc index 091a4a76f32..59b2f71f5d4 100644 --- a/src/inet/linklayer/ieee80211/mac/FrameExchange.cc +++ b/src/inet/linklayer/ieee80211/mac/FrameExchange.cc @@ -244,8 +244,10 @@ IFrameExchange::FrameProcessingResult StepBasedFrameExchange::lowerFrameReceived if (status == INPROGRESS) { logStatus(result == IGNORED ? "processReply(): frame IGNORED": "processReply(): frame PROCESSED"); checkOperation(operation, "processReply()"); - if (result == PROCESSED_KEEP || result == PROCESSED_DISCARD || operation != NONE) + if (result == PROCESSED_KEEP || result == PROCESSED_DISCARD || operation != NONE) { + cleanup(); proceed(); + } else operation = EXPECT_FULL_REPLY; // restore } @@ -261,6 +263,7 @@ IFrameExchange::FrameProcessingResult StepBasedFrameExchange::lowerFrameReceived logStatus(result == IGNORED ? "processReply(): frame IGNORED": "processReply(): frame PROCESSED"); checkOperation(operation, "processReply()"); if (result == PROCESSED_KEEP || result == PROCESSED_DISCARD || operation != NONE) { + cleanup(); proceed(); } else { diff --git a/src/inet/linklayer/ieee80211/mac/Rx.cc b/src/inet/linklayer/ieee80211/mac/Rx.cc index 42bcad93f68..5373e9b00a7 100644 --- a/src/inet/linklayer/ieee80211/mac/Rx.cc +++ b/src/inet/linklayer/ieee80211/mac/Rx.cc @@ -87,6 +87,7 @@ void Rx::lowerFrameReceived(Ieee80211Frame *frame) void Rx::frameTransmitted(simtime_t durationField) { + Enter_Method_Silent(); // the txIndex that transmitted the frame should already own the TXOP, so // it has no need to (and should not) check the NAV. setOrExtendNav(durationField);