Public Member Functions | Static Public Member Functions | Protected Member Functions

ns3::WifiRemoteStation Class Reference

hold per-remote-station state. More...

#include <wifi-remote-station-manager.h>

Inheritance diagram for ns3::WifiRemoteStation:
Inheritance graph
[legend]
Collaboration diagram for ns3::WifiRemoteStation:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void Reset (void)
void AddSupportedMode (WifiMode mode)
bool IsBrandNew (void) const
bool IsAssociated (void) const
bool IsWaitAssocTxOk (void) const
void RecordWaitAssocTxOk (void)
void RecordGotAssocTxOk (void)
void RecordGotAssocTxFailed (void)
void RecordDisassociated (void)
void PrepareForQueue (Ptr< const Packet > packet, uint32_t fullPacketSize)
WifiMode GetDataMode (Ptr< const Packet > packet, uint32_t fullPacketSize)
WifiMode GetRtsMode (Ptr< const Packet > packet)
void ReportRtsFailed (void)
void ReportDataFailed (void)
void ReportRtsOk (double ctsSnr, WifiMode ctsMode, double rtsSnr)
void ReportDataOk (double ackSnr, WifiMode ackMode, double dataSnr)
void ReportFinalRtsFailed (void)
void ReportFinalDataFailed (void)
void ReportRxOk (double rxSnr, WifiMode txMode)
virtual bool NeedRts (Ptr< const Packet > packet)
virtual bool NeedRtsRetransmission (Ptr< const Packet > packet)
virtual bool NeedDataRetransmission (Ptr< const Packet > packet)
virtual bool NeedFragmentation (Ptr< const Packet > packet)
virtual uint32_t GetFragmentSize (Ptr< const Packet > packet, uint32_t fragmentNumber)
virtual uint32_t GetFragmentOffset (Ptr< const Packet > packet, uint32_t fragmentNumber)
virtual bool IsLastFragment (Ptr< const Packet > packet, uint32_t fragmentNumber)
WifiMode GetCtsMode (WifiMode rtsMode)
WifiMode GetAckMode (WifiMode dataMode)
double GetAvgSlrc () const
void SetAddress (Mac48Address address)
Mac48Address GetAddress ()

Static Public Member Functions

static TypeId GetTypeId (void)

Protected Member Functions

uint32_t GetNSupportedModes (void) const
WifiMode GetSupportedMode (uint32_t i) const

Detailed Description

hold per-remote-station state.

The state in this class is used to keep track of association status if we are in an infrastructure network and to perform the selection of tx parameters on a per-packet basis.


Member Function Documentation

