A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
wifi-default-gcr-manager.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2023 DERONNE SOFTWARE ENGINEERING
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Author: Sébastien Deronne <sebastien.deronne@gmail.com>
7
*/
8
9
#include "
wifi-default-gcr-manager.h
"
10
11
#include "
ap-wifi-mac.h
"
12
13
#include "ns3/log.h"
14
15
namespace
ns3
16
{
17
18
NS_LOG_COMPONENT_DEFINE
(
"WifiDefaultGcrManager"
);
19
20
NS_OBJECT_ENSURE_REGISTERED
(WifiDefaultGcrManager);
21
22
TypeId
23
WifiDefaultGcrManager::GetTypeId
()
24
{
25
static
TypeId
tid =
TypeId
(
"ns3::WifiDefaultGcrManager"
)
26
.
SetParent
<
GcrManager
>()
27
.SetGroupName(
"Wifi"
)
28
.AddConstructor<
WifiDefaultGcrManager
>();
29
return
tid;
30
}
31
32
WifiDefaultGcrManager::WifiDefaultGcrManager
()
33
{
34
NS_LOG_FUNCTION
(
this
);
35
}
36
37
WifiDefaultGcrManager::~WifiDefaultGcrManager
()
38
{
39
NS_LOG_FUNCTION_NOARGS
();
40
}
41
42
Mac48Address
43
WifiDefaultGcrManager::GetIndividuallyAddressedRecipient
(
44
const
Mac48Address
&
/* groupAddress */
)
const
45
{
46
/*
47
* 802.11-2020: 10.23.2.12.2 Unsolicited retry procedure:
48
* When using a protection mechanism that requires a response from another STA,
49
* the AP should select a STA that is a member of the GCR group.
50
* For now, we assume all associated GCR-capable STAs are part of the GCR group,
51
* hence we pick the first STA from the list held by the AP.
52
*/
53
NS_ASSERT
(!
m_staMembers
.empty());
54
return
*
m_staMembers
.cbegin();
55
}
56
57
}
// namespace ns3
ap-wifi-mac.h
ns3::GcrManager
GcrManager is a base class defining the API to handle 802.11aa GCR.
Definition
gcr-manager.h:49
ns3::GcrManager::m_staMembers
GcrMembers m_staMembers
the list of STA members (assume currently each member is part of all group)
Definition
gcr-manager.h:169
ns3::Mac48Address
an EUI-48 address
Definition
mac48-address.h:35
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:49
ns3::TypeId::SetParent
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition
type-id.cc:1001
ns3::WifiDefaultGcrManager
WifiDefaultGcrManager is the default implementation for groupcast with retries GCR,...
Definition
wifi-default-gcr-manager.h:28
ns3::WifiDefaultGcrManager::~WifiDefaultGcrManager
~WifiDefaultGcrManager() override
Definition
wifi-default-gcr-manager.cc:37
ns3::WifiDefaultGcrManager::GetIndividuallyAddressedRecipient
Mac48Address GetIndividuallyAddressedRecipient(const Mac48Address &groupcastAddress) const override
Get the MAC address of the individually addressed recipient to use for a groupcast frame or for a pro...
Definition
wifi-default-gcr-manager.cc:43
ns3::WifiDefaultGcrManager::WifiDefaultGcrManager
WifiDefaultGcrManager()
Definition
wifi-default-gcr-manager.cc:32
ns3::WifiDefaultGcrManager::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
wifi-default-gcr-manager.cc:23
NS_ASSERT
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
Definition
assert.h:55
NS_LOG_COMPONENT_DEFINE
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition
log.h:191
NS_LOG_FUNCTION_NOARGS
#define NS_LOG_FUNCTION_NOARGS()
Output the name of the function.
Definition
log-macros-enabled.h:195
NS_LOG_FUNCTION
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
Definition
log-macros-enabled.h:229
NS_OBJECT_ENSURE_REGISTERED
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition
object-base.h:35
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
wifi-default-gcr-manager.h
src
wifi
model
wifi-default-gcr-manager.cc
Generated on Wed Mar 19 2025 09:20:58 for ns-3 by
1.11.0