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/object.h"
13#include "ns3/wifi-units.h"
14
15#include <map>
16#include <tuple>
17
18namespace ns3
19{
20
21/**
22 * \brief VHT configuration
23 * \ingroup wifi
24 *
25 * This object stores VHT configuration information, for use in modifying
26 * AP or STA behavior and for constructing VHT-related information elements.
27 *
28 */
30{
31 public:
33 ~VhtConfiguration() override;
34
35 /**
36 * \brief Get the type ID.
37 * \return the object TypeId
38 */
39 static TypeId GetTypeId();
40
41 /**
42 * Enable or disable 160 MHz operation support.
43 *
44 * \param enable true if 20 MHz, 40 MHz, 80 MHz and 160 MHz operation is to be supported,
45 * false if 20 MHz, 40 MHz and 80 MHz operation is to be supported
46 */
47 void Set160MHzOperationSupported(bool enable);
48 /**
49 * \return true if 20 MHz, 40 MHz, 80 MHz and 160 MHz operation is supported,
50 * false if 20 MHz, 40 MHz and 80 MHz operation is supported
51 */
52 bool Get160MHzOperationSupported() const;
53
55 std::tuple<dBm_u, dBm_u, dBm_u>; //!< Tuple identifying CCA sensitivity thresholds for
56 //!< secondary channels
57
58 /**
59 * Sets the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel.
60 * The thresholds are defined as a tuple {threshold for 20MHz PPDUs,
61 * threshold for 40MHz PPDUs, threshold for 80MHz PPDUs}.
62 *
63 * \param thresholds the CCA sensitivity thresholds
64 */
66 /**
67 * \return the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel
68 */
70
71 /**
72 * \return the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel,
73 * indexed by signal bandwidth
74 */
75 const std::map<MHz_u, dBm_u>& GetSecondaryCcaSensitivityThresholdsPerBw() const;
76
77 private:
78 bool m_160MHzSupported; ///< whether 160 MHz operation is supported
79 std::map<MHz_u, dBm_u>
80 m_secondaryCcaSensitivityThresholds; ///< CCA sensitivity thresholds for signals that do not
81 ///< occupy the primary channel, indexed by signal
82 ///< bandwidth
83};
84
85} // namespace ns3
86
87#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...
Every class exported by the ns3 library is enclosed in the ns3 namespace.