23 #ifndef WIFI_PHY_COMMON_H
24 #define WIFI_PHY_COMMON_H
27 #include "ns3/fatal-error.h"
92 return (os <<
"LONG");
94 return (os <<
"SHORT");
96 return (os <<
"HT_MF");
98 return (os <<
"VHT_SU");
100 return (os <<
"VHT_MU");
102 return (os <<
"HE_SU");
104 return (os <<
"HE_ER_SU");
106 return (os <<
"HE_MU");
108 return (os <<
"HE_TB");
111 return (os <<
"INVALID");
147 return (os <<
"DSSS");
149 return (os <<
"HR/DSSS");
151 return (os <<
"ERP-OFDM");
153 return (os <<
"OFDM");
157 return (os <<
"VHT");
162 return (os <<
"unknown");
205 return (os <<
"preamble");
207 return (os <<
"non-HT header");
209 return (os <<
"HT-SIG");
211 return (os <<
"training");
213 return (os <<
"SIG-A");
215 return (os <<
"SIG-B");
217 return (os <<
"data");
220 return (os <<
"unknown");
249 return (os <<
"DL MU");
251 return (os <<
"UL MU");
254 return (os <<
"unknown");
298 return (os <<
"UNSUPPORTED_SETTINGS");
300 return (os <<
"CHANNEL_SWITCHING");
302 return (os <<
"RXING");
304 return (os <<
"TXING");
306 return (os <<
"SLEEPING");
308 return (os <<
"OFF");
310 return (os <<
"TRUNCATED_TX");
312 return (os <<
"BUSY_DECODING_PREAMBLE");
314 return (os <<
"PREAMBLE_DETECT_FAILURE");
316 return (os <<
"RECEPTION_ABORTED_BY_TX");
318 return (os <<
"L_SIG_FAILURE");
320 return (os <<
"HT_SIG_FAILURE");
322 return (os <<
"SIG_A_FAILURE");
324 return (os <<
"SIG_B_FAILURE");
326 return (os <<
"PREAMBLE_DETECTION_PACKET_SWITCH");
328 return (os <<
"FRAME_CAPTURE_PACKET_SWITCH");
330 return (os <<
"OBSS_PD_CCA_RESET");
332 return (os <<
"HE_TB_PPDU_TOO_LATE");
334 return (os <<
"FILTERED");
338 return (os <<
"UNKNOWN");
395 uint16_t maxSupportedChannelWidth);
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
WifiPhyRxfailureReason
Enumeration of the possible reception failure reasons.
WifiPreamble
The type of preamble to be used by an IEEE 802.11 transmission.
WifiPpduType
The type of PPDU (SU, DL MU, or UL MU)
WifiModulationClass
This enumeration defines the modulation classes per (Table 10-6 "Modulation classes"; IEEE 802....
WifiPpduField
The type of PPDU field (grouped for convenience)
@ PREAMBLE_DETECT_FAILURE
@ FRAME_CAPTURE_PACKET_SWITCH
@ RECEPTION_ABORTED_BY_TX
@ PREAMBLE_DETECTION_PACKET_SWITCH
@ WIFI_MOD_CLASS_OFDM
OFDM (Clause 17)
@ WIFI_MOD_CLASS_HR_DSSS
HR/DSSS (Clause 16)
@ WIFI_MOD_CLASS_UNKNOWN
Modulation class unknown or unspecified.
@ WIFI_MOD_CLASS_HT
HT (Clause 19)
@ WIFI_MOD_CLASS_VHT
VHT (Clause 22)
@ WIFI_MOD_CLASS_HE
HE (Clause 27)
@ WIFI_MOD_CLASS_DSSS
DSSS (Clause 15)
@ WIFI_MOD_CLASS_ERP_OFDM
ERP-OFDM (18.4)
@ WIFI_PPDU_FIELD_SIG_B
SIG-B field.
@ WIFI_PPDU_FIELD_TRAINING
STF + LTF fields (excluding those in preamble for HT-GF)
@ WIFI_PPDU_FIELD_NON_HT_HEADER
PHY header field for DSSS or ERP, short PHY header field for HR/DSSS or ERP, field not present for HT...
@ WIFI_PPDU_FIELD_HT_SIG
HT-SIG field.
@ WIFI_PPDU_FIELD_PREAMBLE
SYNC + SFD fields for DSSS or ERP, shortSYNC + shortSFD fields for HR/DSSS or ERP,...
@ WIFI_PPDU_FIELD_DATA
data field
@ WIFI_PPDU_FIELD_SIG_A
SIG-A field.
void(* Time)(Time oldValue, Time newValue)
TracedValue callback signature for Time.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Time GetPpduMaxTime(WifiPreamble preamble)
Get the maximum PPDU duration (see Section 10.14 of 802.11-2016) for the PHY layers defining the aPPD...
const uint16_t WIFI_CODE_RATE_UNDEFINED
undefined coding rate
const uint16_t WIFI_CODE_RATE_3_4
3/4 coding rate
const uint16_t WIFI_CODE_RATE_1_2
1/2 coding rate
bool IsAllowedControlAnswerModulationClass(WifiModulationClass modClassReq, WifiModulationClass modClassAnswer)
Return whether the modulation class of the selected mode for the control answer frame is allowed.
bool IsMu(WifiPreamble preamble)
Return true if a preamble corresponds to a multi-user transmission.
uint16_t GetChannelWidthForTransmission(WifiMode mode, uint16_t maxAllowedChannelWidth)
Return the channel width that is allowed based on the selected mode and the given maximum channel wid...
const uint16_t WIFI_CODE_RATE_2_3
2/3 coding rate
uint16_t WifiCodeRate
These constants define the various convolutional coding rates used for the OFDM transmission modes in...
uint16_t ConvertGuardIntervalToNanoSeconds(WifiMode mode, const Ptr< WifiNetDevice > device)
Convert the guard interval to nanoseconds based on the WifiMode.
const uint16_t WIFI_CODE_RATE_5_6
5/6 coding rate
WifiPreamble GetPreambleForTransmission(WifiModulationClass modulation, bool useShortPreamble)
Return the preamble to be used for the transmission.
bool IsDlMu(WifiPreamble preamble)
Return true if a preamble corresponds to a downlink multi-user transmission.
std::ostream & operator<<(std::ostream &os, const Angles &a)
bool IsUlMu(WifiPreamble preamble)
Return true if a preamble corresponds to a uplink multi-user transmission.