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 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Authors: Sébastien Deronne <sebastien.deronne@gmail.com>
7 * Stefano Avallone <stavallo@unina.it>
8 */
9
10#ifndef EHT_CONFIGURATION_H
11#define EHT_CONFIGURATION_H
12
13#include "ns3/deprecated.h"
14#include "ns3/nstime.h"
15#include "ns3/object.h"
16#include "ns3/wifi-utils.h"
17
18#include <list>
19#include <map>
20
21namespace ns3
22{
23
24/// default MediumSyncDelay timer duration (max PPDU TX time rounded to a multiple of 32 us)
25static constexpr uint16_t DEFAULT_MSD_DURATION_USEC = 5484 / 32 * 32;
26
27/// default MediumSyncDelay timer OFDM ED threshold
28static constexpr int8_t DEFAULT_MSD_OFDM_ED_THRESH = -72;
29
30/// default MediumSyncDelay max number of TXOP attempts
31static constexpr uint8_t DEFAULT_MSD_MAX_N_TXOPS = 1;
32
33/**
34 * \brief TID-to-Link Mapping Negotiation Support
35 */
37{
38 NOT_SUPPORTED = 0,
39 SAME_LINK_SET = 1,
40 ANY_LINK_SET = 3
41};
42
43/**
44 * Deprecated link mapping support enums.
45 *
46 * Use `WifiTidToLinkMappingNegSupport` class enum values instead.
47 * @{
48 */
49NS_DEPRECATED_3_42("Use WifiTidToLinkMappingNegSupport::NOT_SUPPORTED instead")
58/**@}*/
59
60/**
61 * \brief Stream insertion operator.
62 * \param [in] os The reference to the output stream.
63 * \param [in] negsupport The WifiTidToLinkMappingNegSupport.
64 * \return The reference to the output stream.
65 */
66std::ostream& operator<<(std::ostream& os, WifiTidToLinkMappingNegSupport negsupport);
67
68/**
69 * \brief EHT configuration
70 * \ingroup wifi
71 *
72 * This object stores EHT configuration information, for use in modifying
73 * AP or STA behavior and for constructing EHT-related information elements.
74 *
75 */
77{
78 public:
80 ~EhtConfiguration() override;
81
82 /**
83 * \brief Get the type ID.
84 * \return the object TypeId
85 */
86 static TypeId GetTypeId();
87
88 /**
89 * \param dir the direction for the requested TID-to-Link Mapping
90 * \return a TID-indexed map of the list of links where each TID is mapped to
91 */
92 WifiTidLinkMapping GetTidLinkMapping(WifiDirection dir) const;
93
94 /**
95 * Set the TID-to-Link mapping for the given direction.
96 *
97 * \param dir the direction for the TID-to-Link Mapping
98 * \param mapping a list-of-TIDs-indexed map of the list of links where the TIDs are mapped to
99 */
100 void SetTidLinkMapping(WifiDirection dir,
101 const std::map<std::list<uint8_t>, std::list<uint8_t>>& mapping);
102
103 private:
104 bool m_emlsrActivated; //!< whether EMLSR option is activated
105 Time m_transitionTimeout; //!< Transition timeout
106 Time m_mediumSyncDuration; //!< duration of the MediumSyncDelay timer
107 int8_t m_msdOfdmEdThreshold; //!< MediumSyncDelay OFDM ED threshold
108 uint8_t m_msdMaxNTxops; //!< MediumSyncDelay max number of TXOPs
110 m_tidLinkMappingSupport; //!< TID-to-Link Mapping Negotiation Support
111 std::map<std::list<uint64_t>, std::list<uint64_t>>
112 m_linkMappingDl; //!< TIDs-indexed Link Mapping for downlink
113 std::map<std::list<uint64_t>, std::list<uint64_t>>
114 m_linkMappingUl; //!< TIDs-indexed Link Mapping for uplink
115};
116
117} // namespace ns3
118
119#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:78
Simulation virtual time values and global simulation resolution.
Definition nstime.h:94
a unique identifier for an interface.
Definition type-id.h:48
#define NS_DEPRECATED_3_42(msg)
Tag for things deprecated in version ns-3.42.
Definition deprecated.h:98
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
Deprecated link mapping support enums.
WifiTidToLinkMappingNegSupport
TID-to-Link Mapping Negotiation Support.
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:65
WifiDirection
Wifi direction.
Definition wifi-utils.h:34
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
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