From 04e9e45cf77b288a1ec8b893f4b6f039c4bd01dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deronne?= Date: Thu, 16 Jan 2025 21:25:51 +0100 Subject: [PATCH] wifi: Update function to notify reception of a GCR BlockAck request frame --- src/wifi/model/block-ack-manager.cc | 8 +++++--- src/wifi/model/block-ack-manager.h | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/wifi/model/block-ack-manager.cc b/src/wifi/model/block-ack-manager.cc index de27d0b36..d21192357 100644 --- a/src/wifi/model/block-ack-manager.cc +++ b/src/wifi/model/block-ack-manager.cc @@ -717,10 +717,12 @@ BlockAckManager::NotifyDiscardedMpdu(Ptr mpdu) void BlockAckManager::NotifyGotBlockAckRequest(const Mac48Address& originator, uint8_t tid, - uint16_t startingSeq) + uint16_t startingSeq, + std::optional gcrGroupAddr) { - NS_LOG_FUNCTION(this << originator << tid << startingSeq); - if (auto it = GetRecipientBaAgreement(originator, tid); it != m_recipientAgreements.end()) + NS_LOG_FUNCTION(this << originator << tid << startingSeq << gcrGroupAddr.has_value()); + if (auto it = GetRecipientBaAgreement(originator, tid, gcrGroupAddr); + it != m_recipientAgreements.end()) { it->second.NotifyReceivedBar(startingSeq); } diff --git a/src/wifi/model/block-ack-manager.h b/src/wifi/model/block-ack-manager.h index 04da4f81f..04f063474 100644 --- a/src/wifi/model/block-ack-manager.h +++ b/src/wifi/model/block-ack-manager.h @@ -218,12 +218,15 @@ class BlockAckManager : public Object * @param originator MAC address of the sender of the Block Ack Request * @param tid Traffic ID * @param startingSeq the starting sequence number in the Block Ack Request + * @param gcrGroupAddr the GCR Group Address (only if it is a GCR Block Ack Request frame) * * Perform required actions upon receiving a Block Ack Request frame. */ void NotifyGotBlockAckRequest(const Mac48Address& originator, uint8_t tid, - uint16_t startingSeq); + uint16_t startingSeq, + std::optional gcrGroupAddr = std::nullopt); + /** * @param mpdu the received MPDU *