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
vht-configuration.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 Sébastien Deronne
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
* Author: Sébastien Deronne <sebastien.deronne@gmail.com>
18
*/
19
20
#ifndef VHT_CONFIGURATION_H
21
#define VHT_CONFIGURATION_H
22
23
#include "ns3/object.h"
24
25
#include <map>
26
#include <tuple>
27
28
namespace
ns3
29
{
30
31
/**
32
* \brief VHT configuration
33
* \ingroup wifi
34
*
35
* This object stores VHT configuration information, for use in modifying
36
* AP or STA behavior and for constructing VHT-related information elements.
37
*
38
*/
39
class
VhtConfiguration
:
public
Object
40
{
41
public
:
42
VhtConfiguration
();
43
~VhtConfiguration
()
override
;
44
45
/**
46
* \brief Get the type ID.
47
* \return the object TypeId
48
*/
49
static
TypeId
GetTypeId
();
50
51
/**
52
* Enable or disable 160 MHz operation support.
53
*
54
* \param enable true if 20 MHz, 40 MHz, 80 MHz and 160 MHz operation is to be supported,
55
* false if 20 MHz, 40 MHz and 80 MHz operation is to be supported
56
*/
57
void
Set160MHzOperationSupported
(
bool
enable);
58
/**
59
* \return true if 20 MHz, 40 MHz, 80 MHz and 160 MHz operation is supported,
60
* false if 20 MHz, 40 MHz and 80 MHz operation is supported
61
*/
62
bool
Get160MHzOperationSupported
()
const
;
63
64
using
SecondaryCcaSensitivityThresholds
=
65
std::tuple<double, double, double>;
//!< Tuple identifying CCA sensitivity thresholds for
66
//!< secondary channels
67
68
/**
69
* Sets the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel.
70
* The thresholds are defined as a tuple {threshold for 20MHz PPDUs,
71
* threshold for 40MHz PPDUs, threshold for 80MHz PPDUs}.
72
*
73
* \param thresholds the CCA sensitivity thresholds
74
*/
75
void
SetSecondaryCcaSensitivityThresholds
(
const
SecondaryCcaSensitivityThresholds
& thresholds);
76
/**
77
* \return the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel
78
*/
79
SecondaryCcaSensitivityThresholds
GetSecondaryCcaSensitivityThresholds
()
const
;
80
81
/**
82
* \return the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel,
83
* indexed by signal bandwidth (MHz)
84
*/
85
const
std::map<uint16_t, double>&
GetSecondaryCcaSensitivityThresholdsPerBw
()
const
;
86
87
private
:
88
bool
m_160MHzSupported
;
///< whether 160 MHz operation is supported
89
std::map<uint16_t, double>
90
m_secondaryCcaSensitivityThresholds
;
///< CCA sensitivity thresholds for signals that do not
91
///< occupy the primary channel, indexed by signal
92
///< bandwidth (MHz)
93
};
94
95
}
// namespace ns3
96
97
#endif
/* VHT_CONFIGURATION_H */
ns3::Object
A base class which provides memory management and object aggregation.
Definition:
object.h:89
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:59
ns3::VhtConfiguration
VHT configuration.
Definition:
vht-configuration.h:40
ns3::VhtConfiguration::SecondaryCcaSensitivityThresholds
std::tuple< double, double, double > SecondaryCcaSensitivityThresholds
Tuple identifying CCA sensitivity thresholds for secondary channels.
Definition:
vht-configuration.h:66
ns3::VhtConfiguration::Set160MHzOperationSupported
void Set160MHzOperationSupported(bool enable)
Enable or disable 160 MHz operation support.
Definition:
vht-configuration.cc:80
ns3::VhtConfiguration::SetSecondaryCcaSensitivityThresholds
void SetSecondaryCcaSensitivityThresholds(const SecondaryCcaSensitivityThresholds &thresholds)
Sets the CCA sensitivity thresholds for PPDUs that do not occupy the primary channel.
Definition:
vht-configuration.cc:93
ns3::VhtConfiguration::Get160MHzOperationSupported
bool Get160MHzOperationSupported() const
Definition:
vht-configuration.cc:87
ns3::VhtConfiguration::VhtConfiguration
VhtConfiguration()
Definition:
vht-configuration.cc:35
ns3::VhtConfiguration::m_160MHzSupported
bool m_160MHzSupported
whether 160 MHz operation is supported
Definition:
vht-configuration.h:88
ns3::VhtConfiguration::~VhtConfiguration
~VhtConfiguration() override
Definition:
vht-configuration.cc:40
ns3::VhtConfiguration::m_secondaryCcaSensitivityThresholds
std::map< uint16_t, double > m_secondaryCcaSensitivityThresholds
CCA sensitivity thresholds for signals that do not occupy the primary channel, indexed by signal band...
Definition:
vht-configuration.h:90
ns3::VhtConfiguration::GetSecondaryCcaSensitivityThresholds
SecondaryCcaSensitivityThresholds GetSecondaryCcaSensitivityThresholds() const
Definition:
vht-configuration.cc:103
ns3::VhtConfiguration::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition:
vht-configuration.cc:46
ns3::VhtConfiguration::GetSecondaryCcaSensitivityThresholdsPerBw
const std::map< uint16_t, double > & GetSecondaryCcaSensitivityThresholdsPerBw() const
Definition:
vht-configuration.cc:111
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
wifi
model
vht
vht-configuration.h
Generated on Tue May 28 2024 23:40:32 for ns-3 by
1.9.6