26 SequenceControlField seqVal(frame);
27 bool isManagementFrame =
dynamic_cast<Ieee80211ManagementFrame *
>(frame);
28 bool isTimePriorityManagementFrame = isManagementFrame &&
false;
29 if (isTimePriorityManagementFrame || isManagementFrame)
31 MACAddress transmitterAddr = frame->getTransmitterAddress();
33 auto it = cache.find(transmitterAddr);
34 if (it == cache.end()) {
35 cache.insert(std::pair<MACAddress, SequenceControlField>(transmitterAddr, seqVal));
38 else if (it->second.getSequenceNumber() == seqVal.getSequenceNumber() && it->second.getFragmentNumber() == seqVal.getFragmentNumber() && frame->getRetry())
47 Ieee80211DataFrame *qosDataFrame = check_and_cast<Ieee80211DataFrame *>(frame);
48 Key key(frame->getTransmitterAddress(), qosDataFrame->getTid());
54 else if (it->second.getSequenceNumber() == seqVal.getSequenceNumber() && it->second.getFragmentNumber() == seqVal.getFragmentNumber() && frame->getRetry())
std::pair< MACAddress, Tid > Key
Definition: QosDuplicateRemoval.h:32
Mac2SeqValMap lastSeenTimePriorityManagementSeqNumCache
Definition: QosDuplicateRemoval.h:37
Mac2SeqValMap lastSeenSharedSeqNumCache
Definition: QosDuplicateRemoval.h:36
std::map< MACAddress, SequenceControlField > Mac2SeqValMap
Definition: QosDuplicateRemoval.h:34
Key2SeqValMap lastSeenSeqNumCache
Definition: QosDuplicateRemoval.h:35