View | Details | Raw Unified | Return to bug 2292
Collapse All | Expand All

(-)a/src/wifi/model/mac-low.cc (-4 / +6 lines)
 Lines 1616-1621    Link Here 
1616
      bool vhtSingleMpdu = false;
1616
      bool vhtSingleMpdu = false;
1617
      bool last = false;
1617
      bool last = false;
1618
      enum mpduType mpdutype = NORMAL_MPDU;
1618
      enum mpduType mpdutype = NORMAL_MPDU;
1619
      
1620
      uint8_t tid = GetTid (packet, *hdr);
1621
      AcIndex ac = QosUtilsMapTidToAc (tid);
1622
      std::map<AcIndex, MacLowAggregationCapableTransmissionListener*>::const_iterator listenerIt = m_edcaListeners.find (ac);
1619
1623
1620
      if (queueSize == 1)
1624
      if (queueSize == 1)
1621
        {
1625
        {
 Lines 1643-1651    Link Here 
1643
              mpdutype = LAST_MPDU_IN_AGGREGATE;
1647
              mpdutype = LAST_MPDU_IN_AGGREGATE;
1644
            }
1648
            }
1645
1649
1646
          uint8_t tid = GetTid (packet, *hdr);
1647
          AcIndex ac = QosUtilsMapTidToAc (tid);
1648
          std::map<AcIndex, MacLowAggregationCapableTransmissionListener*>::const_iterator listenerIt = m_edcaListeners.find (ac);
1649
          listenerIt->second->GetMpduAggregator ()->AddHeaderAndPad (newPacket, last, vhtSingleMpdu);
1650
          listenerIt->second->GetMpduAggregator ()->AddHeaderAndPad (newPacket, last, vhtSingleMpdu);
1650
1651
1651
          if (hdr->IsBlockAckReq ())
1652
          if (hdr->IsBlockAckReq ())
 Lines 2877-2882    Link Here 
2877
  WifiMacHeader peekedHdr;
2878
  WifiMacHeader peekedHdr;
2878
  newPacket = packet->Copy ();
2879
  newPacket = packet->Copy ();
2879
  Ptr<Packet> currentAggregatedPacket;
2880
  Ptr<Packet> currentAggregatedPacket;
2881
  CtrlBAckRequestHeader blockAckReq;
2880
  //missing hdr.IsAck() since we have no means of knowing the Tid of the Ack yet
2882
  //missing hdr.IsAck() since we have no means of knowing the Tid of the Ack yet
2881
  if (hdr.IsQosData () || hdr.IsBlockAck ()|| hdr.IsBlockAckReq ())
2883
  if (hdr.IsQosData () || hdr.IsBlockAck ()|| hdr.IsBlockAckReq ())
2882
    {
2884
    {
 Lines 2932-2938    Link Here 
2932
                {
2934
                {
2933
                  blockAckSize = packet->GetSize () + hdr.GetSize () + WIFI_MAC_FCS_LENGTH;
2935
                  blockAckSize = packet->GetSize () + hdr.GetSize () + WIFI_MAC_FCS_LENGTH;
2934
                  qosPolicy = 3; //if the last subrame is block ack req then set ack policy of all frames to blockack
2936
                  qosPolicy = 3; //if the last subrame is block ack req then set ack policy of all frames to blockack
2935
                  CtrlBAckRequestHeader blockAckReq;
2936
                  packet->PeekHeader (blockAckReq);
2937
                  packet->PeekHeader (blockAckReq);
2937
                  startingSequenceNumber = blockAckReq.GetStartingSequence ();
2938
                  startingSequenceNumber = blockAckReq.GetStartingSequence ();
2938
                }
2939
                }
 Lines 3092-3097    Link Here 
3092
                      WifiMacTrailer fcs;
3093
                      WifiMacTrailer fcs;
3093
                      newPacket->AddTrailer (fcs);
3094
                      newPacket->AddTrailer (fcs);
3094
                      listenerIt->second->GetMpduAggregator ()->Aggregate (newPacket, currentAggregatedPacket);
3095
                      listenerIt->second->GetMpduAggregator ()->Aggregate (newPacket, currentAggregatedPacket);
3096
                      currentAggregatedPacket->AddHeader (blockAckReq);
3095
                    }
3097
                    }
3096
                  if (qosPolicy == 0)
3098
                  if (qosPolicy == 0)
3097
                    {
3099
                    {

Return to bug 2292