User Manual, Developers Guide and API Documentation

wifimac::lowerMAC::timing::DCF Class Reference

Distributed Coordination Function. More...

#include <lowerMAC/timing/DCF.hpp>

Inheritance diagram for wifimac::lowerMAC::timing::DCF:

Inheritance graph
[legend]
Collaboration diagram for wifimac::lowerMAC::timing::DCF:

Collaboration graph
[legend]

List of all members.

Public Member Functions

wns::simulator::Time backoffFinishedAt ()
 DCF (wns::ldk::fun::FUN *fun, const wns::pyconfig::View &config)
bool doIsAccepting (const wns::ldk::CompoundPtr &compound) const
void doOnData (const wns::ldk::CompoundPtr &compound)
void doSendData (const wns::ldk::CompoundPtr &compound)
 compound Handler Interface
void doWakeup ()
virtual void onFUNCreated ()
void registerEOBObserver (BackoffObserver *observer)
 notifying observers every time the backoff has finished, wether or not a transmission is waiting
virtual ~DCF ()

Private Member Functions

virtual void backoffExpired ()
 BackoffObserver interface for the transmission of data frames.

Private Attributes

const std::string arqCommandName
Backoff backoff
 The backoff instance.
const bool backoffDisabled
const std::string csName
wns::logger::Logger logger
const std::string rxStartEndName
bool sendNow
 indicates that transmission is permitted


Detailed Description

Implements the known CSMA/CA using exponential backoff. FU does _not_ store any compounds, but uses the doIsAccepting to trigger the backoff: 1. Upper FU calls doIsAccepting -> backoff instance is asked for permission 2a. (Post-)backoff has run down: Return true, packet is send 2b. Backoff has not finished: Return false 3b. Backoff calls DCF back when finished 4b. DCF wakes upper FU up, re-start at 1

Definition at line 53 of file DCF.hpp.


Constructor & Destructor Documentation

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

Definition at line 46 of file DCF.cpp.

DCF::~DCF (  )  [virtual]

Definition at line 60 of file DCF.cpp.


Member Function Documentation

void DCF::backoffExpired (  )  [private, virtual]

Implements wifimac::lowerMAC::timing::BackoffObserver.

Definition at line 134 of file DCF.cpp.

wns::simulator::Time wifimac::lowerMAC::timing::DCF::backoffFinishedAt (  )  [inline]

time the backoff will be finished at (when called during AIFS the maximum waiting time will be used) wns::simulator::Time() if backoff hasn't started, current time when finished and idle

Definition at line 80 of file DCF.hpp.

bool DCF::doIsAccepting ( const wns::ldk::CompoundPtr compound  )  const

Definition at line 100 of file DCF.cpp.

void DCF::doOnData ( const wns::ldk::CompoundPtr compound  ) 

Definition at line 93 of file DCF.cpp.

void DCF::doSendData ( const wns::ldk::CompoundPtr compound  ) 

Definition at line 79 of file DCF.cpp.

void DCF::doWakeup (  ) 

Definition at line 128 of file DCF.cpp.

void DCF::onFUNCreated (  )  [virtual]

Definition at line 64 of file DCF.cpp.

void wifimac::lowerMAC::timing::DCF::registerEOBObserver ( BackoffObserver observer  )  [inline]

Definition at line 75 of file DCF.hpp.


Member Data Documentation

Definition at line 89 of file DCF.hpp.

Definition at line 93 of file DCF.hpp.

Definition at line 90 of file DCF.hpp.

const std::string wifimac::lowerMAC::timing::DCF::csName [private]

Definition at line 87 of file DCF.hpp.

Definition at line 98 of file DCF.hpp.

Definition at line 88 of file DCF.hpp.

Definition at line 96 of file DCF.hpp.


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

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