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

(-)a/src/wifi/model/edca-txop-n.cc (-41 / +28 lines)
 Lines 643-648    Link Here 
643
  NS_LOG_DEBUG ("got cts");
643
  NS_LOG_DEBUG ("got cts");
644
}
644
}
645
645
646
uint8_t
647
EdcaTxopN::GetCurrentTid ()
648
{
649
  if (m_currentHdr.IsQosData ())
650
    {
651
      return m_currentHdr.GetQosTid ();
652
    }
653
  else if (m_currentHdr.IsBlockAckReq ())
654
    {
655
      CtrlBAckRequestHeader baReqHdr;
656
      m_currentPacket->PeekHeader (baReqHdr);
657
      return baReqHdr.GetTidInfo ();
658
    }
659
  else if (m_currentHdr.IsBlockAck ())
660
    {
661
      CtrlBAckResponseHeader baRespHdr;
662
      m_currentPacket->PeekHeader (baRespHdr);
663
      return baRespHdr.GetTidInfo ();
664
    }
665
  else
666
    {
667
      NS_FATAL_ERROR ("Current packet has no Traffic ID");
668
    }
669
}
670
646
void
671
void
647
EdcaTxopN::MissedCts (void)
672
EdcaTxopN::MissedCts (void)
648
{
673
{
 Lines 660-680    Link Here 
660
      if (GetAmpduExist (m_currentHdr.GetAddr1 ()))
685
      if (GetAmpduExist (m_currentHdr.GetAddr1 ()))
661
        {
686
        {
662
          m_low->FlushAggregateQueue ();
687
          m_low->FlushAggregateQueue ();
663
          uint8_t tid = 0;
688
          uint8_t tid = GetCurrentTid ();
664
          if (m_currentHdr.IsQosData ())
665
            {
666
              tid = m_currentHdr.GetQosTid ();
667
            }
668
          else if (m_currentHdr.IsBlockAckReq ())
669
            {
670
              CtrlBAckRequestHeader baReqHdr;
671
              m_currentPacket->PeekHeader (baReqHdr);
672
              tid = baReqHdr.GetTidInfo ();
673
            }
674
          else
675
            {
676
              NS_FATAL_ERROR ("Current packet is not Qos Data nor BlockAckReq");
677
            }
678
689
679
          if (GetBaAgreementExists (m_currentHdr.GetAddr1 (), tid))
690
          if (GetBaAgreementExists (m_currentHdr.GetAddr1 (), tid))
680
            {
691
            {
 Lines 815-829    Link Here 
815
        }
826
        }
816
      if (GetAmpduExist (m_currentHdr.GetAddr1 ()))
827
      if (GetAmpduExist (m_currentHdr.GetAddr1 ()))
817
        {
828
        {
818
          uint8_t tid = 0;
829
          uint8_t tid = GetCurrentTid ();
819
          if (m_currentHdr.IsQosData ())
820
            {
821
              tid = m_currentHdr.GetQosTid ();
822
            }
823
          else
824
            {
825
              NS_FATAL_ERROR ("Current packet is not Qos Data");
826
            }
827
830
828
          if (GetBaAgreementExists (m_currentHdr.GetAddr1 (), tid))
831
          if (GetBaAgreementExists (m_currentHdr.GetAddr1 (), tid))
829
            {
832
            {
 Lines 874-896    Link Here 
874
{
877
{
875
  NS_LOG_FUNCTION (this);
878
  NS_LOG_FUNCTION (this);
876
  NS_LOG_DEBUG ("missed block ack");
879
  NS_LOG_DEBUG ("missed block ack");
877
  uint8_t tid = 0;
880
  uint8_t tid = GetCurrentTid ();
878
  if (m_currentHdr.IsQosData ())
879
    {
880
      tid = m_currentHdr.GetQosTid ();
881
    }
882
  else if (m_currentHdr.IsBlockAckReq ())
883
    {
884
      CtrlBAckRequestHeader baReqHdr;
885
      m_currentPacket->PeekHeader (baReqHdr);
886
      tid = baReqHdr.GetTidInfo ();
887
    }
888
  else if (m_currentHdr.IsBlockAck ())
889
    {
890
      CtrlBAckResponseHeader baRespHdr;
891
      m_currentPacket->PeekHeader (baRespHdr);
892
      tid = baRespHdr.GetTidInfo ();
893
    }
894
  if (GetAmpduExist (m_currentHdr.GetAddr1 ()))
881
  if (GetAmpduExist (m_currentHdr.GetAddr1 ()))
895
    {
882
    {
896
      m_stationManager->ReportAmpduTxStatus (m_currentHdr.GetAddr1 (), tid, 0, nMpdus, 0, 0);
883
      m_stationManager->ReportAmpduTxStatus (m_currentHdr.GetAddr1 (), tid, 0, nMpdus, 0, 0);
(-)a/src/wifi/model/edca-txop-n.h (+4 lines)
 Lines 523-528    Link Here 
523
   * if an established block ack agreement exists with the receiver.
523
   * if an established block ack agreement exists with the receiver.
524
   */
524
   */
525
  void VerifyBlockAck (void);
525
  void VerifyBlockAck (void);
526
  /**
527
   * Get Traffic ID of the current packet.
528
   */
529
  uint8_t GetCurrentTid ();
526
530
527
  AcIndex m_ac;
531
  AcIndex m_ac;
528
  class Dcf;
532
  class Dcf;

Return to bug 2313