hold a list of per-remote-station state. More...
#include <wifi-remote-station-manager.h>
Public Member Functions | |
WifiRemoteStationManager () | |
virtual | ~WifiRemoteStationManager () |
void | AddBasicMcs (uint8_t mcs) |
void | AddBasicMode (WifiMode mode) |
void | AddStationHtCapabilities (Mac48Address from, HtCapabilities htcapabilities) |
void | AddSupportedMcs (Mac48Address address, uint8_t mcs) |
void | AddSupportedMode (Mac48Address address, WifiMode mode) |
WifiTxVector | DoGetCtsToSelfTxVector (void) |
WifiTxVector | GetAckTxVector (Mac48Address address, WifiMode dataMode) |
uint8_t | GetBasicMcs (uint32_t i) const |
WifiMode | GetBasicMode (uint32_t i) const |
WifiTxVector | GetBlockAckTxVector (Mac48Address address, WifiMode dataMode) |
WifiTxVector | GetCtsToSelfTxVector (const WifiMacHeader *header, Ptr< const Packet > packet) |
WifiTxVector | GetCtsTxVector (Mac48Address address, WifiMode rtsMode) |
WifiTxVector | GetDataTxVector (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fullPacketSize) |
uint8_t | GetDefaultMcs (void) const |
WifiMode | GetDefaultMode (void) const |
uint8_t | GetDefaultTxPowerLevel (void) const |
uint32_t | GetFragmentationThreshold (void) const |
uint32_t | GetFragmentOffset (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fragmentNumber) |
uint32_t | GetFragmentSize (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fragmentNumber) |
bool | GetGreenfieldSupported (Mac48Address address) const |
WifiRemoteStationInfo | GetInfo (Mac48Address address) |
uint32_t | GetMaxSlrc (void) const |
uint32_t | GetMaxSsrc (void) const |
uint32_t | GetNBasicMcs (void) const |
uint32_t | GetNBasicModes (void) const |
WifiMode | GetNonUnicastMode (void) const |
uint32_t | GetNumberOfTransmitAntennas (void) |
uint32_t | GetRtsCtsThreshold (void) const |
WifiTxVector | GetRtsTxVector (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | HasHtSupported (void) const |
bool | IsAssociated (Mac48Address address) const |
bool | IsBrandNew (Mac48Address address) const |
bool | IsLastFragment (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fragmentNumber) |
bool | IsWaitAssocTxOk (Mac48Address address) const |
bool | NeedCtsToSelf (WifiTxVector txVector) |
bool | NeedDataRetransmission (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | NeedFragmentation (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | NeedRts (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | NeedRtsRetransmission (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
void | PrepareForQueue (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fullPacketSize) |
void | RecordDisassociated (Mac48Address address) |
void | RecordGotAssocTxFailed (Mac48Address address) |
void | RecordGotAssocTxOk (Mac48Address address) |
void | RecordWaitAssocTxOk (Mac48Address address) |
void | ReportDataFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportDataOk (Mac48Address address, const WifiMacHeader *header, double ackSnr, WifiMode ackMode, double dataSnr) |
void | ReportFinalDataFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportFinalRtsFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportRtsFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportRtsOk (Mac48Address address, const WifiMacHeader *header, double ctsSnr, WifiMode ctsMode, double rtsSnr) |
void | ReportRxOk (Mac48Address address, const WifiMacHeader *header, double rxSnr, WifiMode txMode) |
void | Reset (void) |
void | Reset (Mac48Address address) |
void | SetDefaultTxPowerLevel (uint8_t txPower) |
void | SetFragmentationThreshold (uint32_t threshold) |
void | SetHtSupported (bool enable) |
void | SetMaxSlrc (uint32_t maxSlrc) |
void | SetMaxSsrc (uint32_t maxSsrc) |
void | SetRtsCtsThreshold (uint32_t threshold) |
virtual void | SetupPhy (Ptr< WifiPhy > phy) |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~ObjectBase () |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static void | Cleanup (void) |
![]() | |
static TypeId | GetTypeId (void) |
Protected Member Functions | |
virtual void | DoDispose (void) |
bool | GetGreenfield (const WifiRemoteStation *station) const |
uint32_t | GetLongRetryCount (const WifiRemoteStation *station) const |
uint8_t | GetMcsSupported (const WifiRemoteStation *station, uint32_t i) const |
uint32_t | GetNMcsSupported (const WifiRemoteStation *station) const |
uint32_t | GetNSupported (const WifiRemoteStation *station) const |
uint32_t | GetNumberOfReceiveAntennas (const WifiRemoteStation *station) const |
uint32_t | GetNumberOfTransmitAntennas (const WifiRemoteStation *station) const |
bool | GetShortGuardInterval (const WifiRemoteStation *station) const |
uint32_t | GetShortRetryCount (const WifiRemoteStation *station) const |
bool | GetStbc (const WifiRemoteStation *station) const |
WifiMode | GetSupported (const WifiRemoteStation *station, uint32_t i) const |
![]() | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
Private Types | |
typedef std::vector < WifiRemoteStation * > | Stations |
typedef std::vector < WifiRemoteStationState * > | StationStates |
Private Member Functions | |
virtual WifiRemoteStation * | DoCreateStation (void) const =0 |
virtual bool | DoGetAckTxGuardInterval (Mac48Address address, WifiMode ackMode) |
virtual uint8_t | DoGetAckTxNess (Mac48Address address, WifiMode ackMode) |
virtual uint8_t | DoGetAckTxNss (Mac48Address address, WifiMode ackMode) |
virtual uint8_t | DoGetAckTxPowerLevel (Mac48Address address, WifiMode ackMode) |
virtual bool | DoGetAckTxStbc (Mac48Address address, WifiMode ackMode) |
virtual bool | DoGetBlockAckTxGuardInterval (Mac48Address address, WifiMode blockAckMode) |
virtual uint8_t | DoGetBlockAckTxNess (Mac48Address address, WifiMode blockAckMode) |
virtual uint8_t | DoGetBlockAckTxNss (Mac48Address address, WifiMode blockAckMode) |
virtual uint8_t | DoGetBlockAckTxPowerLevel (Mac48Address address, WifiMode blockAckMode) |
virtual bool | DoGetBlockAckTxStbc (Mac48Address address, WifiMode blockAckMode) |
virtual bool | DoGetCtsTxGuardInterval (Mac48Address address, WifiMode ctsMode) |
virtual uint8_t | DoGetCtsTxNess (Mac48Address address, WifiMode ctsMode) |
virtual uint8_t | DoGetCtsTxNss (Mac48Address address, WifiMode ctsMode) |
virtual uint8_t | DoGetCtsTxPowerLevel (Mac48Address address, WifiMode ctsMode) |
virtual bool | DoGetCtsTxStbc (Mac48Address address, WifiMode ctsMode) |
virtual WifiTxVector | DoGetDataTxVector (WifiRemoteStation *station, uint32_t size)=0 |
uint32_t | DoGetFragmentationThreshold (void) const |
virtual WifiTxVector | DoGetRtsTxVector (WifiRemoteStation *station)=0 |
virtual bool | DoNeedDataRetransmission (WifiRemoteStation *station, Ptr< const Packet > packet, bool normally) |
virtual bool | DoNeedFragmentation (WifiRemoteStation *station, Ptr< const Packet > packet, bool normally) |
virtual bool | DoNeedRts (WifiRemoteStation *station, Ptr< const Packet > packet, bool normally) |
virtual bool | DoNeedRtsRetransmission (WifiRemoteStation *station, Ptr< const Packet > packet, bool normally) |
virtual void | DoReportDataFailed (WifiRemoteStation *station)=0 |
virtual void | DoReportDataOk (WifiRemoteStation *station, double ackSnr, WifiMode ackMode, double dataSnr)=0 |
virtual void | DoReportFinalDataFailed (WifiRemoteStation *station)=0 |
virtual void | DoReportFinalRtsFailed (WifiRemoteStation *station)=0 |
virtual void | DoReportRtsFailed (WifiRemoteStation *station)=0 |
virtual void | DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr)=0 |
virtual void | DoReportRxOk (WifiRemoteStation *station, double rxSnr, WifiMode txMode)=0 |
void | DoSetFragmentationThreshold (uint32_t threshold) |
WifiMode | GetControlAnswerMode (Mac48Address address, WifiMode reqMode) |
uint32_t | GetNFragments (const WifiMacHeader *header, Ptr< const Packet > packet) |
virtual bool | IsLowLatency (void) const =0 |
WifiRemoteStation * | Lookup (Mac48Address address, uint8_t tid) const |
WifiRemoteStation * | Lookup (Mac48Address address, const WifiMacHeader *header) const |
Find a remote station by its remote address and TID taken from MAC header. More... | |
WifiRemoteStationState * | LookupState (Mac48Address address) const |
Private Attributes | |
WifiMcsList | m_bssBasicMcsSet |
WifiModeList | m_bssBasicRateSet |
uint8_t | m_defaultTxMcs |
WifiMode | m_defaultTxMode |
uint8_t | m_defaultTxPowerLevel |
uint32_t | m_fragmentationThreshold |
bool | m_htSupported |
TracedCallback< Mac48Address > | m_macTxDataFailed |
TracedCallback< Mac48Address > | m_macTxFinalDataFailed |
TracedCallback< Mac48Address > | m_macTxFinalRtsFailed |
TracedCallback< Mac48Address > | m_macTxRtsFailed |
uint32_t | m_maxSlrc |
uint32_t | m_maxSsrc |
WifiMode | m_nonUnicastMode |
uint32_t | m_rtsCtsThreshold |
StationStates | m_states |
Stations | m_stations |
Ptr< WifiPhy > | m_wifiPhy |
hold a list of per-remote-station state.
ns3::WifiRemoteStationManager is accessible through the following paths with Config::Set and Config::Connect:
Definition at line 83 of file wifi-remote-station-manager.h.
|
private |
Definition at line 498 of file wifi-remote-station-manager.h.
|
private |
Definition at line 499 of file wifi-remote-station-manager.h.
ns3::WifiRemoteStationManager::WifiRemoteStationManager | ( | ) |
Definition at line 307 of file wifi-remote-station-manager.cc.
|
virtual |
Definition at line 311 of file wifi-remote-station-manager.cc.
void ns3::WifiRemoteStationManager::AddBasicMcs | ( | uint8_t | mcs | ) |
Definition at line 1250 of file wifi-remote-station-manager.cc.
References GetBasicMcs(), GetNBasicMcs(), and m_bssBasicMcsSet.
void ns3::WifiRemoteStationManager::AddBasicMode | ( | WifiMode | mode | ) |
Definition at line 1226 of file wifi-remote-station-manager.cc.
References GetBasicMode(), GetNBasicModes(), and m_bssBasicRateSet.
void ns3::WifiRemoteStationManager::AddStationHtCapabilities | ( | Mac48Address | from, |
HtCapabilities | htcapabilities | ||
) |
Definition at line 1187 of file wifi-remote-station-manager.cc.
References ns3::HtCapabilities::GetGreenfield(), ns3::HtCapabilities::GetShortGuardInterval20(), LookupState(), ns3::WifiRemoteStationState::m_greenfield, and ns3::WifiRemoteStationState::m_shortGuardInterval.
void ns3::WifiRemoteStationManager::AddSupportedMcs | ( | Mac48Address | address, |
uint8_t | mcs | ||
) |
Definition at line 447 of file wifi-remote-station-manager.cc.
References ns3::Mac48Address::IsGroup(), LookupState(), and NS_ASSERT.
Referenced by Reset().
void ns3::WifiRemoteStationManager::AddSupportedMode | ( | Mac48Address | address, |
WifiMode | mode | ||
) |
Invoked in a STA or AP to store the set of modes supported by a destination which is also supported locally. The set of supported modes includes the BSSBasicRateSet.
Definition at line 411 of file wifi-remote-station-manager.cc.
References ns3::Mac48Address::IsGroup(), LookupState(), and NS_ASSERT.
Referenced by Reset().
|
privatepure virtual |
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AmrrWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by Lookup().
|
protectedvirtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::Object.
Definition at line 315 of file wifi-remote-station-manager.cc.
References m_states, and m_stations.
|
privatevirtual |
Definition at line 1061 of file wifi-remote-station-manager.cc.
References ns3::WifiPhy::GetGuardInterval(), and m_wifiPhy.
Referenced by GetAckTxVector().
|
privatevirtual |
Definition at line 1072 of file wifi-remote-station-manager.cc.
Referenced by GetAckTxVector().
|
privatevirtual |
Definition at line 1067 of file wifi-remote-station-manager.cc.
Referenced by GetAckTxVector().
|
privatevirtual |
address | the address of the recipient of the ACK |
ctsMode | the mode to be used for the ACK |
Definition at line 1055 of file wifi-remote-station-manager.cc.
References m_defaultTxPowerLevel.
Referenced by GetAckTxVector().
|
privatevirtual |
Definition at line 1077 of file wifi-remote-station-manager.cc.
References ns3::WifiPhy::GetStbc(), and m_wifiPhy.
Referenced by GetAckTxVector().
|
privatevirtual |
Definition at line 1089 of file wifi-remote-station-manager.cc.
References ns3::WifiPhy::GetGuardInterval(), and m_wifiPhy.
Referenced by GetBlockAckTxVector().
|
privatevirtual |
Definition at line 1100 of file wifi-remote-station-manager.cc.
Referenced by GetBlockAckTxVector().
|
privatevirtual |
Definition at line 1095 of file wifi-remote-station-manager.cc.
Referenced by GetBlockAckTxVector().
|
privatevirtual |
address | the address of the recipient of the Block ACK |
ctsMode | the mode to be used for the Block ACK |
Definition at line 1083 of file wifi-remote-station-manager.cc.
References m_defaultTxPowerLevel.
Referenced by GetBlockAckTxVector().
|
privatevirtual |
Definition at line 1105 of file wifi-remote-station-manager.cc.
References ns3::WifiPhy::GetStbc(), and m_wifiPhy.
Referenced by GetBlockAckTxVector().
WifiTxVector ns3::WifiRemoteStationManager::DoGetCtsToSelfTxVector | ( | void | ) |
Definition at line 587 of file wifi-remote-station-manager.cc.
References GetDefaultMode(), GetDefaultTxPowerLevel(), ns3::WifiPhy::GetGuardInterval(), GetNumberOfTransmitAntennas(), and m_wifiPhy.
Referenced by GetCtsToSelfTxVector(), and PrepareForQueue().
|
privatevirtual |
Definition at line 1033 of file wifi-remote-station-manager.cc.
References ns3::WifiPhy::GetGuardInterval(), and m_wifiPhy.
Referenced by GetCtsTxVector().
|
privatevirtual |
Definition at line 1044 of file wifi-remote-station-manager.cc.
Referenced by GetCtsTxVector().
|
privatevirtual |
Definition at line 1039 of file wifi-remote-station-manager.cc.
Referenced by GetCtsTxVector().
|
privatevirtual |
address | the address of the recipient of the CTS |
ctsMode | the mode to be used for the CTS |
Definition at line 1027 of file wifi-remote-station-manager.cc.
References m_defaultTxPowerLevel.
Referenced by GetCtsTxVector().
|
privatevirtual |
Definition at line 1049 of file wifi-remote-station-manager.cc.
References ns3::WifiPhy::GetStbc(), and m_wifiPhy.
Referenced by GetCtsTxVector().
|
privatepure virtual |
station | the station with which we need to communicate |
size | size of the packet or fragment we want to send |
Note: This method is called before sending a unicast packet or a fragment of a unicast packet to decide which transmission mode to use.
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AmrrWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by GetDataTxVector(), and PrepareForQueue().
|
private |
Definition at line 779 of file wifi-remote-station-manager.cc.
References m_fragmentationThreshold.
Referenced by GetFragmentationThreshold(), and GetTypeId().
|
privatepure virtual |
station | the station with which we need to communicate |
Note: This method is called before sending an rts to a station to decide which transmission mode to use for the rts.
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AmrrWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by GetRtsTxVector(), and PrepareForQueue().
|
privatevirtual |
station | the station with which we need to communicate |
packet | the packet to send |
normally | indicates whether the normal 802.11 data retransmission mechanism would request that the data is retransmitted or not. |
Note: This method is called after a unicast packet transmission has been attempted and has failed.
Definition at line 1300 of file wifi-remote-station-manager.cc.
Referenced by NeedDataRetransmission().
|
privatevirtual |
station | the station with which we need to communicate |
packet | the packet to send |
normally | indicates whether the normal 802.11 data fragmentation mechanism would request that the data packet is fragmented or not. |
Note: This method is called before sending a unicast packet.
Definition at line 1306 of file wifi-remote-station-manager.cc.
Referenced by NeedFragmentation().
|
privatevirtual |
station | the station with which we need to communicate |
packet | the packet to send |
normally | indicates whether the normal 802.11 rts enable mechanism would request that the rts is sent or not. |
Note: This method is called before a unicast packet is sent on the medium.
Reimplemented in ns3::RraaWifiManager, ns3::AarfcdWifiManager, and ns3::CaraWifiManager.
Definition at line 1288 of file wifi-remote-station-manager.cc.
Referenced by NeedRts().
|
privatevirtual |
station | the station with which we need to communicate |
packet | the packet to send |
normally | indicates whether the normal 802.11 rts enable mechanism would request that the rts is retransmitted or not. |
Note: This method is called after an rts/cts handshake has been attempted and has failed.
Definition at line 1294 of file wifi-remote-station-manager.cc.
Referenced by NeedRtsRetransmission().
|
privatepure virtual |
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AmrrWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by ReportDataFailed().
|
privatepure virtual |
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AmrrWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by ReportDataOk().
|
privatepure virtual |
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AmrrWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by ReportFinalDataFailed().
|
privatepure virtual |
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AmrrWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by ReportFinalRtsFailed().
|
privatepure virtual |
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AmrrWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by ReportRtsFailed().
|
privatepure virtual |
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AmrrWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by ReportRtsOk().
|
privatepure virtual |
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AmrrWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by ReportRxOk().
|
private |
Definition at line 750 of file wifi-remote-station-manager.cc.
References m_fragmentationThreshold, and NS_LOG_WARN.
Referenced by GetTypeId(), and SetFragmentationThreshold().
WifiTxVector ns3::WifiRemoteStationManager::GetAckTxVector | ( | Mac48Address | address, |
WifiMode | dataMode | ||
) |
address | |
dataMode | the transmission mode used to send an ACK we just received |
Definition at line 1000 of file wifi-remote-station-manager.cc.
References DoGetAckTxGuardInterval(), DoGetAckTxNess(), DoGetAckTxNss(), DoGetAckTxPowerLevel(), DoGetAckTxStbc(), GetControlAnswerMode(), ns3::Mac48Address::IsGroup(), NS_ASSERT, and ns3::WifiTxVector::SetMode().
uint8_t ns3::WifiRemoteStationManager::GetBasicMcs | ( | uint32_t | i | ) | const |
Definition at line 1268 of file wifi-remote-station-manager.cc.
References m_bssBasicMcsSet, and NS_ASSERT.
Referenced by AddBasicMcs().
WifiMode ns3::WifiRemoteStationManager::GetBasicMode | ( | uint32_t | i | ) | const |
Definition at line 1243 of file wifi-remote-station-manager.cc.
References m_bssBasicRateSet, and NS_ASSERT.
Referenced by AddBasicMode(), ns3::IdealWifiManager::DoGetRtsTxVector(), and GetNonUnicastMode().
WifiTxVector ns3::WifiRemoteStationManager::GetBlockAckTxVector | ( | Mac48Address | address, |
WifiMode | dataMode | ||
) |
address | |
dataMode | the transmission mode used to send an ACK we just received |
Definition at line 1013 of file wifi-remote-station-manager.cc.
References DoGetBlockAckTxGuardInterval(), DoGetBlockAckTxNess(), DoGetBlockAckTxNss(), DoGetBlockAckTxPowerLevel(), DoGetBlockAckTxStbc(), GetControlAnswerMode(), ns3::Mac48Address::IsGroup(), NS_ASSERT, and ns3::WifiTxVector::SetMode().
|
private |
The standard has relatively unambiguous rules for selecting a control response rate (the below is quoted from IEEE 802.11-2007, Section 9.6):
To allow the transmitting STA to calculate the contents of the Duration/ID field, a STA responding to a received frame shall transmit its Control Response frame (either CTS or ACK), other than the BlockAck control frame, at the highest rate in the BSSBasicRateSet parameter that is less than or equal to the rate of the immediately previous frame in the frame exchange sequence (as defined in 9.12) and that is of the same modulation class (see 9.6.1) as the received frame...
If no suitable basic rate was found, we search the mandatory rates. The standard (IEEE 802.11-2007, Section 9.6) says:
...If no rate contained in the BSSBasicRateSet parameter meets these conditions, then the control frame sent in response to a received frame shall be transmitted at the highest mandatory rate of the PHY that is less than or equal to the rate of the received frame, and that is of the same modulation class as the received frame. In addition, the Control Response frame shall be sent using the same PHY options as the received frame, unless they conflict with the requirement to use the BSSBasicRateSet parameter.
If we still haven't found a suitable rate for the response then someone has messed up the simulation config. This probably means that the WifiPhyStandard is not set correctly, or that a rate that is not supported by the PHY has been explicitly requested in a WifiRemoteStationManager (or descendant) configuration.
Either way, it is serious - we can either disobey the standard or fail, and I have chosen to do the latter...
Definition at line 838 of file wifi-remote-station-manager.cc.
References GetDefaultMcs(), GetDefaultMode(), ns3::WifiPhy::GetMcs(), ns3::WifiPhy::GetMode(), ns3::WifiMode::GetModulationClass(), ns3::WifiPhy::GetNMcs(), ns3::WifiPhy::GetNModes(), ns3::WifiMode::GetPhyRate(), HasHtSupported(), ns3::WifiMode::IsMandatory(), m_bssBasicMcsSet, m_bssBasicRateSet, m_wifiPhy, ns3::WifiPhy::McsToWifiMode(), and NS_FATAL_ERROR.
Referenced by GetAckTxVector(), GetBlockAckTxVector(), and GetCtsTxVector().
WifiTxVector ns3::WifiRemoteStationManager::GetCtsToSelfTxVector | ( | const WifiMacHeader * | header, |
Ptr< const Packet > | packet | ||
) |
Definition at line 568 of file wifi-remote-station-manager.cc.
References DoGetCtsToSelfTxVector(), ns3::HighLatencyCtsToSelfTxVectorTag::GetCtsToSelfTxVector(), IsLowLatency(), and NS_ASSERT.
WifiTxVector ns3::WifiRemoteStationManager::GetCtsTxVector | ( | Mac48Address | address, |
WifiMode | rtsMode | ||
) |
address | remote address |
rtsMode | the transmission mode used to send an RTS we just received |
Definition at line 987 of file wifi-remote-station-manager.cc.
References DoGetCtsTxGuardInterval(), DoGetCtsTxNess(), DoGetCtsTxNss(), DoGetCtsTxPowerLevel(), DoGetCtsTxStbc(), GetControlAnswerMode(), ns3::Mac48Address::IsGroup(), NS_ASSERT, and ns3::WifiTxVector::SetMode().
WifiTxVector ns3::WifiRemoteStationManager::GetDataTxVector | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
Ptr< const Packet > | packet, | ||
uint32_t | fullPacketSize | ||
) |
address | remote address |
header | MAC header |
packet | the packet to send |
fullPacketSize | the size of the packet after its 802.11 MAC header has been added. |
Definition at line 540 of file wifi-remote-station-manager.cc.
References DoGetDataTxVector(), ns3::HighLatencyDataTxVectorTag::GetDataTxVector(), GetNonUnicastMode(), ns3::Mac48Address::IsGroup(), IsLowLatency(), Lookup(), m_defaultTxPowerLevel, NS_ASSERT, ns3::WifiTxVector::SetMode(), ns3::WifiTxVector::SetNess(), ns3::WifiTxVector::SetNss(), ns3::WifiTxVector::SetShortGuardInterval(), ns3::WifiTxVector::SetStbc(), and ns3::WifiTxVector::SetTxPowerLevel().
uint8_t ns3::WifiRemoteStationManager::GetDefaultMcs | ( | void | ) | const |
Definition at line 1207 of file wifi-remote-station-manager.cc.
References m_defaultTxMcs.
Referenced by GetControlAnswerMode(), LookupState(), and Reset().
WifiMode ns3::WifiRemoteStationManager::GetDefaultMode | ( | void | ) | const |
Definition at line 1202 of file wifi-remote-station-manager.cc.
References m_defaultTxMode.
Referenced by DoGetCtsToSelfTxVector(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetRtsTxVector(), GetControlAnswerMode(), LookupState(), and Reset().
uint8_t ns3::WifiRemoteStationManager::GetDefaultTxPowerLevel | ( | void | ) | const |
Definition at line 1112 of file wifi-remote-station-manager.cc.
References m_defaultTxPowerLevel.
Referenced by DoGetCtsToSelfTxVector(), ns3::AarfWifiManager::DoGetDataTxVector(), ns3::ConstantRateWifiManager::DoGetDataTxVector(), ns3::CaraWifiManager::DoGetDataTxVector(), ns3::AarfcdWifiManager::DoGetDataTxVector(), ns3::AmrrWifiManager::DoGetDataTxVector(), ns3::OnoeWifiManager::DoGetDataTxVector(), ns3::ArfWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::RraaWifiManager::DoGetDataTxVector(), ns3::MinstrelWifiManager::DoGetDataTxVector(), ns3::AarfWifiManager::DoGetRtsTxVector(), ns3::ConstantRateWifiManager::DoGetRtsTxVector(), ns3::AarfcdWifiManager::DoGetRtsTxVector(), ns3::CaraWifiManager::DoGetRtsTxVector(), ns3::AmrrWifiManager::DoGetRtsTxVector(), ns3::OnoeWifiManager::DoGetRtsTxVector(), ns3::ArfWifiManager::DoGetRtsTxVector(), ns3::IdealWifiManager::DoGetRtsTxVector(), ns3::RraaWifiManager::DoGetRtsTxVector(), and ns3::MinstrelWifiManager::DoGetRtsTxVector().
uint32_t ns3::WifiRemoteStationManager::GetFragmentationThreshold | ( | void | ) | const |
Definition at line 375 of file wifi-remote-station-manager.cc.
References DoGetFragmentationThreshold().
Referenced by GetFragmentOffset(), GetFragmentSize(), GetNFragments(), and NeedFragmentation().
uint32_t ns3::WifiRemoteStationManager::GetFragmentOffset | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
Ptr< const Packet > | packet, | ||
uint32_t | fragmentNumber | ||
) |
address | remote address |
header | MAC header |
packet | the packet to send |
fragmentNumber | the fragment index of the next fragment to send (starts at zero). |
Definition at line 821 of file wifi-remote-station-manager.cc.
References GetFragmentationThreshold(), GetNFragments(), ns3::WifiMacHeader::GetSize(), ns3::Mac48Address::IsGroup(), NS_ASSERT, and ns3::WIFI_MAC_FCS_LENGTH.
uint32_t ns3::WifiRemoteStationManager::GetFragmentSize | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
Ptr< const Packet > | packet, | ||
uint32_t | fragmentNumber | ||
) |
address | remote address |
header | MAC header |
packet | the packet to send |
fragmentNumber | the fragment index of the next fragment to send (starts at zero). |
Definition at line 799 of file wifi-remote-station-manager.cc.
References GetFragmentationThreshold(), GetNFragments(), ns3::WifiMacHeader::GetSize(), ns3::Packet::GetSize(), ns3::Mac48Address::IsGroup(), NS_ASSERT, and ns3::WIFI_MAC_FCS_LENGTH.
|
protected |
Definition at line 1330 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStationState::m_greenfield, and ns3::WifiRemoteStation::m_state.
bool ns3::WifiRemoteStationManager::GetGreenfieldSupported | ( | Mac48Address | address | ) | const |
Definition at line 1197 of file wifi-remote-station-manager.cc.
References LookupState(), and ns3::WifiRemoteStationState::m_greenfield.
WifiRemoteStationInfo ns3::WifiRemoteStationManager::GetInfo | ( | Mac48Address | address | ) |
address | of the remote station |
Definition at line 1119 of file wifi-remote-station-manager.cc.
References LookupState(), and ns3::WifiRemoteStationState::m_info.
|
protected |
Definition at line 1355 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStation::m_slrc.
Referenced by ns3::AarfWifiManager::DoGetDataTxVector(), ns3::ConstantRateWifiManager::DoGetDataTxVector(), ns3::CaraWifiManager::DoGetDataTxVector(), ns3::AarfcdWifiManager::DoGetDataTxVector(), ns3::AmrrWifiManager::DoGetDataTxVector(), ns3::OnoeWifiManager::DoGetDataTxVector(), ns3::ArfWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::RraaWifiManager::DoGetDataTxVector(), ns3::MinstrelWifiManager::DoGetDataTxVector(), ns3::AarfWifiManager::DoGetRtsTxVector(), ns3::CaraWifiManager::DoGetRtsTxVector(), ns3::AmrrWifiManager::DoGetRtsTxVector(), and ns3::ArfWifiManager::DoGetRtsTxVector().
uint32_t ns3::WifiRemoteStationManager::GetMaxSlrc | ( | void | ) | const |
Definition at line 365 of file wifi-remote-station-manager.cc.
References m_maxSlrc.
Referenced by NeedDataRetransmission().
uint32_t ns3::WifiRemoteStationManager::GetMaxSsrc | ( | void | ) | const |
Definition at line 360 of file wifi-remote-station-manager.cc.
References m_maxSsrc.
Referenced by NeedRtsRetransmission().
|
protected |
Definition at line 1319 of file wifi-remote-station-manager.cc.
References GetNMcsSupported(), ns3::WifiRemoteStationState::m_operationalMcsSet, ns3::WifiRemoteStation::m_state, and NS_ASSERT.
uint32_t ns3::WifiRemoteStationManager::GetNBasicMcs | ( | void | ) | const |
Definition at line 1263 of file wifi-remote-station-manager.cc.
References m_bssBasicMcsSet.
Referenced by AddBasicMcs().
uint32_t ns3::WifiRemoteStationManager::GetNBasicModes | ( | void | ) | const |
Definition at line 1238 of file wifi-remote-station-manager.cc.
References m_bssBasicRateSet.
Referenced by AddBasicMode(), and ns3::IdealWifiManager::DoGetRtsTxVector().
|
private |
Definition at line 785 of file wifi-remote-station-manager.cc.
References GetFragmentationThreshold(), ns3::WifiMacHeader::GetSize(), ns3::Packet::GetSize(), and ns3::WIFI_MAC_FCS_LENGTH.
Referenced by GetFragmentOffset(), GetFragmentSize(), and IsLastFragment().
|
protected |
Definition at line 1365 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStationState::m_operationalMcsSet, and ns3::WifiRemoteStation::m_state.
Referenced by GetMcsSupported().
WifiMode ns3::WifiRemoteStationManager::GetNonUnicastMode | ( | void | ) | const |
Definition at line 1275 of file wifi-remote-station-manager.cc.
References GetBasicMode(), and m_nonUnicastMode.
Referenced by GetDataTxVector().
|
protected |
Definition at line 1360 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStationState::m_operationalRateSet, and ns3::WifiRemoteStation::m_state.
Referenced by ns3::MinstrelWifiManager::CheckInit(), ns3::AmrrWifiManager::DoGetDataTxVector(), ns3::OnoeWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::AarfWifiManager::DoReportDataOk(), ns3::AarfcdWifiManager::DoReportDataOk(), ns3::CaraWifiManager::DoReportDataOk(), ns3::RraaWifiManager::GetMaxRate(), GetSupported(), ns3::AmrrWifiManager::IncreaseRate(), ns3::AmrrWifiManager::IsMaxRate(), ns3::AmrrWifiManager::UpdateMode(), and ns3::OnoeWifiManager::UpdateMode().
|
protected |
Definition at line 1340 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStationState::m_rx, and ns3::WifiRemoteStation::m_state.
Referenced by ns3::AarfWifiManager::DoGetDataTxVector(), ns3::ConstantRateWifiManager::DoGetDataTxVector(), ns3::CaraWifiManager::DoGetDataTxVector(), ns3::AarfcdWifiManager::DoGetDataTxVector(), ns3::AmrrWifiManager::DoGetDataTxVector(), ns3::OnoeWifiManager::DoGetDataTxVector(), ns3::ArfWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::RraaWifiManager::DoGetDataTxVector(), ns3::MinstrelWifiManager::DoGetDataTxVector(), ns3::AarfWifiManager::DoGetRtsTxVector(), ns3::ConstantRateWifiManager::DoGetRtsTxVector(), ns3::AarfcdWifiManager::DoGetRtsTxVector(), ns3::CaraWifiManager::DoGetRtsTxVector(), ns3::AmrrWifiManager::DoGetRtsTxVector(), ns3::OnoeWifiManager::DoGetRtsTxVector(), ns3::ArfWifiManager::DoGetRtsTxVector(), ns3::IdealWifiManager::DoGetRtsTxVector(), ns3::RraaWifiManager::DoGetRtsTxVector(), and ns3::MinstrelWifiManager::DoGetRtsTxVector().
uint32_t ns3::WifiRemoteStationManager::GetNumberOfTransmitAntennas | ( | void | ) |
Definition at line 1377 of file wifi-remote-station-manager.cc.
References ns3::WifiPhy::GetNumberOfTransmitAntennas(), and m_wifiPhy.
Referenced by DoGetCtsToSelfTxVector(), ns3::AarfWifiManager::DoGetDataTxVector(), ns3::ConstantRateWifiManager::DoGetDataTxVector(), ns3::CaraWifiManager::DoGetDataTxVector(), ns3::AarfcdWifiManager::DoGetDataTxVector(), ns3::AmrrWifiManager::DoGetDataTxVector(), ns3::OnoeWifiManager::DoGetDataTxVector(), ns3::ArfWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::RraaWifiManager::DoGetDataTxVector(), ns3::MinstrelWifiManager::DoGetDataTxVector(), ns3::AarfWifiManager::DoGetRtsTxVector(), ns3::ConstantRateWifiManager::DoGetRtsTxVector(), ns3::AarfcdWifiManager::DoGetRtsTxVector(), ns3::CaraWifiManager::DoGetRtsTxVector(), ns3::AmrrWifiManager::DoGetRtsTxVector(), ns3::OnoeWifiManager::DoGetRtsTxVector(), ns3::ArfWifiManager::DoGetRtsTxVector(), ns3::IdealWifiManager::DoGetRtsTxVector(), ns3::RraaWifiManager::DoGetRtsTxVector(), and ns3::MinstrelWifiManager::DoGetRtsTxVector().
|
protected |
Definition at line 1345 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStation::m_state, and ns3::WifiRemoteStationState::m_tx.
uint32_t ns3::WifiRemoteStationManager::GetRtsCtsThreshold | ( | void | ) | const |
Definition at line 370 of file wifi-remote-station-manager.cc.
References m_rtsCtsThreshold.
Referenced by NeedRts().
WifiTxVector ns3::WifiRemoteStationManager::GetRtsTxVector | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
Ptr< const Packet > | packet | ||
) |
address | remote address |
header | MAC header |
packet | the packet to send |
Definition at line 593 of file wifi-remote-station-manager.cc.
References DoGetRtsTxVector(), ns3::HighLatencyRtsTxVectorTag::GetRtsTxVector(), ns3::Mac48Address::IsGroup(), IsLowLatency(), Lookup(), and NS_ASSERT.
|
protected |
Definition at line 1325 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStationState::m_shortGuardInterval, and ns3::WifiRemoteStation::m_state.
Referenced by ns3::AarfWifiManager::DoGetDataTxVector(), ns3::ConstantRateWifiManager::DoGetDataTxVector(), ns3::CaraWifiManager::DoGetDataTxVector(), ns3::AarfcdWifiManager::DoGetDataTxVector(), ns3::AmrrWifiManager::DoGetDataTxVector(), ns3::OnoeWifiManager::DoGetDataTxVector(), ns3::ArfWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::RraaWifiManager::DoGetDataTxVector(), ns3::MinstrelWifiManager::DoGetDataTxVector(), ns3::AarfWifiManager::DoGetRtsTxVector(), ns3::ConstantRateWifiManager::DoGetRtsTxVector(), ns3::AarfcdWifiManager::DoGetRtsTxVector(), ns3::CaraWifiManager::DoGetRtsTxVector(), ns3::AmrrWifiManager::DoGetRtsTxVector(), ns3::OnoeWifiManager::DoGetRtsTxVector(), ns3::ArfWifiManager::DoGetRtsTxVector(), ns3::IdealWifiManager::DoGetRtsTxVector(), ns3::RraaWifiManager::DoGetRtsTxVector(), and ns3::MinstrelWifiManager::DoGetRtsTxVector().
|
protected |
Definition at line 1350 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStation::m_ssrc.
Referenced by ns3::ConstantRateWifiManager::DoGetRtsTxVector(), ns3::AarfcdWifiManager::DoGetRtsTxVector(), ns3::OnoeWifiManager::DoGetRtsTxVector(), ns3::IdealWifiManager::DoGetRtsTxVector(), ns3::RraaWifiManager::DoGetRtsTxVector(), and ns3::MinstrelWifiManager::DoGetRtsTxVector().
|
protected |
Definition at line 1335 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStation::m_state, and ns3::WifiRemoteStationState::m_stbc.
Referenced by ns3::AarfWifiManager::DoGetDataTxVector(), ns3::ConstantRateWifiManager::DoGetDataTxVector(), ns3::CaraWifiManager::DoGetDataTxVector(), ns3::AarfcdWifiManager::DoGetDataTxVector(), ns3::AmrrWifiManager::DoGetDataTxVector(), ns3::OnoeWifiManager::DoGetDataTxVector(), ns3::ArfWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::RraaWifiManager::DoGetDataTxVector(), ns3::MinstrelWifiManager::DoGetDataTxVector(), ns3::AarfWifiManager::DoGetRtsTxVector(), ns3::ConstantRateWifiManager::DoGetRtsTxVector(), ns3::AarfcdWifiManager::DoGetRtsTxVector(), ns3::CaraWifiManager::DoGetRtsTxVector(), ns3::AmrrWifiManager::DoGetRtsTxVector(), ns3::OnoeWifiManager::DoGetRtsTxVector(), ns3::ArfWifiManager::DoGetRtsTxVector(), ns3::IdealWifiManager::DoGetRtsTxVector(), ns3::RraaWifiManager::DoGetRtsTxVector(), and ns3::MinstrelWifiManager::DoGetRtsTxVector().
|
protected |
Definition at line 1313 of file wifi-remote-station-manager.cc.
References GetNSupported(), ns3::WifiRemoteStationState::m_operationalRateSet, ns3::WifiRemoteStation::m_state, and NS_ASSERT.
Referenced by ns3::AarfWifiManager::DoGetDataTxVector(), ns3::CaraWifiManager::DoGetDataTxVector(), ns3::AarfcdWifiManager::DoGetDataTxVector(), ns3::AmrrWifiManager::DoGetDataTxVector(), ns3::OnoeWifiManager::DoGetDataTxVector(), ns3::ArfWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::RraaWifiManager::DoGetDataTxVector(), ns3::MinstrelWifiManager::DoGetDataTxVector(), ns3::AarfWifiManager::DoGetRtsTxVector(), ns3::AarfcdWifiManager::DoGetRtsTxVector(), ns3::CaraWifiManager::DoGetRtsTxVector(), ns3::AmrrWifiManager::DoGetRtsTxVector(), ns3::OnoeWifiManager::DoGetRtsTxVector(), ns3::ArfWifiManager::DoGetRtsTxVector(), ns3::RraaWifiManager::DoGetRtsTxVector(), ns3::MinstrelWifiManager::DoGetRtsTxVector(), ns3::RraaWifiManager::GetThresholds(), and ns3::MinstrelWifiManager::RateInit().
|
static |
Definition at line 245 of file wifi-remote-station-manager.cc.
References DoGetFragmentationThreshold(), DoSetFragmentationThreshold(), IsLowLatency(), m_defaultTxPowerLevel, m_macTxDataFailed, m_macTxFinalDataFailed, m_macTxFinalRtsFailed, m_macTxRtsFailed, m_maxSlrc, m_maxSsrc, m_nonUnicastMode, m_rtsCtsThreshold, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
bool ns3::WifiRemoteStationManager::HasHtSupported | ( | void | ) | const |
Definition at line 355 of file wifi-remote-station-manager.cc.
References m_htSupported.
Referenced by GetControlAnswerMode(), NeedCtsToSelf(), and SetupPhy().
bool ns3::WifiRemoteStationManager::IsAssociated | ( | Mac48Address | address | ) | const |
Definition at line 471 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStationState::GOT_ASSOC_TX_OK, ns3::Mac48Address::IsGroup(), LookupState(), and ns3::WifiRemoteStationState::m_state.
bool ns3::WifiRemoteStationManager::IsBrandNew | ( | Mac48Address | address | ) | const |
Definition at line 462 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStationState::BRAND_NEW, ns3::Mac48Address::IsGroup(), LookupState(), and ns3::WifiRemoteStationState::m_state.
bool ns3::WifiRemoteStationManager::IsLastFragment | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
Ptr< const Packet > | packet, | ||
uint32_t | fragmentNumber | ||
) |
address | remote address |
header | MAC header |
packet | the packet to send |
fragmentNumber | the fragment index of the next fragment to send (starts at zero). |
Definition at line 830 of file wifi-remote-station-manager.cc.
References GetNFragments(), ns3::Mac48Address::IsGroup(), and NS_ASSERT.
|
privatepure virtual |
Note: In this context, low vs high latency is defined in IEEE 802.11 Rate Adaptation: A Practical Approach, by M. Lacage, M.H. Manshaei, and T. Turletti.
Implemented in ns3::MinstrelWifiManager, ns3::RraaWifiManager, ns3::IdealWifiManager, ns3::ArfWifiManager, ns3::OnoeWifiManager, ns3::AarfcdWifiManager, ns3::CaraWifiManager, ns3::AmrrWifiManager, ns3::ConstantRateWifiManager, and ns3::AarfWifiManager.
Referenced by GetCtsToSelfTxVector(), GetDataTxVector(), GetRtsTxVector(), GetTypeId(), and PrepareForQueue().
bool ns3::WifiRemoteStationManager::IsWaitAssocTxOk | ( | Mac48Address | address | ) | const |
Definition at line 480 of file wifi-remote-station-manager.cc.
References ns3::Mac48Address::IsGroup(), LookupState(), ns3::WifiRemoteStationState::m_state, and ns3::WifiRemoteStationState::WAIT_ASSOC_TX_OK.
|
private |
Definition at line 1163 of file wifi-remote-station-manager.cc.
References DoCreateStation(), LookupState(), ns3::WifiRemoteStation::m_slrc, ns3::WifiRemoteStation::m_ssrc, ns3::WifiRemoteStation::m_state, m_stations, and ns3::WifiRemoteStation::m_tid.
Referenced by GetDataTxVector(), GetRtsTxVector(), Lookup(), NeedDataRetransmission(), NeedFragmentation(), NeedRts(), NeedRtsRetransmission(), PrepareForQueue(), ReportDataFailed(), ReportDataOk(), ReportFinalDataFailed(), ReportFinalRtsFailed(), ReportRtsFailed(), ReportRtsOk(), and ReportRxOk().
|
private |
Find a remote station by its remote address and TID taken from MAC header.
Definition at line 1149 of file wifi-remote-station-manager.cc.
References ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::IsQosData(), and Lookup().
|
private |
Definition at line 1126 of file wifi-remote-station-manager.cc.
References first::address, ns3::WifiRemoteStationState::BRAND_NEW, GetDefaultMcs(), GetDefaultMode(), ns3::WifiPhy::GetGreenfield(), ns3::WifiPhy::GetGuardInterval(), ns3::WifiRemoteStationState::m_address, ns3::WifiRemoteStationState::m_greenfield, ns3::WifiRemoteStationState::m_operationalMcsSet, ns3::WifiRemoteStationState::m_operationalRateSet, ns3::WifiRemoteStationState::m_rx, ns3::WifiRemoteStationState::m_shortGuardInterval, ns3::WifiRemoteStationState::m_state, m_states, ns3::WifiRemoteStationState::m_stbc, ns3::WifiRemoteStationState::m_tx, and m_wifiPhy.
Referenced by AddStationHtCapabilities(), AddSupportedMcs(), AddSupportedMode(), GetGreenfieldSupported(), GetInfo(), IsAssociated(), IsBrandNew(), IsWaitAssocTxOk(), Lookup(), RecordDisassociated(), RecordGotAssocTxFailed(), RecordGotAssocTxOk(), RecordWaitAssocTxOk(), and Reset().
bool ns3::WifiRemoteStationManager::NeedCtsToSelf | ( | WifiTxVector | txVector | ) |
Definition at line 691 of file wifi-remote-station-manager.cc.
References ns3::WifiTxVector::GetMode(), HasHtSupported(), m_bssBasicMcsSet, m_bssBasicRateSet, m_wifiPhy, and ns3::WifiPhy::WifiModeToMcs().
bool ns3::WifiRemoteStationManager::NeedDataRetransmission | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
Ptr< const Packet > | packet | ||
) |
address | remote address |
header | MAC header |
packet | the packet to send |
Definition at line 728 of file wifi-remote-station-manager.cc.
References DoNeedDataRetransmission(), GetMaxSlrc(), ns3::Mac48Address::IsGroup(), Lookup(), and NS_ASSERT.
bool ns3::WifiRemoteStationManager::NeedFragmentation | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
Ptr< const Packet > | packet | ||
) |
address | remote address |
header | MAC header |
packet | the packet to send |
Definition at line 737 of file wifi-remote-station-manager.cc.
References DoNeedFragmentation(), GetFragmentationThreshold(), ns3::WifiMacHeader::GetSize(), ns3::Packet::GetSize(), ns3::Mac48Address::IsGroup(), Lookup(), and ns3::WIFI_MAC_FCS_LENGTH.
bool ns3::WifiRemoteStationManager::NeedRts | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
Ptr< const Packet > | packet | ||
) |
address | remote address |
header | MAC header |
packet | the packet to send |
Definition at line 680 of file wifi-remote-station-manager.cc.
References DoNeedRts(), GetRtsCtsThreshold(), ns3::WifiMacHeader::GetSize(), ns3::Packet::GetSize(), ns3::Mac48Address::IsGroup(), Lookup(), and ns3::WIFI_MAC_FCS_LENGTH.
bool ns3::WifiRemoteStationManager::NeedRtsRetransmission | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
Ptr< const Packet > | packet | ||
) |
address | remote address |
header | MAC header |
packet | the packet to send |
Definition at line 719 of file wifi-remote-station-manager.cc.
References DoNeedRtsRetransmission(), GetMaxSsrc(), ns3::Mac48Address::IsGroup(), Lookup(), and NS_ASSERT.
void ns3::WifiRemoteStationManager::PrepareForQueue | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
Ptr< const Packet > | packet, | ||
uint32_t | fullPacketSize | ||
) |
address | remote address |
header | MAC header |
packet | the packet to queue |
fullPacketSize | the size of the packet after its 802.11 MAC header has been added. |
This method is typically invoked just before queuing a packet for transmission. It is a no-op unless the IsLowLatency attribute of the attached ns3::WifiRemoteStationManager is set to false, in which case, the tx parameters of the packet are calculated and stored in the packet as a tag. These tx parameters are later retrieved from GetDadaMode and GetRtsMode.
Definition at line 513 of file wifi-remote-station-manager.cc.
References ns3::Packet::AddPacketTag(), data, DoGetCtsToSelfTxVector(), DoGetDataTxVector(), DoGetRtsTxVector(), ns3::Mac48Address::IsGroup(), IsLowLatency(), and Lookup().
void ns3::WifiRemoteStationManager::RecordDisassociated | ( | Mac48Address | address | ) |
Definition at line 507 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStationState::DISASSOC, ns3::Mac48Address::IsGroup(), LookupState(), ns3::WifiRemoteStationState::m_state, and NS_ASSERT.
void ns3::WifiRemoteStationManager::RecordGotAssocTxFailed | ( | Mac48Address | address | ) |
Definition at line 501 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStationState::DISASSOC, ns3::Mac48Address::IsGroup(), LookupState(), ns3::WifiRemoteStationState::m_state, and NS_ASSERT.
void ns3::WifiRemoteStationManager::RecordGotAssocTxOk | ( | Mac48Address | address | ) |
Definition at line 495 of file wifi-remote-station-manager.cc.
References ns3::WifiRemoteStationState::GOT_ASSOC_TX_OK, ns3::Mac48Address::IsGroup(), LookupState(), ns3::WifiRemoteStationState::m_state, and NS_ASSERT.
void ns3::WifiRemoteStationManager::RecordWaitAssocTxOk | ( | Mac48Address | address | ) |
Definition at line 489 of file wifi-remote-station-manager.cc.
References ns3::Mac48Address::IsGroup(), LookupState(), ns3::WifiRemoteStationState::m_state, NS_ASSERT, and ns3::WifiRemoteStationState::WAIT_ASSOC_TX_OK.
void ns3::WifiRemoteStationManager::ReportDataFailed | ( | Mac48Address | address, |
const WifiMacHeader * | header | ||
) |
Should be invoked whenever the AckTimeout associated to a transmission attempt expires.
Definition at line 620 of file wifi-remote-station-manager.cc.
References DoReportDataFailed(), ns3::Mac48Address::IsGroup(), Lookup(), m_macTxDataFailed, and NS_ASSERT.
void ns3::WifiRemoteStationManager::ReportDataOk | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
double | ackSnr, | ||
WifiMode | ackMode, | ||
double | dataSnr | ||
) |
Should be invoked whenever we receive the Ack associated to a data packet we just sent.
Definition at line 639 of file wifi-remote-station-manager.cc.
References DoReportDataOk(), ns3::Mac48Address::IsGroup(), Lookup(), and NS_ASSERT.
void ns3::WifiRemoteStationManager::ReportFinalDataFailed | ( | Mac48Address | address, |
const WifiMacHeader * | header | ||
) |
Should be invoked after calling ReportDataFailed if NeedDataRetransmission returns false
Definition at line 659 of file wifi-remote-station-manager.cc.
References DoReportFinalDataFailed(), ns3::Mac48Address::IsGroup(), Lookup(), m_macTxFinalDataFailed, and NS_ASSERT.
void ns3::WifiRemoteStationManager::ReportFinalRtsFailed | ( | Mac48Address | address, |
const WifiMacHeader * | header | ||
) |
Should be invoked after calling ReportRtsFailed if NeedRtsRetransmission returns false
Definition at line 649 of file wifi-remote-station-manager.cc.
References DoReportFinalRtsFailed(), ns3::Mac48Address::IsGroup(), Lookup(), m_macTxFinalRtsFailed, and NS_ASSERT.
void ns3::WifiRemoteStationManager::ReportRtsFailed | ( | Mac48Address | address, |
const WifiMacHeader * | header | ||
) |
Should be invoked whenever the RtsTimeout associated to a transmission attempt expires.
Definition at line 611 of file wifi-remote-station-manager.cc.
References DoReportRtsFailed(), ns3::Mac48Address::IsGroup(), Lookup(), m_macTxRtsFailed, and NS_ASSERT.
void ns3::WifiRemoteStationManager::ReportRtsOk | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
double | ctsSnr, | ||
WifiMode | ctsMode, | ||
double | rtsSnr | ||
) |
Should be invoked whenever we receive the Cts associated to an RTS we just sent.
Definition at line 629 of file wifi-remote-station-manager.cc.
References DoReportRtsOk(), ns3::Mac48Address::IsGroup(), Lookup(), and NS_ASSERT.
void ns3::WifiRemoteStationManager::ReportRxOk | ( | Mac48Address | address, |
const WifiMacHeader * | header, | ||
double | rxSnr, | ||
WifiMode | txMode | ||
) |
address | remote address |
header | MAC header |
rxSnr | the snr of the packet received |
txMode | the transmission mode used for the packet received. |
Should be invoked whenever a packet is successfully received.
Definition at line 669 of file wifi-remote-station-manager.cc.
References DoReportRxOk(), ns3::Mac48Address::IsGroup(), and Lookup().
void ns3::WifiRemoteStationManager::Reset | ( | void | ) |
Definition at line 1212 of file wifi-remote-station-manager.cc.
References ns3::WifiMode::IsMandatory(), m_bssBasicMcsSet, m_bssBasicRateSet, m_defaultTxMcs, m_defaultTxMode, m_stations, and NS_ASSERT.
Referenced by SetupPhy().
void ns3::WifiRemoteStationManager::Reset | ( | Mac48Address | address | ) |
Invoked in an AP upon disassociation of a specific STA.
Definition at line 401 of file wifi-remote-station-manager.cc.
References AddSupportedMcs(), AddSupportedMode(), GetDefaultMcs(), GetDefaultMode(), ns3::Mac48Address::IsGroup(), LookupState(), and NS_ASSERT.
void ns3::WifiRemoteStationManager::SetDefaultTxPowerLevel | ( | uint8_t | txPower | ) |
Set the default transmission power level
Definition at line 1370 of file wifi-remote-station-manager.cc.
References m_defaultTxPowerLevel.
void ns3::WifiRemoteStationManager::SetFragmentationThreshold | ( | uint32_t | threshold | ) |
Definition at line 395 of file wifi-remote-station-manager.cc.
References DoSetFragmentationThreshold().
void ns3::WifiRemoteStationManager::SetHtSupported | ( | bool | enable | ) |
Definition at line 349 of file wifi-remote-station-manager.cc.
References m_htSupported.
void ns3::WifiRemoteStationManager::SetMaxSlrc | ( | uint32_t | maxSlrc | ) |
Definition at line 385 of file wifi-remote-station-manager.cc.
References m_maxSlrc.
void ns3::WifiRemoteStationManager::SetMaxSsrc | ( | uint32_t | maxSsrc | ) |
Definition at line 380 of file wifi-remote-station-manager.cc.
References m_maxSsrc.
void ns3::WifiRemoteStationManager::SetRtsCtsThreshold | ( | uint32_t | threshold | ) |
Definition at line 390 of file wifi-remote-station-manager.cc.
References m_rtsCtsThreshold.
Reimplemented in ns3::MinstrelWifiManager, and ns3::IdealWifiManager.
Definition at line 329 of file wifi-remote-station-manager.cc.
References ns3::WifiPhy::GetMcs(), ns3::WifiPhy::GetMode(), HasHtSupported(), m_defaultTxMcs, m_defaultTxMode, m_wifiPhy, and Reset().
Referenced by ns3::IdealWifiManager::SetupPhy(), and ns3::MinstrelWifiManager::SetupPhy().
|
private |
Definition at line 524 of file wifi-remote-station-manager.h.
Referenced by AddBasicMcs(), GetBasicMcs(), GetControlAnswerMode(), GetNBasicMcs(), NeedCtsToSelf(), and Reset().
|
private |
This member is the list of WifiMode objects that comprise the BSSBasicRateSet parameter. This list is constructed through calls to WifiRemoteStationManager::AddBasicMode(), and an API that allows external access to it is available through WifiRemoteStationManager::GetNBasicModes() and WifiRemoteStationManager::GetBasicMode().
Definition at line 523 of file wifi-remote-station-manager.h.
Referenced by AddBasicMode(), GetBasicMode(), GetControlAnswerMode(), GetNBasicModes(), NeedCtsToSelf(), and Reset().
|
private |
Definition at line 513 of file wifi-remote-station-manager.h.
Referenced by GetDefaultMcs(), Reset(), and SetupPhy().
|
private |
Definition at line 512 of file wifi-remote-station-manager.h.
Referenced by GetDefaultMode(), Reset(), and SetupPhy().
|
private |
Definition at line 531 of file wifi-remote-station-manager.h.
Referenced by DoGetAckTxPowerLevel(), DoGetBlockAckTxPowerLevel(), DoGetCtsTxPowerLevel(), GetDataTxVector(), GetDefaultTxPowerLevel(), GetTypeId(), and SetDefaultTxPowerLevel().
|
private |
Definition at line 530 of file wifi-remote-station-manager.h.
Referenced by DoGetFragmentationThreshold(), and DoSetFragmentationThreshold().
|
private |
Definition at line 526 of file wifi-remote-station-manager.h.
Referenced by HasHtSupported(), and SetHtSupported().
|
private |
The trace source fired when the transmission of a single data packet has failed
Definition at line 541 of file wifi-remote-station-manager.h.
Referenced by GetTypeId(), and ReportDataFailed().
|
private |
The trace source fired when the transmission of a data packet has exceeded the maximum number of attempts
Definition at line 551 of file wifi-remote-station-manager.h.
Referenced by GetTypeId(), and ReportFinalDataFailed().
|
private |
The trace source fired when the transmission of a RTS has exceeded the maximum number of attempts
Definition at line 546 of file wifi-remote-station-manager.h.
Referenced by GetTypeId(), and ReportFinalRtsFailed().
|
private |
The trace source fired when the transmission of a single RTS has failed
Definition at line 537 of file wifi-remote-station-manager.h.
Referenced by GetTypeId(), and ReportRtsFailed().
|
private |
Definition at line 528 of file wifi-remote-station-manager.h.
Referenced by GetMaxSlrc(), GetTypeId(), and SetMaxSlrc().
|
private |
Definition at line 527 of file wifi-remote-station-manager.h.
Referenced by GetMaxSsrc(), GetTypeId(), and SetMaxSsrc().
|
private |
Definition at line 532 of file wifi-remote-station-manager.h.
Referenced by GetNonUnicastMode(), and GetTypeId().
|
private |
Definition at line 529 of file wifi-remote-station-manager.h.
Referenced by GetRtsCtsThreshold(), GetTypeId(), and SetRtsCtsThreshold().
|
private |
Definition at line 501 of file wifi-remote-station-manager.h.
Referenced by DoDispose(), and LookupState().
|
private |
Definition at line 502 of file wifi-remote-station-manager.h.
Referenced by DoDispose(), Lookup(), and Reset().
This is a pointer to the WifiPhy associated with this WifiRemoteStationManager that is set on call to WifiRemoteStationManager::SetupPhy(). Through this pointer the station manager can determine PHY characteristics, such as the set of all transmission rates that may be supported (the "DeviceRateSet").
Definition at line 511 of file wifi-remote-station-manager.h.
Referenced by DoGetAckTxGuardInterval(), DoGetAckTxStbc(), DoGetBlockAckTxGuardInterval(), DoGetBlockAckTxStbc(), DoGetCtsToSelfTxVector(), DoGetCtsTxGuardInterval(), DoGetCtsTxStbc(), GetControlAnswerMode(), GetNumberOfTransmitAntennas(), LookupState(), NeedCtsToSelf(), and SetupPhy().