From 05cb5ea88d69121bc4595aa8fbd3eed899794d2e Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Sun, 19 May 2024 10:56:04 +0200 Subject: [PATCH] wifi: Basic Block Ack agreements are not supported --- src/wifi/model/block-ack-manager.cc | 18 +++++++++--------- src/wifi/model/block-ack-manager.h | 6 +----- src/wifi/model/ht/ht-frame-exchange-manager.cc | 4 ---- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/wifi/model/block-ack-manager.cc b/src/wifi/model/block-ack-manager.cc index bc02ffb9b..a83bc2267 100644 --- a/src/wifi/model/block-ack-manager.cc +++ b/src/wifi/model/block-ack-manager.cc @@ -99,11 +99,11 @@ BlockAckManager::GetAgreementAsRecipient(const Mac48Address& originator, uint8_t void BlockAckManager::CreateOriginatorAgreement(const MgtAddBaRequestHeader& reqHdr, - const Mac48Address& recipient, - bool htSupported) + const Mac48Address& recipient) { - NS_LOG_FUNCTION(this << reqHdr << recipient << htSupported); - const uint8_t tid = reqHdr.GetTid(); + NS_LOG_FUNCTION(this << reqHdr << recipient); + const auto tid = reqHdr.GetTid(); + OriginatorBlockAckAgreement agreement(recipient, tid); agreement.SetStartingSequence(reqHdr.GetStartingSequence()); /* For now we assume that originator doesn't use this field. Use of this field @@ -111,7 +111,7 @@ BlockAckManager::CreateOriginatorAgreement(const MgtAddBaRequestHeader& reqHdr, agreement.SetBufferSize(reqHdr.GetBufferSize()); agreement.SetTimeout(reqHdr.GetTimeout()); agreement.SetAmsduSupport(reqHdr.IsAmsduSupported()); - agreement.SetHtSupported(htSupported); + agreement.SetHtSupported(true); if (reqHdr.IsImmediateBlockAck()) { agreement.SetImmediateBlockAck(); @@ -195,11 +195,10 @@ void BlockAckManager::CreateRecipientAgreement(const MgtAddBaResponseHeader& respHdr, const Mac48Address& originator, uint16_t startingSeq, - bool htSupported, Ptr rxMiddle) { - NS_LOG_FUNCTION(this << respHdr << originator << startingSeq << htSupported << rxMiddle); - uint8_t tid = respHdr.GetTid(); + NS_LOG_FUNCTION(this << respHdr << originator << startingSeq << rxMiddle); + const auto tid = respHdr.GetTid(); RecipientBlockAckAgreement agreement(originator, respHdr.IsAmsduSupported(), @@ -207,7 +206,8 @@ BlockAckManager::CreateRecipientAgreement(const MgtAddBaResponseHeader& respHdr, respHdr.GetBufferSize(), respHdr.GetTimeout(), startingSeq, - htSupported); + true); + agreement.SetMacRxMiddle(rxMiddle); if (respHdr.IsImmediateBlockAck()) { diff --git a/src/wifi/model/block-ack-manager.h b/src/wifi/model/block-ack-manager.h index 668fa9c90..b9615eeb3 100644 --- a/src/wifi/model/block-ack-manager.h +++ b/src/wifi/model/block-ack-manager.h @@ -106,14 +106,12 @@ class BlockAckManager : public Object /** * \param reqHdr Relative Add block ack request (action frame). * \param recipient Address of peer station involved in block ack mechanism. - * \param htSupported Whether both originator and recipient support HT * * Creates a new originator block ack agreement in pending state. When a ADDBA response * with a successful status code is received, the relative agreement becomes established. */ void CreateOriginatorAgreement(const MgtAddBaRequestHeader& reqHdr, - const Mac48Address& recipient, - bool htSupported = true); + const Mac48Address& recipient); /** * \param recipient Address of peer station involved in block ack mechanism. * \param tid traffic ID of transmitted packet. @@ -140,7 +138,6 @@ class BlockAckManager : public Object * mechanism. * \param startingSeq Sequence number of the first MPDU of all * packets for which block ack was negotiated. - * \param htSupported whether HT support is enabled * \param rxMiddle the MAC RX Middle on this station * * This function is typically invoked only by ns3::WifiMac @@ -153,7 +150,6 @@ class BlockAckManager : public Object void CreateRecipientAgreement(const MgtAddBaResponseHeader& respHdr, const Mac48Address& originator, uint16_t startingSeq, - bool htSupported, Ptr rxMiddle); /** * Destroy a recipient Block Ack agreement. diff --git a/src/wifi/model/ht/ht-frame-exchange-manager.cc b/src/wifi/model/ht/ht-frame-exchange-manager.cc index 2b42a5e0c..5e4fd946b 100644 --- a/src/wifi/model/ht/ht-frame-exchange-manager.cc +++ b/src/wifi/model/ht/ht-frame-exchange-manager.cc @@ -256,13 +256,9 @@ HtFrameExchangeManager::SendAddBaResponse(const MgtAddBaRequestHeader* reqHdr, { originator = *originatorMld; } - bool htSupported = m_mac->GetDevice()->GetHtConfiguration() && - (GetWifiRemoteStationManager()->GetHtSupported(originator) || - GetWifiRemoteStationManager()->GetStationHe6GhzCapabilities(originator)); GetBaManager(tid)->CreateRecipientAgreement(respHdr, originator, reqHdr->GetStartingSequence(), - htSupported, m_rxMiddle); auto agreement = GetBaManager(tid)->GetAgreementAsRecipient(originator, tid);