A Discrete-Event Network Simulator
API
ns3::RadiotapHeader Class Reference

Radiotap header implementation. More...

#include "radiotap-header.h"

+ Inheritance diagram for ns3::RadiotapHeader:
+ Collaboration diagram for ns3::RadiotapHeader:

Public Types

enum  AmpduFlags {
  A_MPDU_STATUS_NONE = 0x00, A_MPDU_STATUS_REPORT_ZERO_LENGTH = 0x01, A_MPDU_STATUS_IS_ZERO_LENGTH = 0x02, A_MPDU_STATUS_LAST_KNOWN = 0x04,
  A_MPDU_STATUS_LAST = 0x08, A_MPDU_STATUS_DELIMITER_CRC_ERROR = 0x10, A_MPDU_STATUS_DELIMITER_CRC_KNOWN = 0x20
}
 A-MPDU status flags. More...
 
enum  ChannelFlags {
  CHANNEL_FLAG_NONE = 0x0000, CHANNEL_FLAG_TURBO = 0x0010, CHANNEL_FLAG_CCK = 0x0020, CHANNEL_FLAG_OFDM = 0x0040,
  CHANNEL_FLAG_SPECTRUM_2GHZ = 0x0080, CHANNEL_FLAG_SPECTRUM_5GHZ = 0x0100, CHANNEL_FLAG_PASSIVE = 0x0200, CHANNEL_FLAG_DYNAMIC = 0x0400,
  CHANNEL_FLAG_GFSK = 0x0800
}
 Channel flags. More...
 
enum  FrameFlag {
  FRAME_FLAG_NONE = 0x00, FRAME_FLAG_CFP = 0x01, FRAME_FLAG_SHORT_PREAMBLE = 0x02, FRAME_FLAG_WEP = 0x04,
  FRAME_FLAG_FRAGMENTED = 0x08, FRAME_FLAG_FCS_INCLUDED = 0x10, FRAME_FLAG_DATA_PADDING = 0x20, FRAME_FLAG_BAD_FCS = 0x40,
  FRAME_FLAG_SHORT_GUARD = 0x80
}
 Frame flags. More...
 
enum  HeData1 {
  HE_DATA1_FORMAT_EXT_SU = 0x0001, HE_DATA1_FORMAT_MU = 0x0002, HE_DATA1_FORMAT_TRIG = 0x0003, HE_DATA1_BSS_COLOR_KNOWN = 0x0004,
  HE_DATA1_BEAM_CHANGE_KNOWN = 0x0008, HE_DATA1_UL_DL_KNOWN = 0x0010, HE_DATA1_DATA_MCS_KNOWN = 0x0020, HE_DATA1_DATA_DCM_KNOWN = 0x0040,
  HE_DATA1_CODING_KNOWN = 0x0080, HE_DATA1_LDPC_XSYMSEG_KNOWN = 0x0100, HE_DATA1_STBC_KNOWN = 0x0200, HE_DATA1_SPTL_REUSE_KNOWN = 0x0400,
  HE_DATA1_SPTL_REUSE2_KNOWN = 0x0800, HE_DATA1_SPTL_REUSE3_KNOWN = 0x1000, HE_DATA1_SPTL_REUSE4_KNOWN = 0x2000, HE_DATA1_BW_RU_ALLOC_KNOWN = 0x4000,
  HE_DATA1_DOPPLER_KNOWN = 0x8000
}
 HE data1. More...
 
enum  HeData2 {
  HE_DATA2_PRISEC_80_KNOWN = 0x0001, HE_DATA2_GI_KNOWN = 0x0002, HE_DATA2_NUM_LTF_SYMS_KNOWN = 0x0004, HE_DATA2_PRE_FEC_PAD_KNOWN = 0x0008,
  HE_DATA2_TXBF_KNOWN = 0x0010, HE_DATA2_PE_DISAMBIG_KNOWN = 0x0020, HE_DATA2_TXOP_KNOWN = 0x0040, HE_DATA2_MIDAMBLE_KNOWN = 0x0080,
  HE_DATA2_RU_OFFSET = 0x3f00, HE_DATA2_RU_OFFSET_KNOWN = 0x4000, HE_DATA2_PRISEC_80_SEC = 0x8000
}
 HE data2. More...
 
enum  HeData3 {
  HE_DATA3_BSS_COLOR = 0x003f, HE_DATA3_BEAM_CHANGE = 0x0040, HE_DATA3_UL_DL = 0x0080, HE_DATA3_DATA_MCS = 0x0f00,
  HE_DATA3_DATA_DCM = 0x1000, HE_DATA3_CODING = 0x2000, HE_DATA3_LDPC_XSYMSEG = 0x4000, HE_DATA3_STBC = 0x8000
}
 HE data3. More...
 
