A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ofdm-phy.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 Orange Labs
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Authors: Rediet <getachew.redieteab@orange.com>
7 * Sébastien Deronne <sebastien.deronne@gmail.com> (for logic ported from wifi-phy)
8 * Mathieu Lacage <mathieu.lacage@sophia.inria.fr> (for logic ported from wifi-phy)
9 */
10
11#ifndef OFDM_PHY_H
12#define OFDM_PHY_H
13
14#include "ns3/phy-entity.h"
15
16/**
17 * @file
18 * @ingroup wifi
19 * Declaration of ns3::OfdmPhy class
20 * and ns3::OfdmPhyVariant enum.
21 */
22
23namespace ns3
24{
25
26/**
27 * @ingroup wifi
28 * The OFDM (11a) PHY variants.
29 *
30 * @see OfdmPhy
31 */
38
39/**
40 * @brief PHY entity for OFDM (11a)
41 * @ingroup wifi
42 *
43 * This class is also used for the 10 MHz and 5 MHz bandwidth
44 * variants addressing vehicular communications (default is 20 MHz
45 * bandwidth).
46 *
47 * Refer to IEEE 802.11-2016, clause 17.
48 */
49class OfdmPhy : public PhyEntity
50{
51 public:
52 /**
53 * Constructor for OFDM PHY
54 *
55 * @param variant the OFDM PHY variant
56 * @param buildModeList flag used to add OFDM modes to list (disabled
57 * by child classes to only add child classes' modes)
58 */
60 /**
61 * Destructor for OFDM PHY
62 */
63 ~OfdmPhy() override;
64
65 WifiMode GetSigMode(WifiPpduField field, const WifiTxVector& txVector) const override;
66 const PpduFormats& GetPpduFormats() const override;
67 Time GetDuration(WifiPpduField field, const WifiTxVector& txVector) const override;
69 const WifiTxVector& txVector,
70 WifiPhyBand band,
72 bool incFlag,
75 uint16_t staId) const override;
77 const WifiTxVector& txVector,
78 Time ppduDuration) override;
80 WifiChannelListType channelType) const override;
82
83 /**
84 * Initialize all OFDM modes (for all variants).
85 */
86 static void InitializeModes();
87 /**
88 * Return a WifiMode for OFDM
89 * corresponding to the provided rate and
90 * the channel bandwidth (20, 10, or 5 MHz).
91 *
92 * @param rate the rate in bps
93 * @param bw the bandwidth
94 * @return a WifiMode for OFDM
95 */
96 static WifiMode GetOfdmRate(uint64_t rate, MHz_u bw = MHz_u{20});
97 /**
98 * Return a WifiMode for OFDM at 6 Mbps.
99 *
100 * @return a WifiMode for OFDM at 6 Mbps
101 */
103 /**
104 * Return a WifiMode for OFDM at 9 Mbps.
105 *
106 * @return a WifiMode for OFDM at 9 Mbps
107 */
109 /**
110 * Return a WifiMode for OFDM at 12Mbps.
111 *
112 * @return a WifiMode for OFDM at 12 Mbps
113 */
115 /**
116 * Return a WifiMode for OFDM at 18 Mbps.
117 *
118 * @return a WifiMode for OFDM at 18 Mbps
119 */
121 /**
122 * Return a WifiMode for OFDM at 24 Mbps.
123 *
124 * @return a WifiMode for OFDM at 24 Mbps
125 */
127 /**
128 * Return a WifiMode for OFDM at 36 Mbps.
129 *
130 * @return a WifiMode for OFDM at 36 Mbps
131 */
133 /**
134 * Return a WifiMode for OFDM at 48 Mbps.
135 *
136 * @return a WifiMode for OFDM at 48 Mbps
137 */
139 /**
140 * Return a WifiMode for OFDM at 54 Mbps.
141 *
142 * @return a WifiMode for OFDM at 54 Mbps
143 */
145 /**
146 * Return a WifiMode for OFDM at 3 Mbps with 10 MHz channel spacing.
147 *
148 * @return a WifiMode for OFDM at 3 Mbps with 10 MHz channel spacing
149 */
151 /**
152 * Return a WifiMode for OFDM at 4.5 Mbps with 10 MHz channel spacing.
153 *
154 * @return a WifiMode for OFDM at 4.5 Mbps with 10 MHz channel spacing
155 */
157 /**
158 * Return a WifiMode for OFDM at 6 Mbps with 10 MHz channel spacing.
159 *
160 * @return a WifiMode for OFDM at 6 Mbps with 10 MHz channel spacing
161 */
163 /**
164 * Return a WifiMode for OFDM at 9 Mbps with 10 MHz channel spacing.
165 *
166 * @return a WifiMode for OFDM at 9 Mbps with 10 MHz channel spacing
167 */
169 /**
170 * Return a WifiMode for OFDM at 12 Mbps with 10 MHz channel spacing.
171 *
172 * @return a WifiMode for OFDM at 12 Mbps with 10 MHz channel spacing
173 */
175 /**
176 * Return a WifiMode for OFDM at 18 Mbps with 10 MHz channel spacing.
177 *
178 * @return a WifiMode for OFDM at 18 Mbps with 10 MHz channel spacing
179 */
181 /**
182 * Return a WifiMode for OFDM at 24 Mbps with 10 MHz channel spacing.
183 *
184 * @return a WifiMode for OFDM at 24 Mbps with 10 MHz channel spacing
185 */
187 /**
188 * Return a WifiMode for OFDM at 27 Mbps with 10 MHz channel spacing.
189 *
190 * @return a WifiMode for OFDM at 27 Mbps with 10 MHz channel spacing
191 */
193 /**
194 * Return a WifiMode for OFDM at 1.5 Mbps with 5 MHz channel spacing.
195 *
196 * @return a WifiMode for OFDM at 1.5 Mbps with 5 MHz channel spacing
197 */
199 /**
200 * Return a WifiMode for OFDM at 2.25 Mbps with 5 MHz channel spacing.
201 *
202 * @return a WifiMode for OFDM at 2.25 Mbps with 5 MHz channel spacing
203 */
205 /**
206 * Return a WifiMode for OFDM at 3 Mbps with 5 MHz channel spacing.
207 *
208 * @return a WifiMode for OFDM at 3 Mbps with 5 MHz channel spacing
209 */
211 /**
212 * Return a WifiMode for OFDM at 4.5 Mbps with 5 MHz channel spacing.
213 *
214 * @return a WifiMode for OFDM at 4.5 Mbps with 5 MHz channel spacing
215 */
217 /**
218 * Return a WifiMode for OFDM at 6 Mbps with 5 MHz channel spacing.
219 *
220 * @return a WifiMode for OFDM at 6 Mbps with 5 MHz channel spacing
221 */
223 /**
224 * Return a WifiMode for OFDM at 9 Mbps with 5 MHz channel spacing.
225 *
226 * @return a WifiMode for OFDM at 9 Mbps with 5 MHz channel spacing
227 */
229 /**
230 * Return a WifiMode for OFDM at 12 Mbps with 5 MHz channel spacing.
231 *
232 * @return a WifiMode for OFDM at 12 Mbps with 5 MHz channel spacing
233 */
235 /**
236 * Return a WifiMode for OFDM at 13.5 Mbps with 5 MHz channel spacing.
237 *
238 * @return a WifiMode for OFDM at 13.5 Mbps with 5 MHz channel spacing
239 */
241
242 /**
243 * Return the WifiCodeRate from the OFDM mode's unique name using
244 * ModulationLookupTable. This is mainly used as a callback for
245 * WifiMode operation.
246 *
247 * @param name the unique name of the OFDM mode
248 * @return WifiCodeRate corresponding to the unique name
249 */
250 static WifiCodeRate GetCodeRate(const std::string& name);
251 /**
252 * Return the constellation size from the OFDM mode's unique name using
253 * ModulationLookupTable. This is mainly used as a callback for
254 * WifiMode operation.
255 *
256 * @param name the unique name of the OFDM mode
257 * @return constellation size corresponding to the unique name
258 */
259 static uint16_t GetConstellationSize(const std::string& name);
260 /**
261 * Return the PHY rate from the OFDM mode's unique name and
262 * the supplied parameters. This function calls CalculatePhyRate
263 * and is mainly used as a callback for WifiMode operation.
264 *
265 * @param name the unique name of the OFDM mode
266 * @param channelWidth the considered channel width
267 *
268 * @return the physical bit rate of this signal in bps.
269 */
270 static uint64_t GetPhyRate(const std::string& name, MHz_u channelWidth);
271
272 /**
273 * Return the PHY rate corresponding to
274 * the supplied TXVECTOR.
275 * This function is mainly used as a callback
276 * for WifiMode operation.
277 *
278 * @param txVector the TXVECTOR used for the transmission
279 * @param staId the station ID (only here to have a common signature for all callbacks)
280 * @return the physical bit rate of this signal in bps.
281 */
282 static uint64_t GetPhyRateFromTxVector(const WifiTxVector& txVector, uint16_t staId);
283 /**
284 * Return the data rate corresponding to
285 * the supplied TXVECTOR.
286 * This function is mainly used as a callback
287 * for WifiMode operation.
288 *
289 * @param txVector the TXVECTOR used for the transmission
290 * @param staId the station ID (only here to have a common signature for all callbacks)
291 * @return the data bit rate in bps.
292 */
293 static uint64_t GetDataRateFromTxVector(const WifiTxVector& txVector, uint16_t staId);
294 /**
295 * Return the data rate from the OFDM mode's unique name and
296 * the supplied parameters. This function calls CalculateDataRate and
297 * is mainly used as a callback for WifiMode operation.
298 *
299 * @param name the unique name of the OFDM mode
300 * @param channelWidth the considered channel width
301 *
302 * @return the data bit rate of this signal in bps.
303 */
304 static uint64_t GetDataRate(const std::string& name, MHz_u channelWidth);
305 /**
306 * Check whether the combination in TXVECTOR is allowed.
307 * This function is used as a callback for WifiMode operation.
308 *
309 * @param txVector the TXVECTOR
310 * @returns true if this combination is allowed, false otherwise.
311 */
312 static bool IsAllowed(const WifiTxVector& txVector);
313
314 protected:
317 Ptr<const WifiPpdu> ppdu) const override;
318 uint32_t GetMaxPsduSize() const override;
319 MHz_u GetMeasurementChannelWidth(const Ptr<const WifiPpdu> ppdu) const override;
320
321 /**
322 * @param txVector the transmission parameters
323 * @return the WifiMode used for the SIGNAL field
324 */
325 virtual WifiMode GetHeaderMode(const WifiTxVector& txVector) const;
326
327 /**
328 * @param txVector the transmission parameters
329 * @return the duration of the preamble field
330 *
331 * @see WIFI_PPDU_FIELD_PREAMBLE
332 */
333 virtual Time GetPreambleDuration(const WifiTxVector& txVector) const;
334 /**
335 * @param txVector the transmission parameters
336 * @return the duration of the SIGNAL field
337 */
338 virtual Time GetHeaderDuration(const WifiTxVector& txVector) const;
339
340 /**
341 * @return the number of service bits
342 */
343 uint8_t GetNumberServiceBits() const;
344 /**
345 * @param band the frequency band being used
346 * @return the signal extension duration
347 */
349
350 /**
351 * End receiving the header, perform OFDM-specific actions, and
352 * provide the status of the reception.
353 *
354 * @param event the event holding incoming PPDU's information
355 * @return status of the reception of the header
356 */
358
359 /**
360 * Checks if the PPDU's bandwidth is supported by the PHY.
361 *
362 * @param ppdu the received PPDU
363 * @return \c true if supported, \c false otherwise
364 */
365 virtual bool IsChannelWidthSupported(Ptr<const WifiPpdu> ppdu) const;
366 /**
367 * Checks if the signaled configuration (including bandwidth)
368 * is supported by the PHY.
369 *
370 * @param field the current PPDU field (SIG used for checking config)
371 * @param ppdu the received PPDU
372 * @return \c true if supported, \c false otherwise
373 */
375
376 /**
377 * Calculate the PHY rate in bps from code rate and data rate.
378 *
379 * @param codeRate the WifiCodeRate
380 * @param dataRate the data rate in bps
381 * @return the physical rate in bps from WifiCodeRate and data rate.
382 */
383 static uint64_t CalculatePhyRate(WifiCodeRate codeRate, uint64_t dataRate);
384 /**
385 * Convert WifiCodeRate to a ratio, e.g., code ratio of WIFI_CODE_RATE_1_2 is 0.5.
386 *
387 * @param codeRate the WifiCodeRate
388 * @return the ratio form of WifiCodeRate.
389 */
390 static double GetCodeRatio(WifiCodeRate codeRate);
391 /**
392 * Calculates data rate from the supplied parameters.
393 *
394 * @param codeRate the code rate of the mode
395 * @param constellationSize the size of modulation constellation
396 * @param channelWidth the considered channel width
397 *
398 * @return the data bit rate of this signal in bps.
399 */
401 uint16_t constellationSize,
402 MHz_u channelWidth);
403 /**
404 * Calculates data rate from the supplied parameters.
405 *
406 * @param symbolDuration the symbol duration
407 * @param usableSubCarriers the number of usable subcarriers for data
408 * @param numberOfBitsPerSubcarrier the number of data bits per subcarrier
409 * @param codingRate the coding rate
410 *
411 * @return the data bit rate of this signal in bps.
412 */
413 static uint64_t CalculateDataRate(Time symbolDuration,
414 uint16_t usableSubCarriers,
416 double codingRate);
417
418 /**
419 * @return the number of usable subcarriers for data
420 */
421 static uint16_t GetUsableSubcarriers();
422
423 /**
424 * @param channelWidth the channel width
425 * @return the symbol duration
426 */
427 static Time GetSymbolDuration(MHz_u channelWidth);
428
429 private:
430 /**
431 * Create an OFDM mode from a unique name, the unique name
432 * must already be contained inside ModulationLookupTable.
433 * This method binds all the callbacks used by WifiMode.
434 *
435 * @param uniqueName the unique name of the WifiMode
436 * @param isMandatory whether the WifiMode is mandatory
437 * @return the OFDM WifiMode
438 */
439 static WifiMode CreateOfdmMode(std::string uniqueName, bool isMandatory);
440
441 static const PpduFormats m_ofdmPpduFormats; //!< OFDM PPDU formats
442
443 static const ModulationLookupTable
444 m_ofdmModulationLookupTable; //!< lookup table to retrieve code rate and constellation size
445 //!< corresponding to a unique name of modulation
446}; // class OfdmPhy
447
448} // namespace ns3
449
450#endif /* OFDM_PHY_H */
PHY entity for OFDM (11a)
Definition ofdm-phy.h:50
static WifiMode GetOfdmRate6Mbps()
Return a WifiMode for OFDM at 6 Mbps.
uint32_t GetMaxPsduSize() const override
Get the maximum PSDU size in bytes.
Definition ofdm-phy.cc:652
~OfdmPhy() override
Destructor for OFDM PHY.
Definition ofdm-phy.cc:138
static WifiMode GetOfdmRate13_5MbpsBW5MHz()
Return a WifiMode for OFDM at 13.5 Mbps with 5 MHz channel spacing.
static WifiMode GetOfdmRate48Mbps()
Return a WifiMode for OFDM at 48 Mbps.
dBm_u GetCcaThreshold(const Ptr< const WifiPpdu > ppdu, WifiChannelListType channelType) const override
Return the CCA threshold for a given channel type.
Definition ofdm-phy.cc:668
static const PpduFormats m_ofdmPpduFormats
OFDM PPDU formats.
Definition ofdm-phy.h:441
static uint16_t GetConstellationSize(const std::string &name)
Return the constellation size from the OFDM mode's unique name using ModulationLookupTable.
Definition ofdm-phy.cc:547
static WifiMode GetOfdmRate54Mbps()
Return a WifiMode for OFDM at 54 Mbps.
uint8_t GetNumberServiceBits() const
Definition ofdm-phy.cc:273
static WifiCodeRate GetCodeRate(const std::string &name)
Return the WifiCodeRate from the OFDM mode's unique name using ModulationLookupTable.
Definition ofdm-phy.cc:541
static uint64_t GetPhyRateFromTxVector(const WifiTxVector &txVector, uint16_t staId)
Return the PHY rate corresponding to the supplied TXVECTOR.
Definition ofdm-phy.cc:567
static WifiMode GetOfdmRate36Mbps()
Return a WifiMode for OFDM at 36 Mbps.
static WifiMode GetOfdmRate3MbpsBW10MHz()
Return a WifiMode for OFDM at 3 Mbps with 10 MHz channel spacing.
static void InitializeModes()
Initialize all OFDM modes (for all variants).
Definition ofdm-phy.cc:392
virtual bool IsAllConfigSupported(WifiPpduField field, Ptr< const WifiPpdu > ppdu) const
Checks if the signaled configuration (including bandwidth) is supported by the PHY.
Definition ofdm-phy.cc:347
PhyFieldRxStatus EndReceiveHeader(Ptr< Event > event)
End receiving the header, perform OFDM-specific actions, and provide the status of the reception.
Definition ofdm-phy.cc:310
static WifiMode GetOfdmRate2_25MbpsBW5MHz()
Return a WifiMode for OFDM at 2.25 Mbps with 5 MHz channel spacing.
const PpduFormats & GetPpduFormats() const override
Return the PPDU formats of the PHY.
Definition ofdm-phy.cc:177
static uint64_t GetDataRate(const std::string &name, MHz_u channelWidth)
Return the data rate from the OFDM mode's unique name and the supplied parameters.
Definition ofdm-phy.cc:597
static bool IsAllowed(const WifiTxVector &txVector)
Check whether the combination in TXVECTOR is allowed.
Definition ofdm-phy.cc:646
static WifiMode GetOfdmRate6MbpsBW5MHz()
Return a WifiMode for OFDM at 6 Mbps with 5 MHz channel spacing.
static uint64_t GetDataRateFromTxVector(const WifiTxVector &txVector, uint16_t staId)
Return the data rate corresponding to the supplied TXVECTOR.
Definition ofdm-phy.cc:591
static WifiMode GetOfdmRate1_5MbpsBW5MHz()
Return a WifiMode for OFDM at 1.5 Mbps with 5 MHz channel spacing.
static WifiMode GetOfdmRate18MbpsBW10MHz()
Return a WifiMode for OFDM at 18 Mbps with 10 MHz channel spacing.
static Time GetSymbolDuration(MHz_u channelWidth)
Definition ofdm-phy.cc:630
static WifiMode GetOfdmRate12MbpsBW10MHz()
Return a WifiMode for OFDM at 12 Mbps with 10 MHz channel spacing.
static uint16_t GetUsableSubcarriers()
Definition ofdm-phy.cc:624
static WifiMode GetOfdmRate9MbpsBW10MHz()
Return a WifiMode for OFDM at 9 Mbps with 10 MHz channel spacing.
static WifiMode GetOfdmRate4_5MbpsBW5MHz()
Return a WifiMode for OFDM at 4.5 Mbps with 5 MHz channel spacing.
static WifiMode GetOfdmRate3MbpsBW5MHz()
Return a WifiMode for OFDM at 3 Mbps with 5 MHz channel spacing.
virtual Time GetPreambleDuration(const WifiTxVector &txVector) const
Definition ofdm-phy.cc:197
Ptr< const WifiPpdu > GetRxPpduFromTxPpdu(Ptr< const WifiPpdu > ppdu) override
The WifiPpdu from the TX PHY is received by each RX PHY attached to the same channel.
Definition ofdm-phy.cc:681
static WifiMode GetOfdmRate27MbpsBW10MHz()
Return a WifiMode for OFDM at 27 Mbps with 10 MHz channel spacing.
Ptr< SpectrumValue > GetTxPowerSpectralDensity(Watt_u txPower, Ptr< const WifiPpdu > ppdu) const override
Definition ofdm-phy.cc:357
static WifiMode GetOfdmRate9MbpsBW5MHz()
Return a WifiMode for OFDM at 9 Mbps with 5 MHz channel spacing.
Ptr< WifiPpdu > BuildPpdu(const WifiConstPsduMap &psdus, const WifiTxVector &txVector, Time ppduDuration) override
Build amendment-specific PPDU.
Definition ofdm-phy.cc:285
static WifiMode GetOfdmRate12Mbps()
Return a WifiMode for OFDM at 12Mbps.
static WifiMode CreateOfdmMode(std::string uniqueName, bool isMandatory)
Create an OFDM mode from a unique name, the unique name must already be contained inside ModulationLo...
Definition ofdm-phy.cc:523
static WifiMode GetOfdmRate24MbpsBW10MHz()
Return a WifiMode for OFDM at 24 Mbps with 10 MHz channel spacing.
static WifiMode GetOfdmRate18Mbps()
Return a WifiMode for OFDM at 18 Mbps.
static uint64_t CalculatePhyRate(WifiCodeRate codeRate, uint64_t dataRate)
Calculate the PHY rate in bps from code rate and data rate.
Definition ofdm-phy.cc:561
static WifiMode GetOfdmRate6MbpsBW10MHz()
Return a WifiMode for OFDM at 6 Mbps with 10 MHz channel spacing.
MHz_u GetMeasurementChannelWidth(const Ptr< const WifiPpdu > ppdu) const override
Return the channel width used to measure the RSSI.
Definition ofdm-phy.cc:658
static WifiMode GetOfdmRate24Mbps()
Return a WifiMode for OFDM at 24 Mbps.
Time GetDuration(WifiPpduField field, const WifiTxVector &txVector) const override
Get the duration of the PPDU field (or group of fields) used by this entity for the given transmissio...
Definition ofdm-phy.cc:183
PhyFieldRxStatus DoEndReceiveField(WifiPpduField field, Ptr< Event > event) override
End receiving a given field, perform amendment-specific actions, and provide the status of the recept...
Definition ofdm-phy.cc:299
static WifiMode GetOfdmRate(uint64_t rate, MHz_u bw=MHz_u{20})
Return a WifiMode for OFDM corresponding to the provided rate and the channel bandwidth (20,...
Definition ofdm-phy.cc:404
static uint64_t CalculateDataRate(WifiCodeRate codeRate, uint16_t constellationSize, MHz_u channelWidth)
Calculates data rate from the supplied parameters.
Definition ofdm-phy.cc:605
virtual Time GetHeaderDuration(const WifiTxVector &txVector) const
Definition ofdm-phy.cc:221
virtual WifiMode GetHeaderMode(const WifiTxVector &txVector) const
Definition ofdm-phy.cc:158
WifiMode GetSigMode(WifiPpduField field, const WifiTxVector &txVector) const override
Get the WifiMode for the SIG field specified by the PPDU field.
Definition ofdm-phy.cc:144
static WifiMode GetOfdmRate12MbpsBW5MHz()
Return a WifiMode for OFDM at 12 Mbps with 5 MHz channel spacing.
static uint64_t GetPhyRate(const std::string &name, MHz_u channelWidth)
Return the PHY rate from the OFDM mode's unique name and the supplied parameters.
Definition ofdm-phy.cc:553
static const ModulationLookupTable m_ofdmModulationLookupTable
lookup table to retrieve code rate and constellation size corresponding to a unique name of modulatio...
Definition ofdm-phy.h:444
static WifiMode GetOfdmRate4_5MbpsBW10MHz()
Return a WifiMode for OFDM at 4.5 Mbps with 10 MHz channel spacing.
static WifiMode GetOfdmRate9Mbps()
Return a WifiMode for OFDM at 9 Mbps.
virtual bool IsChannelWidthSupported(Ptr< const WifiPpdu > ppdu) const
Checks if the PPDU's bandwidth is supported by the PHY.
Definition ofdm-phy.cc:334
static double GetCodeRatio(WifiCodeRate codeRate)
Convert WifiCodeRate to a ratio, e.g., code ratio of WIFI_CODE_RATE_1_2 is 0.5.
Definition ofdm-phy.cc:573
Time GetSignalExtension(WifiPhyBand band) const
Definition ofdm-phy.cc:279
Time GetPayloadDuration(uint32_t size, const WifiTxVector &txVector, WifiPhyBand band, MpduType mpdutype, bool incFlag, uint32_t &totalAmpduSize, double &totalAmpduNumSymbols, uint16_t staId) const override
Definition ofdm-phy.cc:245
Abstract class for PHY entities.
Definition phy-entity.h:64
std::map< std::string, CodeRateConstellationSizePair > ModulationLookupTable
A modulation lookup table using unique name of modulation as key.
Definition phy-entity.h:548
std::map< WifiPreamble, std::vector< WifiPpduField > > PpduFormats
A map of PPDU field elements per preamble type.
Definition phy-entity.h:538
Smart pointer class similar to boost::intrusive_ptr.
Definition ptr.h:66
Simulation virtual time values and global simulation resolution.
Definition nstime.h:94
represent a single transmission mode
Definition wifi-mode.h:40
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Definition ptr.h:436
WifiPhyBand
Identifies the PHY band.
OfdmPhyVariant
The OFDM (11a) PHY variants.
Definition ofdm-phy.h:33
WifiChannelListType
Enumeration of the possible channel-list parameter elements defined in Table 8-5 of IEEE 802....
WifiPpduField
The type of PPDU field (grouped for convenience)
MpduType
The type of an MPDU.
Definition wifi-types.h:41
@ OFDM_PHY_10_MHZ
Definition ofdm-phy.h:35
@ OFDM_PHY_DEFAULT
Definition ofdm-phy.h:34
@ OFDM_PHY_5_MHZ
Definition ofdm-phy.h:36
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::unordered_map< uint16_t, Ptr< const WifiPsdu > > WifiConstPsduMap
Map of const PSDUs indexed by STA-ID.
Definition wifi-ppdu.h:38
WifiCodeRate
These constants define the various convolutional coding rates used for the OFDM transmission modes in...
Status of the reception of the PPDU field.
Definition phy-entity.h:80