ns3::WifiRemoteStation Class Reference

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

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

Inherited by ns3::AarfcdWifiRemoteStation, ns3::AmrrWifiRemoteStation, ns3::ArfWifiRemoteStation, ns3::CaraWifiRemoteStation, ns3::ConstantRateWifiRemoteStation, ns3::IdealWifiRemoteStation, ns3::OnoeWifiRemoteStation, and ns3::RraaWifiRemoteStation.

Collaboration diagram for ns3::WifiRemoteStation:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void Reset (void)
void AddSupportedMode (WifiMode mode)
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)


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.

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.

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.


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

Generated on Fri Apr 9 15:01:10 2010 for NS-3 by  doxygen 1.5.8