enum  HeData5 {
  HE_DATA5_DATA_BW_RU_ALLOC_40MHZ = 0x0001, HE_DATA5_DATA_BW_RU_ALLOC_80MHZ = 0x0002, HE_DATA5_DATA_BW_RU_ALLOC_160MHZ = 0x0003, HE_DATA5_DATA_BW_RU_ALLOC_26T = 0x0004,
  HE_DATA5_DATA_BW_RU_ALLOC_52T = 0x0005, HE_DATA5_DATA_BW_RU_ALLOC_106T = 0x0006, HE_DATA5_DATA_BW_RU_ALLOC_242T = 0x0007, HE_DATA5_DATA_BW_RU_ALLOC_484T = 0x0008,
  HE_DATA5_DATA_BW_RU_ALLOC_996T = 0x0009, HE_DATA5_DATA_BW_RU_ALLOC_2x996T = 0x000a, HE_DATA5_GI_1_6 = 0x0010, HE_DATA5_GI_3_2 = 0x0020,
  HE_DATA5_LTF_SYM_SIZE = 0x00c0, HE_DATA5_NUM_LTF_SYMS = 0x0700, HE_DATA5_PRE_FEC_PAD = 0x3000, HE_DATA5_TXBF = 0x4000,
  HE_DATA5_PE_DISAMBIG = 0x8000
}
 HE data5. More...
 
enum  McsFlags {
  MCS_FLAGS_NONE = 0x00, MCS_FLAGS_BANDWIDTH_40 = 0x01, MCS_FLAGS_BANDWIDTH_20L = 0x02, MCS_FLAGS_BANDWIDTH_20U = 0x03,
  MCS_FLAGS_GUARD_INTERVAL = 0x04, MCS_FLAGS_HT_GREENFIELD = 0x08, MCS_FLAGS_FEC_TYPE = 0x10, MCS_FLAGS_STBC_STREAMS = 0x60,
  MCS_FLAGS_NESS_BIT_0 = 0x80
}
 MCS flags. More...
 
enum  McsKnown {
  MCS_KNOWN_NONE = 0x00, MCS_KNOWN_BANDWIDTH = 0x01, MCS_KNOWN_INDEX = 0x02, MCS_KNOWN_GUARD_INTERVAL = 0x04,
  MCS_KNOWN_HT_FORMAT = 0x08, MCS_KNOWN_FEC_TYPE = 0x10, MCS_KNOWN_STBC = 0x20, MCS_KNOWN_NESS = 0x40,
  MCS_KNOWN_NESS_BIT_1 = 0x80
}
 MCS known bits. More...
 
enum  VhtFlags {
  VHT_FLAGS_NONE = 0x00, VHT_FLAGS_STBC = 0x01, VHT_FLAGS_TXOP_PS_NOT_ALLOWED = 0x02, VHT_FLAGS_GUARD_INTERVAL = 0x04,
  VHT_FLAGS_SHORT_GI_NSYM_DISAMBIGUATION = 0x08, VHT_FLAGS_LDPC_EXTRA_OFDM_SYMBOL = 0x10, VHT_FLAGS_BEAMFORMED = 0x20
}
 VHT flags. More...
 
enum  VhtKnown {
  VHT_KNOWN_NONE = 0x0000, VHT_KNOWN_STBC = 0x0001, VHT_KNOWN_TXOP_PS_NOT_ALLOWED = 0x0002, VHT_KNOWN_GUARD_INTERVAL = 0x0004,
  VHT_KNOWN_SHORT_GI_NSYM_DISAMBIGUATION = 0x0008, VHT_KNOWN_LDPC_EXTRA_OFDM_SYMBOL = 0x0010, VHT_KNOWN_BEAMFORMED = 0x0020, VHT_KNOWN_BANDWIDTH = 0x0040,
  VHT_KNOWN_GROUP_ID = 0x0080, VHT_KNOWN_PARTIAL_AID = 0x0100
}
 VHT known bits. More...
 

Public Member Functions

 RadiotapHeader ()
 
virtual uint32_t Deserialize (Buffer::Iterator start)
 This method is used by Packet::RemoveHeader to re-create a header from the byte buffer of a packet. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the most derived TypeId for this Object. More...
 
virtual uint32_t GetSerializedSize (void) const
 This method is used by Packet::AddHeader to store the header into the byte buffer of a packet. More...
 
virtual void Print (std::ostream &os) const
 This method is used by Packet::Print to print the content of the header as ascii data to a C++ output stream. More...
 
virtual void Serialize (Buffer::Iterator start) const
 This method is used by Packet::AddHeader to store the header into the byte buffer of a packet. More...
 
void SetAmpduStatus (uint32_t referenceNumber, uint16_t flags, uint8_t crc)
 Set the A-MPDU status fields. More...
 
void SetAntennaNoisePower (double noise)
 Set the RF noise power at the antenna as a decibel difference from an arbitrary, fixed reference. More...
 
void SetAntennaSignalPower (double signal)
 Set the RF signal power at the antenna as a decibel difference from an arbitrary, fixed reference. More...
 
void SetChannelFrequencyAndFlags (uint16_t frequency, uint16_t flags)
 Set the transmit/receive channel frequency and flags. More...
 
void SetFrameFlags (uint8_t flags)
 Set the frame flags of the transmitted or received frame. More...
 
void SetHeFields (uint16_t data1, uint16_t data2, uint16_t data3, uint16_t data5)
 Set the HE fields. More...
 
void SetMcsFields (uint8_t known, uint8_t flags, uint8_t mcs)
 Set the MCS fields. More...
 