void ns3::WifiRemoteStation::AddSupportedMode ( 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.

WifiMode ns3::WifiRemoteStation::GetAckMode ( WifiMode  dataMode  ) 
Parameters:
dataMode the transmission mode used to send an ACK we just received
Returns:
the transmission mode to use for the ACK to complete the data/ACK handshake.
Mac48Address ns3::WifiRemoteStation::GetAddress (  ) 

get the address of the remote stationt represented by this instance of WifiRemoteStation

Returns:
the MAC address of the remote station
double ns3::WifiRemoteStation::GetAvgSlrc (  )  const
Returns:
exponentially weighted average SLRC, this is used by Airtime link metric of 802.11s
WifiMode ns3::WifiRemoteStation::GetCtsMode ( WifiMode  rtsMode  ) 
Parameters:
rtsMode the transmission mode used to send an RTS we just received
Returns:
the transmission mode to use for the CTS to complete the RTS/CTS handshake.
WifiMode ns3::WifiRemoteStation::GetDataMode ( Ptr< const Packet packet,
uint32_t  fullPacketSize 
)
Parameters:
packet the packet to send
fullPacketSize the size of the packet after its 802.11 MAC header has been added.
Returns:
the transmission mode to use to send this packet
virtual uint32_t ns3::WifiRemoteStation::GetFragmentOffset ( Ptr< const Packet packet,
uint32_t  fragmentNumber 
) [virtual]
Parameters:
packet the packet to send
fragmentNumber the fragment index of the next fragment to send (starts at zero).
Returns:
the offset within the original packet where this fragment starts.
virtual uint32_t ns3::WifiRemoteStation::GetFragmentSize ( Ptr< const Packet packet,
uint32_t  fragmentNumber 
) [virtual]
Parameters:
packet the packet to send
fragmentNumber the fragment index of the next fragment to send (starts at zero).
Returns:
the size of the corresponding fragment.
WifiMode ns3::WifiRemoteStation::GetRtsMode ( Ptr< const Packet packet  ) 
Parameters:
packet the packet to send
Returns:
the transmission mode to use to send the RTS prior to the transmission of the data packet itself.
virtual bool ns3::WifiRemoteStation::IsLastFragment ( Ptr< const Packet packet,
uint32_t  fragmentNumber 
) [virtual]
Parameters:
packet the packet to send
fragmentNumber the fragment index of the next fragment to send (starts at zero).
Returns:
true if this is the last fragment, false otherwise.
virtual bool ns3::WifiRemoteStation::NeedDataRetransmission ( Ptr< const Packet packet  )  [virtual]
Parameters:
packet the packet to send
Returns:
true if we want to resend a packet after a failed transmission attempt, false otherwise.
virtual bool ns3::WifiRemoteStation::NeedFragmentation ( Ptr< const Packet packet  )  [virtual]
Parameters:
packet the packet to send
Returns:
true if this packet should be fragmented, false otherwise.
virtual bool ns3::WifiRemoteStation::NeedRts ( Ptr< const Packet packet  )  [virtual]
Parameters:
packet the packet to send
Returns:
true if we want to use an RTS/CTS handshake for this packet before sending it, false otherwise.

Reimplemented in ns3::RraaWifiRemoteStation.

virtual bool ns3::WifiRemoteStation::NeedRtsRetransmission ( Ptr< const Packet packet  )  [virtual]
Parameters:
packet the packet to send
Returns:
true if we want to restart a failed RTS/CTS handshake, false otherwise.
void ns3::WifiRemoteStation::PrepareForQueue ( Ptr< const Packet packet,
uint32_t  fullPacketSize 
)
Parameters:
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.

void ns3::WifiRemoteStation::ReportDataFailed ( void   ) 

Should be invoked whenever the AckTimeout associated to a transmission attempt expires.

void ns3::WifiRemoteStation::ReportDataOk ( double  ackSnr,
WifiMode  ackMode,
double  dataSnr 
)

Should be invoked whenever we receive the Ack associated to a data packet we just sent.

void ns3::WifiRemoteStation::ReportFinalDataFailed ( void   ) 

Should be invoked after calling ReportDataFailed if NeedDataRetransmission returns false

void ns3::WifiRemoteStation::ReportFinalRtsFailed ( void   ) 

Should be invoked after calling ReportRtsFailed if NeedRtsRetransmission returns false

void ns3::WifiRemoteStation::ReportRtsFailed ( void   ) 

Should be invoked whenever the RtsTimeout associated to a transmission attempt expires.

void ns3::WifiRemoteStation::ReportRtsOk ( double  ctsSnr,
WifiMode  ctsMode,
double  rtsSnr 
)

Should be invoked whenever we receive the Cts associated to an RTS we just sent.

void ns3::WifiRemoteStation::ReportRxOk ( double  rxSnr,
WifiMode  txMode 
)
Parameters:
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.

void ns3::WifiRemoteStation::Reset ( void   ) 

Invoked in an AP upon disassociation of a specific STA.

void ns3::WifiRemoteStation::SetAddress ( Mac48Address  address  ) 

set the address of the remote stationt represented by this instance of WifiRemoteStation

Parameters:
address the MAC address of the remote station

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