This section documents the API of the ns-3 Wifi module. More...
Modules | |
wifi module tests | |
Files | |
file | dsss-phy.h |
Declaration of ns3::DsssPhy class. | |
file | dsss-ppdu.h |
Declaration of ns3::DsssPpdu class. | |
file | eht-phy.h |
Declaration of ns3::EhtPhy class. | |
file | eht-ppdu.h |
Declaration of ns3::EhtPpdu class. | |
file | erp-ofdm-phy.h |
Declaration of ns3::ErpOfdmPhy class. | |
file | erp-ofdm-ppdu.h |
Declaration of ns3::ErpOfdmPpdu class. | |
file | he-phy.h |
Declaration of ns3::HePhy class and ns3::HeSigAParameters struct. | |
file | he-ppdu.h |
Declaration of ns3::HePpdu class. | |
file | ht-phy.h |
Declaration of ns3::HtPhy class. | |
file | ht-ppdu.h |
Declaration of ns3::HtPpdu class. | |
file | ofdm-phy.h |
Declaration of ns3::OfdmPhy class and ns3::OfdmPhyVariant enum. | |
file | ofdm-ppdu.h |
Declaration of ns3::OfdmPpdu class. | |
file | phy-entity.h |
Declaration of: | |
file | vht-phy.h |
Declaration of ns3::VhtPhy class. | |
file | vht-ppdu.h |
Declaration of ns3::VhtPpdu class. | |
file | wifi-phy-common.h |
Declaration of the following enums: | |
file | wifi-ppdu.h |
Declaration of ns3::WifiPpdu class and ns3::WifiConstPsduMap. | |
Classes | |
class | ns3::AarfcdWifiManager |
an implementation of the AARF-CD algorithm More... | |
class | ns3::AarfWifiManager |
AARF Rate control algorithm. More... | |
class | ns3::AdhocWifiMac |
Wifi MAC high model for an ad-hoc Wifi MAC. More... | |
struct | ns3::AllSupportedRates |
Struct containing all supported rates. More... | |
class | ns3::AmpduSubframeHeader |
Headers for A-MPDU subframes. More... | |
class | ns3::AmpduTag |
The aim of the AmpduTag is to provide means for a MAC to specify that a packet includes A-MPDU since this is done in HT-SIG and there is no HT-SIG representation in ns-3. More... | |
class | ns3::AmrrWifiManager |
AMRR Rate control algorithm. More... | |
class | ns3::AmsduSubframeHeader |
Headers for A-MSDU subframes. More... | |
class | ns3::AparfWifiManager |
APARF Power and rate control algorithm. More... | |
class | ns3::ApWifiMac |
Wi-Fi AP state machine. More... | |
class | ns3::ArfWifiManager |
ARF Rate control algorithm. More... | |
class | ns3::BlockAckAgreement |
Maintains information for a block ack agreement. More... | |
class | ns3::BlockAckManager |
Manages all block ack agreements for an originator station. More... | |
struct | ns3::BlockAckReqType |
The different BlockAckRequest variants. More... | |
struct | ns3::BlockAckType |
The different BlockAck variants. More... | |
class | ns3::BlockAckWindow |
Block ack window. More... | |
struct | ns3::CanBeInPerStaProfile< T > |
Inspect a type to deduce whether it is an Information Element that can be included in a Per-STA Profile subelement of a Multi-Link Element. More... | |
class | ns3::CapabilityInformation |
Capability information. More... | |
class | ns3::CaraWifiManager |
implement the CARA rate control algorithm More... | |
class | ns3::ChannelAccessManager |
Manage a set of ns3::Txop. More... | |
class | ns3::ConstantObssPdAlgorithm |
Constant OBSS PD algorithm. More... | |
class | ns3::ConstantRateWifiManager |
use constant rates for data and RTS transmissions More... | |
class | ns3::CtrlBAckRequestHeader |
Headers for BlockAckRequest. More... | |
class | ns3::CtrlBAckResponseHeader |
Headers for BlockAck response. More... | |
class | ns3::CtrlTriggerHeader |
Headers for Trigger frames. More... | |
class | ns3::CtrlTriggerUserInfoField |
User Info field of Trigger frames. More... | |
class | ns3::DefaultEmlsrManager |
DefaultEmlsrManager is the default EMLSR manager. More... | |
class | ns3::DsssErrorRateModel |
an implementation of DSSS error rate model More... | |
class | ns3::DsssParameterSet |
The DSSS Parameter Set. More... | |
class | ns3::DsssPhy |
PHY entity for HR/DSSS (11b) More... | |
class | ns3::DsssPpdu |
DSSS (HR/DSSS) PPDU (11b) More... | |
class | ns3::EdcaParameterSet |
The EDCA Parameter Set. More... | |
class | ns3::EhtCapabilities |
The IEEE 802.11be EHT Capabilities. More... | |
class | ns3::EhtConfiguration |
EHT configuration. More... | |
class | ns3::EhtFrameExchangeManager |
EhtFrameExchangeManager handles the frame exchange sequences for EHT stations. More... | |
class | ns3::EhtOperation |
EHT Operation Information Element. More... | |
class | ns3::EhtPhy |
PHY entity for EHT (11be) More... | |
class | ns3::EhtPpdu |
EHT PPDU (11be) More... | |
class | ns3::EmlsrManager |
EmlsrManager is an abstract base class defining the API that EHT non-AP MLDs with EMLSR activated can use to handle the operations on the EMLSR links. More... | |
class | ns3::ErpInformation |
The ErpInformation Information Element. More... | |
class | ns3::ErpOfdmPhy |
PHY entity for ERP-OFDM (11g) More... | |
class | ns3::ErpOfdmPpdu |
ERP-OFDM PPDU (11g) More... | |
class | ns3::ErrorRateModel |
the interface for Wifi's error models More... | |
class | ns3::Event |
handles interference calculations More... | |
class | ns3::ExtendedCapabilities |
The Extended Capabilities Information Element. More... | |
class | ns3::ExtendedSupportedRatesIE |
The Extended Supported Rates Information Element. More... | |
struct | ns3::FcfsPrio |
Definition of priority for container queues. More... | |
class | ns3::FcfsWifiQueueScheduler |
FcfsWifiQueueScheduler is a wifi queue scheduler that serves data frames in a first come first serve fashion. More... | |
class | ns3::FrameCaptureModel |
the interface for Wifi's frame capture models More... | |
class | ns3::FrameExchangeManager |
FrameExchangeManager is a base class handling the basic frame exchange sequences for non-QoS stations. More... | |
struct | std::hash< ns3::WifiContainerQueueId > |
Hashing functor taking a QueueId and returning a std::size_t . More... | |
class | ns3::HeCapabilities |
The IEEE 802.11ax HE Capabilities. More... | |
class | ns3::HeConfiguration |
HE configuration. More... | |
class | ns3::HeFrameExchangeManager |
HeFrameExchangeManager handles the frame exchange sequences for HE stations. More... | |
class | ns3::HeOperation |
The HE Operation Information Element. More... | |
class | ns3::HePhy |
PHY entity for HE (11ax) More... | |
class | ns3::HePpdu |
HE PPDU (11ax) More... | |
class | ns3::HtCapabilities |
The HT Capabilities Information Element. More... | |
class | ns3::HtConfiguration |
HT configuration. More... | |
class | ns3::HtFrameExchangeManager |
HtFrameExchangeManager handles the frame exchange sequences for HT stations. More... | |
class | ns3::HtOperation |
The HT Operation Information Element. More... | |
class | ns3::HtPhy |
PHY entity for HT (11n) More... | |
class | ns3::HtPpdu |
HT PPDU (11n) More... | |
class | ns3::IdealWifiManager |
Ideal rate control algorithm. More... | |
class | ns3::InterferenceHelper |
handles interference calculations More... | |
class | ns3::MacRxMiddle |
This class handles duplicate detection and recomposition of fragments. More... | |
class | ns3::MacTxMiddle |
Handles sequence numbering of IEEE 802.11 data frames. More... | |
class | ns3::MeshInformationElementVector |
Information element vector. More... | |
class | ns3::MgtAddBaRequestHeader |
Implement the header for management frames of type Add Block Ack request. More... | |
class | ns3::MgtAddBaResponseHeader |
Implement the header for management frames of type Add Block Ack response. More... | |
class | ns3::MgtAssocRequestHeader |
Implement the header for management frames of type association request. More... | |
class | ns3::MgtAssocResponseHeader |
Implement the header for management frames of type association and reassociation response. More... | |
class | ns3::MgtBeaconHeader |
Implement the header for management frames of type beacon. More... | |
class | ns3::MgtDelBaHeader |
Implement the header for management frames of type Delete Block Ack. More... | |
class | ns3::MgtEmlOperatingModeNotification |
Implement the header for Action frames of type EML Operating Mode Notification. More... | |
class | ns3::MgtHeaderInPerStaProfile< Derived, Tuple > |
Implement the header for management frames that can be included in a Per-STA Profile subelement of a Multi-Link Element. More... | |
class | ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > > |
Add methods needed to serialize/deserialize a management header into a Per-STA Profile subelement of a Multi-Link Element. More... | |
class | ns3::MgtProbeRequestHeader |
Implement the header for management frames of type probe request. More... | |
class | ns3::MgtProbeResponseHeader |
Implement the header for management frames of type probe response. More... | |
class | ns3::MgtReassocRequestHeader |
Implement the header for management frames of type reassociation request. More... | |
class | ns3::MinstrelHtWifiManager |
Implementation of Minstrel-HT Rate Control Algorithm. More... | |
class | ns3::MinstrelWifiManager |
Implementation of Minstrel Rate Control Algorithm. More... | |
class | ns3::MpduAggregator |
Aggregator used to construct A-MPDUs. More... | |
class | ns3::MsduAggregator |
Aggregator used to construct A-MSDUs. More... | |
class | ns3::MuEdcaParameterSet |
The MU EDCA Parameter Set. More... | |
class | ns3::MultiLinkElement |
The Multi-Link element. More... | |
class | ns3::MultiUserScheduler |
MultiUserScheduler is an abstract base class defining the API that APs supporting at least VHT can use to determine the format of their next transmission. More... | |
class | ns3::MuSnrTag |
A tag to be attached to a response to a multi-user UL frame, that carries the SNR values with which the individual frames have been received. More... | |
class | ns3::NistErrorRateModel |
A model for the error rate for different modulations. More... | |
class | ns3::NonInheritance |
The IEEE 802.11 Non-Inheritance Information Element. More... | |
class | ns3::ObssPdAlgorithm |
OBSS PD algorithm interface. More... | |
class | ns3::OfdmPhy |
PHY entity for OFDM (11a) More... | |
class | ns3::OfdmPpdu |
OFDM PPDU (11a) More... | |
class | ns3::OnoeWifiManager |
an implementation of the rate control algorithm developed by Atsushi Onoe More... | |
class | ns3::OriginatorBlockAckAgreement |
Maintains the state and information about transmitted MPDUs with Ack Policy set to Block Ack for an originator station. More... | |
class | ns3::ParfWifiManager |
PARF Rate control algorithm. More... | |
class | ns3::MultiLinkElement::PerStaProfileSubelement |
Per-STA Profile Subelement of Multi-Link element. More... | |
class | ns3::PhyEntity |
Abstract class for PHY entities. More... | |
class | ns3::PreambleDetectionModel |
the interface for Wifi's preamble detection models More... | |
class | ns3::QosFrameExchangeManager |
QosFrameExchangeManager handles the frame exchange sequences for QoS stations. More... | |
class | ns3::QosTxop |
Handle packet fragmentation and retransmissions for QoS data frames as well as MSDU aggregation (A-MSDU) and block ack sessions, for a given access class. More... | |
class | ns3::RecipientBlockAckAgreement |
Maintains the scoreboard and the receive reordering buffer used by a recipient of a Block Ack agreement. More... | |
class | ns3::ReducedNeighborReport |
The Reduced Neighbor Report element. More... | |
class | ns3::RraaWifiManager |
Robust Rate Adaptation Algorithm. More... | |
class | ns3::RrMultiUserScheduler |
RrMultiUserScheduler is a simple OFDMA scheduler that indicates to perform a DL OFDMA transmission if the AP has frames to transmit to at least one station. More... | |
class | ns3::SimpleFrameCaptureModel |
A simple threshold-based model for frame capture effect. More... | |
class | ns3::SpectrumWifiPhy |
802.11 PHY layer model More... | |
class | ns3::Ssid |
The IEEE 802.11 SSID Information Element. More... | |
class | ns3::StaWifiMac |
The Wifi MAC high model for a non-AP STA in a BSS. More... | |
class | ns3::SupportedRates |
The Supported Rates Information Element. More... | |
class | ns3::ThompsonSamplingWifiManager |
Thompson Sampling rate control algorithm. More... | |
class | ns3::ThresholdPreambleDetectionModel |
A threshold-based model for detecting PHY preamble. More... | |
class | ns3::TidToLinkMapping |
TID-to-Link Mapping Information Element. More... | |
class | ns3::Txop |
Handle packet fragmentation and retransmissions for data and management frames. More... | |
class | ns3::VhtCapabilities |
The IEEE 802.11ac VHT Capabilities. More... | |
class | ns3::VhtConfiguration |
VHT configuration. More... | |
class | ns3::VhtFrameExchangeManager |
VhtFrameExchangeManager handles the frame exchange sequences for VHT stations. More... | |
class | ns3::VhtOperation |
The VHT Operation Information Element. More... | |
class | ns3::VhtPhy |
PHY entity for VHT (11ac) More... | |
class | ns3::VhtPpdu |
VHT PPDU (11ac) More... | |
class | ns3::WifiAc |
This class stores the pair of TIDs of an Access Category. More... | |
struct | ns3::WifiAckAfterTbPpdu |
WifiAckAfterTbPpdu is used when a station prepares a TB PPDU to send in response to a Basic Trigger Frame. More... | |
class | ns3::WifiAckManager |
WifiAckManager is an abstract base class. More... | |
struct | ns3::WifiAcknowledgment |
WifiAcknowledgment is an abstract base struct. More... | |
class | ns3::WifiActionHeader |
See IEEE 802.11 chapter 7.3.1.11 Header format: | category: 1 | action value: 1 |. More... | |
class | ns3::WifiAssocManager |
Abstract base class for the Association Manager, which manages scanning and association for single link devices and ML discovery and setup for multi-link devices. More... | |
struct | ns3::WifiBarBlockAck |
WifiBarBlockAck specifies that a BlockAckReq is sent to solicit a Block Ack response. More... | |
struct | ns3::WifiBlockAck |
WifiBlockAck specifies that acknowledgment via Block Ack is required. More... | |
struct | ns3::WifiCtsToSelfProtection |
WifiCtsToSelfProtection specifies that CTS-to-self protection method is used. More... | |
class | ns3::WifiDefaultAckManager |
WifiDefaultAckManager is the default ack manager. More... | |
class | ns3::WifiDefaultAssocManager |
Default wifi Association Manager. More... | |
class | ns3::WifiDefaultProtectionManager |
WifiDefaultProtectionManager is the default protection manager, which selects the protection method for a frame based on its size. More... | |
struct | ns3::WifiDlMuAggregateTf |
WifiDlMuAggregateTf specifies that a DL MU PPDU made of PSDUs including each a MU-BAR Trigger Frame is acknowledged through BlockAck frames sent as HE TB PPDUs. More... | |
struct | ns3::WifiDlMuBarBaSequence |
WifiDlMuBarBaSequence specifies that a DL MU PPDU is acknowledged through a sequence of BlockAckReq and BlockAck frames. More... | |
struct | ns3::WifiDlMuTfMuBar |
WifiDlMuTfMuBar specifies that a DL MU PPDU is followed after a SIFS duration by a MU-BAR Trigger Frame (sent as single user frame) soliciting BlockAck frames sent as HE TB PPDUs. More... | |
class | ns3::WifiInformationElement |
Information element, as defined in 802.11-2007 standard. More... | |
class | ns3::WifiMac |
base class for all MAC-level wifi objects. More... | |
class | ns3::WifiMacHeader |
Implements the IEEE 802.11 MAC header. More... | |
class | ns3::WifiMacQueue |
This queue implements the timeout procedure described in (Section 9.19.2.6 "Retransmit procedures" paragraph 6; IEEE 802.11-2012). More... | |
class | ns3::WifiMacQueueContainer |
Class for the container used by WifiMacQueue. More... | |
struct | ns3::WifiMacQueueElem |
Type of elements stored in a WifiMacQueue container. More... | |
class | ns3::WifiMacQueueScheduler |
WifiMacQueueScheduler is an abstract base class defining the public interface for a wifi MAC queue scheduler. More... | |
class | ns3::WifiMacQueueSchedulerImpl< Priority, Compare > |
WifiMacQueueSchedulerImpl is a template class enabling the definition of different types of priority values for the container queues. More... | |
class | ns3::WifiMacTrailer |
Implements the IEEE 802.11 MAC trailer. More... | |
class | ns3::WifiMgtHeader< Derived, Tuple > |
Implement the header for management frames. More... | |
class | ns3::WifiMgtHeader< Derived, std::tuple< Elems... > > |
Base class for implementing management frame headers. More... | |
class | ns3::WifiMode |
represent a single transmission mode More... | |
class | ns3::WifiMpdu |
WifiMpdu stores a (const) packet along with a MAC header. More... | |
struct | ns3::WifiMuRtsCtsProtection |
WifiMuRtsCtsProtection specifies that MU-RTS/CTS protection method is used. More... | |
class | ns3::WifiNetDevice |
Hold together all Wifi-related objects. More... | |
struct | ns3::WifiNoAck |
WifiNoAck specifies that no acknowledgment is required. More... | |
struct | ns3::WifiNoProtection |
WifiNoProtection specifies that no protection method is used. More... | |
struct | ns3::WifiNormalAck |
WifiNormalAck specifies that acknowledgment via Normal Ack is required. More... | |
class | ns3::WifiPhy |
802.11 PHY layer model More... | |
class | ns3::WifiPhyOperatingChannel |
Class that keeps track of all information about the current PHY operating channel. More... | |
class | ns3::WifiPhyStateHelper |
This objects implements the PHY state machine of the Wifi device. More... | |
class | ns3::WifiPpdu |
WifiPpdu stores a preamble, a modulation class, PHY headers and a PSDU. More... | |
struct | ns3::WifiProtection |
WifiProtection is an abstract base struct. More... | |
class | ns3::WifiProtectionManager |
WifiProtectionManager is an abstract base class. More... | |
class | ns3::WifiPsdu |
WifiPsdu stores an MPDU, S-MPDU or A-MPDU, by keeping header(s) and payload(s) separate for each constituent MPDU. More... | |
class | ns3::WifiRemoteStationManager |
hold a list of per-remote-station state. More... | |
struct | ns3::WifiRrpaaThresholds |
Robust Rate and Power Adaptation Algorithm. More... | |
struct | ns3::WifiRtsCtsProtection |
WifiRtsCtsProtection specifies that RTS/CTS protection method is used. More... | |
struct | ns3::WifiScanParams |
Structure holding scan parameters. More... | |
class | ns3::WifiSpectrumPhyInterface |
This class is an adaptor between class SpectrumWifiPhy (which inherits from WifiPhy) and class SpectrumChannel (which expects objects derived from class SpectrumPhy to be connected to it). More... | |
struct | ns3::WifiSpectrumSignalParameters |
Signal parameters for wifi. More... | |
class | ns3::WifiTxParameters |
This class stores the TX parameters (TX vector, protection mechanism, acknowledgment mechanism, TX duration, ...) for a frame of different types (MPDU, A-MPDU, multi-TID A-MPDU, MU PPDU, ...). More... | |
class | ns3::WifiTxTimer |
This class is used to handle the timer that a station starts when transmitting a frame that solicits a response. More... | |
struct | ns3::WifiUlMuMultiStaBa |
WifiUlMuMultiStaBa specifies that a Basic Trigger Frame is being sent to solicit TB PPDUs that will be acknowledged through a multi-STA BlockAck frame. More... | |
class | ns3::WmqIteratorTag |
Tag used to allow (only) WifiMacQueue to access the queue iterator stored by a WifiMpdu. More... | |
class | ns3::YansErrorRateModel |
Model the error rate for different modulations. More... | |
class | ns3::YansWifiChannel |
a channel to interconnect ns3::YansWifiPhy objects. More... | |
class | ns3::YansWifiPhy |
802.11 PHY layer model More... | |
Functions | |
uint8_t | ns3::GetTid (Ptr< const Packet > packet, const WifiMacHeader hdr) |
This function is useful to get traffic id of different packet types. | |
bool | ns3::operator< (AcIndex left, AcIndex right) |
Operator< overload returning true if the AC on the left has lower priority than the AC on the right. | |
bool | ns3::operator< (const WifiSpectrumBandInfo &lhs, const WifiSpectrumBandInfo &rhs) |
Compare two bands. | |
bool | ns3::operator<= (AcIndex left, AcIndex right) |
Operator<= overload returning true if the AC on the left has lower or the same priority than the AC on the right. | |
bool | ns3::operator> (AcIndex left, AcIndex right) |
Operator> overload returning true if the AC on the left has higher priority than the AC on the right. | |
bool | ns3::operator>= (AcIndex left, AcIndex right) |
Operator>= overload returning true if the AC on the left has higher or the same priority than the AC on the right. | |
uint8_t | ns3::QosUtilsGetTidForPacket (Ptr< const Packet > packet) |
If a QoS tag is attached to the packet, returns a value < 8. | |
bool | ns3::QosUtilsIsOldPacket (uint16_t startingSeq, uint16_t seqNumber) |
This function checks if packet with sequence number seqNumber is an "old" packet. | |
uint32_t | ns3::QosUtilsMapSeqControlToUniqueInteger (uint16_t seqControl, uint16_t endSequence) |
Next function is useful to correctly sort buffered packets under block ack. | |
AcIndex | ns3::QosUtilsMapTidToAc (uint8_t tid) |
Maps TID (Traffic ID) to Access classes. | |
uint8_t | ns3::SelectQueueByDSField (Ptr< QueueItem > item) |
Determine the TX queue for a given packet. | |
This section documents the API of the ns-3 Wifi module.
For a generic functional description, please refer to the ns-3 manual.
enum ns3::AcIndex : uint8_t |
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC index (ACI) values specified (Table 8-104 "ACI-to-AC coding"; IEEE 802.11-2012).
Enumerator | |
---|---|
AC_BE | Best Effort. |
AC_BK | Background. |
AC_VI | Video. |
AC_VO | Voice. |
AC_BE_NQOS | Non-QoS. |
AC_BEACON | Beacon queue. |
AC_UNDEF | Total number of ACs. |
Definition at line 71 of file qos-utils.h.
enum ns3::Center26ToneRuIndication : uint8_t |
Enum for the different values for CENTER_26_TONE_RU.
Enumerator | |
---|---|
CENTER_26_TONE_RU_UNALLOCATED | |
CENTER_26_TONE_RU_LOW_80_MHZ_ALLOCATED | |
CENTER_26_TONE_RU_HIGH_80_MHZ_ALLOCATED | |
CENTER_26_TONE_RU_LOW_AND_HIGH_80_MHZ_ALLOCATED | |
CENTER_26_TONE_RU_INDICATION_MAX |
Definition at line 69 of file wifi-tx-vector.h.
enum ns3::FrequencyChannelType : uint8_t |
Enumeration of frequency channel types.
Enumerator | |
---|---|
WIFI_PHY_DSSS_CHANNEL | |
WIFI_PHY_OFDM_CHANNEL | |
WIFI_PHY_80211p_CHANNEL |
Definition at line 105 of file wifi-standards.h.
enum ns3::MpduType |
The type of an MPDU.
Definition at line 30 of file wifi-mpdu-type.h.
enum ns3::OfdmPhyVariant |
The OFDM (11a) PHY variants.
Enumerator | |
---|---|
OFDM_PHY_DEFAULT | |
OFDM_PHY_10_MHZ | |
OFDM_PHY_5_MHZ |
Definition at line 43 of file ofdm-phy.h.
enum ns3::MultiLinkElement::SubElementId : uint8_t |
SubElement IDs.
Enumerator | |
---|---|
PER_STA_PROFILE_SUBELEMENT_ID |
Definition at line 182 of file multi-link-element.h.
|
strong |
The different Trigger frame types.
Enumerator | |
---|---|
BASIC_TRIGGER | |
BFRP_TRIGGER | |
MU_BAR_TRIGGER | |
MU_RTS_TRIGGER | |
BSRP_TRIGGER | |
GCR_MU_BAR_TRIGGER | |
BQRP_TRIGGER | |
NFRP_TRIGGER |
Definition at line 559 of file ctrl-headers.h.
|
strong |
The different variants for Common Info field and User Info field of Trigger Frames.
Enumerator | |
---|---|
HE | |
EHT |
Definition at line 575 of file ctrl-headers.h.
enum ns3::TypeOfStation |
Enumeration for type of WiFi station.
Enumerator | |
---|---|
STA | |
AP | |
ADHOC_STA | |
MESH | |
OCB |
Definition at line 61 of file wifi-mac.h.
enum ns3::MultiLinkElement::Variant : uint8_t |
Multi-Link element variants.
Note that Multi-Link element variants can be added to this enum only when the corresponding CommonInfo variant is implemented. This is because the index of m_commonInfo, which is a std::variant, is casted to this enum and the index of the "unset" variant must correspond to UNSET.
Enumerator | |
---|---|
BASIC_VARIANT | |
UNSET |
Definition at line 168 of file multi-link-element.h.
enum ns3::WifiChannelListType : uint8_t |
Enumeration of the possible channel-list parameter elements defined in Table 8-5 of IEEE 802.11-2016.
Enumerator | |
---|---|
WIFI_CHANLIST_PRIMARY | |
WIFI_CHANLIST_SECONDARY | |
WIFI_CHANLIST_SECONDARY40 | |
WIFI_CHANLIST_SECONDARY80 |
Definition at line 498 of file wifi-phy-common.h.
enum ns3::WifiMacDropReason : uint8_t |
The reason why an MPDU was dropped.
Enumerator | |
---|---|
WIFI_MAC_DROP_FAILED_ENQUEUE | |
WIFI_MAC_DROP_EXPIRED_LIFETIME | |
WIFI_MAC_DROP_REACHED_RETRY_LIMIT | |
WIFI_MAC_DROP_QOS_OLD_PACKET |
Definition at line 74 of file wifi-mac.h.
This enumeration defines the modulation classes per (Table 10-6 "Modulation classes"; IEEE 802.11-2016, with updated in 802.11ax/D6.0 as Table 10-9).
Enumerator | |
---|---|
WIFI_MOD_CLASS_UNKNOWN | Modulation class unknown or unspecified. A WifiMode with this WifiModulationClass has not been properly initialized. |
WIFI_MOD_CLASS_DSSS | DSSS (Clause 15) |
WIFI_MOD_CLASS_HR_DSSS | HR/DSSS (Clause 16) |
WIFI_MOD_CLASS_ERP_OFDM | ERP-OFDM (18.4) |
WIFI_MOD_CLASS_OFDM | OFDM (Clause 17) |
WIFI_MOD_CLASS_HT | HT (Clause 19) |
WIFI_MOD_CLASS_VHT | VHT (Clause 22) |
WIFI_MOD_CLASS_DMG_CTRL | DMG (Clause 21) |
WIFI_MOD_CLASS_DMG_OFDM | DMG (Clause 21) |
WIFI_MOD_CLASS_DMG_SC | DMG (Clause 21) |
WIFI_MOD_CLASS_DMG_LP_SC | DMG (Clause 21) |
WIFI_MOD_CLASS_HE | HE (Clause 27) |
WIFI_MOD_CLASS_EHT | EHT (Clause 36) |
Definition at line 235 of file wifi-phy-common.h.
enum ns3::WifiPhyBand |
Identifies the PHY band.
Enumerator | |
---|---|
WIFI_PHY_BAND_2_4GHZ | The 2.4 GHz band. |
WIFI_PHY_BAND_5GHZ | The 5 GHz band. |
WIFI_PHY_BAND_6GHZ | The 6 GHz band. |
WIFI_PHY_BAND_60GHZ | The 60 GHz band. |
WIFI_PHY_BAND_UNSPECIFIED | Unspecified. |
Definition at line 32 of file wifi-phy-band.h.
Enumeration of the possible reception failure reasons.
Definition at line 400 of file wifi-phy-common.h.
enum ns3::WifiPowerManagementMode : uint8_t |
Enumeration for power management modes.
Enumerator | |
---|---|
WIFI_PM_ACTIVE | |
WIFI_PM_SWITCHING_TO_PS | |
WIFI_PM_POWERSAVE | |
WIFI_PM_SWITCHING_TO_ACTIVE |
Definition at line 91 of file sta-wifi-mac.h.
enum ns3::WifiPpduField |
The type of PPDU field (grouped for convenience)
Definition at line 300 of file wifi-phy-common.h.
enum ns3::WifiPpduType |
The type of PPDU (SU, DL MU, or UL MU)
Enumerator | |
---|---|
WIFI_PPDU_TYPE_SU | |
WIFI_PPDU_TYPE_DL_MU | |
WIFI_PPDU_TYPE_UL_MU |
Definition at line 365 of file wifi-phy-common.h.
enum ns3::WifiPreamble |
The type of preamble to be used by an IEEE 802.11 transmission.
Definition at line 165 of file wifi-phy-common.h.
|
strong |
Enumeration of the reasons to block container queues.
Enumerator | |
---|---|
WAITING_ADDBA_RESP | |
POWER_SAVE_MODE | |
USING_OTHER_EMLSR_LINK | |
WAITING_EMLSR_TRANSITION_DELAY | |
REASONS_COUNT |
Definition at line 42 of file wifi-mac-queue-scheduler.h.
|
strong |
Scan type (active or passive)
Enumerator | |
---|---|
ACTIVE | |
PASSIVE |
Definition at line 50 of file sta-wifi-mac.h.
enum ns3::WifiStandard |
Identifies the IEEE 802.11 specifications that a Wifi device can be configured to use.
Definition at line 37 of file wifi-standards.h.
uint8_t ns3::GetTid | ( | Ptr< const Packet > | packet, |
const WifiMacHeader | hdr | ||
) |
This function is useful to get traffic id of different packet types.
packet | packet to check |
hdr | 802.11 header for packet to check |
Definition at line 191 of file qos-utils.cc.
References ns3::WifiActionHeader::BLOCK_ACK, ns3::WifiActionHeader::BLOCK_ACK_ADDBA_REQUEST, ns3::WifiActionHeader::BLOCK_ACK_ADDBA_RESPONSE, ns3::WifiActionHeader::BLOCK_ACK_DELBA, ns3::WifiActionHeader::ActionValue::blockAck, ns3::WifiActionHeader::GetAction(), ns3::WifiActionHeader::GetCategory(), ns3::WifiMacHeader::GetQosTid(), ns3::MgtAddBaRequestHeader::GetTid(), ns3::MgtAddBaResponseHeader::GetTid(), ns3::MgtDelBaHeader::GetTid(), ns3::CtrlBAckRequestHeader::GetTidInfo(), ns3::CtrlBAckResponseHeader::GetTidInfo(), ns3::WifiMacHeader::IsAction(), ns3::WifiMacHeader::IsBlockAck(), ns3::WifiMacHeader::IsBlockAckReq(), ns3::WifiMacHeader::IsMgt(), ns3::WifiMacHeader::IsQosData(), NS_ASSERT, and NS_FATAL_ERROR.
Referenced by ns3::HtFrameExchangeManager::NotifyPacketDiscarded(), and ns3::WifiDefaultAckManager::TryAddMpdu().
Operator< overload returning true if the AC on the left has lower priority than the AC on the right.
left | the AC on the left of operator< |
right | the AC on the right of operator< |
Definition at line 114 of file qos-utils.cc.
|
inline |
Compare two bands.
lhs | the band on the left of operator< |
rhs | the band on the right of operator< |
Definition at line 72 of file wifi-phy-common.h.
References ns3::WifiSpectrumBandInfo::frequencies.
Operator<= overload returning true if the AC on the left has lower or the same priority than the AC on the right.
left | the AC on the left of operator<= |
right | the AC on the right of operator<= |
Definition at line 120 of file qos-utils.cc.
Operator> overload returning true if the AC on the left has higher priority than the AC on the right.
left | the AC on the left of operator> |
right | the AC on the right of operator> |
Definition at line 87 of file qos-utils.cc.
References ns3::AC_BK, and NS_ABORT_MSG_IF.
Operator>= overload returning true if the AC on the left has higher or the same priority than the AC on the right.
left | the AC on the left of operator>= |
right | the AC on the right of operator>= |
Definition at line 107 of file qos-utils.cc.
References NS_ABORT_MSG_IF.
If a QoS tag is attached to the packet, returns a value < 8.
A value >= 8 is returned otherwise.
packet | the packet to checked for a QoS tag |
Definition at line 156 of file qos-utils.cc.
References ns3::SocketPriorityTag::GetPriority().
Referenced by ns3::AdhocWifiMac::Enqueue(), ns3::StaWifiMac::Enqueue(), and ns3::ApWifiMac::ForwardDown().
bool ns3::QosUtilsIsOldPacket | ( | uint16_t | startingSeq, |
uint16_t | seqNumber | ||
) |
This function checks if packet with sequence number seqNumber is an "old" packet.
The sequence number space is considered divided into two parts, one of which is "old" and one of which is "new" by means of a boundary created by adding half the sequence number range to the starting sequence number startingSeq. So this function works fine also when seqNumber is smaller than startingSeq and startingSeq + 2048 is greater than 4096 because all comparison are circular modulo 2^12. The following are possible scenarios:
--— = old packets +++++ = new packets
CASE A:
0 4095 |++++++|-------------—|++++++| ^ ^ | endSeq | startingSeq
CASE B:
0 4095 |---—|++++++++++++++++|--—| ^ ^ | startingSeq | endSeq
Here in the examples endSeq is the sequenceNumber of the "last" new packet. So this function, when specified a starting sequence and a sequence number, returns true if that packet (with sequence number numberSeq)) belongs to the section of the sequence number space marked with '-' characters. The function returns false otherwise.
startingSeq | the starting sequence number |
seqNumber | the sequence number to be checked |
Definition at line 182 of file qos-utils.cc.
References NS_ASSERT.
Referenced by QosUtilsIsOldPacketTest::DoRun(), ns3::WifiDefaultAckManager::GetMaxDistFromStartingSeq(), ns3::WifiPsdu::GetMaxDistFromStartingSeq(), ns3::QosTxop::IsQosOldPacket(), and ns3::BlockAckManager::NotifyDiscardedMpdu().
uint32_t ns3::QosUtilsMapSeqControlToUniqueInteger | ( | uint16_t | seqControl, |
uint16_t | endSequence | ||
) |
Next function is useful to correctly sort buffered packets under block ack.
When an BAR is received from originator station, completed "old" (see section 9.10.3 in IEEE 802.11e) packets must be forwarded up before "new" packets.
seqControl | the sequence control field |
endSequence | the sequence number ending the acknowledgment window |
Definition at line 171 of file qos-utils.cc.
Referenced by PacketBufferingCaseA::DoRun(), and PacketBufferingCaseB::DoRun().
AcIndex ns3::QosUtilsMapTidToAc | ( | uint8_t | tid | ) |
Maps TID (Traffic ID) to Access classes.
For more details see (Table 9-1 "UP-to-AC mapping"; IEEE 802.11-2012).
tid | the Traffic ID to be mapped to Access class |
Definition at line 134 of file qos-utils.cc.
References ns3::AC_BE, ns3::AC_BK, ns3::AC_UNDEF, ns3::AC_VI, ns3::AC_VO, and NS_ASSERT_MSG.
Referenced by ns3::RrMultiUserScheduler::ComputeDlMuInfo(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::WifiDefaultAckManager::GetAckInfoIfAggregatedMuBar(), ns3::WifiDefaultAckManager::GetAckInfoIfBarBaSequence(), ns3::WifiDefaultAckManager::GetAckInfoIfTfMuBar(), ns3::MpduAggregator::GetMaxAmpduSize(), ns3::MsduAggregator::GetMaxAmsduSize(), ns3::WifiMac::GetQosTxop(), ns3::WifiRemoteStationManager::NeedRetransmission(), ns3::QosTxop::PrepareBlockAckRequest(), ns3::WifiRemoteStationManager::ReportDataFailed(), ns3::WifiRemoteStationManager::ReportDataOk(), ns3::WifiRemoteStationManager::ReportFinalDataFailed(), ns3::WifiRemoteStationManager::ReportFinalRtsFailed(), ns3::WifiRemoteStationManager::ReportRtsFailed(), ns3::WifiRemoteStationManager::ReportRtsOk(), ns3::SelectQueueByDSField(), and ns3::RrMultiUserScheduler::TrySendingDlMuPpdu().
Determine the TX queue for a given packet.
item | the packet |
Modeled after the Linux function ieee80211_select_queue (net/mac80211/wme.c). A SocketPriority tag is attached to the packet (or the existing one is replaced) to carry the user priority, which is set to the three most significant bits of the DS field (TOS field in case of IPv4 and Traffic Class field in case of IPv6). The Access Category corresponding to the user priority according to the QosUtilsMapTidToAc function is returned.
The following table shows the mapping for the Diffserv Per Hop Behaviors.
PHB | TOS (binary) | UP | Access Category |
---|---|---|---|
EF | 101110xx | 5 | AC_VI |
AF11 | 001010xx | 1 | AC_BK |
AF21 | 010010xx | 2 | AC_BK |
AF31 | 011010xx | 3 | AC_BE |
AF41 | 100010xx | 4 | AC_VI |
AF12 | 001100xx | 1 | AC_BK |
AF22 | 010100xx | 2 | AC_BK |
AF32 | 011100xx | 3 | AC_BE |
AF42 | 100100xx | 4 | AC_VI |
AF13 | 001110xx | 1 | AC_BK |
AF23 | 010110xx | 2 | AC_BK |
AF33 | 011110xx | 3 | AC_BE |
AF43 | 100110xx | 4 | AC_VI |
CS0 | 000000xx | 0 | AC_BE |
CS1 | 001000xx | 1 | AC_BK |
CS2 | 010000xx | 2 | AC_BK |
CS3 | 011000xx | 3 | AC_BE |
CS4 | 100000xx | 4 | AC_VI |
CS5 | 101000xx | 5 | AC_VI |
CS6 | 110000xx | 6 | AC_VO |
CS7 | 111000xx | 7 | AC_VO |
This method is called by the traffic control layer before enqueuing a packet in the queue disc, if a queue disc is installed on the outgoing device, or passing a packet to the device, otherwise.
Definition at line 253 of file qos-utils.cc.
References ns3::QueueItem::IP_DSFIELD, ns3::QosUtilsMapTidToAc(), and ns3::SocketPriorityTag::SetPriority().