From 84001f649665b9be2321e7694d0f155ecf36e2f9 Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Wed, 9 Nov 2022 17:49:44 +0100 Subject: [PATCH] wifi: Fix forwarding of A-MSDUs containing broadcast frames --- src/wifi/model/ap-wifi-mac.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/wifi/model/ap-wifi-mac.cc b/src/wifi/model/ap-wifi-mac.cc index 13b036218..0bff6b39c 100644 --- a/src/wifi/model/ap-wifi-mac.cc +++ b/src/wifi/model/ap-wifi-mac.cc @@ -1910,17 +1910,16 @@ ApWifiMac::DeaggregateAmsduAndForward(Ptr mpdu) NS_LOG_FUNCTION(this << *mpdu); for (auto& i : *PeekPointer(mpdu)) { - if (i.second.GetDestinationAddr() == GetAddress()) + auto from = i.second.GetSourceAddr(); + auto to = i.second.GetDestinationAddr(); + + if (to.IsGroup() || IsAssociated(to)) { - ForwardUp(i.first, i.second.GetSourceAddr(), i.second.GetDestinationAddr()); - } - else - { - Mac48Address from = i.second.GetSourceAddr(); - Mac48Address to = i.second.GetDestinationAddr(); NS_LOG_DEBUG("forwarding QoS frame from=" << from << ", to=" << to); ForwardDown(i.first->Copy(), from, to, mpdu->GetHeader().GetQosTid()); } + + ForwardUp(i.first, from, to); } }