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

(-)a/src/wifi/model/mac-low.cc (-2 / +4 lines)
 Lines 774-780   MacLow::ReceiveOk (Ptr<Packet> packet, double rxSnr, WifiTxVector txVector, bool Link Here 
774
          m_stationManager->ReportRxOk (m_currentHdr.GetAddr1 (), &m_currentHdr,
774
          m_stationManager->ReportRxOk (m_currentHdr.GetAddr1 (), &m_currentHdr,
775
                                        rxSnr, txVector.GetMode ());
775
                                        rxSnr, txVector.GetMode ());
776
          m_stationManager->ReportDataOk (m_currentHdr.GetAddr1 (), &m_currentHdr,
776
          m_stationManager->ReportDataOk (m_currentHdr.GetAddr1 (), &m_currentHdr,
777
                                          rxSnr, txVector.GetMode (), tag.Get ());
777
                                          rxSnr, txVector.GetMode (), tag.Get (),
778
                                          m_currentPacket);
778
        }
779
        }
779
      bool gotAck = false;
780
      bool gotAck = false;
780
      if (m_txParams.MustWaitNormalAck ()
781
      if (m_txParams.MustWaitNormalAck ()
 Lines 1521-1527   MacLow::NormalAckTimeout (void) Link Here 
1521
  /// \todo should check that there was no rx start before now.
1522
  /// \todo should check that there was no rx start before now.
1522
  /// we should restart a new ack timeout now until the expected
1523
  /// we should restart a new ack timeout now until the expected
1523
  /// end of rx if there was a rx start before now.
1524
  /// end of rx if there was a rx start before now.
1524
  m_stationManager->ReportDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr);
1525
  m_stationManager->ReportDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr,
1526
                                      m_currentPacket);
1525
  Ptr<Txop> txop = m_currentTxop;
1527
  Ptr<Txop> txop = m_currentTxop;
1526
  m_currentTxop = 0;
1528
  m_currentTxop = 0;
1527
  m_ampdu = false;
1529
  m_ampdu = false;
(-)a/src/wifi/model/qos-txop.cc (-3 / +3 lines)
 Lines 378-388   void QosTxop::NotifyInternalCollision (void) Link Here 
378
          if (!NeedDataRetransmission (packet, header))
378
          if (!NeedDataRetransmission (packet, header))
379
            {
379
            {
380
              resetDcf = true;
380
              resetDcf = true;
381
              m_stationManager->ReportFinalDataFailed (header.GetAddr1 (), &header);
381
              m_stationManager->ReportFinalDataFailed (header.GetAddr1 (), &header, packet);
382
            }
382
            }
383
          else
383
          else
384
            {
384
            {
385
              m_stationManager->ReportDataFailed (header.GetAddr1 (), &header);
385
              m_stationManager->ReportDataFailed (header.GetAddr1 (), &header, packet);
386
            }
386
            }
387
        }
387
        }
388
      if (resetDcf)
388
      if (resetDcf)
 Lines 561-567   QosTxop::MissedAck (void) Link Here 
561
  if (!NeedDataRetransmission (m_currentPacket, m_currentHdr))
561
  if (!NeedDataRetransmission (m_currentPacket, m_currentHdr))
562
    {
562
    {
563
      NS_LOG_DEBUG ("Ack Fail");
563
      NS_LOG_DEBUG ("Ack Fail");
564
      m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr);
564
      m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr, m_currentPacket);
565
      bool resetCurrentPacket = true;
565
      bool resetCurrentPacket = true;
566
      if (!m_txFailedCallback.IsNull ())
566
      if (!m_txFailedCallback.IsNull ())
