User Manual, Developers Guide and API Documentation

wifimac::lowerMAC::TXOP Class Reference

FU implementing TXOP functionality. More...

#include <lowerMAC/TXOP.hpp>

Inheritance diagram for wifimac::lowerMAC::TXOP:

Inheritance graph
[legend]
Collaboration diagram for wifimac::lowerMAC::TXOP:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void onTxEnd (const wns::ldk::CompoundPtr &compound)
void onTxStart (const wns::ldk::CompoundPtr &compound)
void registerObserver (wifimac::lowerMAC::ITXOPObserver *observer)
 register observer which gets called when the current TXOP round is closed
void setTXOPLimit (wns::simulator::Time limit)
 TXOP (wns::ldk::fun::FUN *fun, const wns::pyconfig::View &config)
virtual ~TXOP ()

Private Member Functions

void closeTXOP ()
 send probe values, call observers ...
bool doIsAccepting (const wns::ldk::CompoundPtr &compound) const
void onFUNCreated ()
 Resolve inter-FU dependencies.
void processIncoming (const wns::ldk::CompoundPtr &compound)
 Processor Interface Implementation.
void processOutgoing (const wns::ldk::CompoundPtr &compound)
 Process compounds on downlink.

Private Attributes

struct
wifimac::lowerMAC::TXOP::Friends 
friends
wns::logger::Logger logger
const std::string managerName
const wns::simulator::Time maximumACKDuration
bool maxOutTXOP
 indicates wether NAV should be set to cover complete TXOP window or not
std::vector
< wifimac::lowerMAC::ITXOPObserver * > 
observers
wifimac::management::ProtocolCalculatorprotocolCalculator
const std::string protocolCalculatorName
const std::string raName
wns::simulator::Time remainingTXOPDuration
const wns::simulator::Time sifsDuration
 Duration of the Short InterFrame Space.
const bool singleReceiver
wns::probe::bus::ContextCollectorPtr TXOPDurationProbe
wns::simulator::Time txopLimit
wns::service::dll::UnicastAddress txopReceiver
const std::string txopWindowName

Classes

struct  Friends


Detailed Description

this FU mainly is responsible for setting the NAV of outgoing compounds correctly, according to 802.11 standard. In order to calculate the NAV for a given compound, it uses an FU implementing the ITXOPTimeWindow interface to determine the duration of a possible subsequent transmission and wether it fits into the remaining TXOP duration or not. If this is the case, the NAV of the current compound is set to cover its successor. Otherwise, the current TXOP is closed, another round is initiated. To disable TXOP the TXOP limit has to be set to 0

Definition at line 63 of file TXOP.hpp.


Constructor & Destructor Documentation

TXOP::TXOP ( wns::ldk::fun::FUN fun,
const wns::pyconfig::View config 
)

Definition at line 44 of file TXOP.cpp.

TXOP::~TXOP (  )  [virtual]

Definition at line 85 of file TXOP.cpp.


Member Function Documentation

void TXOP::closeTXOP (  )  [private]

Definition at line 271 of file TXOP.cpp.

bool TXOP::doIsAccepting ( const wns::ldk::CompoundPtr compound  )  const [private, virtual]

Reimplemented from wns::ldk::Processor< USER >.

Definition at line 244 of file TXOP.cpp.

void TXOP::onFUNCreated (  )  [private, virtual]

Often FunctionalUnits require the collaboration with other FunctionalUnits to accomplish their task. For the collaboration between FunctionalUnits we coined the term "friendship".

The onFUNCreated method is a hook being called after the complete FUN has been set up. FunctionalUnits requiring the collaboration with other FunctionalUnits should resolve these dependencies by implementing this hook accordingly.

Finding friends is usually done calling wns::ldk::fun::FUN::findFriend.

When building reconfigurable FUNs, this method may get called multiple times (e.g., after each FUN reconfiguration). Keep that in mind when allocating resources in your onFUNCreated implementation.

Reimplemented from wns::ldk::FunctionalUnit.

Definition at line 89 of file TXOP.cpp.

void wifimac::lowerMAC::TXOP::onTxEnd ( const wns::ldk::CompoundPtr compound  ) 

void wifimac::lowerMAC::TXOP::onTxStart ( const wns::ldk::CompoundPtr compound  ) 

void TXOP::processIncoming ( const wns::ldk::CompoundPtr compound  )  [private, virtual]

Implements wns::ldk::ProcessorInterface.

Definition at line 100 of file TXOP.cpp.

void TXOP::processOutgoing ( const wns::ldk::CompoundPtr  )  [private, virtual]

Override this method to handle outgoing compounds.

Implements wns::ldk::ProcessorInterface.

Definition at line 113 of file TXOP.cpp.

void wifimac::lowerMAC::TXOP::registerObserver ( wifimac::lowerMAC::ITXOPObserver observer  )  [inline]

Definition at line 84 of file TXOP.hpp.

void TXOP::setTXOPLimit ( wns::simulator::Time  limit  ) 

Definition at line 282 of file TXOP.cpp.


Member Data Documentation

Definition at line 116 of file TXOP.hpp.

const std::string wifimac::lowerMAC::TXOP::managerName [private]

Definition at line 99 of file TXOP.hpp.

Definition at line 106 of file TXOP.hpp.

Definition at line 110 of file TXOP.hpp.

Definition at line 118 of file TXOP.hpp.

Definition at line 119 of file TXOP.hpp.

Definition at line 100 of file TXOP.hpp.

const std::string wifimac::lowerMAC::TXOP::raName [private]

Definition at line 102 of file TXOP.hpp.

Definition at line 113 of file TXOP.hpp.

Definition at line 105 of file TXOP.hpp.

Definition at line 107 of file TXOP.hpp.

Definition at line 127 of file TXOP.hpp.

Definition at line 112 of file TXOP.hpp.

Definition at line 114 of file TXOP.hpp.

const std::string wifimac::lowerMAC::TXOP::txopWindowName [private]

Definition at line 101 of file TXOP.hpp.


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

Generated on Sat May 26 03:32:42 2012 for openWNS by  doxygen 1.5.5