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
advanced-ap-emlsr-manager.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2024 Universita' di Napoli Federico II
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Author: Stefano Avallone <stavallo@unina.it>
7
*/
8
9
#ifndef ADVANCED_AP_EMLSR_MANAGER_H
10
#define ADVANCED_AP_EMLSR_MANAGER_H
11
12
#include "
default-ap-emlsr-manager.h
"
13
14
#include "ns3/nstime.h"
15
16
#include <set>
17
18
namespace
ns3
19
{
20
21
class
ApWifiMac;
22
class
WifiMacHeader;
23
class
WifiPsdu;
24
class
WifiTxVector;
25
26
/**
27
* \ingroup wifi
28
*
29
* AdvancedApEmlsrManager is an advanced AP EMLSR manager.
30
*/
31
class
AdvancedApEmlsrManager
:
public
DefaultApEmlsrManager
32
{
33
public
:
34
/**
35
* \brief Get the type ID.
36
* \return the object TypeId
37
*/
38
static
TypeId
GetTypeId
();
39
40
AdvancedApEmlsrManager
();
41
~AdvancedApEmlsrManager
()
override
;
42
43
void
NotifyPsduRxOk
(uint8_t linkId,
Ptr<const WifiPsdu>
psdu)
override
;
44
void
NotifyPsduRxError
(uint8_t linkId,
Ptr<const WifiPsdu>
psdu)
override
;
45
Time
GetDelayOnTxPsduNotForEmlsr
(
Ptr<const WifiPsdu>
psdu,
46
const
WifiTxVector
& txVector,
47
WifiPhyBand
band)
override
;
48
bool
UpdateCwAfterFailedIcf
()
override
;
49
50
protected
:
51
void
DoDispose
()
override
;
52
void
DoSetWifiMac
(
Ptr<ApWifiMac>
mac)
override
;
53
54
/**
55
* Store information about the MAC header of the MPDU being received on the given link.
56
*
57
* \param linkId the ID of the given link
58
* \param macHdr the MAC header of the MPDU being received
59
* \param txVector the TXVECTOR used to transmit the PSDU
60
* \param psduDuration the remaining duration of the PSDU
61
*/
62
void
ReceivedMacHdr
(uint8_t linkId,
63
const
WifiMacHeader
& macHdr,
64
const
WifiTxVector
& txVector,
65
Time
psduDuration);
66
67
private
:
68
std::set<uint8_t>
69
m_blockedLinksOnMacHdrRx
;
//!< links that have been blocked upon receiving a MAC header
70
bool
m_useNotifiedMacHdr
;
//!< whether to use the information about the MAC header of
71
//!< the MPDU being received (if notified by the PHY)
72
bool
m_earlySwitchToListening
;
//!< Whether the AP MLD assumes that an EMLSR client is able to
73
//!< detect at the end of the MAC header that a PSDU is not
74
//!< addressed to it and immediately starts switching to
75
//!< listening mode
76
bool
m_waitTransDelayOnPsduRxError
;
//!< Whether the AP MLD waits for a response timeout after a
77
//!< PSDU reception error before starting the transition
78
//!< delay
79
bool
m_updateCwAfterFailedIcf
;
//!< Whether the AP MLD shall double the CW upon CTS timeout
80
//!< after an MU-RTS in case all the clients solicited by the
81
//!< MU-RTS are EMLSR clients that have sent a frame to the AP
82
};
83
84
}
// namespace ns3
85
86
#endif
/* ADVANCED_AP_EMLSR_MANAGER_H */
ns3::AdvancedApEmlsrManager
AdvancedApEmlsrManager is an advanced AP EMLSR manager.
Definition
advanced-ap-emlsr-manager.h:32
ns3::AdvancedApEmlsrManager::m_updateCwAfterFailedIcf
bool m_updateCwAfterFailedIcf
Whether the AP MLD shall double the CW upon CTS timeout.
Definition
advanced-ap-emlsr-manager.h:79
ns3::AdvancedApEmlsrManager::DoSetWifiMac
void DoSetWifiMac(Ptr< ApWifiMac > mac) override
Allow subclasses to take actions when the MAC is set.
Definition
advanced-ap-emlsr-manager.cc:91
ns3::AdvancedApEmlsrManager::ReceivedMacHdr
void ReceivedMacHdr(uint8_t linkId, const WifiMacHeader &macHdr, const WifiTxVector &txVector, Time psduDuration)
Store information about the MAC header of the MPDU being received on the given link.
Definition
advanced-ap-emlsr-manager.cc:105
ns3::AdvancedApEmlsrManager::AdvancedApEmlsrManager
AdvancedApEmlsrManager()
Definition
advanced-ap-emlsr-manager.cc:66
ns3::AdvancedApEmlsrManager::UpdateCwAfterFailedIcf
bool UpdateCwAfterFailedIcf() override
Definition
advanced-ap-emlsr-manager.cc:193
ns3::AdvancedApEmlsrManager::m_useNotifiedMacHdr
bool m_useNotifiedMacHdr
whether to use the information about the MAC header of the MPDU being received (if notified by the PH...
Definition
advanced-ap-emlsr-manager.h:70
ns3::AdvancedApEmlsrManager::m_waitTransDelayOnPsduRxError
bool m_waitTransDelayOnPsduRxError
Whether the AP MLD waits for a response timeout after a PSDU reception error before starting the tran...
Definition
advanced-ap-emlsr-manager.h:76
ns3::AdvancedApEmlsrManager::GetDelayOnTxPsduNotForEmlsr
Time GetDelayOnTxPsduNotForEmlsr(Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, WifiPhyBand band) override
This method is intended to be called when the AP MLD starts transmitting an SU frame that is not addr...
Definition
advanced-ap-emlsr-manager.cc:174
ns3::AdvancedApEmlsrManager::m_blockedLinksOnMacHdrRx
std::set< uint8_t > m_blockedLinksOnMacHdrRx
links that have been blocked upon receiving a MAC header
Definition
advanced-ap-emlsr-manager.h:69
ns3::AdvancedApEmlsrManager::NotifyPsduRxError
void NotifyPsduRxError(uint8_t linkId, Ptr< const WifiPsdu > psdu) override
This method is called when the reception of a PSDU fails on the given link.
Definition
advanced-ap-emlsr-manager.cc:130
ns3::AdvancedApEmlsrManager::NotifyPsduRxOk
void NotifyPsduRxOk(uint8_t linkId, Ptr< const WifiPsdu > psdu) override
This method is called when the reception of a PSDU succeeds on the given link.
Definition
advanced-ap-emlsr-manager.cc:123
ns3::AdvancedApEmlsrManager::~AdvancedApEmlsrManager
~AdvancedApEmlsrManager() override
Definition
advanced-ap-emlsr-manager.cc:71
ns3::AdvancedApEmlsrManager::DoDispose
void DoDispose() override
Destructor implementation.
Definition
advanced-ap-emlsr-manager.cc:77
ns3::AdvancedApEmlsrManager::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
advanced-ap-emlsr-manager.cc:27
ns3::AdvancedApEmlsrManager::m_earlySwitchToListening
bool m_earlySwitchToListening
Whether the AP MLD assumes that an EMLSR client is able to detect at the end of the MAC header that a...
Definition
advanced-ap-emlsr-manager.h:72
ns3::DefaultApEmlsrManager
DefaultApEmlsrManager is the default AP EMLSR manager.
Definition
default-ap-emlsr-manager.h:23
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition
mpi-test-fixtures.h:37
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition
nstime.h:94
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:48
ns3::WifiMacHeader
Implements the IEEE 802.11 MAC header.
Definition
wifi-mac-header.h:87
ns3::WifiTxVector
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
Definition
wifi-tx-vector.h:101
default-ap-emlsr-manager.h
ns3::WifiPhyBand
WifiPhyBand
Identifies the PHY band.
Definition
wifi-phy-band.h:22
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
wifi
model
eht
advanced-ap-emlsr-manager.h
Generated on Fri Nov 8 2024 13:59:07 for ns-3 by
1.11.0