This section documents the API of the ns-3 Wifi module. More...
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... | |
union | ns3::WifiActionHeader::ActionValue |
typedef for union of different ActionValues More... | |
class | ns3::AdhocWifiMac |
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... | |
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 |
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 | 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::DcaTxop |
handle packet fragmentation and retransmissions. More... | |
class | ns3::Dcf |
Introspection did not find any typical Config paths. More... | |
class | ns3::DcfManager |
Manage a set of ns3::DcfStateHandle a set of independent ns3::DcfState, each of which represents a single DCF within a MAC stack. More... | |
class | ns3::DcfState |
keep track of the state needed for a single DCF function. More... | |
class | ns3::DsssErrorRateModel |
an implementation of DSSS error rate modelThe 802.11b modulations: More... | |
class | ns3::EdcaTxopN |
This queue contains packets for a particular access class. More... | |
class | ns3::ErrorRateModel |
the interface for Wifi's error models More... | |
class | ns3::InterferenceHelper::Event |
Signal event for a packet. 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::HtCapabilities |
The HT Capabilities Information ElementThis class knows how to serialise and deserialise the HT Capabilities 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::InterferenceHelper |
handles interference calculations More... | |
struct | ns3::WifiMacQueue::Item |
A struct that holds information about a packet for putting in a packet queue. More... | |
struct | ns3::MacLow::Item |
A struct for packet, Wifi header, and timestamp. More... | |
struct | ns3::BlockAckManager::Item |
A struct for packet, Wifi header, and timestamp. More... | |
class | ns3::MacLow |
handle RTS/CTS/DATA/ACK transactions. More... | |
class | ns3::MacLowAggregationCapableTransmissionListener |
listen for block ack events. More... | |
class | ns3::MacLowDcfListener |
listen to NAV eventsThis class is typically connected to an instance of ns3::Dcf and calls to its methods are forwards to the corresponding ns3::Dcf methods. More... | |
class | ns3::MacLowTransmissionListener |
listen to events coming from ns3::MacLow. 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 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::MinstrelWifiManager |
Implementation of Minstrel Rate Control AlgorithmPorting Minstrel from Madwifi and Linux Kernel http://linuxwireless.org/en/developers/Documentation/mac80211/RateControl/minstrel. More... | |
class | ns3::MpduAggregator |
Abstract class that concrete mpdu aggregators have to implement. More... | |
class | ns3::MpduStandardAggregator |
Standard MPDU aggregator. More... | |
class | ns3::MsduAggregator |
Abstract class that concrete msdu aggregators have to implement. More... | |
class | ns3::MsduStandardAggregator |
Standard MSDU aggregator. More... | |
class | ns3::InterferenceHelper::NiChange |
Noise and Interference (thus Ni) event. 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::QosTag |
The aim of the QosTag is to provide means for an Application to specify the TID which will be used by a QoS-aware WifiMac for a given traffic flow. 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... | |
struct | ns3::InterferenceHelper::SnrPer |
A struct for both SNR and PER. 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... | |
struct | ns3::RraaWifiManager::ThresholdsItem |
class | ns3::WifiActionHeader |
See IEEE 802.11 chapter 7.3.1.11 Header format: | category: 1 | action value: 1 |. More... | |
class | ns3::WifiChannel |
Wifi Channel interface specificationThis class works in tandem with the ns3::WifiPhy class. 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::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::WifiRemoteStationManager |
hold a list of per-remote-station state. More... | |
class | ns3::YansErrorRateModel |
Model the error rate for different modulations. More... | |
class | ns3::YansWifiChannel |
A Yans wifi channelThis wifi channel implements the propagation model described in "Yet Another Network Simulator", (http://cutebugs.net/files/wns2-yans.pdf). More... | |
class | ns3::YansWifiPhy |
802.11 PHY layer modelThis PHY implements a model of 802.11a. More... | |
Functions | |
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.
|
private |
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 35 of file qos-utils.h.
Block ACK action field values See 802.11 Table 8-202.
Enumerator | |
---|---|
BLOCK_ACK_ADDBA_REQUEST | |
BLOCK_ACK_ADDBA_RESPONSE | |
BLOCK_ACK_DELBA |
Definition at line 391 of file mgt-headers.h.
Enumerator | |
---|---|
BLOCK_ACK | |
MESH | |
MULTIHOP | |
SELF_PROTECTED | |
VENDOR_SPECIFIC_ACTION |
Definition at line 346 of file mgt-headers.h.
|
private |
The current MAC state of the STA.
Enumerator | |
---|---|
ASSOCIATED | |
WAIT_PROBE_RESP | |
WAIT_ASSOC_RESP | |
BEACON_MISSED | |
REFUSED |
Definition at line 90 of file sta-wifi-mac.h.
Definition at line 372 of file mgt-headers.h.
Enumerator | |
---|---|
PROXY_UPDATE | |
PROXY_UPDATE_CONFIRMATION |
Definition at line 366 of file mgt-headers.h.
ACK policy for QoS frames.
Enumerator | |
---|---|
NORMAL_ACK | |
NO_ACK | |
NO_EXPLICIT_ACK | |
BLOCK_ACK |
Definition at line 86 of file wifi-mac-header.h.
Enumerator | |
---|---|
PEER_LINK_OPEN | |
PEER_LINK_CONFIRM | |
PEER_LINK_CLOSE | |
GROUP_KEY_INFORM | |
GROUP_KEY_ACK |
Definition at line 357 of file mgt-headers.h.
Enumeration of the possible states of the channel.
Enumerator | |
---|---|
High | |
Low | |
Spread |
Definition at line 57 of file aparf-wifi-manager.h.
Represents the state for this agreement.
PENDING: If an agreement is in PENDING state it means that an ADDBARequest frame was sent to recipient in order to setup the block ack and the originator is waiting for the relative ADDBAResponse frame.
ESTABLISHED: The block ack is active and all packets relative to this agreement are transmitted with ack policy set to block ack.
INACTIVE: In our implementation, block ack tear-down happens only if an inactivity timeout occurs so we could have an active block ack but a number of packets that doesn't reach the value of m_blockAckThreshold (see ns3::BlockAckManager). In these conditions the agreement becomes INACTIVE until that the number of packets reaches the value of m_blockAckThreshold again.
UNSUCCESSFUL (not used for now): The agreement's state becomes UNSUCCESSFUL if:
In both cases for station addressed by BlockAckAgreement::m_peer and for TID BlockAckAgreement::m_tid block ack mechanism won't be used.
Enumerator | |
---|---|
PENDING | |
ESTABLISHED | |
INACTIVE | |
UNSUCCESSFUL |
Definition at line 89 of file originator-block-ack-agreement.h.
enum ns3::WifiPhy::State |
The state of the PHY layer.
Definition at line 132 of file wifi-phy.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.
Enumerator | |
---|---|
WIFI_PREAMBLE_LONG | |
WIFI_PREAMBLE_SHORT | |
WIFI_PREAMBLE_HT_MF | |
WIFI_PREAMBLE_HT_GF | |
WIFI_PREAMBLE_NONE |
Definition at line 29 of file wifi-preamble.h.
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 60 of file qos-utils.cc.
References ns3::QosTag::GetTid(), and ns3::Packet::PeekPacketTag().
Referenced by ns3::StaWifiMac::Enqueue(), ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::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 86 of file qos-utils.cc.
References NS_ASSERT.
Referenced by QosUtilsIsOldPacketTest::DoRun(), ns3::BlockAckManager::GetNextPacket(), ns3::BlockAckManager::PeekNextPacket(), 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 75 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 27 of file qos-utils.cc.
References ns3::AC_BE, ns3::AC_BK, ns3::AC_UNDEF, ns3::AC_VI, and ns3::AC_VO.
Referenced by ns3::MacLow::AggregateToAmpdu(), ns3::MacLow::CreateBlockAckAgreement(), ns3::StaWifiMac::Enqueue(), ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::ApWifiMac::ForwardDown(), ns3::MacLow::PerformMsduAggregation(), ns3::RegularWifiMac::Receive(), ns3::MacLow::ReceiveOk(), ns3::MacLow::ResetBlockAckInactivityTimerIfNeeded(), ns3::RegularWifiMac::SendAddBaResponse(), ns3::MacLow::SendDataAfterCts(), and ns3::OcbWifiMac::SendVsc().