14#include "ns3/mac48-address.h"
15#include "ns3/object.h"
18#include <unordered_set>
136 const std::set<Mac48Address>& groupAddressList);
139 using GcrMembers = std::unordered_set<Mac48Address, WifiAddressHash>;
GcrManager is a base class defining the API to handle 802.11aa GCR.
Mac48Address m_gcrConcealmentAddress
GCR concealment address.
const GcrMembers & GetMemberStasForGroupAddress(const Mac48Address &groupAddress) const
Get the list of MAC addresses of member STAs for a given group address.
NonGcrStas m_nonGcrStas
the list of non-GCR capable STAs
void SetGcrConcealmentAddress(const Mac48Address &address)
Set the GCR concealment address.
void NotifyStaAssociated(const Mac48Address &staAddress, bool isGcrCapable)
This function notifies a STA is associated.
GcrMembers m_staMembers
the list of STA members (assume currently each member is part of all group)
void DoDispose() override
Destructor implementation.
Ptr< ApWifiMac > m_apMac
the MAC of the AP
static TypeId GetTypeId()
Get the type ID.
Ptr< WifiMpdu > m_mpdu
current MPDU being retransmitted
uint8_t m_unsolicitedRetryCounter
the unsolicited retry counter
void NotifyGroupMembershipChanged(const Mac48Address &staAddress, const std::set< Mac48Address > &groupAddressList)
This function adds a STA as a member of zero or more group addresses.
GroupAddressRetransmissionPolicy m_retransmissionPolicy
retransmission policy
virtual Mac48Address GetIndividuallyAddressedRecipient(const Mac48Address &groupAddress) const =0
Get the MAC address of the individually addressed recipient to use for a groupcast frame or for a pro...
void NotifyStaDeassociated(const Mac48Address &staAddress)
This function deletes a STA as a member of any group addresses.
std::unordered_set< Mac48Address, WifiAddressHash > GcrMembers
MAC addresses of member STAs of a GCR group.
const Mac48Address & GetGcrConcealmentAddress() const
Get the GCR concealment address.
uint8_t m_gcrUnsolicitedRetryLimit
GCR Unsolicited Retry Limit.
GcrMembers NonGcrStas
List of associated STAs that are not GCR capable.
GroupAddressRetransmissionPolicy GetRetransmissionPolicyFor(const WifiMacHeader &header) const
Get the retransmission policy to use to transmit a given group addressed packet.
GroupcastProtectionMode m_gcrProtectionMode
Protection mode for groupcast frames.
bool UseConcealment(const WifiMacHeader &header) const
Indicate whether a group addressed packet should be transmitted to the GCR concealment address.
bool KeepGroupcastQueued(Ptr< WifiMpdu > mpdu)
This function indicates whether a groupcast MPDU should be kept for next retransmission.
GroupAddressRetransmissionPolicy GetRetransmissionPolicy() const
Get the configured retransmission policy.
void SetWifiMac(Ptr< ApWifiMac > mac)
Set the wifi MAC.
A base class which provides memory management and object aggregation.
Smart pointer class similar to boost::intrusive_ptr.
a unique identifier for an interface.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
GroupcastProtectionMode
Groupcast protection mode enumeration.
GroupAddressRetransmissionPolicy
The possible values for group address retransmission policy.