A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
eht-configuration.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021 DERONNE SOFTWARE ENGINEERING
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 * Authors: Sébastien Deronne <sebastien.deronne@gmail.com>
18 * Stefano Avallone <stavallo@unina.it>
19 */
20
21#ifndef EHT_CONFIGURATION_H
22#define EHT_CONFIGURATION_H
23
24#include "ns3/deprecated.h"
25#include "ns3/nstime.h"
26#include "ns3/object.h"
27#include "ns3/wifi-utils.h"
28
29#include <list>
30#include <map>
31
32namespace ns3
33{
34
35/// default MediumSyncDelay timer duration (max PPDU TX time rounded to a multiple of 32 us)
36static constexpr uint16_t DEFAULT_MSD_DURATION_USEC = 5484 / 32 * 32;
37
38/// default MediumSyncDelay timer OFDM ED threshold
39static constexpr int8_t DEFAULT_MSD_OFDM_ED_THRESH = -72;
40
41/// default MediumSyncDelay max number of TXOP attempts
42static constexpr uint8_t DEFAULT_MSD_MAX_N_TXOPS = 1;
43
44/**
45 * \brief TID-to-Link Mapping Negotiation Support
46 */
48{
49 NOT_SUPPORTED = 0,
50 SAME_LINK_SET = 1,
51 ANY_LINK_SET = 3
52};
53
54NS_DEPRECATED_3_42("Use WifiTidToLinkMappingNegSupport::NOT_SUPPORTED instead")
56 NOT_SUPPORTED; //!< \deprecated See WifiTidToLinkMappingNegSupport::NOT_SUPPORTED
59 SAME_LINK_SET; //!< \deprecated See WifiTidToLinkMappingNegSupport::SAME_LINK_SET
62 WifiTidToLinkMappingNegSupport::ANY_LINK_SET; //!< \deprecated See
63 //!< WifiTidToLinkMappingNegSupport::ANY_LINK_SET
64
65/**
66 * \brief Stream insertion operator.
67 * \param [in] os The reference to the output stream.
68 * \param [in] negsupport The WifiTidToLinkMappingNegSupport.
69 * \return The reference to the output stream.
70 */
71std::ostream& operator<<(std::ostream& os, WifiTidToLinkMappingNegSupport negsupport);
72
73/**
74 * \brief EHT configuration
75 * \ingroup wifi
76 *
77 * This object stores EHT configuration information, for use in modifying
78 * AP or STA behavior and for constructing EHT-related information elements.
79 *
80 */
82{
83 public:
85 ~EhtConfiguration() override;
86
87 /**
88 * \brief Get the type ID.
89 * \return the object TypeId
90 */
91 static TypeId GetTypeId();
92
93 /**
94 * \param dir the direction for the requested TID-to-Link Mapping
95 * \return a TID-indexed map of the list of links where each TID is mapped to
96 */
97 WifiTidLinkMapping GetTidLinkMapping(WifiDirection dir) const;
98
99 /**
100 * Set the TID-to-Link mapping for the given direction.
101 *
102 * \param dir the direction for the TID-to-Link Mapping
103 * \param mapping a list-of-TIDs-indexed map of the list of links where the TIDs are mapped to
104 */
105 void SetTidLinkMapping(WifiDirection dir,
106 const std::map<std::list<uint8_t>, std::list<uint8_t>>& mapping);
107
108 private:
109 bool m_emlsrActivated; //!< whether EMLSR option is activated
110 Time m_transitionTimeout; //!< Transition timeout
111 Time m_mediumSyncDuration; //!< duration of the MediumSyncDelay timer
112 int8_t m_msdOfdmEdThreshold; //!< MediumSyncDelay OFDM ED threshold
113 uint8_t m_msdMaxNTxops; //!< MediumSyncDelay max number of TXOPs
115 m_tidLinkMappingSupport; //!< TID-to-Link Mapping Negotiation Support
116 std::map<std::list<uint64_t>, std::list<uint64_t>>
117 m_linkMappingDl; //!< TIDs-indexed Link Mapping for downlink
118 std::map<std::list<uint64_t>, std::list<uint64_t>>
119 m_linkMappingUl; //!< TIDs-indexed Link Mapping for uplink
120};
121
122} // namespace ns3
123
124#endif /* EHT_CONFIGURATION_H */
EHT configuration.
Time m_mediumSyncDuration
duration of the MediumSyncDelay timer
bool m_emlsrActivated
whether EMLSR option is activated
Time m_transitionTimeout
Transition timeout.
std::map< std::list< uint64_t >, std::list< uint64_t > > m_linkMappingDl
TIDs-indexed Link Mapping for downlink.
WifiTidToLinkMappingNegSupport m_tidLinkMappingSupport
TID-to-Link Mapping Negotiation Support.
uint8_t m_msdMaxNTxops
MediumSyncDelay max number of TXOPs.
std::map< std::list< uint64_t >, std::list< uint64_t > > m_linkMappingUl
TIDs-indexed Link Mapping for uplink.
int8_t m_msdOfdmEdThreshold
MediumSyncDelay OFDM ED threshold.
A base class which provides memory management and object aggregation.
Definition: object.h:89
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
a unique identifier for an interface.
Definition: type-id.h:59
#define NS_DEPRECATED_3_42(msg)
Tag for things deprecated in version ns-3.42.
Definition: deprecated.h:102
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static constexpr uint8_t DEFAULT_MSD_MAX_N_TXOPS
default MediumSyncDelay max number of TXOP attempts
static constexpr auto WIFI_TID_TO_LINK_MAPPING_SAME_LINK_SET
static constexpr auto WIFI_TID_TO_LINK_MAPPING_NOT_SUPPORTED
WifiTidToLinkMappingNegSupport
TID-to-Link Mapping Negotiation Support.
WifiDirection
Wifi direction.
Definition: wifi-utils.h:43
static constexpr int8_t DEFAULT_MSD_OFDM_ED_THRESH
default MediumSyncDelay timer OFDM ED threshold
static constexpr auto WIFI_TID_TO_LINK_MAPPING_ANY_LINK_SET
std::map< uint8_t, std::set< uint8_t > > WifiTidLinkMapping
TID-indexed map of the link set to which the TID is mapped.
Definition: wifi-utils.h:74
static constexpr uint16_t DEFAULT_MSD_DURATION_USEC
default MediumSyncDelay timer duration (max PPDU TX time rounded to a multiple of 32 us)
STL namespace.
std::string dir