This section documents the API of the ns-3 Wifi module. More...
Modules | |
wifi module tests | |
Classes | |
class | ns3::AarfcdWifiManager |
an implementation of the AARF-CD algorithmThis algorithm was first described in "Efficient Collision Detection for Auto Rate Fallback Algorithm". More... | |
class | ns3::AarfWifiManager |
AARF Rate control algorithmThis class implements the AARF rate control algorithm which was initially described in IEEE 802.11 Rate Adaptation: A Practical Approach, by M. More... | |
class | ns3::AdhocWifiMac |
More... | |
class | ns3::AmpduSubframeHeader |
Introspection did not find any typical Config paths. 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 algorithmThis class implements the AMRR rate control algorithm which was initially described in IEEE 802.11 Rate Adaptation: A Practical Approach, by M. More... | |
class | ns3::AmsduSubframeHeader |
Introspection did not find any typical Config paths. More... | |
class | ns3::AparfWifiManager |
APARF Power and rate control algorithm. More... | |
struct | ns3::ApInfo |
Struct to hold information regarding observed AP through active/passive scanning. More... | |
class | ns3::ApWifiMac |
Wi-Fi AP state machineHandle association, dis-association and authentication, of STAs within an infrastructure BSS. More... | |
class | ns3::ArfWifiManager |
ARF Rate control algorithm. More... | |
struct | ns3::Bar |
Block Ack Request. More... | |
class | ns3::BlockAckAgreement |
Maintains information for a block ack agreement. More... | |
class | ns3::BlockAckCache |
BlockAckCache cache. More... | |
class | ns3::BlockAckManager |
Manages all block ack agreements for an originator station. More... | |
class | ns3::CapabilityInformation |
Capability information. More... | |
class | ns3::CaraWifiManager |
implement the CARA rate control algorithmImplement the CARA algorithm from: J. More... | |
class | CarrierAggregationTestCase |
This system test program creates different test cases with a single eNB and several UEs, all having the same Radio Bearer specification. More... | |
class | ns3::CfParameterSet |
The CF Parameter SetThis class knows how to serialise and deserialise the CF Parameter Set. More... | |
class | ns3::ChannelAccessManager |
Manage a set of ns3::TxopHandle a set of independent ns3::Txop, each of which represents a single DCF within a MAC stack. More... | |
class | ns3::ConstantRateWifiManager |
use constant rates for data and RTS transmissions More... | |
class | ns3::CtrlBAckRequestHeader |
Headers for Block ack request. More... | |
class | ns3::CtrlBAckResponseHeader |
Headers for Block ack response. More... | |
class | ns3::DsssErrorRateModel |
an implementation of DSSS error rate modelThe 802.11b modulations: More... | |
class | ns3::DsssParameterSet |
The DSSS Parameter SetThis class knows how to serialise and deserialise the DSSS Parameter Set. More... | |
class | ns3::EdcaParameterSet |
The EDCA Parameter SetThis class knows how to serialise and deserialise the EDCA Parameter Set. More... | |
class | ns3::ErpInformation |
The ErpInformation Information ElementThis class knows how to serialise and deserialise the ErpInformation Information Element. 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 ElementThis class knows how to serialise and deserialise the Extended Capabilities Information Element. More... | |
class | ns3::ExtendedSupportedRatesIE |
The Extended Supported Rates Information ElementThis class knows how to serialise and deserialise the Extended Supported Rates Element that holds (non-HT) rates beyond the 8 that the original Supported Rates element can carry. More... | |
class | ns3::FrameCaptureModel |
the interface for Wifi's frame capture models More... | |
class | ns3::HeCapabilities |
The IEEE 802.11ax HE Capabilities. More... | |
class | ns3::HeOperation |
The HE Operation Information ElementThis class knows how to serialise and deserialise the HE Operation Information Element. More... | |
class | ns3::HtCapabilities |
The HT Capabilities Information ElementThis class knows how to serialise and deserialise the HT Capabilities Information Element. More... | |
class | ns3::HtOperation |
The HT Operation Information ElementThis class knows how to serialise and deserialise the HT Operation Information Element. More... | |
class | ns3::IdealWifiManager |
Ideal rate control algorithmThis class implements an 'ideal' rate control algorithm similar to RBAR in spirit (see A rate-adaptive MAC protocol for multihop wireless networks by G. More... | |
class | ns3::InfrastructureWifiMac |
The Wifi MAC high model for a STA or AP in a BSS. More... | |
class | ns3::InterferenceHelper |
handles interference calculations More... | |
class | ns3::MacLow |
handle RTS/CTS/DATA/ACK transactions. More... | |
class | ns3::MacLowTransmissionParameters |
control how a packet is transmitted. 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::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 del block ack. 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 AlgorithmMinstrel-HT is a rate adaptation mechanism for the 802.11n/ac standard based on Minstrel, and is based on the approach of probing the channel to dynamically learn about working rates that can be supported. More... | |
class | ns3::MinstrelWifiManager |
Implementation of Minstrel Rate Control AlgorithmMinstrel is a rate control algorithm implemented in MadWifi and Linux. More... | |
class | ns3::MpduAggregator |
Aggregator used to construct A-MPDUs. More... | |
class | ns3::MsduAggregator |
Aggregator used to construct A-MSDUs. More... | |
class | ns3::NistErrorRateModel |
A model for the error rate for different modulations. 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 block ack for an originator station. More... | |
class | ns3::ParfWifiManager |
PARF Rate control algorithm. 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::RegularWifiMac |
base class for all MAC-level wifi objects. More... | |
class | ns3::RraaWifiManager |
Robust Rate Adaptation AlgorithmThis is an implementation of RRAA as described in "Robust rate adaptation for 802.11 wireless networks" by "Starsky H. Y. Wong", "Hao Yang", "Songwu Lu", and, "Vaduvur Bharghavan" published in Mobicom 06. More... | |
class | ns3::SimpleFrameCaptureModel |
A simple threshold-based model for frame capture effect. More... | |
class | ns3::SpectrumWifiPhy |
802.11 PHY layer modelThis PHY implements a spectrum-aware enhancement of the 802.11 SpectrumWifiPhy 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 ElementThis class knows how to serialise and deserialise the Supported Rates Element that holds the first 8 (non-HT) supported rates. 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::VhtOperation |
The VHT Operation Information ElementThis class knows how to serialise and deserialise the VHT Operation Information Element. More... | |
class | ns3::WifiActionHeader |
See IEEE 802.11 chapter 7.3.1.11 Header format: | category: 1 | action value: 1 |. More... | |
class | ns3::WifiInformationElement |
Information element, as defined in 802.11-2007 standardThe IEEE 802.11 standard includes the notion of Information Elements, which are encodings of management information to be communicated between STAs in the payload of various frames of type Management. More... | |
class | ns3::WifiInformationElementVector |
Information element vectorImplements a vector of WifiInformationElements. 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::WifiMacQueueItem |
WifiMacQueueItem stores (const) packets along with their Wifi MAC headers and the time when they were enqueued. More... | |
class | ns3::WifiMacTrailer |
Implements the IEEE 802.11 MAC trailer. More... | |
class | ns3::WifiMode |
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lookup in a global array the characteristics of the associated transmission mode. More... | |
class | ns3::WifiNetDevice |
Hold together all Wifi-related objects. More... | |
class | ns3::WifiPhy |
802.11 PHY layer model More... | |
class | ns3::WifiPhyStateHelper |
This objects implements the PHY state machine of the Wifi device. More... | |
class | ns3::WifiPhyTag |
Tag for WifiTxVector and WifiPreamble information to be embedded in outgoing transmissions as a PacketTag. More... | |
class | ns3::WifiRemoteStationManager |
hold a list of per-remote-station state. More... | |
struct | ns3::WifiRrpaaThresholds |
Robust Rate and Power Adaptation Algorithm. 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::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 modelThis PHY implements a model of 802.11a. More... | |
Functions | |
uint8_t | ns3::GetTid (Ptr< const Packet > packet, const WifiMacHeader hdr) |
Extraction operator for TypeId. More... | |
uint8_t | ns3::QosUtilsGetTidForPacket (Ptr< const Packet > packet) |
If a qos tag is attached to the packet, returns a value < 8. More... | |
bool | ns3::QosUtilsIsOldPacket (uint16_t startingSeq, uint16_t seqNumber) |
This function checks if packet with sequence number seqNumber is an "old" packet. More... | |
uint32_t | ns3::QosUtilsMapSeqControlToUniqueInteger (uint16_t seqControl, uint16_t endSequence) |
Next function is useful to correctly sort buffered packets under block ack. More... | |
AcIndex | ns3::QosUtilsMapTidToAc (uint8_t tid) |
Maps TID (Traffic ID) to Access classes. More... | |
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 |
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 | Total number of ACs. |
AC_UNDEF |
Definition at line 37 of file qos-utils.h.
enum ns3::BlockAckType |
The different block ACK policies.
Enumerator | |
---|---|
BASIC_BLOCK_ACK | |
COMPRESSED_BLOCK_ACK | |
MULTI_TID_BLOCK_ACK |
Definition at line 30 of file block-ack-type.h.
enum ns3::MpduType |
The type of an MPDU.
Definition at line 30 of file wifi-mpdu-type.h.
enum ns3::WifiPhyStandard |
Identifies the PHY specification that a Wifi device is configured to use.
Definition at line 30 of file wifi-phy-standard.h.
enum ns3::WifiPreamble |
The type of preamble to be used by an IEEE 802.11 transmission.
Definition at line 30 of file wifi-preamble.h.
uint8_t ns3::GetTid | ( | Ptr< const Packet > | packet, |
const WifiMacHeader | hdr | ||
) |
Extraction operator for TypeId.
Next function is useful to get traffic id of different packet types.
[in] | packet | is the packet |
[in] | hdr | is Wifi MAC header |
packet | packet to check |
hdr | 802.11 header for packet to check |
Returns Tid of different packet types
Definition at line 98 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::Packet::Copy(), ns3::WifiActionHeader::GetAction(), ns3::WifiActionHeader::GetCategory(), ns3::WifiMacHeader::GetQosTid(), 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, NS_FATAL_ERROR, ns3::Packet::PeekHeader(), and ns3::Packet::RemoveHeader().
Referenced by ns3::MacLow::AggregateToAmpdu(), ns3::MacLow::BlockAckTimeout(), ns3::MacLow::ForwardDown(), ns3::QosTxop::MissedAck(), ns3::QosTxop::MissedBlockAck(), ns3::QosTxop::MissedCts(), ns3::QosTxop::NeedFragmentation(), ns3::MacLow::NormalAckTimeout(), ns3::MacLow::PerformMsduAggregation(), ns3::MacLow::ReceiveOk(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::StartTransmission(), and ns3::MacLow::StopMpduAggregation().
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 57 of file qos-utils.cc.
References ns3::SocketPriorityTag::GetPriority(), and ns3::Packet::PeekPacketTag().
Referenced by ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::StaWifiMac::Enqueue(), ns3::ApWifiMac::ForwardDown(), and ns3::OcbWifiMac::SendVsc().
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 83 of file qos-utils.cc.
References NS_ASSERT.
Referenced by QosUtilsIsOldPacketTest::DoRun(), ns3::BlockAckManager::GetNextPacket(), ns3::BlockAckManager::PeekNextPacketByTidAndAddress(), ns3::MacLow::ReceiveMpdu(), ns3::MacLow::SendBlockAckAfterBlockAckRequest(), ns3::BlockAckCache::UpdateWithBlockAckReq(), and ns3::BlockAckCache::UpdateWithMpdu().
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 |
Definition at line 72 of file qos-utils.cc.
Referenced by PacketBufferingCaseA::DoRun(), PacketBufferingCaseB::DoRun(), ns3::MacLow::RxCompleteBufferedPacketsWithSmallerSequence(), and ns3::MacLow::StoreMpduIfNeeded().
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 31 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::MacLow::AggregateToAmpdu(), ns3::MacLow::CreateBlockAckAgreement(), ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::StaWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::ApWifiMac::ForwardDown(), ns3::MacLow::ForwardDown(), ns3::MacLow::PerformMsduAggregation(), ns3::RegularWifiMac::Receive(), ns3::MacLow::ReceiveOk(), ns3::MacLow::ResetBlockAckInactivityTimerIfNeeded(), ns3::WifiNetDevice::SelectQueue(), ns3::RegularWifiMac::SendAddBaResponse(), ns3::MacLow::SendDataAfterCts(), ns3::OcbWifiMac::SendVsc(), ns3::MacLow::StartTransmission(), and ns3::MacLow::StopMpduAggregation().