A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
vht-configuration.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Sébastien Deronne
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Sébastien Deronne <sebastien.deronne@gmail.com>
7 */
8
9#ifndef VHT_CONFIGURATION_H
10#define VHT_CONFIGURATION_H
11
12#include "ns3/deprecated.h"
13#include "ns3/object.h"
14#include "ns3/wifi-units.h"
15
16#include <map>
17#include <tuple>
18
19namespace ns3
20{
21
22/**
23 * @brief VHT configuration
24 * @ingroup wifi
25 *
26 * This object stores VHT configuration information, for use in modifying
27 * AP or STA behavior and for constructing VHT-related information elements.
28 *
29 */
31{
32 public:
34 ~VhtConfiguration() override;
35
36 /**
37 * @brief Get the type ID.
38 * @return the object TypeId
39 */
40 static TypeId GetTypeId();
41
42 /**
43 * Enable or disable 160 MHz operation support.
44 *
45 * @param enable true if 20 MHz, 40 MHz, 80 MHz and 160 MHz operation is to be supported,
46 * false if 20 MHz, 40 MHz and 80 MHz operation is to be supported
47 */
48 NS_DEPRECATED_3_44("Set the m_160MHzSupported member variable instead")
49 void Set160MHzOperationSupported(bool enable);
50
51 /**
52 * @return true if 20 MHz, 40 MHz, 80 MHz and 160 MHz operation is supported,
53 * false if 20 MHz, 40 MHz and 80 MHz operation is supported
54 */
55 NS_DEPRECATED_3_44("Get the m_160MHzSupported member variable instead")
56 bool Get160MHzOperationSupported() const;
57
59 std::tuple<dBm_u, dBm_u, dBm_u>; //!< Tuple identifying CCA sensitivity thresholds for
60 //!< secondary channels
61
62 /**
63 * Sets the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel.
64 * The thresholds are defined as a tuple {threshold for 20MHz PPDUs,
65 * threshold for 40MHz PPDUs, threshold for 80MHz PPDUs}.
66 *
67 * @param thresholds the CCA sensitivity thresholds
68 */
70 /**
71 * @return the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel
72 */
74
75 /**
76 * @return the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel,
77 * indexed by signal bandwidth
78 */
79 const std::map<MHz_u, dBm_u>& GetSecondaryCcaSensitivityThresholdsPerBw() const;
80
81 bool m_160MHzSupported; ///< whether 160 MHz operation is supported
82
83 private:
84 std::map<MHz_u, dBm_u>
85 m_secondaryCcaSensitivityThresholds; ///< CCA sensitivity thresholds for signals that do not
86 ///< occupy the primary channel, indexed by signal
87 ///< bandwidth
88};
89
90} // namespace ns3
91
92#endif /* VHT_CONFIGURATION_H */
A base class which provides memory management and object aggregation.
Definition object.h:78
a unique identifier for an interface.
Definition type-id.h:48
VHT configuration.
void Set160MHzOperationSupported(bool enable)
Enable or disable 160 MHz operation support.
std::tuple< dBm_u, dBm_u, dBm_u > SecondaryCcaSensitivityThresholds
Tuple identifying CCA sensitivity thresholds for secondary channels.
void SetSecondaryCcaSensitivityThresholds(const SecondaryCcaSensitivityThresholds &thresholds)
Sets the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel.
const std::map< MHz_u, dBm_u > & GetSecondaryCcaSensitivityThresholdsPerBw() const
bool Get160MHzOperationSupported() const
bool m_160MHzSupported
whether 160 MHz operation is supported
SecondaryCcaSensitivityThresholds GetSecondaryCcaSensitivityThresholds() const
static TypeId GetTypeId()
Get the type ID.
std::map< MHz_u, dBm_u > m_secondaryCcaSensitivityThresholds
CCA sensitivity thresholds for signals that do not occupy the primary channel, indexed by signal band...
#define NS_DEPRECATED_3_44(msg)
Tag for things deprecated in version ns-3.44.
Definition deprecated.h:91
Every class exported by the ns3 library is enclosed in the ns3 namespace.