User Manual, Developers Guide and API Documentation

wimemac::lowerMAC::timing::DCF Class Reference

Distributed Coordination Function. More...

#include <lowerMAC/timing/DCF.hpp>

Inheritance diagram for wimemac::lowerMAC::timing::DCF:

Inheritance graph
[legend]
Collaboration diagram for wimemac::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 ()
void onDRPStart ()
 functions to inform about start/stop of a DRP reservation
void onDRPStop ()
virtual void onFUNCreated ()
void registerEOBObserver (BackoffObserver *observer)
 notifying observers every time the backoff has finished, wether or not a transmission is waiting
void waitingTransmissions (int numTransmissions)
virtual ~DCF ()

Private Member Functions

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

Private Attributes

Backoff backoff
 The backoff instance.
const bool backoffDisabled
const std::string csName
const std::string drpSchedulerName
struct
wimemac::lowerMAC::timing::DCF::Friends 
friends
wns::logger::Logger logger
const std::string rxStartEndName
bool sendNow
 indicates that transmission is permitted

Classes

struct  Friends


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 58 of file DCF.hpp.


Constructor & Destructor Documentation

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

virtual wimemac::lowerMAC::timing::DCF::~DCF (  )  [virtual]


Member Function Documentation

virtual void wimemac::lowerMAC::timing::DCF::backoffExpired (  )  [private, virtual]

wns::simulator::Time wimemac::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 85 of file DCF.hpp.

bool wimemac::lowerMAC::timing::DCF::doIsAccepting ( const wns::ldk::CompoundPtr compound  )  const

void wimemac::lowerMAC::timing::DCF::doOnData ( const wns::ldk::CompoundPtr compound  ) 

void wimemac::lowerMAC::timing::DCF::doSendData ( const wns::ldk::CompoundPtr compound  ) 

void wimemac::lowerMAC::timing::DCF::doWakeup (  ) 

void wimemac::lowerMAC::timing::DCF::onDRPStart (  ) 

void wimemac::lowerMAC::timing::DCF::onDRPStop (  ) 

virtual void wimemac::lowerMAC::timing::DCF::onFUNCreated (  )  [virtual]

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

Definition at line 80 of file DCF.hpp.

void wimemac::lowerMAC::timing::DCF::waitingTransmissions ( int  numTransmissions  ) 


Member Data Documentation

Definition at line 104 of file DCF.hpp.

Definition at line 101 of file DCF.hpp.

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

Definition at line 98 of file DCF.hpp.

Definition at line 100 of file DCF.hpp.

Definition at line 114 of file DCF.hpp.

Definition at line 99 of file DCF.hpp.

Definition at line 107 of file DCF.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