User Manual, Developers Guide and API Documentation

wimemac::lowerMAC::TXOP Class Reference

FU implementing TXOP functionality. More...

#include <lowerMAC/TXOP.hpp>

Inheritance diagram for wimemac::lowerMAC::TXOP:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

void closeTXOP (bool forwardCall=true)
void onTxEnd (const wns::ldk::CompoundPtr &compound)
void onTxStart (const wns::ldk::CompoundPtr &compound)
void registerObserver (wimemac::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

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
wimemac::lowerMAC::TXOP::Friends 
friends
wns::simulator::Time lastFTDuration
wns::logger::Logger logger
const std::string managerName
 send probe values, call observers ...
const wns::simulator::Time maximumACKDuration
bool maxOutTXOP
 indicates wether NAV should be set to cover complete TXOP window or not
std::vector
< wimemac::lowerMAC::ITXOPObserver * > 
observers
wimemac::management::ProtocolCalculatorprotocolCalculator
const std::string protocolCalculatorName
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 62 of file TXOP.hpp.


Constructor & Destructor Documentation

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

virtual wimemac::lowerMAC::TXOP::~TXOP (  )  [virtual]


Member Function Documentation

void wimemac::lowerMAC::TXOP::closeTXOP ( bool  forwardCall = true  ) 

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

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

void wimemac::lowerMAC::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.

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

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

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

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

Override this method to handle outgoing compounds.

Implements wns::ldk::ProcessorInterface.

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

Definition at line 83 of file TXOP.hpp.

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


Member Data Documentation

Definition at line 113 of file TXOP.hpp.

Definition at line 116 of file TXOP.hpp.

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

Definition at line 98 of file TXOP.hpp.

Definition at line 105 of file TXOP.hpp.

Definition at line 109 of file TXOP.hpp.

Definition at line 118 of file TXOP.hpp.

Definition at line 119 of file TXOP.hpp.

Definition at line 99 of file TXOP.hpp.

Definition at line 112 of file TXOP.hpp.

Definition at line 104 of file TXOP.hpp.

Definition at line 106 of file TXOP.hpp.

Definition at line 127 of file TXOP.hpp.

Definition at line 111 of file TXOP.hpp.

Definition at line 114 of file TXOP.hpp.

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

Definition at line 100 of file TXOP.hpp.


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

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