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

(-)a/src/wifi/model/edca-txop-n.cc (+39 lines)
 Lines 662-667    Link Here 
662
      m_currentPacket->PeekHeader (baRespHdr);
662
      m_currentPacket->PeekHeader (baRespHdr);
663
      return baRespHdr.GetTidInfo ();
663
      return baRespHdr.GetTidInfo ();
664
    }
664
    }
665
  else if (m_currentHdr.IsMgt () && m_currentHdr.IsAction ())
666
    {
667
      Ptr<Packet> packet = m_currentPacket->Copy ();
668
      WifiActionHeader actionHdr;
669
      packet->RemoveHeader (actionHdr);
670
671
      if (actionHdr.GetCategory () == WifiActionHeader::BLOCK_ACK)
672
        {
673
          switch (actionHdr.GetAction ().blockAck)
674
            {
675
            case WifiActionHeader::BLOCK_ACK_ADDBA_REQUEST:
676
              {
677
                MgtAddBaResponseHeader reqHdr;
678
                packet->RemoveHeader (reqHdr);
679
                return reqHdr.GetTid ();
680
              }
681
            case WifiActionHeader::BLOCK_ACK_ADDBA_RESPONSE:
682
              {
683
                MgtAddBaResponseHeader respHdr;
684
                packet->RemoveHeader (respHdr);
685
                return respHdr.GetTid ();
686
              }
687
            case WifiActionHeader::BLOCK_ACK_DELBA:
688
              {
689
                MgtDelBaHeader delHdr;
690
                packet->RemoveHeader (delHdr);
691
                return delHdr.GetTid ();
692
              }
693
            default:
694
              {
695
                NS_FATAL_ERROR ("Don't know how to extract Traffic ID from this BA action frame");
696
              }
697
            }
698
        }
699
      else
700
        {
701
          NS_FATAL_ERROR ("Don't know how to extract Traffic ID from this action frame");
702
        }
703
    }
665
  else
704
  else
666
    {
705
    {
667
      NS_FATAL_ERROR ("Current packet has no Traffic ID");
706
      NS_FATAL_ERROR ("Current packet has no Traffic ID");

Return to bug 2313