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>;
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.
Smart pointer class similar to boost::intrusive_ptr.
a unique identifier for an interface.
WifiMpdu stores a (const) packet along with a MAC header.
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.