wifi: Fill in Block Ack Parameter Set field as per specs
This commit is contained in:
committed by
Stefano Avallone
parent
c37f7fa784
commit
ca589eadbd
@@ -185,7 +185,7 @@ BlockAckManager::UpdateAgreement (const MgtAddBaResponseHeader *respHdr, Mac48Ad
|
||||
if (it != m_agreements.end ())
|
||||
{
|
||||
OriginatorBlockAckAgreement& agreement = it->second.first;
|
||||
agreement.SetBufferSize (respHdr->GetBufferSize () + 1);
|
||||
agreement.SetBufferSize (respHdr->GetBufferSize ());
|
||||
agreement.SetTimeout (respHdr->GetTimeout ());
|
||||
agreement.SetAmsduSupport (respHdr->IsAmsduSupported ());
|
||||
agreement.SetStartingSequence (startingSeq);
|
||||
@@ -549,7 +549,7 @@ BlockAckManager::NotifyGotBlockAck (const CtrlBAckResponseHeader& blockAck, Mac4
|
||||
}
|
||||
return {nSuccessfulMpdus, nFailedMpdus};
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
BlockAckManager::NotifyMissedBlockAck (Mac48Address recipient, uint8_t tid)
|
||||
{
|
||||
|
||||
@@ -219,7 +219,7 @@ HtFrameExchangeManager::SendAddBaResponse (const MgtAddBaRequestHeader *reqHdr,
|
||||
}
|
||||
respHdr.SetTid (reqHdr->GetTid ());
|
||||
|
||||
respHdr.SetBufferSize (GetSupportedBaBufferSize () - 1);
|
||||
respHdr.SetBufferSize (GetSupportedBaBufferSize ());
|
||||
respHdr.SetTimeout (reqHdr->GetTimeout ());
|
||||
|
||||
WifiActionHeader actionHdr;
|
||||
@@ -288,9 +288,9 @@ HtFrameExchangeManager::CreateBlockAckAgreement (const MgtAddBaResponseHeader *r
|
||||
{
|
||||
NS_LOG_FUNCTION (this << *respHdr << originator << startingSeq);
|
||||
uint8_t tid = respHdr->GetTid ();
|
||||
|
||||
|
||||
RecipientBlockAckAgreement agreement (originator, respHdr->IsAmsduSupported (), tid,
|
||||
respHdr->GetBufferSize () + 1, respHdr->GetTimeout (),
|
||||
respHdr->GetBufferSize (), respHdr->GetTimeout (),
|
||||
startingSeq,
|
||||
m_mac->GetWifiRemoteStationManager ()->GetHtSupported ()
|
||||
&& m_mac->GetWifiRemoteStationManager ()->GetHtSupported (originator));
|
||||
@@ -941,7 +941,7 @@ HtFrameExchangeManager::IsWithinLimitsIfAddMpdu (Ptr<const WifiMacQueueItem> mpd
|
||||
{
|
||||
NS_ASSERT (mpdu != 0);
|
||||
NS_LOG_FUNCTION (this << *mpdu << &txParams << ppduDurationLimit);
|
||||
|
||||
|
||||
Mac48Address receiver = mpdu->GetHeader ().GetAddr1 ();
|
||||
uint32_t ampduSize = txParams.GetSizeIfAddMpdu (mpdu);
|
||||
|
||||
@@ -1361,7 +1361,7 @@ HtFrameExchangeManager::ReceiveMpdu (Ptr<WifiMacQueueItem> mpdu, RxSignalInfo rx
|
||||
mpdu->GetPacket ()->PeekHeader (blockAckReq);
|
||||
NS_ABORT_MSG_IF (blockAckReq.IsMultiTid (), "Multi-TID BlockAckReq not supported");
|
||||
uint8_t tid = blockAckReq.GetTidInfo ();
|
||||
|
||||
|
||||
auto agreementIt = m_agreements.find ({sender, tid});
|
||||
|
||||
if (agreementIt == m_agreements.end ())
|
||||
|
||||
@@ -176,7 +176,7 @@ AmpduAggregationTest::DoRun (void)
|
||||
respHdr.SetAmsduSupport (reqHdr.IsAmsduSupported ());
|
||||
respHdr.SetImmediateBlockAck ();
|
||||
respHdr.SetTid (reqHdr.GetTid ());
|
||||
respHdr.SetBufferSize (63);
|
||||
respHdr.SetBufferSize (64);
|
||||
respHdr.SetTimeout (reqHdr.GetTimeout ());
|
||||
m_mac->GetBEQueue ()->GetBaManager ()->UpdateAgreement (&respHdr, hdr.GetAddr1 (), 0);
|
||||
|
||||
@@ -477,7 +477,7 @@ TwoLevelAggregationTest::DoRun (void)
|
||||
respHdr.SetAmsduSupport (reqHdr.IsAmsduSupported ());
|
||||
respHdr.SetImmediateBlockAck ();
|
||||
respHdr.SetTid (reqHdr.GetTid ());
|
||||
respHdr.SetBufferSize (63);
|
||||
respHdr.SetBufferSize (64);
|
||||
respHdr.SetTimeout (reqHdr.GetTimeout ());
|
||||
m_mac->GetVIQueue ()->GetBaManager ()->UpdateAgreement (&respHdr, hdr.GetAddr1 (), 0);
|
||||
|
||||
@@ -523,7 +523,7 @@ TwoLevelAggregationTest::DoRun (void)
|
||||
|
||||
Ptr<WifiPsdu> psdu = Create<WifiPsdu> (mpduList);
|
||||
htFem->DequeuePsdu (psdu);
|
||||
|
||||
|
||||
NS_TEST_EXPECT_MSG_EQ (m_mac->GetVIQueue ()->GetWifiMacQueue ()->GetNPackets (), 5,
|
||||
"Unexpected number of MSDUs left in the EDCA queue");
|
||||
|
||||
@@ -656,7 +656,7 @@ HeAggregationTest::DoRunSubTest (uint16_t bufferSize)
|
||||
respHdr.SetAmsduSupport (reqHdr.IsAmsduSupported ());
|
||||
respHdr.SetImmediateBlockAck ();
|
||||
respHdr.SetTid (reqHdr.GetTid ());
|
||||
respHdr.SetBufferSize (bufferSize - 1);
|
||||
respHdr.SetBufferSize (bufferSize);
|
||||
respHdr.SetTimeout (reqHdr.GetTimeout ());
|
||||
m_mac->GetBEQueue ()->GetBaManager ()->UpdateAgreement (&respHdr, hdr.GetAddr1 (), 0);
|
||||
|
||||
@@ -683,7 +683,7 @@ HeAggregationTest::DoRunSubTest (uint16_t bufferSize)
|
||||
WifiTxParameters txParams;
|
||||
txParams.m_txVector = m_mac->GetWifiRemoteStationManager ()->GetDataTxVector (peeked->GetHeader ());
|
||||
Ptr<WifiMacQueueItem> item = m_mac->GetBEQueue ()->GetNextMpdu (peeked, txParams, Time::Min (), true);
|
||||
|
||||
|
||||
auto mpduList = mpduAggregator->GetNextAmpdu (item, txParams, Time::Min ());
|
||||
Ptr<WifiPsdu> psdu = Create<WifiPsdu> (mpduList);
|
||||
htFem->DequeuePsdu (psdu);
|
||||
|
||||
Reference in New Issue
Block a user