60         return std::vector<Ieee80211Frame*>();
    63     frames[dataFrame->getSequenceNumber()].push_back(dataFrame);
    65         Tid tid = dataFrame->getTid();
    66         MACAddress originatorAddr = dataFrame->getTransmitterAddress();
    67         RecipientBlockAckAgreement *agreement = blockAckAgreementHandler->getAgreement(tid, originatorAddr);
    71     std::vector<Ieee80211Frame *> defragmentedFrames;
    73         for (
auto it : frames) {
    74             auto fragments = it.second;
    75             Ieee80211DataFrame *frame = 
defragment(fragments);
    78                 defragmentedFrames.push_back(frame);
    82         for (
auto it : frames) {
    83             auto fragments = it.second;
    84             if (fragments.size() == 1)
    85                 defragmentedFrames.push_back(fragments.at(0));
    89     std::vector<Ieee80211Frame *> deaggregatedFrames;
    91         for (
auto frame : defragmentedFrames) {
    92             auto dataFrame = check_and_cast<Ieee80211DataFrame *>(frame);
    93             if (dataFrame->getAMsduPresent()) {
    95                 for (
auto subframe : *subframes)
    96                     deaggregatedFrames.push_back(subframe);
   100                 deaggregatedFrames.push_back(dataFrame);
   104     return deaggregatedFrames;
 int8_t Tid
Definition: Ieee80211Defs.h:28
std::map< SequenceNumber, Fragments > ReorderBuffer
Definition: BlockAckReordering.h:36
IMsduDeaggregation * aMsduDeaggregation
Definition: RecipientQoSMacDataService.h:46
virtual Ieee80211DataFrame * defragment(std::vector< Ieee80211DataFrame * > completeFragments)
Definition: RecipientQoSMacDataService.cc:39
BlockAckReordering * blockAckReordering
Definition: RecipientQoSMacDataService.h:44
ReorderBuffer processReceivedQoSFrame(RecipientBlockAckAgreement *agreement, Ieee80211DataFrame *dataFrame)
Definition: BlockAckReordering.cc:27
BasicReassembly * basicReassembly
Definition: RecipientQoSMacDataService.h:37
IDuplicateRemoval * duplicateRemoval
Definition: RecipientQoSMacDataService.h:42
virtual bool isDuplicate(Ieee80211DataOrMgmtFrame *frame)=0
virtual std::vector< Ieee80211DataFrame * > * deaggregateFrame(Ieee80211DataFrame *frame)=0