567
        {
567
        {
(-)a/src/wifi/model/txop.cc (-3 / +6 lines)
 Lines 624-630   Txop::MissedAck (void) Link Here 
624
  if (!NeedDataRetransmission (m_currentPacket, m_currentHdr))
624
  if (!NeedDataRetransmission (m_currentPacket, m_currentHdr))
625
    {
625
    {
626
      NS_LOG_DEBUG ("Ack Fail");
626
      NS_LOG_DEBUG ("Ack Fail");
627
      m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr);
627
      m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr,
628
                                               m_currentPacket);
628
      if (!m_txFailedCallback.IsNull ())
629
      if (!m_txFailedCallback.IsNull ())
629
        {
630
        {
630
          m_txFailedCallback (m_currentHdr);
631
          m_txFailedCallback (m_currentHdr);
 Lines 667-673   Txop::MissedCfPollResponse (bool expectedCfAck) Link Here 
667
      if (!NeedDataRetransmission (m_currentPacket, m_currentHdr))
668
      if (!NeedDataRetransmission (m_currentPacket, m_currentHdr))
668
        {
669
        {
669
          NS_LOG_DEBUG ("Ack Fail");
670
          NS_LOG_DEBUG ("Ack Fail");
670
          m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr);
671
          m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr,
672
                                                   m_currentPacket);
671
          m_currentPacket = 0;
673
          m_currentPacket = 0;
672
        }
674
        }
673
      else
675
      else
 Lines 735-741   Txop::SendCfFrame (WifiMacType frameType, Mac48Address addr) Link Here 
735
    {
737
    {
736
      if (!NeedDataRetransmission (m_currentPacket, m_currentHdr))
738
      if (!NeedDataRetransmission (m_currentPacket, m_currentHdr))
737
        {
739
        {
738
          m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr);
740
          m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr,
741
                                                   m_currentPacket);
739
          m_currentPacket = 0;
742
          m_currentPacket = 0;
740
        }
743
        }
741
      else
744
      else
(-)a/src/wifi/model/wifi-remote-station-manager.cc (-7 / +35 lines)
 Lines 932-943   WifiRemoteStationManager::ReportRtsFailed (Mac48Address address, const WifiMacHe Link Here 
932
}
932
}
933
933
934
void
934
void
935
WifiRemoteStationManager::ReportDataFailed (Mac48Address address, const WifiMacHeader *header)
935
WifiRemoteStationManager::ReportDataFailed (Mac48Address address, const WifiMacHeader *header,
936
                                            Ptr<const Packet> packet)
936
{
937
{
937
  NS_LOG_FUNCTION (this << address << *header);
938
  NS_LOG_FUNCTION (this << address << *header);
938
  NS_ASSERT (!address.IsGroup ());
939
  NS_ASSERT (!address.IsGroup ());
939
  WifiRemoteStation *station = Lookup (address, header);
940
  WifiRemoteStation *station = Lookup (address, header);
940
  station->m_slrc++;
941
  bool longMpdu = (packet->GetSize () + header->GetSize () + WIFI_MAC_FCS_LENGTH) > m_rtsCtsThreshold;
942
  if (longMpdu)
943
    {
944
      station->m_slrc++;
945
    }
946
  else
947
    {
948
      station->m_ssrc++;
949
    }
941
  m_macTxDataFailed (address);
950
  m_macTxDataFailed (address);
942
  DoReportDataFailed (station);
951
  DoReportDataFailed (station);
943
}
952
}
 Lines 956-968   WifiRemoteStationManager::ReportRtsOk (Mac48Address address, const WifiMacHeader Link Here 
956
965
957
void
966
void
958
WifiRemoteStationManager::ReportDataOk (Mac48Address address, const WifiMacHeader *header,
967
WifiRemoteStationManager::ReportDataOk (Mac48Address address, const WifiMacHeader *header,
959
                                        double ackSnr, WifiMode ackMode, double dataSnr)
968
                                        double ackSnr, WifiMode ackMode, double dataSnr,
969
                                        Ptr<const Packet> packet)
960
{
970
{
961
  NS_LOG_FUNCTION (this << address << *header << ackSnr << ackMode << dataSnr);
971
  NS_LOG_FUNCTION (this << address << *header << ackSnr << ackMode << dataSnr);
962
  NS_ASSERT (!address.IsGroup ());
972
  NS_ASSERT (!address.IsGroup ());
963
  WifiRemoteStation *station = Lookup (address, header);
973
  WifiRemoteStation *station = Lookup (address, header);
964
  station->m_state->m_info.NotifyTxSuccess (station->m_slrc);
974
  bool longMpdu = (packet->GetSize () + header->GetSize () + WIFI_MAC_FCS_LENGTH) > m_rtsCtsThreshold;
965
  station->m_slrc = 0;
975
  if (longMpdu)
976
    {
977
      station->m_state->m_info.NotifyTxSuccess (station->m_slrc);
978
      station->m_slrc = 0;
979
    }
980
  else
981
    {
982
      station->m_state->m_info.NotifyTxSuccess (station->m_ssrc);
983
      station->m_ssrc = 0;
984
    }
966
  DoReportDataOk (station, ackSnr, ackMode, dataSnr);
985
  DoReportDataOk (station, ackSnr, ackMode, dataSnr);
967
}
986
}
968
987
 Lines 979-991   WifiRemoteStationManager::ReportFinalRtsFailed (Mac48Address address, const Wifi Link Here 
979
}
998
}
980
999
981
void
1000
void
982
WifiRemoteStationManager::ReportFinalDataFailed (Mac48Address address, const WifiMacHeader *header)
1001
WifiRemoteStationManager::ReportFinalDataFailed (Mac48Address address, const WifiMacHeader *header,
1002
                                                 Ptr<const Packet> packet)
983
{
1003
{
984
  NS_LOG_FUNCTION (this << address << *header);
1004
  NS_LOG_FUNCTION (this << address << *header);
985
  NS_ASSERT (!address.IsGroup ());
1005
  NS_ASSERT (!address.IsGroup ());
986
  WifiRemoteStation *station = Lookup (address, header);
1006
  WifiRemoteStation *station = Lookup (address, header);
987
  station->m_state->m_info.NotifyTxFailed ();
1007
  station->m_state->m_info.NotifyTxFailed ();
988
  station->m_slrc = 0;
1008
  bool longMpdu = (packet->GetSize () + header->GetSize () + WIFI_MAC_FCS_LENGTH) > m_rtsCtsThreshold;
1009
  if (longMpdu)
1010
    {
1011
      station->m_slrc = 0;
1012
    }
1013
  else
1014
    {
1015
      station->m_ssrc = 0;
1016
    }
989
  m_macTxFinalDataFailed (address);
1017
  m_macTxFinalDataFailed (address);
990
  DoReportFinalDataFailed (station);
1018
  DoReportFinalDataFailed (station);
991
}
1019
}
(-)a/src/wifi/model/wifi-remote-station-manager.h (-3 / +9 lines)
 Lines 659-666   public: Link Here 
659
   *
659
   *
660
   * \param address the address of the receiver
660
   * \param address the address of the receiver
661
   * \param header MAC header of the DATA packet
661
   * \param header MAC header of the DATA packet
662
   * \param packet the DATA packet
662
   */
663
   */
663
  void ReportDataFailed (Mac48Address address, const WifiMacHeader *header);
664
  void ReportDataFailed (Mac48Address address, const WifiMacHeader *header,
665
                         Ptr<const Packet> packet);
664
  /**
666
  /**
665
   * Should be invoked whenever we receive the Cts associated to an RTS
667
   * Should be invoked whenever we receive the Cts associated to an RTS
666
   * we just sent. Note that we also get the SNR of the RTS we sent since
668
   * we just sent. Note that we also get the SNR of the RTS we sent since
 Lines 683-691   public: Link Here 
683
   * \param ackSnr the SNR of the ACK we received
685
   * \param ackSnr the SNR of the ACK we received
684
   * \param ackMode the WifiMode the receiver used to send the ACK
686
   * \param ackMode the WifiMode the receiver used to send the ACK
685
   * \param dataSnr the SNR of the DATA we sent
687
   * \param dataSnr the SNR of the DATA we sent
688
   * \param packet the DATA packet
686
   */
689
   */
687
  void ReportDataOk (Mac48Address address, const WifiMacHeader *header,
690
  void ReportDataOk (Mac48Address address, const WifiMacHeader *header,
688
                     double ackSnr, WifiMode ackMode, double dataSnr);
691
                     double ackSnr, WifiMode ackMode, double dataSnr,
692
                     Ptr<const Packet> packet);
689
  /**
693
  /**
690
   * Should be invoked after calling ReportRtsFailed if
694
   * Should be invoked after calling ReportRtsFailed if
691
   * NeedRetransmission returns false
695
   * NeedRetransmission returns false
 Lines 700-707   public: Link Here 
700
   *
704
   *
701
   * \param address the address of the receiver
705
   * \param address the address of the receiver
702
   * \param header MAC header of the DATA packet
706
   * \param header MAC header of the DATA packet
707
   * \param packet the DATA packet
703
   */
708
   */
704
  void ReportFinalDataFailed (Mac48Address address, const WifiMacHeader *header);
709
  void ReportFinalDataFailed (Mac48Address address, const WifiMacHeader *header,
710
                              Ptr<const Packet> packet);
705
  /**
711
  /**
706
   * Typically called per A-MPDU, either when a Block ACK was successfully
712
   * Typically called per A-MPDU, either when a Block ACK was successfully
707
   * received or when a BlockAckTimeout has elapsed.
713
   * received or when a BlockAckTimeout has elapsed.
(-)a/src/wifi/test/power-rate-adaptation-test.cc (-49 / +49 lines)
 Lines 166-172   PowerRateAdaptationTest::TestParf () Link Here 
166
   */
166
   */
167
  for (int i = 0; i < 10; i++)
167
  for (int i = 0; i < 10; i++)
168
    {
168
    {
169
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
169
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
170
    }
170
    }
171
171
172
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
172
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 182-188   PowerRateAdaptationTest::TestParf () Link Here 
182
   * As we are using recovery power, one failure make power increase.
182
   * As we are using recovery power, one failure make power increase.
183
   *
183
   *
184
   */
184
   */
185
  manager->ReportDataFailed (remoteAddress, &packetHeader);
185
  manager->ReportDataFailed (remoteAddress, &packetHeader, packet);
186
186
187
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
187
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
188
  mode = txVector.GetMode ();
188
  mode = txVector.GetMode ();
 Lines 199-208   PowerRateAdaptationTest::TestParf () Link Here 
199
   */
199
   */
200
  for (int i = 0; i < 7; i++)
200
  for (int i = 0; i < 7; i++)
201
    {
201
    {
202
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
202
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
203
      manager->ReportDataFailed (remoteAddress, &packetHeader);
203
      manager->ReportDataFailed (remoteAddress, &packetHeader, packet);
204
    }
204
    }
205
  manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
205
  manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
206
206
207
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
207
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
208
  mode = txVector.GetMode ();
208
  mode = txVector.GetMode ();
 Lines 217-223   PowerRateAdaptationTest::TestParf () Link Here 
217
   * As we are using recovery power, one failure make power increase. recoveryPower=false.
217
   * As we are using recovery power, one failure make power increase. recoveryPower=false.
218
   */
218
   */
219
219
220
  manager->ReportDataFailed (remoteAddress, &packetHeader);
220
  manager->ReportDataFailed (remoteAddress, &packetHeader, packet);
221
221
222
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
222
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
223
  mode = txVector.GetMode ();
223
  mode = txVector.GetMode ();
 Lines 232-239   PowerRateAdaptationTest::TestParf () Link Here 
232
   * After two consecutive fails the rate is decreased or the power increased.
232
   * After two consecutive fails the rate is decreased or the power increased.
233
   * As we are at maximal power, the rate should be decreased.
233
   * As we are at maximal power, the rate should be decreased.
234
   */
234
   */
235
  manager->ReportDataFailed (remoteAddress, &packetHeader);
235
  manager->ReportDataFailed (remoteAddress, &packetHeader, packet);
236
  manager->ReportDataFailed (remoteAddress, &packetHeader);
236
  manager->ReportDataFailed (remoteAddress, &packetHeader, packet);
237
237
238
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
238
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
239
  mode = txVector.GetMode ();
239
  mode = txVector.GetMode ();
 Lines 250-256   PowerRateAdaptationTest::TestParf () Link Here 
250
   */
250
   */
251
  for (int i = 0; i < 10; i++)
251
  for (int i = 0; i < 10; i++)
252
    {
252
    {
253
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
253
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
254
    }
254
    }
255
255
256
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
256
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 266-272   PowerRateAdaptationTest::TestParf () Link Here 
266
   * As we are using recovery rate, one failure make rate decrease. recoveryRate=false.
266
   * As we are using recovery rate, one failure make rate decrease. recoveryRate=false.
267
   */
267
   */
268
268
269
  manager->ReportDataFailed (remoteAddress, &packetHeader);
269
  manager->ReportDataFailed (remoteAddress, &packetHeader, packet);
270
270
271
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
271
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
272
  mode = txVector.GetMode ();
272
  mode = txVector.GetMode ();
 Lines 283-289   PowerRateAdaptationTest::TestParf () Link Here 
283
   */
283
   */
284
  for (int i = 0; i < 10; i++)
284
  for (int i = 0; i < 10; i++)
285
    {
285
    {
286
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
286
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
287
    }
287
    }
288
288
289
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
289
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 301-307   PowerRateAdaptationTest::TestParf () Link Here 
301
   */
301
   */
302
  for (int i = 0; i < 10; i++)
302
  for (int i = 0; i < 10; i++)
303
    {
303
    {
304
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
304
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
305
    }
305
    }
306
306
307
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
307
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 317-327   PowerRateAdaptationTest::TestParf () Link Here 
317
   * One successful transmissions after a power decrease make recoverPower=false.
317
   * One successful transmissions after a power decrease make recoverPower=false.
318
   * So we need two consecutive failures to increase power again.
318
   * So we need two consecutive failures to increase power again.
319
   */
319
   */
320
  manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
320
  manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
321
321
322
  for (int i = 0; i < 2; i++)
322
  for (int i = 0; i < 2; i++)
323
    {
323
    {
324
      manager->ReportDataFailed (remoteAddress,&packetHeader);
324
      manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
325
    }
325
    }
326
326
327
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
327
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 387-393   PowerRateAdaptationTest::TestAparf () Link Here 
387
   */
387
   */
388
  for (int i = 0; i < 3; i++)
388
  for (int i = 0; i < 3; i++)
389
    {
389
    {
390
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
390
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
391
    }
391
    }
392
392
393
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
393
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 403-409   PowerRateAdaptationTest::TestAparf () Link Here 
403
   * One failure make the power to be increased again.
403
   * One failure make the power to be increased again.
404
   * Change to state Low.
404
   * Change to state Low.
405
   */
405
   */
406
  manager->ReportDataFailed (remoteAddress, &packetHeader);
406
  manager->ReportDataFailed (remoteAddress, &packetHeader, packet);
407
407
408
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
408
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
409
  mode = txVector.GetMode ();
409
  mode = txVector.GetMode ();
 Lines 421-427   PowerRateAdaptationTest::TestAparf () Link Here 
421
   */
421
   */
422
  for (int i = 0; i < 10; i++)
422
  for (int i = 0; i < 10; i++)
423
    {
423
    {
424
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
424
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
425
    }
425
    }
426
426
427
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
427
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 440-446   PowerRateAdaptationTest::TestAparf () Link Here 
440
440
441
  for (int i = 0; i < 3; i++)
441
  for (int i = 0; i < 3; i++)
442
    {
442
    {
443
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
443
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
444
    }
444
    }
445
445
446
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
446
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 458-464   PowerRateAdaptationTest::TestAparf () Link Here 
458
   */
458
   */
459
  for (int i = 0; i < 16 * 3; i++)
459
  for (int i = 0; i < 16 * 3; i++)
460
    {
460
    {
461
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
461
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
462
    }
462
    }
463
463
464
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
464
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 474-480   PowerRateAdaptationTest::TestAparf () Link Here 
474
   * After one fail the rate is decreased or the power increased.
474
   * After one fail the rate is decreased or the power increased.
475
   * As we are at minimal power, the power should be increased.
475
   * As we are at minimal power, the power should be increased.
476
   */
476
   */
477
  manager->ReportDataFailed (remoteAddress,&packetHeader);
477
  manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
478
478
479
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
479
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
480
  mode = txVector.GetMode ();
480
  mode = txVector.GetMode ();
 Lines 491-497   PowerRateAdaptationTest::TestAparf () Link Here 
491
   */
491
   */
492
  for (int i = 0; i < 16; i++)
492
  for (int i = 0; i < 16; i++)
493
    {
493
    {
494
      manager->ReportDataFailed (remoteAddress,&packetHeader);
494
      manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
495
    }
495
    }
496
496
497
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
497
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 508-514   PowerRateAdaptationTest::TestAparf () Link Here 
508
   * As we are at maximal power, the rate should be decreased.
508
   * As we are at maximal power, the rate should be decreased.
509
   * Set critical rate to 54 Mbps.
509
   * Set critical rate to 54 Mbps.
510
   */
510
   */
511
  manager->ReportDataFailed (remoteAddress,&packetHeader);
511
  manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
512
512
513
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
513
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
514
  mode = txVector.GetMode ();
514
  mode = txVector.GetMode ();
 Lines 525-531   PowerRateAdaptationTest::TestAparf () Link Here 
525
   */
525
   */
526
  for (int i = 0; i < 3; i++)
526
  for (int i = 0; i < 3; i++)
527
    {
527
    {
528
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
528
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
529
    }
529
    }
530
530
531
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
531
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 545-551   PowerRateAdaptationTest::TestAparf () Link Here 
545
   */
545
   */
546
  for (int i = 0; i < 9 * 3; i++)
546
  for (int i = 0; i < 9 * 3; i++)
547
    {
547
    {
548
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
548
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
549
    }
549
    }
550
550
551
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
551
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 557-563   PowerRateAdaptationTest::TestAparf () Link Here 
557
557
558
  for (int i = 0; i < 3; i++)
558
  for (int i = 0; i < 3; i++)
559
    {
559
    {
560
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
560
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
561
    }
561
    }
562
562
563
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
563
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 658-664   PowerRateAdaptationTest::TestRrpaa () Link Here 
658
   */
658
   */
659
  for (int i = 0; i < 6; i++)
659
  for (int i = 0; i < 6; i++)
660
    {
660
    {
661
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
661
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
662
    }
662
    }
663
663
664
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
664
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 671-677   PowerRateAdaptationTest::TestRrpaa () Link Here 
671
  /**
671
  /**
672
   * Test that 7 is enough.
672
   * Test that 7 is enough.
673
   */
673
   */
674
  manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
674
  manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
675
675
676
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
676
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
677
  mode = txVector.GetMode ();
677
  mode = txVector.GetMode ();
 Lines 688-694   PowerRateAdaptationTest::TestRrpaa () Link Here 
688
   */
688
   */
689
  for (int i = 0; i < 4; i++)
689
  for (int i = 0; i < 4; i++)
690
    {
690
    {
691
      manager->ReportDataFailed (remoteAddress,&packetHeader);
691
      manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
692
    }
692
    }
693
693
694
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
694
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 698-704   PowerRateAdaptationTest::TestRrpaa () Link Here 
698
  NS_TEST_ASSERT_MSG_EQ (mode.GetDataRate (txVector.GetChannelWidth (), txVector.GetGuardInterval (), 1), 9000000, "RRPAA: Incorrect vale of data rate");
698
  NS_TEST_ASSERT_MSG_EQ (mode.GetDataRate (txVector.GetChannelWidth (), txVector.GetGuardInterval (), 1), 9000000, "RRPAA: Incorrect vale of data rate");
699
  NS_TEST_ASSERT_MSG_EQ (power, 17, "RRPAA: Incorrect value of power level");
699
  NS_TEST_ASSERT_MSG_EQ (power, 17, "RRPAA: Incorrect value of power level");
700
700
701
  manager->ReportDataFailed (remoteAddress,&packetHeader);
701
  manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
702
702
703
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
703
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
704
  mode = txVector.GetMode ();
704
  mode = txVector.GetMode ();
 Lines 715-721   PowerRateAdaptationTest::TestRrpaa () Link Here 
715
715
716
  for (int i = 0; i < 7; i++)
716
  for (int i = 0; i < 7; i++)
717
    {
717
    {
718
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
718
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
719
    }
719
    }
720
720
721
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
721
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 727-733   PowerRateAdaptationTest::TestRrpaa () Link Here 
727
727
728
  for (int i = 0; i < 10; i++)
728
  for (int i = 0; i < 10; i++)
729
    {
729
    {
730
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
730
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
731
    }
731
    }
732
732
733
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
733
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 739-745   PowerRateAdaptationTest::TestRrpaa () Link Here 
739
739
740
  for (int i = 0; i < 13; i++)
740
  for (int i = 0; i < 13; i++)
741
    {
741
    {
742
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
742
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
743
    }
743
    }
744
744
745
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
745
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 751-757   PowerRateAdaptationTest::TestRrpaa () Link Here 
751
751
752
  for (int i = 0; i < 19; i++)
752
  for (int i = 0; i < 19; i++)
753
    {
753
    {
754
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
754
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
755
    }
755
    }
756
756
757
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
757
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 763-769   PowerRateAdaptationTest::TestRrpaa () Link Here 
763
763
764
  for (int i = 0; i < 23; i++)
764
  for (int i = 0; i < 23; i++)
765
    {
765
    {
766
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
766
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
767
    }
767
    }
768
768
769
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
769
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 775-781   PowerRateAdaptationTest::TestRrpaa () Link Here 
775
775
776
  for (int i = 0; i < 33; i++)
776
  for (int i = 0; i < 33; i++)
777
    {
777
    {
778
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
778
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
779
    }
779
    }
780
780
781
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
781
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 787-793   PowerRateAdaptationTest::TestRrpaa () Link Here 
787
787
788
  for (int i = 0; i < 43; i++)
788
  for (int i = 0; i < 43; i++)
789
    {
789
    {
790
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
790
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
791
    }
791
    }
792
792
793
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
793
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 807-813   PowerRateAdaptationTest::TestRrpaa () Link Here 
807
807
808
  for (int i = 0; i < 49; i++)
808
  for (int i = 0; i < 49; i++)
809
    {
809
    {
810
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
810
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
811
    }
811
    }
812
812
813
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
813
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 817-823   PowerRateAdaptationTest::TestRrpaa () Link Here 
817
  NS_TEST_ASSERT_MSG_EQ (mode.GetDataRate (txVector.GetChannelWidth (), txVector.GetGuardInterval (), 1), 54000000, "RRPAA: Incorrect vale of data rate");
817
  NS_TEST_ASSERT_MSG_EQ (mode.GetDataRate (txVector.GetChannelWidth (), txVector.GetGuardInterval (), 1), 54000000, "RRPAA: Incorrect vale of data rate");
818
  NS_TEST_ASSERT_MSG_EQ (power, 17, "RRPAA: Incorrect value of power level");
818
  NS_TEST_ASSERT_MSG_EQ (power, 17, "RRPAA: Incorrect value of power level");
819
819
820
  manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
820
  manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
821
821
822
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
822
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
823
  mode = txVector.GetMode ();
823
  mode = txVector.GetMode ();
 Lines 835-841   PowerRateAdaptationTest::TestRrpaa () Link Here 
835
835
836
  for (int i = 0; i < 16 * 50; i++)
836
  for (int i = 0; i < 16 * 50; i++)
837
    {
837
    {
838
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
838
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
839
    }
839
    }
840
840
841
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
841
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 853-859   PowerRateAdaptationTest::TestRrpaa () Link Here 
853
853
854
  for (int i = 0; i < 6; i++)
854
  for (int i = 0; i < 6; i++)
855
    {
855
    {
856
      manager->ReportDataFailed (remoteAddress,&packetHeader);
856
      manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
857
    }
857
    }
858
858
859
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
859
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 871-877   PowerRateAdaptationTest::TestRrpaa () Link Here 
871
871
872
  for (int i = 0; i < 16 * 6; i++)
872
  for (int i = 0; i < 16 * 6; i++)
873
    {
873
    {
874
      manager->ReportDataFailed (remoteAddress,&packetHeader);
874
      manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
875
    }
875
    }
876
876
877
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
877
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 889-895   PowerRateAdaptationTest::TestRrpaa () Link Here 
889
889
890
  for (int i = 0; i < 6; i++)
890
  for (int i = 0; i < 6; i++)
891
    {
891
    {
892
      manager->ReportDataFailed (remoteAddress,&packetHeader);
892
      manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
893
    }
893
    }
894
894
895
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
895
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 905-911   PowerRateAdaptationTest::TestRrpaa () Link Here 
905
905
906
  for (int i = 0; i < 11; i++)
906
  for (int i = 0; i < 11; i++)
907
    {
907
    {
908
      manager->ReportDataFailed (remoteAddress,&packetHeader);
908
      manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
909
    }
909
    }
910
910
911
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
911
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 925-931   PowerRateAdaptationTest::TestRrpaa () Link Here 
925
925
926
  for (int i = 0; i < 25; i++)
926
  for (int i = 0; i < 25; i++)
927
    {
927
    {
928
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
928
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
929
    }
929
    }
930
930
931
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
931
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 937-943   PowerRateAdaptationTest::TestRrpaa () Link Here 
937
937
938
  for (int i = 0; i < 5; i++)
938
  for (int i = 0; i < 5; i++)
939
    {
939
    {
940
      manager->ReportDataFailed (remoteAddress,&packetHeader);
940
      manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
941
    }
941
    }
942
942
943
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
943
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 949-955   PowerRateAdaptationTest::TestRrpaa () Link Here 
949
949
950
  for (int i = 0; i < 5; i++)
950
  for (int i = 0; i < 5; i++)
951
    {
951
    {
952
      manager->ReportDataFailed (remoteAddress,&packetHeader);
952
      manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
953
    }
953
    }
954
954
955
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
955
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 961-967   PowerRateAdaptationTest::TestRrpaa () Link Here 
961
961
962
  for (int i = 0; i < 25; i++)
962
  for (int i = 0; i < 25; i++)
963
    {
963
    {
964
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
964
      manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
965
    }
965
    }
966
966
967
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
967
  txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet);
 Lines 981-992   PowerRateAdaptationTest::TestRrpaa () Link Here 
981
    {
981
    {
982
      for (int j = 0; j < 25; j++)
982
      for (int j = 0; j < 25; j++)
983
        {
983
        {
984
          manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
984
          manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet);
985
        }
985
        }
986
986
987
      for (int j = 0; j < 5; j++)
987
      for (int j = 0; j < 5; j++)
988
        {
988
        {
989
          manager->ReportDataFailed (remoteAddress,&packetHeader);
989
          manager->ReportDataFailed (remoteAddress,&packetHeader, packet);
990
        }
990
        }
991
    }
991
    }
992
992

Return to bug 2926