Classes | |
class | ns3::AarfcdWifiManager |
an implementation of the AARF-CD algorithmThis algorithm was first described in "Efficient Collision Detection for Auto Rate Fallback Algorithm". The implementation available here was done by Federico Maguolo for a very early development version of ns-3. Federico died before merging this work in ns-3 itself so his code was ported to ns-3 later without his supervision. 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. Lacage, M.H. Manshaei, and T. Turletti. More... | |
class | ns3::AdhocWifiMac |
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. Lacage, M.H. Manshaei, and T. Turletti. More... | |
class | ns3::AmsduSubframeHeader |
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 |
class | ns3::CaraWifiManager |
implement the CARA rate control algorithmImplement the CARA algorithm from: J. Kim, S. Kim, S. Choi, and D. Qiao. "CARA: Collision-Aware Rate Adaptation for IEEE 802.11 WLANs." More... | |
class | ns3::ConstantRateWifiManager |
use constant rates for data and control 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.This class implements the packet fragmentation and retransmission policy. It uses the ns3::MacLow and ns3::DcfManager helper classes to respectively send packets and decide when to send them. Packets are stored in a ns3::WifiMacQueue until they can be sent. More... | |
class | ns3::Dcf |
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. Each ns3::DcfState has a priority implicitely associated with it (the priority is determined when the ns3::DcfState is added to the DcfManager: the first DcfState to be added gets the highest priority, the second, the second highest priority, and so on.) which is used to handle "internal" collisions. i.e., when two local DcfState are expected to get access to the medium at the same time, the highest priority local DcfState wins access to the medium and the other DcfState suffers a "internal" collision. More... | |
class | ns3::DcfState |
keep track of the state needed for a single DCF function.Multiple instances of a DcfState can be registered in a single DcfManager to implement 802.11e-style relative QoS. DcfState::SetAifsn and DcfState::SetCwBounds allow the user to control the relative QoS differentiation. More... | |
class | ns3::DsssErrorRateModel |
an implementation of DSSS error rate modelThe 802.11b modulations: More... | |
class | ns3::EdcaTxopN |
class | ns3::ErrorRateModel |
the interface for Wifi's error models 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. Holland, N. Vaidya, and P. Bahl.): every station keeps track of the snr of every packet received and sends back this snr to the original transmitter by an out-of-band mechanism. Each transmitter keeps track of the last snr sent back by a receiver and uses it to pick a transmission mode based on a set of snr thresholds built from a target ber and transmission mode-specific snr/ber curves. More... | |
class | ns3::InterferenceHelper |
handles interference calculations More... | |
class | ns3::MacLow |
handle RTS/CTS/DATA/ACK transactions. More... | |
class | ns3::MacLowBlockAckEventListener |
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.The ns3::MacLow::StartTransmission method expects an instance of this class to describe how the packet should be transmitted. More... | |
class | ns3::MacRxMiddle |
class | ns3::MacTxMiddle |
class | ns3::MgtAddBaRequestHeader |
class | ns3::MgtAddBaResponseHeader |
class | ns3::MgtAssocRequestHeader |
class | ns3::MgtAssocResponseHeader |
class | ns3::MgtBeaconHeader |
class | ns3::MgtDelBaHeader |
class | ns3::MgtProbeRequestHeader |
class | ns3::MgtProbeResponseHeader |
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::MsduAggregator |
Abstract class that concrete msdu aggregators have to implement. More... | |
class | ns3::MsduStandardAggregator |
class | ns3::NistErrorRateModel |
class | ns3::OnoeWifiManager |
an implementation of the rate control algorithm developed by Atsushi Onoe More... | |
class | ns3::OriginatorBlockAckAgreement |
class | ns3::QosTag |
class | ns3::RegularWifiMac |
base class for all MAC-level wifi objects.This class encapsulates all the low-level MAC functionality DCA, EDCA, etc) and all the high-level MAC functionality (association/disassociation state machines). 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::Ssid |
class | ns3::StaWifiMac |
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::WifiActionHeader |
class | ns3::WifiChannel |
Wifi Channel interface specificationThis class works in tandem with the ns3::WifiPhy class. If you want to provide a new Wifi PHY layer, you have to subclass both ns3::WifiChannel and ns3::WifiPhy. 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. Information Elements (IEs) have a common format, each starting with a single octet - the Element ID, which indicates the specific type of IE (a type to represent the options here is defined as WifiInformationElementId). The next octet is a length field and encodes the number of octets in the third and final field, which is the IE Information field. More... | |
class | ns3::WifiInformationElementVector |
Information element vectorImplements a vector of WifiInformationElements. Information elements typically come in groups, and the WifiInformationElementVector class provides a representation of a series of IEs, and the facility for serialisation to and deserialisation from the over-the-air format. More... | |
class | ns3::WifiMac |
base class for all MAC-level wifi objects.This class encapsulates all the low-level MAC functionality DCA, EDCA, etc) and all the high-level MAC functionality (association/disassociation state machines). More... | |
class | ns3::WifiMacHeader |
class | ns3::WifiMacQueue |
class | ns3::WifiMacTrailer |
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. It is thus extremely cheap to keep a WifiMode variable around. More... | |
class | ns3::WifiNetDevice |
Hold together all Wifi-related objects.This class holds together ns3::WifiChannel, ns3::WifiPhy, ns3::WifiMac, and, ns3::WifiRemoteStationManager. More... | |
class | ns3::WifiPhy |
802.11 PHY layer model More... | |
class | ns3::WifiPhyStateHelper |
class | ns3::WifiRemoteStationManager |
hold a list of per-remote-station state. More... | |
class | ns3::YansErrorRateModel |
Model the error rate for different modulations.A packet of interest (e.g., a packet can potentially be received by the MAC) is divided into chunks. Each chunk is related to an start/end receiving event. For each chunk, it calculates the ratio (SINR) between received power of packet of interest and summation of noise and interfering power of all the other incoming packets. Then, it will calculate the success rate of the chunk based on BER of the modulation. The success reception rate of the packet is derived from the success rate of all chunks. 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. The model implemented here is based on the model described in "Yet Another Network Simulator", (http://cutebugs.net/files/wns2-yans.pdf). More... |
Functions | |
uint8_t | ns3::QosUtilsGetTidForPacket (Ptr< const Packet > packet) |
bool | ns3::QosUtilsIsOldPacket (uint16_t startingSeq, uint16_t seqNumber) |
uint32_t | ns3::QosUtilsMapSeqControlToUniqueInteger (uint16_t seqControl, uint16_t endSequence) |
AcIndex | ns3::QosUtilsMapTidToAc (uint8_t tid) |
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 in Table 7-36 of IEEE 802.11-2007.
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.
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 29 of file wifi-preamble.h.
uint8_t ns3::QosUtilsGetTidForPacket | ( | Ptr< const Packet > | packet | ) |
If a qos tag is attached to the packet, returns a value < 8. A value >= 8 is returned otherwise.
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(), and ns3::ApWifiMac::ForwardDown().
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.
Definition at line 86 of file qos-utils.cc.
References NS_ASSERT.
Referenced by ns3::QosUtilsIsOldPacketTest::DoRun(), 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 IEEE802.11e) packets must be forwarded up before "new" packets.
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 of IEEE802.11 standard.
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::CreateBlockAckAgreement(), ns3::StaWifiMac::Enqueue(), ns3::AdhocWifiMac::Enqueue(), ns3::ApWifiMac::ForwardDown(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::RegularWifiMac::Receive(), ns3::MacLow::ReceiveOk(), ns3::MacLow::ResetBlockAckInactivityTimerIfNeeded(), and ns3::RegularWifiMac::SendAddBaResponse().