void SetRate (uint8_t rate)
 Set the transmit/receive channel frequency in units of megahertz. More...
 
void SetTsft (uint64_t tsft)
 Set the Time Synchronization Function Timer (TSFT) value. More...
 
void SetVhtFields (uint16_t known, uint8_t flags, uint8_t bandwidth, uint8_t mcs_nss [4], uint8_t coding, uint8_t group_id, uint16_t partial_aid)
 Set the VHT fields. More...
 
- Public Member Functions inherited from ns3::Header
virtual ~Header ()
 
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator. More...
 
virtual uint32_t Deserialize (Buffer::Iterator start)=0
 Deserialize the object from a buffer iterator. More...
 
- Public Member Functions inherited from ns3::Chunk
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising erros. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Header
static TypeId GetTypeId (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Chunk
static TypeId GetTypeId (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Types

enum  RadiotapFlags {
  RADIOTAP_TSFT = 0x00000001, RADIOTAP_FLAGS = 0x00000002, RADIOTAP_RATE = 0x00000004, RADIOTAP_CHANNEL = 0x00000008,
  RADIOTAP_FHSS = 0x00000010, RADIOTAP_DBM_ANTSIGNAL = 0x00000020, RADIOTAP_DBM_ANTNOISE = 0x00000040, RADIOTAP_LOCK_QUALITY = 0x00000080,
  RADIOTAP_TX_ATTENUATION = 0x00000100, RADIOTAP_DB_TX_ATTENUATION = 0x00000200, RADIOTAP_DBM_TX_POWER = 0x00000400, RADIOTAP_ANTENNA = 0x00000800,
  RADIOTAP_DB_ANTSIGNAL = 0x00001000, RADIOTAP_DB_ANTNOISE = 0x00002000, RADIOTAP_RX_FLAGS = 0x00004000, RADIOTAP_MCS = 0x00080000,
  RADIOTAP_AMPDU_STATUS = 0x00100000, RADIOTAP_VHT = 0x00200000, RADIOTAP_HE = 0x00800000, RADIOTAP_EXT = 0x10000000
}
 Radiotap flags. More...
 

Private Attributes

uint8_t m_ampduStatusCRC
 A-MPDU Status Flags, delimiter CRC value. More...
 
uint16_t m_ampduStatusFlags
 A-MPDU Status Flags, information about the received A-MPDU. More...
 
uint8_t m_ampduStatusPad
 A-MPDU Status Flags, padding before A-MPDU Status Field. More...
 
uint32_t m_ampduStatusRef
 A-MPDU Status Flags, reference number. More...
 
int8_t m_antennaNoise
 RF noise power at the antenna, dB difference from an arbitrary, fixed reference. More...
 
int8_t m_antennaSignal
 RF signal power at the antenna, dB difference from an arbitrary, fixed reference. More...
 
uint16_t m_channelFlags
 Tx/Rx channel flags. More...
 
uint16_t m_channelFreq
 Tx/Rx frequency in MHz. More...
 
uint8_t m_channelPad
 Tx/Rx channel padding. More...
 
uint8_t m_flags
 Properties of transmitted and received frames. More...
 
uint16_t m_heData1
 HE data1 field. More...
 
uint16_t m_heData2
 HE data2 field. More...
 
uint16_t m_heData3
 HE data3 field. More...
 
uint16_t m_heData5
 HE data5 field. More...
 
uint8_t m_hePad
 HE padding. More...
 
uint16_t m_length
 entire length of radiotap data + header More...
 
uint8_t m_mcsFlags
 MCS Flags, flags field. More...
 
uint8_t m_mcsKnown
 MCS Flags, known information field. More...
 
uint8_t m_mcsRate
 MCS Flags, mcs rate index. More...
 
uint32_t m_present
 bits describing which fields follow header More...
 
uint8_t m_rate
 TX/RX data rate in units of 500 kbps. More...
 
uint64_t m_tsft
 Time Synchronization Function Timer (when the first bit of the MPDU arrived at the MAC) More...
 
uint8_t m_vhtBandwidth
 VHT bandwidth field. More...
 
uint8_t m_vhtCoding
 VHT coding field. More...
 
uint8_t m_vhtFlags
 VHT flags field. More...
 
uint8_t m_vhtGroupId
 VHT group_id field. More...
 
uint16_t m_vhtKnown
 VHT known field. More...
 
uint8_t m_vhtMcsNss [4]
 VHT mcs_nss field. More...
 
uint8_t m_vhtPad
 VHT padding. More...
 
uint16_t m_vhtPartialAid
 VHT partial_aid field. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted (void)
 Notifier called once the ObjectBase is fully constructed. More...
 

Detailed Description

Radiotap header implementation.


Introspection did not find any typical Config paths.

Radiotap is a de facto standard for 802.11 frame injection and reception. The radiotap header format is a mechanism to supply additional information about frames, from the driver to userspace applications such as libpcap, and from a userspace application to the driver for transmission.


No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 72 bytes (on a 64-bit architecture).

Definition at line 38 of file radiotap-header.h.

Member Enumeration Documentation

◆ AmpduFlags

A-MPDU status flags.

Enumerator
A_MPDU_STATUS_NONE 

No flags set.

A_MPDU_STATUS_REPORT_ZERO_LENGTH 

Driver reports 0-length subframes.

A_MPDU_STATUS_IS_ZERO_LENGTH 

Frame is 0-length subframe (valid only if 0x0001 is set)

A_MPDU_STATUS_LAST_KNOWN 

Last subframe is known (should be set for all subframes in an A-MPDU)

A_MPDU_STATUS_LAST 

This frame is the last subframe.

A_MPDU_STATUS_DELIMITER_CRC_ERROR 

Delimiter CRC error.

A_MPDU_STATUS_DELIMITER_CRC_KNOWN 

Delimiter CRC value known: the delimiter CRC value field is valid.

Definition at line 218 of file radiotap-header.h.

◆ ChannelFlags

Channel flags.

Enumerator
CHANNEL_FLAG_NONE 

No flags set.

CHANNEL_FLAG_TURBO 

Turbo Channel.

CHANNEL_FLAG_CCK 

CCK channel.

CHANNEL_FLAG_OFDM 

OFDM channel.

CHANNEL_FLAG_SPECTRUM_2GHZ 

2 GHz spectrum channel

CHANNEL_FLAG_SPECTRUM_5GHZ 

5 GHz spectrum channel

CHANNEL_FLAG_PASSIVE 

Only passive scan allowed.

CHANNEL_FLAG_DYNAMIC 

Dynamic CCK-OFDM channel.

CHANNEL_FLAG_GFSK 

GFSK channel (FHSS PHY)

Definition at line 135 of file radiotap-header.h.

◆ FrameFlag

Frame flags.

Enumerator
FRAME_FLAG_NONE 

No flags set.

FRAME_FLAG_CFP 

Frame sent/received during CFP.

FRAME_FLAG_SHORT_PREAMBLE 

Frame sent/received with short preamble.

FRAME_FLAG_WEP 

Frame sent/received with WEP encryption.

FRAME_FLAG_FRAGMENTED 

Frame sent/received with fragmentation.

FRAME_FLAG_FCS_INCLUDED 

Frame includes FCS.

FRAME_FLAG_DATA_PADDING 

Frame has padding between 802.11 header and payload (to 32-bit boundary)

FRAME_FLAG_BAD_FCS 

Frame failed FCS check.

FRAME_FLAG_SHORT_GUARD 

Frame used short guard interval (HT)

Definition at line 107 of file radiotap-header.h.

◆ HeData1

HE data1.

Enumerator
HE_DATA1_FORMAT_EXT_SU 

HE EXT SU PPDU format.

HE_DATA1_FORMAT_MU 

HE MU PPDU format.

HE_DATA1_FORMAT_TRIG 

HE TRIG PPDU format.

HE_DATA1_BSS_COLOR_KNOWN 

BSS Color known.

HE_DATA1_BEAM_CHANGE_KNOWN 

Beam Change known.

HE_DATA1_UL_DL_KNOWN 

UL/DL known.

HE_DATA1_DATA_MCS_KNOWN 

data MCS known

HE_DATA1_DATA_DCM_KNOWN 

data DCM known

HE_DATA1_CODING_KNOWN 

Coding known.

HE_DATA1_LDPC_XSYMSEG_KNOWN 

LDPC extra symbol segment known.

HE_DATA1_STBC_KNOWN 

STBC known.

HE_DATA1_SPTL_REUSE_KNOWN 

Spatial Reuse known (Spatial Reuse 1 for HE TRIG PPDU format)

HE_DATA1_SPTL_REUSE2_KNOWN 

Spatial Reuse 2 known (HE TRIG PPDU format), STA-ID known (HE MU PPDU format)

HE_DATA1_SPTL_REUSE3_KNOWN 

Spatial Reuse 3 known (HE TRIG PPDU format)

HE_DATA1_SPTL_REUSE4_KNOWN 

Spatial Reuse 4 known (HE TRIG PPDU format)

HE_DATA1_BW_RU_ALLOC_KNOWN 

data BW/RU allocation known

HE_DATA1_DOPPLER_KNOWN 

Doppler known.

Definition at line 288 of file radiotap-header.h.

◆ HeData2

HE data2.

Enumerator
HE_DATA2_PRISEC_80_KNOWN 

pri/sec 80 MHz known

HE_DATA2_GI_KNOWN 

GI known.

HE_DATA2_NUM_LTF_SYMS_KNOWN 

number of LTF symbols known

HE_DATA2_PRE_FEC_PAD_KNOWN 

Pre-FEC Padding Factor known.

HE_DATA2_TXBF_KNOWN 

TxBF known.

HE_DATA2_PE_DISAMBIG_KNOWN 

PE Disambiguity known.

HE_DATA2_TXOP_KNOWN 

TXOP known.

HE_DATA2_MIDAMBLE_KNOWN 

midamble periodicity known

HE_DATA2_RU_OFFSET 

RU allocation offset.

HE_DATA2_RU_OFFSET_KNOWN 

RU allocation offset known.

HE_DATA2_PRISEC_80_SEC 

pri/sec 80 MHz

Definition at line 312 of file radiotap-header.h.

◆ HeData3

HE data3.

Enumerator
HE_DATA3_BSS_COLOR 

BSS Color.

HE_DATA3_BEAM_CHANGE 

Beam Change.

HE_DATA3_UL_DL 

UL/DL.

HE_DATA3_DATA_MCS 

data MCS

HE_DATA3_DATA_DCM 

data DCM

HE_DATA3_CODING 

Coding.

HE_DATA3_LDPC_XSYMSEG 

LDPC extra symbol segment.

HE_DATA3_STBC 

STBC.

Definition at line 330 of file radiotap-header.h.

◆ HeData5

HE data5.

Enumerator
HE_DATA5_DATA_BW_RU_ALLOC_40MHZ 

40 MHz data Bandwidth

HE_DATA5_DATA_BW_RU_ALLOC_80MHZ 

80 MHz data Bandwidth

HE_DATA5_DATA_BW_RU_ALLOC_160MHZ 

160 MHz data Bandwidth

HE_DATA5_DATA_BW_RU_ALLOC_26T 

26-tone RU allocation

HE_DATA5_DATA_BW_RU_ALLOC_52T 

52-tone RU allocation

HE_DATA5_DATA_BW_RU_ALLOC_106T 

106-tone RU allocation

HE_DATA5_DATA_BW_RU_ALLOC_242T 

242-tone RU allocation

HE_DATA5_DATA_BW_RU_ALLOC_484T 

484-tone RU allocation

HE_DATA5_DATA_BW_RU_ALLOC_996T 

996-tone RU allocation

HE_DATA5_DATA_BW_RU_ALLOC_2x996T 

2x996-tone RU allocation

HE_DATA5_GI_1_6 

1.6us GI

HE_DATA5_GI_3_2 

3.2us GI

HE_DATA5_LTF_SYM_SIZE 

LTF symbol size.

HE_DATA5_NUM_LTF_SYMS 

number of LTF symbols

HE_DATA5_PRE_FEC_PAD 

Pre-FEC Padding Factor.

HE_DATA5_TXBF 

TxBF.

HE_DATA5_PE_DISAMBIG 

PE Disambiguity.

Definition at line 345 of file radiotap-header.h.

◆ McsFlags

MCS flags.

Enumerator
MCS_FLAGS_NONE 

Default: 20 MHz, long guard interval, mixed HT format and BCC FEC type.

MCS_FLAGS_BANDWIDTH_40 

40 MHz

MCS_FLAGS_BANDWIDTH_20L 

20L (20 MHz in lower half of 40 MHz channel)

MCS_FLAGS_BANDWIDTH_20U 

20U (20 MHz in upper half of 40 MHz channel)

MCS_FLAGS_GUARD_INTERVAL 

Short guard interval.

MCS_FLAGS_HT_GREENFIELD 

Greenfield HT format.

MCS_FLAGS_FEC_TYPE 

LDPC FEC type.

MCS_FLAGS_STBC_STREAMS 

STBC enabled.

MCS_FLAGS_NESS_BIT_0 

Ness - bit 0 (LSB) of Number of extension spatial streams.

Definition at line 193 of file radiotap-header.h.

◆ McsKnown

MCS known bits.

Enumerator
MCS_KNOWN_NONE 

No flags set.

MCS_KNOWN_BANDWIDTH 

Bandwidth.

MCS_KNOWN_INDEX 

MCS index known.

MCS_KNOWN_GUARD_INTERVAL 

Guard interval.

MCS_KNOWN_HT_FORMAT 

HT format.

MCS_KNOWN_FEC_TYPE 

FEC type.

MCS_KNOWN_STBC 

STBC known.

MCS_KNOWN_NESS 

Ness known (Number of extension spatial streams)

MCS_KNOWN_NESS_BIT_1 

Ness data - bit 1 (MSB) of Number of extension spatial streams.

Definition at line 177 of file radiotap-header.h.

◆ RadiotapFlags

Radiotap flags.

Enumerator
RADIOTAP_TSFT 
RADIOTAP_FLAGS 
RADIOTAP_RATE 
RADIOTAP_CHANNEL 
RADIOTAP_FHSS 
RADIOTAP_DBM_ANTSIGNAL 
RADIOTAP_DBM_ANTNOISE 
RADIOTAP_LOCK_QUALITY 
RADIOTAP_TX_ATTENUATION 
RADIOTAP_DB_TX_ATTENUATION 
RADIOTAP_DBM_TX_POWER 
RADIOTAP_ANTENNA 
RADIOTAP_DB_ANTSIGNAL 
RADIOTAP_DB_ANTNOISE 
RADIOTAP_RX_FLAGS 
RADIOTAP_MCS 
RADIOTAP_AMPDU_STATUS 
RADIOTAP_VHT 
RADIOTAP_HE 
RADIOTAP_EXT 

Definition at line 380 of file radiotap-header.h.

◆ VhtFlags

VHT flags.

Enumerator
VHT_FLAGS_NONE 

No flags set.

VHT_FLAGS_STBC 

Set if all spatial streams of all users have space-time block coding.

VHT_FLAGS_TXOP_PS_NOT_ALLOWED 

Set if STAs may not doze during TXOP (valid only for AP transmitters).

VHT_FLAGS_GUARD_INTERVAL 

Short guard interval.

VHT_FLAGS_SHORT_GI_NSYM_DISAMBIGUATION 

Set if NSYM mod 10 = 9 (valid only if short GI is used).

VHT_FLAGS_LDPC_EXTRA_OFDM_SYMBOL 

Set if one or more users are using LDPC and the encoding process resulted in extra OFDM symbol(s)

VHT_FLAGS_BEAMFORMED 

Set if beamforming is used (valid for SU PPDUs only).

Definition at line 258 of file radiotap-header.h.

◆ VhtKnown

VHT known bits.

Enumerator
VHT_KNOWN_NONE 

No flags set.

VHT_KNOWN_STBC 

Space-time block coding (1 if all spatial streams of all users have STBC, 0 otherwise).

VHT_KNOWN_TXOP_PS_NOT_ALLOWED 

TXOP_PS_NOT_ALLOWED known.

VHT_KNOWN_GUARD_INTERVAL 

Guard interval.

VHT_KNOWN_SHORT_GI_NSYM_DISAMBIGUATION 

Short GI NSYM disambiguation known.

VHT_KNOWN_LDPC_EXTRA_OFDM_SYMBOL 

LDPC extra OFDM symbol known.

VHT_KNOWN_BEAMFORMED 

Beamformed known/applicable (this flag should be set to zero for MU PPDUs).

VHT_KNOWN_BANDWIDTH 

Bandwidth known.

VHT_KNOWN_GROUP_ID 

Group ID known.

VHT_KNOWN_PARTIAL_AID 

Partial AID known/applicable.

Definition at line 241 of file radiotap-header.h.

Constructor & Destructor Documentation

◆ RadiotapHeader()

ns3::RadiotapHeader::RadiotapHeader ( )

Definition at line 33 of file radiotap-header.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

◆ Deserialize()

uint32_t ns3::RadiotapHeader::Deserialize ( Buffer::Iterator  start)
virtual

◆ GetInstanceTypeId()

TypeId ns3::RadiotapHeader::GetInstanceTypeId ( void  ) const
virtual

Get the most derived TypeId for this Object.

This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.

Returns
The TypeId associated to the most-derived type of this instance.

Implements ns3::ObjectBase.

Definition at line 74 of file radiotap-header.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetSerializedSize()

uint32_t ns3::RadiotapHeader::GetSerializedSize ( void  ) const
virtual

This method is used by Packet::AddHeader to store the header into the byte buffer of a packet.

This method returns the number of bytes which are needed to store the header data during a Serialize.

Returns
The expected size of the header.

Implements ns3::Header.

Definition at line 80 of file radiotap-header.cc.

References m_length, and NS_LOG_FUNCTION.

◆ GetTypeId()

TypeId ns3::RadiotapHeader::GetTypeId ( void  )
static

Get the type ID.

Returns
the object TypeId

Definition at line 62 of file radiotap-header.cc.

References ns3::TypeId::SetParent().

Referenced by GetInstanceTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Print()

void ns3::RadiotapHeader::Print ( std::ostream &  os) const
virtual

This method is used by Packet::Print to print the content of the header as ascii data to a C++ output stream.

Although the header is free to format its output as it wishes, it is recommended to follow a few rules to integrate with the packet pretty printer: start with flags, small field values located between a pair of parens. Values should be separated by whitespace. Follow the parens with the important fields, separated by whitespace.

eg: (field1 val1 field2 val2 field3 val3) field4 val4 field5 val5

Parameters
osThe output stream

Implements ns3::Header.

Definition at line 515 of file radiotap-header.cc.

References m_ampduStatusFlags, m_antennaNoise, m_antennaSignal, m_channelFlags, m_channelFreq, m_flags, m_heData1, m_heData2, m_heData3, m_heData5, m_mcsFlags, m_mcsKnown, m_mcsRate, m_rate, m_tsft, m_vhtBandwidth, m_vhtCoding, m_vhtFlags, m_vhtGroupId, m_vhtKnown, m_vhtMcsNss, m_vhtPartialAid, and NS_LOG_FUNCTION.

◆ Serialize()

void ns3::RadiotapHeader::Serialize ( Buffer::Iterator  start) const
virtual

◆ SetAmpduStatus()

void ns3::RadiotapHeader::SetAmpduStatus ( uint32_t  referenceNumber,
uint16_t  flags,
uint8_t  crc 
)

Set the A-MPDU status fields.

Parameters
referenceNumberThe A-MPDU reference number to identify all subframes belonging to the same A-MPDU.
flagsThe flags to set.
crcThe CRC value value.

Definition at line 676 of file radiotap-header.cc.

References m_ampduStatusCRC, m_ampduStatusFlags, m_ampduStatusPad, m_ampduStatusRef, m_length, m_present, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RADIOTAP_AMPDU_STATUS.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the caller graph for this function:

◆ SetAntennaNoisePower()

void ns3::RadiotapHeader::SetAntennaNoisePower ( double  noise)

Set the RF noise power at the antenna as a decibel difference from an arbitrary, fixed reference.

Parameters
noiseThe RF noise power at the antenna as a decibel difference from an arbitrary, fixed reference.

Definition at line 634 of file radiotap-header.cc.

References m_antennaNoise, m_length, m_present, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RADIOTAP_DBM_ANTNOISE.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the caller graph for this function:

◆ SetAntennaSignalPower()

void ns3::RadiotapHeader::SetAntennaSignalPower ( double  signal)

Set the RF signal power at the antenna as a decibel difference from an arbitrary, fixed reference.

Parameters
signalThe RF signal power at the antenna as a decibel difference from an arbitrary, fixed reference;

Definition at line 608 of file radiotap-header.cc.

References m_antennaSignal, m_length, m_present, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RADIOTAP_DBM_ANTSIGNAL.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the caller graph for this function:

◆ SetChannelFrequencyAndFlags()

void ns3::RadiotapHeader::SetChannelFrequencyAndFlags ( uint16_t  frequency,
uint16_t  flags 
)

Set the transmit/receive channel frequency and flags.

Parameters
frequencyThe transmit/receive data rate in units of 500 kbps.
flagsThe flags to set.
See also
ChannelFlags

Definition at line 591 of file radiotap-header.cc.

References m_channelFlags, m_channelFreq, m_channelPad, m_length, m_present, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RADIOTAP_CHANNEL.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the caller graph for this function:

◆ SetFrameFlags()

void ns3::RadiotapHeader::SetFrameFlags ( uint8_t  flags)

Set the frame flags of the transmitted or received frame.

Parameters
flagsflags to set.

Definition at line 561 of file radiotap-header.cc.

References m_flags, m_length, m_present, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RADIOTAP_FLAGS.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the caller graph for this function:

◆ SetHeFields()

void ns3::RadiotapHeader::SetHeFields ( uint16_t  data1,
uint16_t  data2,
uint16_t  data3,
uint16_t  data5 
)

Set the HE fields.

Parameters
data1The data1 field.
data2The data2 field.
data3The data3 field.
data5The data5 field.

Definition at line 717 of file radiotap-header.cc.

References m_heData1, m_heData2, m_heData3, m_heData5, m_hePad, m_length, m_present, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RADIOTAP_HE.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the caller graph for this function:

◆ SetMcsFields()

void ns3::RadiotapHeader::SetMcsFields ( uint8_t  known,
uint8_t  flags,
uint8_t  mcs 
)

Set the MCS fields.

Parameters
knownThe kwown flags.
flagsThe flags to set.
mcsThe MCS index value.

Definition at line 660 of file radiotap-header.cc.

References m_length, m_mcsFlags, m_mcsKnown, m_mcsRate, m_present, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RADIOTAP_MCS.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the caller graph for this function:

◆ SetRate()

void ns3::RadiotapHeader::SetRate ( uint8_t  rate)

Set the transmit/receive channel frequency in units of megahertz.

Parameters
ratethe transmit/receive channel frequency in units of megahertz.

Definition at line 576 of file radiotap-header.cc.

References m_length, m_present, m_rate, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RADIOTAP_RATE.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the caller graph for this function:

◆ SetTsft()

void ns3::RadiotapHeader::SetTsft ( uint64_t  tsft)

Set the Time Synchronization Function Timer (TSFT) value.

Valid for received frames only.

Parameters
tsftValue in microseconds of the MAC's 64-bit 802.11 Time Synchronization Function timer when the first bit of the MPDU arrived at the MAC.

Definition at line 546 of file radiotap-header.cc.

References m_length, m_present, m_tsft, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RADIOTAP_TSFT.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the caller graph for this function:

◆ SetVhtFields()

void ns3::RadiotapHeader::SetVhtFields ( uint16_t  known,
uint8_t  flags,
uint8_t  bandwidth,
uint8_t  mcs_nss[4],
uint8_t  coding,
uint8_t  group_id,
uint16_t  partial_aid 
)

Set the VHT fields.

Parameters
knownThe kwown flags.
flagsThe flags to set.
bandwidthThe bandwidth value.
mcs_nssThe mcs_nss value.
codingThe coding value.
group_idThe group_id value.
partial_aidThe partial_aid value.

Definition at line 693 of file radiotap-header.cc.

References m_length, m_present, m_vhtBandwidth, m_vhtCoding, m_vhtFlags, m_vhtGroupId, m_vhtKnown, m_vhtMcsNss, m_vhtPad, m_vhtPartialAid, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RADIOTAP_VHT.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_ampduStatusCRC

uint8_t ns3::RadiotapHeader::m_ampduStatusCRC
private

A-MPDU Status Flags, delimiter CRC value.

Definition at line 423 of file radiotap-header.h.

Referenced by Deserialize(), Serialize(), and SetAmpduStatus().

◆ m_ampduStatusFlags

uint16_t ns3::RadiotapHeader::m_ampduStatusFlags
private

A-MPDU Status Flags, information about the received A-MPDU.

Definition at line 422 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetAmpduStatus().

◆ m_ampduStatusPad

uint8_t ns3::RadiotapHeader::m_ampduStatusPad
private

A-MPDU Status Flags, padding before A-MPDU Status Field.

Definition at line 420 of file radiotap-header.h.

Referenced by Deserialize(), Serialize(), and SetAmpduStatus().

◆ m_ampduStatusRef

uint32_t ns3::RadiotapHeader::m_ampduStatusRef
private

A-MPDU Status Flags, reference number.

Definition at line 421 of file radiotap-header.h.

Referenced by Deserialize(), Serialize(), and SetAmpduStatus().

◆ m_antennaNoise

int8_t ns3::RadiotapHeader::m_antennaNoise
private

RF noise power at the antenna, dB difference from an arbitrary, fixed reference.

Definition at line 414 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetAntennaNoisePower().

◆ m_antennaSignal

int8_t ns3::RadiotapHeader::m_antennaSignal
private

RF signal power at the antenna, dB difference from an arbitrary, fixed reference.

Definition at line 413 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetAntennaSignalPower().

◆ m_channelFlags

uint16_t ns3::RadiotapHeader::m_channelFlags
private

Tx/Rx channel flags.

Definition at line 412 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetChannelFrequencyAndFlags().

◆ m_channelFreq

uint16_t ns3::RadiotapHeader::m_channelFreq
private

Tx/Rx frequency in MHz.

Definition at line 411 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetChannelFrequencyAndFlags().

◆ m_channelPad

uint8_t ns3::RadiotapHeader::m_channelPad
private

Tx/Rx channel padding.

Definition at line 410 of file radiotap-header.h.

Referenced by Deserialize(), Serialize(), and SetChannelFrequencyAndFlags().

◆ m_flags

uint8_t ns3::RadiotapHeader::m_flags
private

Properties of transmitted and received frames.

Definition at line 408 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetFrameFlags().

◆ m_heData1

uint16_t ns3::RadiotapHeader::m_heData1
private

HE data1 field.

Definition at line 435 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetHeFields().

◆ m_heData2

uint16_t ns3::RadiotapHeader::m_heData2
private

HE data2 field.

Definition at line 436 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetHeFields().

◆ m_heData3

uint16_t ns3::RadiotapHeader::m_heData3
private

HE data3 field.

Definition at line 437 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetHeFields().

◆ m_heData5

uint16_t ns3::RadiotapHeader::m_heData5
private

HE data5 field.

Definition at line 438 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetHeFields().

◆ m_hePad

uint8_t ns3::RadiotapHeader::m_hePad
private

HE padding.

Definition at line 434 of file radiotap-header.h.

Referenced by Deserialize(), Serialize(), and SetHeFields().

◆ m_length

uint16_t ns3::RadiotapHeader::m_length
private

◆ m_mcsFlags

uint8_t ns3::RadiotapHeader::m_mcsFlags
private

MCS Flags, flags field.

Definition at line 417 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetMcsFields().

◆ m_mcsKnown

uint8_t ns3::RadiotapHeader::m_mcsKnown
private

MCS Flags, known information field.

Definition at line 416 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetMcsFields().

◆ m_mcsRate

uint8_t ns3::RadiotapHeader::m_mcsRate
private

MCS Flags, mcs rate index.

Definition at line 418 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetMcsFields().

◆ m_present

uint32_t ns3::RadiotapHeader::m_present
private

◆ m_rate

uint8_t ns3::RadiotapHeader::m_rate
private

TX/RX data rate in units of 500 kbps.

Definition at line 409 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetRate().

◆ m_tsft

uint64_t ns3::RadiotapHeader::m_tsft
private

Time Synchronization Function Timer (when the first bit of the MPDU arrived at the MAC)

Definition at line 407 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetTsft().

◆ m_vhtBandwidth

uint8_t ns3::RadiotapHeader::m_vhtBandwidth
private

VHT bandwidth field.

Definition at line 428 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetVhtFields().

◆ m_vhtCoding

uint8_t ns3::RadiotapHeader::m_vhtCoding
private

VHT coding field.

Definition at line 430 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetVhtFields().

◆ m_vhtFlags

uint8_t ns3::RadiotapHeader::m_vhtFlags
private

VHT flags field.

Definition at line 427 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetVhtFields().

◆ m_vhtGroupId

uint8_t ns3::RadiotapHeader::m_vhtGroupId
private

VHT group_id field.

Definition at line 431 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetVhtFields().

◆ m_vhtKnown

uint16_t ns3::RadiotapHeader::m_vhtKnown
private

VHT known field.

Definition at line 426 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetVhtFields().

◆ m_vhtMcsNss

uint8_t ns3::RadiotapHeader::m_vhtMcsNss[4]
private

VHT mcs_nss field.

Definition at line 429 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetVhtFields().

◆ m_vhtPad

uint8_t ns3::RadiotapHeader::m_vhtPad
private

VHT padding.

Definition at line 425 of file radiotap-header.h.

Referenced by Deserialize(), Serialize(), and SetVhtFields().

◆ m_vhtPartialAid

uint16_t ns3::RadiotapHeader::m_vhtPartialAid
private

VHT partial_aid field.

Definition at line 432 of file radiotap-header.h.

Referenced by Deserialize(), Print(), Serialize(), and SetVhtFields().


The documentation for this class was generated from the following files: