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
obss-pd-algorithm.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 University of Washington
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Author: Sébastien Deronne <sebastien.deronne@gmail.com>
7
*/
8
9
#ifndef OBSS_PD_ALGORITHM_H
10
#define OBSS_PD_ALGORITHM_H
11
12
#include "
he-configuration.h
"
13
14
#include "ns3/object.h"
15
#include "ns3/traced-callback.h"
16
#include "ns3/wifi-units.h"
17
18
namespace
ns3
19
{
20
21
struct
HeSigAParameters;
22
23
class
WifiNetDevice;
24
25
/**
26
* \brief OBSS PD algorithm interface
27
* \ingroup wifi
28
*
29
* This object provides the interface for all OBSS_PD algorithms
30
* and is designed to be subclassed.
31
*
32
* OBSS_PD stands for Overlapping Basic Service Set Preamble-Detection.
33
* OBSS_PD is an 802.11ax feature that allows a STA, under specific
34
* conditions, to ignore an inter-BSS PPDU.
35
*/
36
class
ObssPdAlgorithm
:
public
Object
37
{
38
public
:
39
/**
40
* \brief Get the type ID.
41
* \return the object TypeId
42
*/
43
static
TypeId
GetTypeId
();
44
45
/**
46
* Connect the WifiNetDevice and setup eventual callbacks.
47
*
48
* \param device the WifiNetDevice
49
*/
50
virtual
void
ConnectWifiNetDevice
(
const
Ptr<WifiNetDevice>
device);
51
52
/**
53
* Reset PHY to IDLE.
54
* \param params HeSigAParameters causing PHY reset
55
*/
56
void
ResetPhy
(
HeSigAParameters
params);
57
58
/**
59
* \param params the HE-SIG-A parameters
60
*
61
* Evaluate the receipt of HE-SIG-A.
62
*/
63
virtual
void
ReceiveHeSigA
(
HeSigAParameters
params) = 0;
64
65
/**
66
* TracedCallback signature for OBSS_PD reset events.
67
*
68
* \param [in] bssColor The BSS color of frame triggering the reset
69
* \param [in] rssiDbm The RSSI (dBm) of frame triggering the reset
70
* \param [in] powerRestricted Whether a TX power restriction is triggered
71
* \param [in] txPowerMaxDbmSiso The SISO TX power restricted level (dBm)
72
* \param [in] txPowerMaxDbmMimo The MIMO TX power restricted level (dBm)
73
*/
74
typedef
void (*
ResetTracedCallback
)(uint8_t bssColor,
75
double
rssiDbm,
76
bool
powerRestricted,
77
double
txPowerMaxDbmSiso,
78
double
txPowerMaxDbmMimo);
79
80
/**
81
* \param level the current OBSS PD level
82
*/
83
void
SetObssPdLevel
(
dBm_u
level);
84
/**
85
* \return the current OBSS PD level
86
*/
87
dBm_u
GetObssPdLevel
()
const
;
88
89
protected
:
90
void
DoDispose
()
override
;
91
92
Ptr<WifiNetDevice>
m_device
;
///< Pointer to the WifiNetDevice
93
94
private
:
95
dBm_u
m_obssPdLevel
;
///< Current OBSS PD level
96
dBm_u
m_obssPdLevelMin
;
///< Minimum OBSS PD level
97
dBm_u
m_obssPdLevelMax
;
///< Maximum OBSS PD level
98
dBm_u
m_txPowerRefSiso
;
///< SISO reference TX power level
99
dBm_u
m_txPowerRefMimo
;
///< MIMO reference TX power level
100
101
/**
102
* TracedCallback signature for PHY reset events.
103
*/
104
TracedCallback<uint8_t, double, bool, double, double>
m_resetEvent
;
105
};
106
107
}
// namespace ns3
108
109
#endif
/* OBSS_PD_ALGORITHM_H */
double
ns3::Object
A base class which provides memory management and object aggregation.
Definition
object.h:78
ns3::ObssPdAlgorithm
OBSS PD algorithm interface.
Definition
obss-pd-algorithm.h:37
ns3::ObssPdAlgorithm::DoDispose
void DoDispose() override
Destructor implementation.
Definition
obss-pd-algorithm.cc:65
ns3::ObssPdAlgorithm::ResetPhy
void ResetPhy(HeSigAParameters params)
Reset PHY to IDLE.
Definition
obss-pd-algorithm.cc:89
ns3::ObssPdAlgorithm::ReceiveHeSigA
virtual void ReceiveHeSigA(HeSigAParameters params)=0
ns3::ObssPdAlgorithm::SetObssPdLevel
void SetObssPdLevel(dBm_u level)
Definition
obss-pd-algorithm.cc:113
ns3::ObssPdAlgorithm::m_obssPdLevel
dBm_u m_obssPdLevel
Current OBSS PD level.
Definition
obss-pd-algorithm.h:95
ns3::ObssPdAlgorithm::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
obss-pd-algorithm.cc:25
ns3::ObssPdAlgorithm::m_txPowerRefSiso
dBm_u m_txPowerRefSiso
SISO reference TX power level.
Definition
obss-pd-algorithm.h:98
ns3::ObssPdAlgorithm::GetObssPdLevel
dBm_u GetObssPdLevel() const
Definition
obss-pd-algorithm.cc:120
ns3::ObssPdAlgorithm::m_obssPdLevelMin
dBm_u m_obssPdLevelMin
Minimum OBSS PD level.
Definition
obss-pd-algorithm.h:96
ns3::ObssPdAlgorithm::m_device
Ptr< WifiNetDevice > m_device
Pointer to the WifiNetDevice.
Definition
obss-pd-algorithm.h:92
ns3::ObssPdAlgorithm::ResetTracedCallback
void(* ResetTracedCallback)(uint8_t bssColor, double rssiDbm, bool powerRestricted, double txPowerMaxDbmSiso, double txPowerMaxDbmMimo)
TracedCallback signature for OBSS_PD reset events.
Definition
obss-pd-algorithm.h:74
ns3::ObssPdAlgorithm::ConnectWifiNetDevice
virtual void ConnectWifiNetDevice(const Ptr< WifiNetDevice > device)
Connect the WifiNetDevice and setup eventual callbacks.
Definition
obss-pd-algorithm.cc:72
ns3::ObssPdAlgorithm::m_resetEvent
TracedCallback< uint8_t, double, bool, double, double > m_resetEvent
TracedCallback signature for PHY reset events.
Definition
obss-pd-algorithm.h:104
ns3::ObssPdAlgorithm::m_obssPdLevelMax
dBm_u m_obssPdLevelMax
Maximum OBSS PD level.
Definition
obss-pd-algorithm.h:97
ns3::ObssPdAlgorithm::m_txPowerRefMimo
dBm_u m_txPowerRefMimo
MIMO reference TX power level.
Definition
obss-pd-algorithm.h:99
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition
mpi-test-fixtures.h:37
ns3::TracedCallback
Forward calls to a chain of Callback.
Definition
traced-callback.h:43
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:48
he-configuration.h
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::HeSigAParameters
Parameters for received HE-SIG-A for OBSS_PD based SR.
Definition
he-phy.h:44
src
wifi
model
he
obss-pd-algorithm.h
Generated on Fri Nov 8 2024 13:59:07 for ns-3 by
1.11.0