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

(-)a/src/wifi/model/block-ack-agreement.cc (-2 / +1 lines)
 Lines 46-53   void Link Here 
46
BlockAckAgreement::SetBufferSize (uint16_t bufferSize)
46
BlockAckAgreement::SetBufferSize (uint16_t bufferSize)
47
{
47
{
48
  NS_LOG_FUNCTION (this << bufferSize);
48
  NS_LOG_FUNCTION (this << bufferSize);
49
  NS_ASSERT (bufferSize <= 1024);
49
  NS_ASSERT (bufferSize > 0 && bufferSize <= 1024);
50
  NS_ASSERT (bufferSize % 16 == 0);
51
  m_bufferSize = bufferSize;
50
  m_bufferSize = bufferSize;
52
}
51
}
53
52
(-)a/src/wifi/model/block-ack-manager.cc (-2 / +26 lines)
 Lines 84-89   BlockAckManager::ExistsAgreement (Mac48Address recipient, uint8_t tid) const Link Here 
84
  return (m_agreements.find (std::make_pair (recipient, tid)) != m_agreements.end ());
84
  return (m_agreements.find (std::make_pair (recipient, tid)) != m_agreements.end ());
85
}
85
}
86
86
87
uint16_t
88
BlockAckManager::GetAgreementBufferSize (Mac48Address recipient, uint8_t tid) const
89
{
90
  NS_LOG_FUNCTION (this << recipient << static_cast<uint16_t> (tid));
91
  NS_ASSERT (ExistsAgreement (recipient, tid));
92
  uint16_t bufferSize = m_agreements.find (std::make_pair (recipient, tid))->second.first.GetBufferSize ();
93
  return bufferSize;
94
}
95
96
void
97
BlockAckManager::SetMaxBufferSize (uint16_t maxBufferSize)
98
{
99
  NS_LOG_FUNCTION (this << maxBufferSize);
100
  NS_ASSERT (maxBufferSize > 0 && maxBufferSize < 1024);
101
  m_maxBufferSize = maxBufferSize;
102
}
103
104
uint16_t
105
BlockAckManager::GetMaxBufferSize (void) const
106
{
107
  return m_maxBufferSize;
108
}
109
87
bool
110
bool
88
BlockAckManager::ExistsAgreementInState (Mac48Address recipient, uint8_t tid,
111
BlockAckManager::ExistsAgreementInState (Mac48Address recipient, uint8_t tid,
89
                                         OriginatorBlockAckAgreement::State state) const
112
                                         OriginatorBlockAckAgreement::State state) const
 Lines 119-125   BlockAckManager::CreateAgreement (const MgtAddBaRequestHeader *reqHdr, Mac48Addr Link Here 
119
  agreement.SetStartingSequence (reqHdr->GetStartingSequence ());
142
  agreement.SetStartingSequence (reqHdr->GetStartingSequence ());
120
  /* For now we assume that originator doesn't use this field. Use of this field
143
  /* For now we assume that originator doesn't use this field. Use of this field
121
     is mandatory only for recipient */
144
     is mandatory only for recipient */
122
  agreement.SetBufferSize (64);
145
  agreement.SetBufferSize (m_maxBufferSize < 64 ? m_maxBufferSize : 64);
123
  agreement.SetWinEnd ((agreement.GetStartingSequence () + agreement.GetBufferSize () - 1) % 4096);
146
  agreement.SetWinEnd ((agreement.GetStartingSequence () + agreement.GetBufferSize () - 1) % 4096);
124
  agreement.SetTimeout (reqHdr->GetTimeout ());
147
  agreement.SetTimeout (reqHdr->GetTimeout ());
125
  agreement.SetAmsduSupport (reqHdr->IsAmsduSupported ());
148
  agreement.SetAmsduSupport (reqHdr->IsAmsduSupported ());
 Lines 182-188   BlockAckManager::UpdateAgreement (const MgtAddBaResponseHeader *respHdr, Mac48Ad Link Here 
182
  if (it != m_agreements.end ())
205
  if (it != m_agreements.end ())
183
    {
206
    {
184
      OriginatorBlockAckAgreement& agreement = it->second.first;
207
      OriginatorBlockAckAgreement& agreement = it->second.first;
185
      agreement.SetBufferSize (respHdr->GetBufferSize () + 1);
208
      uint16_t bufferSize = respHdr->GetBufferSize () + 1;
209
      agreement.SetBufferSize (bufferSize < m_maxBufferSize ? bufferSize : m_maxBufferSize);
186
      agreement.SetTimeout (respHdr->GetTimeout ());
210
      agreement.SetTimeout (respHdr->GetTimeout ());
187
      agreement.SetAmsduSupport (respHdr->IsAmsduSupported ());
211
      agreement.SetAmsduSupport (respHdr->IsAmsduSupported ());
188
      if (respHdr->IsImmediateBlockAck ())
212
      if (respHdr->IsImmediateBlockAck ())
(-)a/src/wifi/model/block-ack-manager.h (-2 / +26 lines)
 Lines 142-147   public: Link Here 
142
   */
142
   */
143
  void UpdateAgreement (const MgtAddBaResponseHeader *respHdr, Mac48Address recipient);
143
  void UpdateAgreement (const MgtAddBaResponseHeader *respHdr, Mac48Address recipient);
144
  /**
144
  /**
145
   * \param recipient Address of peer station involved in block ack mechanism.
146
   * \param tid Traffic ID.
147
   *
148
   * \return the buffer size negotiated for this peer and for the given TID
149
   *
150
   * Returns the negotiated buffer size of an existing block ack agreement
151
   * with station addressed by <i>recipient</i> for tid <i>tid</i>.
152
   */
153
  uint16_t GetAgreementBufferSize (Mac48Address recipient, uint8_t tid) const;
154
  /**
155
   * \param maxBufferSize Maximum buffer size for the underlying device
156
   *
157
   * Sets the maximum buffer size supported by the device. Will be enforced when negotiating
158
   * block ack agreements.
159
   */
160
  void SetMaxBufferSize (uint16_t maxBufferSize);
161
  /**
162
   * \return the maximum buffer size for the underlying device
163
   *
164
   * This method returns the maximum buffer size supported by the device.
165
   */
166
  uint16_t GetMaxBufferSize (void) const;
167
  /**
145
   * \param packet Packet to store.
168
   * \param packet Packet to store.
146
   * \param hdr 802.11 header for packet.
169
   * \param hdr 802.11 header for packet.
147
   * \param tStamp time stamp for packet
170
   * \param tStamp time stamp for packet
 Lines 490-497   private: Link Here 
490
  std::list<PacketQueueI> m_retryPackets;
513
  std::list<PacketQueueI> m_retryPackets;
491
  std::list<Bar> m_bars; ///< list of BARs
514
  std::list<Bar> m_bars; ///< list of BARs
492
515
493
  uint8_t m_blockAckThreshold; ///< bock ack threshold
516
  uint8_t m_blockAckThreshold; ///< block ack threshold
494
  BlockAckType m_blockAckType; ///< bock ack type
517
  BlockAckType m_blockAckType; ///< block ack type
495
  Time m_maxDelay; ///< maximum delay
518
  Time m_maxDelay; ///< maximum delay
496
  Ptr<MacTxMiddle> m_txMiddle; ///< the MacTxMiddle
519
  Ptr<MacTxMiddle> m_txMiddle; ///< the MacTxMiddle
497
  Mac48Address m_address; ///< address
520
  Mac48Address m_address; ///< address
 Lines 502-507   private: Link Here 
502
  TxOk m_txOkCallback; ///< transmit ok callback
525
  TxOk m_txOkCallback; ///< transmit ok callback
503
  TxFailed m_txFailedCallback; ///< transmit failed callback
526
  TxFailed m_txFailedCallback; ///< transmit failed callback
504
  Ptr<WifiRemoteStationManager> m_stationManager; ///< the station manager
527
  Ptr<WifiRemoteStationManager> m_stationManager; ///< the station manager
528
  uint16_t m_maxBufferSize;     ///< maximum buffer size supported by the device
505
};
529
};
506
530
507
} //namespace ns3
531
} //namespace ns3
(-)a/src/wifi/model/edca-txop-n.cc (-8 / +24 lines)
 Lines 101-109   EdcaTxopN::DoDispose (void) Link Here 
101
}
101
}
102
102
103
bool
103
bool
104
EdcaTxopN::GetBaAgreementExists (Mac48Address address, uint8_t tid) const
104
EdcaTxopN::GetEstablishedBaAgreementExists (Mac48Address address, uint8_t tid) const
105
{
105
{
106
  return m_baManager->ExistsAgreement (address, tid);
106
  return m_baManager->ExistsAgreementInState (address, tid, OriginatorBlockAckAgreement::ESTABLISHED);
107
}
108
109
uint16_t
110
EdcaTxopN::GetAgreementBufferSize (Mac48Address recipient, uint8_t tid) const
111
{
112
  NS_LOG_FUNCTION (this << recipient << static_cast<uint16_t> (tid));
113
  NS_ASSERT (GetEstablishedBaAgreementExists (recipient, tid));
114
  uint16_t bufferSize = m_baManager->GetAgreementBufferSize (recipient, tid);
115
  return bufferSize;
116
}
117
118
Ptr<BlockAckManager>
119
EdcaTxopN::GetBlockAckManager (void) const
120
{
121
  return m_baManager;
107
}
122
}
108
123
109
void
124
void
 Lines 435-441   EdcaTxopN::MissedCts (void) Link Here 
435
          uint8_t tid = GetTid (m_currentPacket, m_currentHdr);
450
          uint8_t tid = GetTid (m_currentPacket, m_currentHdr);
436
          m_low->FlushAggregateQueue (tid);
451
          m_low->FlushAggregateQueue (tid);
437
452
438
          if (GetBaAgreementExists (m_currentHdr.GetAddr1 (), tid))
453
          if (GetEstablishedBaAgreementExists (m_currentHdr.GetAddr1 (), tid))
439
            {
454
            {
440
              NS_LOG_DEBUG ("Transmit Block Ack Request");
455
              NS_LOG_DEBUG ("Transmit Block Ack Request");
441
              CtrlBAckRequestHeader reqHdr;
456
              CtrlBAckRequestHeader reqHdr;
 Lines 563-569   EdcaTxopN::MissedAck (void) Link Here 
563
        {
578
        {
564
          uint8_t tid = GetTid (m_currentPacket, m_currentHdr);
579
          uint8_t tid = GetTid (m_currentPacket, m_currentHdr);
565
580
566
          if (GetBaAgreementExists (m_currentHdr.GetAddr1 (), tid))
581
          if (GetEstablishedBaAgreementExists (m_currentHdr.GetAddr1 (), tid))
567
            {
582
            {
568
              //send Block ACK Request in order to shift WinStart at the receiver
583
              //send Block ACK Request in order to shift WinStart at the receiver
569
              NS_LOG_DEBUG ("Transmit Block Ack Request");
584
              NS_LOG_DEBUG ("Transmit Block Ack Request");
 Lines 955-961   EdcaTxopN::NeedFragmentation (void) const Link Here 
955
      || GetAmpduExist (m_currentHdr.GetAddr1 ())
970
      || GetAmpduExist (m_currentHdr.GetAddr1 ())
956
      || (m_stationManager->HasHtSupported ()
971
      || (m_stationManager->HasHtSupported ()
957
          && m_currentHdr.IsQosData ()
972
          && m_currentHdr.IsQosData ()
958
          && GetBaAgreementExists (m_currentHdr.GetAddr1 (), GetTid (m_currentPacket, m_currentHdr))
973
          && GetEstablishedBaAgreementExists (m_currentHdr.GetAddr1 (), GetTid (m_currentPacket, m_currentHdr))
959
          && GetMpduAggregator ()->GetMaxAmpduSize () >= m_currentPacket->GetSize ()))
974
          && GetMpduAggregator ()->GetMaxAmpduSize () >= m_currentPacket->GetSize ()))
960
    {
975
    {
961
      //MSDU is not fragmented when it is transmitted using an HT-immediate or
976
      //MSDU is not fragmented when it is transmitted using an HT-immediate or
 Lines 1469-1478   EdcaTxopN::SendAddBaRequest (Mac48Address dest, uint8_t tid, uint16_t startSeq, Link Here 
1469
      reqHdr.SetDelayedBlockAck ();
1484
      reqHdr.SetDelayedBlockAck ();
1470
    }
1485
    }
1471
  reqHdr.SetTid (tid);
1486
  reqHdr.SetTid (tid);
1472
  /* For now we don't use buffer size field in the ADDBA request frame. The recipient
1487
  /* Send the device's max buffer size field in the ADDBA request frame to facilitate analysis through sniffers.
1473
   * will choose how many packets it can receive under block ack.
1488
   * Note that this information is only advisory since it's up to the recipient to choose how many packets
1489
   * it can receive under block ack.
1474
   */
1490
   */
1475
  reqHdr.SetBufferSize (0);
1491
  reqHdr.SetBufferSize (m_baManager->GetMaxBufferSize () - 1);
1476
  reqHdr.SetTimeout (timeout);
1492
  reqHdr.SetTimeout (timeout);
1477
  reqHdr.SetStartingSequence (startSeq);
1493
  reqHdr.SetStartingSequence (startSeq);
1478
1494
(-)a/src/wifi/model/edca-txop-n.h (-2 / +18 lines)
 Lines 127-136   public: Link Here 
127
   *
127
   *
128
   * \return true if a block ack agreement exists, false otherwise.
128
   * \return true if a block ack agreement exists, false otherwise.
129
   *
129
   *
130
   * Checks if a block ack agreement exists with station addressed by
130
   * Checks if an established block ack agreement exists with station addressed by
131
   * <i>recipient</i> for tid <i>tid</i>.
131
   * <i>recipient</i> for tid <i>tid</i>.
132
   */
132
   */
133
  bool GetBaAgreementExists (Mac48Address address, uint8_t tid) const;
133
  bool GetEstablishedBaAgreementExists (Mac48Address address, uint8_t tid) const;
134
  /**
135
   * \param recipient Address of peer station involved in block ack mechanism.
136
   * \param tid traffic ID.
137
   *
138
   * \return the buffer size negotiated for this peer and for the given TID
139
   *
140
   * Returns the negotiated buffer size of an existing block ack agreement
141
   * with station addressed by <i>recipient</i> for tid <i>tid</i>.
142
   */
143
  uint16_t GetAgreementBufferSize (Mac48Address recipient, uint8_t tid) const;
144
  /**
145
   * \return a smart pointer to BlockAckManager
146
   *
147
   * Accessor for the Block ACK manager
148
   */
149
  Ptr<BlockAckManager> GetBlockAckManager (void) const;
134
  /**
150
  /**
135
   * \param recipient address of peer station involved in block ack mechanism.
151
   * \param recipient address of peer station involved in block ack mechanism.
136
   * \param tid Ttraffic ID of transmitted packet.
152
   * \param tid Ttraffic ID of transmitted packet.
(-)a/src/wifi/model/mac-low.cc (-5 / +7 lines)
 Lines 2456-2463   MacLow::AggregateToAmpdu (Ptr<const Packet> packet, const WifiMacHeader hdr) Link Here 
2456
2456
2457
      if (!hdr.GetAddr1 ().IsBroadcast () && edcaIt->second->GetMpduAggregator () != 0)
2457
      if (!hdr.GetAddr1 ().IsBroadcast () && edcaIt->second->GetMpduAggregator () != 0)
2458
        {
2458
        {
2459
          //Have to make sure that their exist a block Ack agreement before sending an AMPDU (BlockAck Manager)
2459
          //Have to make sure that their exist an established block Ack agreement before sending an AMPDU (BlockAck Manager)
2460
          if (edcaIt->second->GetBaAgreementExists (hdr.GetAddr1 (), tid))
2460
          if (edcaIt->second->GetEstablishedBaAgreementExists (hdr.GetAddr1 (), tid))
2461
            {
2461
            {
2462
              /* here is performed mpdu aggregation */
2462
              /* here is performed mpdu aggregation */
2463
              /* MSDU aggregation happened in edca if the user asked for it so m_currentPacket may contains a normal packet or a A-MSDU*/
2463
              /* MSDU aggregation happened in edca if the user asked for it so m_currentPacket may contains a normal packet or a A-MSDU*/
 Lines 2531-2537   MacLow::AggregateToAmpdu (Ptr<const Packet> packet, const WifiMacHeader hdr) Link Here 
2531
                  currentSequenceNumber = peekedHdr.GetSequenceNumber ();
2531
                  currentSequenceNumber = peekedHdr.GetSequenceNumber ();
2532
                }
2532
                }
2533
2533
2534
              while (IsInWindow (currentSequenceNumber, startingSequenceNumber, 64) && !StopMpduAggregation (peekedPacket, peekedHdr, currentAggregatedPacket, blockAckSize))
2534
              while (IsInWindow (currentSequenceNumber, startingSequenceNumber, edcaIt->second->GetAgreementBufferSize (peekedHdr.GetAddr1 (), tid))
2535
                  && !StopMpduAggregation (peekedPacket, peekedHdr, currentAggregatedPacket, blockAckSize))
2535
                {
2536
                {
2536
                  //for now always send AMPDU with normal ACK
2537
                  //for now always send AMPDU with normal ACK
2537
                  if (retry == false)
2538
                  if (retry == false)
 Lines 2641-2647   MacLow::AggregateToAmpdu (Ptr<const Packet> packet, const WifiMacHeader hdr) Link Here 
2641
                          //find what will the sequence number be so that we don't send more than 64 packets apart
2642
                          //find what will the sequence number be so that we don't send more than 64 packets apart
2642
                          currentSequenceNumber = edcaIt->second->PeekNextSequenceNumberFor (&peekedHdr);
2643
                          currentSequenceNumber = edcaIt->second->PeekNextSequenceNumberFor (&peekedHdr);
2643
2644
2644
                          if (edcaIt->second->GetMsduAggregator () != 0 && IsInWindow (currentSequenceNumber, startingSequenceNumber, 64))
2645
                          if (edcaIt->second->GetMsduAggregator () != 0
2646
                              && IsInWindow (currentSequenceNumber, startingSequenceNumber, edcaIt->second->GetAgreementBufferSize (peekedHdr.GetAddr1 (), tid)))
2645
                            {
2647
                            {
2646
                              tempPacket = PerformMsduAggregation (peekedPacket, &peekedHdr, &tstamp, currentAggregatedPacket, blockAckSize);
2648
                              tempPacket = PerformMsduAggregation (peekedPacket, &peekedHdr, &tstamp, currentAggregatedPacket, blockAckSize);
2647
                              if (tempPacket != 0) //MSDU aggregation
2649
                              if (tempPacket != 0) //MSDU aggregation
 Lines 2713-2719   MacLow::AggregateToAmpdu (Ptr<const Packet> packet, const WifiMacHeader hdr) Link Here 
2713
                {
2715
                {
2714
                  InsertInTxQueue (packet, peekedHdr, tstamp, tid);
2716
                  InsertInTxQueue (packet, peekedHdr, tstamp, tid);
2715
                }
2717
                }
2716
              if (edcaIt->second->GetBaAgreementExists (hdr.GetAddr1 (), tid))
2718
              if (edcaIt->second->GetEstablishedBaAgreementExists (hdr.GetAddr1 (), tid))
2717
                {
2719
                {
2718
                  edcaIt->second->CompleteAmpduTransfer (peekedHdr.GetAddr1 (), tid);
2720
                  edcaIt->second->CompleteAmpduTransfer (peekedHdr.GetAddr1 (), tid);
2719
                }
2721
                }
(-)a/src/wifi/model/regular-wifi-mac.cc (-7 / +25 lines)
 Lines 1047-1059   RegularWifiMac::SendAddBaResponse (const MgtAddBaRequestHeader *reqHdr, Link Here 
1047
      respHdr.SetDelayedBlockAck ();
1047
      respHdr.SetDelayedBlockAck ();
1048
    }
1048
    }
1049
  respHdr.SetTid (reqHdr->GetTid ());
1049
  respHdr.SetTid (reqHdr->GetTid ());
1050
  //For now there's not no control about limit of reception. We
1050
  //Since only compressed bitmap is used for block acks, enforce limitation
1051
  //assume that receiver has no limit on reception. However we assume
1051
  //of 64. The footpage note in section 7.3.1.14 in IEEE802.11e (or equivalently
1052
  //that a receiver sets a bufferSize in order to satisfy next
1052
  //the one in 9.4.1.14 in IEEE802.11-2016) specifies that a buffer space is used
1053
  //equation: (bufferSize + 1) % 16 = 0 So if a recipient is able to
1053
  //irrespective of whether a small MSDU fragment or a full-size A-MSDU is considered).
1054
  //buffer a packet, it should be also able to buffer all possible
1054
  //In addition, since the buffer size in the ADDBA request is only advisory
1055
  //packet's fragments. See section 7.3.1.14 in IEEE802.11e for more details.
1055
  //it'll not be used here. However, the device's max buffer size has to be enforced.
1056
  respHdr.SetBufferSize (1023);
1056
  uint16_t maxBufferSize = m_edca[QosUtilsMapTidToAc (respHdr.GetTid ())]->GetBlockAckManager ()->GetMaxBufferSize ();
1057
  uint16_t negotiatedBufferSize = maxBufferSize < 64 ? maxBufferSize : 64;
1058
  respHdr.SetBufferSize (negotiatedBufferSize - 1);
1057
  respHdr.SetTimeout (reqHdr->GetTimeout ());
1059
  respHdr.SetTimeout (reqHdr->GetTimeout ());
1058
1060
1059
  WifiActionHeader actionHdr;
1061
  WifiActionHeader actionHdr;
 Lines 1257-1262   RegularWifiMac::GetTypeId (void) Link Here 
1257
                   PointerValue (),
1259
                   PointerValue (),
1258
                   MakePointerAccessor (&RegularWifiMac::GetBKQueue),
1260
                   MakePointerAccessor (&RegularWifiMac::GetBKQueue),
1259
                   MakePointerChecker<EdcaTxopN> ())
1261
                   MakePointerChecker<EdcaTxopN> ())
1262
    .AddAttribute ("MaxBlockAckBufferSize",
1263
                   "Maximum Block ACK buffer size that this device can support."
1264
                   "Will be configured in all BlockAckManagers of all EdcaTxopN instances.",
1265
                   UintegerValue (64),
1266
                   MakeUintegerAccessor (&RegularWifiMac::SetMaxBlockAckBufferSize),
1267
                   MakeUintegerChecker<uint16_t> (1, 1024))
1260
    .AddTraceSource ("TxOkHeader",
1268
    .AddTraceSource ("TxOkHeader",
1261
                     "The header of successfully transmitted packet.",
1269
                     "The header of successfully transmitted packet.",
1262
                     MakeTraceSourceAccessor (&RegularWifiMac::m_txOkCallback),
1270
                     MakeTraceSourceAccessor (&RegularWifiMac::m_txOkCallback),
 Lines 1327-1332   RegularWifiMac::ConfigureContentionWindow (uint32_t cwMin, uint32_t cwMax) Link Here 
1327
}
1335
}
1328
1336
1329
void
1337
void
1338
RegularWifiMac::SetMaxBlockAckBufferSize (uint16_t maxBufferSize)
1339
{
1340
  NS_LOG_FUNCTION (this << maxBufferSize);
1341
  for (EdcaQueues::const_iterator i = m_edca.begin (); i != m_edca.end (); ++i)
1342
    {
1343
      i->second->GetBlockAckManager ()->SetMaxBufferSize (maxBufferSize);
1344
    }
1345
}
1346
1347
void
1330
RegularWifiMac::TxOk (const WifiMacHeader &hdr)
1348
RegularWifiMac::TxOk (const WifiMacHeader &hdr)
1331
{
1349
{
1332
  NS_LOG_FUNCTION (this << hdr);
1350
  NS_LOG_FUNCTION (this << hdr);
(-)a/src/wifi/model/regular-wifi-mac.h (+7 lines)
 Lines 697-702   private: Link Here 
697
  void EnableAggregation (void);
697
  void EnableAggregation (void);
698
  /// Disable aggregation function
698
  /// Disable aggregation function
699
  void DisableAggregation (void);
699
  void DisableAggregation (void);
700
  /**
701
   * Set the maximum Block ACK buffer size that this device can support.
702
   * Will be configured in all BlockAckManagers of all EdcaTxopN instances.
703
   *
704
   * \param maxBufferSize the maximum Block ACK buffer size.
705
   */
706
  void SetMaxBlockAckBufferSize (uint16_t maxBufferSize);
700
707
701
  uint32_t m_voMaxAmsduSize; ///< maximum A-MSDU size for AC_VO
708
  uint32_t m_voMaxAmsduSize; ///< maximum A-MSDU size for AC_VO
702
  uint32_t m_viMaxAmsduSize; ///< maximum A-MSDU size for AC_VI
709
  uint32_t m_viMaxAmsduSize; ///< maximum A-MSDU size for AC_VI
(-)a/src/wifi/test/wifi-aggregation-test.cc (+2 lines)
 Lines 101-106   AmpduAggregationTest::DoRun (void) Link Here 
101
  m_txMiddle = Create<MacTxMiddle> ();
101
  m_txMiddle = Create<MacTxMiddle> ();
102
  m_edca->SetTxMiddle (m_txMiddle);
102
  m_edca->SetTxMiddle (m_txMiddle);
103
  m_edca->CompleteConfig ();
103
  m_edca->CompleteConfig ();
104
  m_edca->m_baManager->SetMaxBufferSize (64);
104
105
105
  /*
106
  /*
106
   * Configure MPDU aggregation.
107
   * Configure MPDU aggregation.
 Lines 137-142   AmpduAggregationTest::DoRun (void) Link Here 
137
  reqHdr.SetTimeout (0);
138
  reqHdr.SetTimeout (0);
138
  reqHdr.SetStartingSequence (0);
139
  reqHdr.SetStartingSequence (0);
139
  m_edca->m_baManager->CreateAgreement (&reqHdr, hdr.GetAddr1 ());
140
  m_edca->m_baManager->CreateAgreement (&reqHdr, hdr.GetAddr1 ());
141
  m_edca->m_baManager->NotifyAgreementEstablished (hdr.GetAddr1 (), 0, 0); //to force to established state
140
142
141
  //-----------------------------------------------------------------------------------------------------
143
  //-----------------------------------------------------------------------------------------------------
142
144

Return to bug 2870