User Manual, Developers Guide and API Documentation

wifimac::lowerMAC::StopAndWaitARQ Class Reference

Specialization fo the wns::ldk::arq::StopAndWait for the IEEE 802.11 DCF.

#include <lowerMAC/StopAndWaitARQ.hpp>

Inheritance diagram for wifimac::lowerMAC::StopAndWaitARQ:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

void copyTransmissionCounter (const wns::ldk::CompoundPtr &src, const wns::ldk::CompoundPtr &dst)
unsigned int getTransmissionCounter (const wns::ldk::CompoundPtr &compound) const
void onChannelBusy ()
void onChannelIdle ()
void onRxEnd ()
void onRxError ()
void onRxStart (wns::simulator::Time expRxTime)
void onTransmissionHasFailed (const wns::ldk::CompoundPtr &compound)
void onTxEnd (const wns::ldk::CompoundPtr &compound)
 Called when the transmission ends.
void onTxStart (const wns::ldk::CompoundPtr &compound)
 Called when the transmission starts.
 StopAndWaitARQ (wns::ldk::fun::FUN *fuNet, const wns::pyconfig::View &config)

Private Types

enum  AckState {
  none, waitForACK, receiving, receptionFinished,
  sendingACK
}

Private Member Functions

wns::ldk::CompoundPtr getData ()
 Return a user data Compound for transmission.
bool hasCapacity () const
 Return true, if the FunctionalUnit is still accepting compounds.
void onFUNCreated ()
 Resolve inter-FU dependencies.
void onTimeout ()
 Your callback. Implement this.
void processIncoming (const wns::ldk::CompoundPtr &compound)
 Process compounds on uplink.
void processOutgoing (const wns::ldk::CompoundPtr &compound)
 Process compounds on downlink.
void transmissionHasFailed (const wns::ldk::CompoundPtr &compound)

Private Attributes

const wifimac::convergence::PhyMode ackPhyMode
enum
wifimac::lowerMAC::StopAndWaitARQ::AckState 
ackState
const wns::simulator::Time ackTimeout
const bool bianchiRetryCounter
struct
wifimac::lowerMAC::StopAndWaitARQ::Friends 
friends
int longRetryCounter
const int longRetryLimit
const std::string managerName
const wns::simulator::Time maximumACKDuration
wns::probe::bus::ContextCollectorPtr numTxAttemptsProbe
wifimac::management::PERInformationBaseperMIB
const std::string perMIBServiceName
const Bit rtsctsThreshold
const std::string rxsName
int shortRetryCounter
const int shortRetryLimit
const wns::simulator::Time sifsDuration
int stationLongRetryCounter
int stationShortRetryCounter
const std::string txStartEndName

Classes

struct  Friends


Detailed Description

Definition at line 52 of file StopAndWaitARQ.hpp.


Member Enumeration Documentation

Enumerator:
none 
waitForACK 
receiving 
receptionFinished 
sendingACK 

Definition at line 128 of file StopAndWaitARQ.hpp.


Constructor & Destructor Documentation

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

Definition at line 49 of file StopAndWaitARQ.cpp.


Member Function Documentation

void StopAndWaitARQ::copyTransmissionCounter ( const wns::ldk::CompoundPtr src,
const wns::ldk::CompoundPtr dst 
) [virtual]

Implements wifimac::lowerMAC::ITransmissionCounter.

Definition at line 474 of file StopAndWaitARQ.cpp.

wns::ldk::CompoundPtr StopAndWaitARQ::getData (  )  [private, virtual]

getData will only get called after a call to hasData. Every implementation of this interface /must/ return the same Compound for subsequent hasData/getData calls.

Reimplemented from wns::ldk::arq::StopAndWait.

Definition at line 101 of file StopAndWaitARQ.cpp.

unsigned int StopAndWaitARQ::getTransmissionCounter ( const wns::ldk::CompoundPtr compound  )  const [virtual]

Implements wifimac::lowerMAC::ITransmissionCounter.

Definition at line 461 of file StopAndWaitARQ.cpp.

bool StopAndWaitARQ::hasCapacity (  )  const [private, virtual]

While hasCapacity returns false, processIncoming will never be called.

Reimplemented from wns::ldk::arq::StopAndWait.

Definition at line 293 of file StopAndWaitARQ.cpp.

void wifimac::lowerMAC::StopAndWaitARQ::onChannelBusy (  ) 

void wifimac::lowerMAC::StopAndWaitARQ::onChannelIdle (  ) 

void StopAndWaitARQ::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 83 of file StopAndWaitARQ.cpp.

void StopAndWaitARQ::onRxEnd (  )  [virtual]

Implements wifimac::convergence::IRxStartEnd.

Definition at line 121 of file StopAndWaitARQ.cpp.

void StopAndWaitARQ::onRxError (  )  [virtual]

Implements wifimac::convergence::IRxStartEnd.

Definition at line 136 of file StopAndWaitARQ.cpp.

void StopAndWaitARQ::onRxStart ( wns::simulator::Time  expRxTime  )  [virtual]

Implements wifimac::convergence::IRxStartEnd.

Definition at line 109 of file StopAndWaitARQ.cpp.

void StopAndWaitARQ::onTimeout (  )  [private, virtual]

The deriver is forced to implement this method. It gets called, whenever the timer fires.

Reimplemented from wns::ldk::arq::StopAndWait.

Definition at line 317 of file StopAndWaitARQ.cpp.

void StopAndWaitARQ::onTransmissionHasFailed ( const wns::ldk::CompoundPtr compound  )  [virtual]

Implements wifimac::lowerMAC::ITransmissionCounter.

Definition at line 299 of file StopAndWaitARQ.cpp.

void StopAndWaitARQ::onTxEnd ( const wns::ldk::CompoundPtr compound  )  [virtual]

Implements wifimac::convergence::ITxStartEnd.

Definition at line 180 of file StopAndWaitARQ.cpp.

void StopAndWaitARQ::onTxStart ( const wns::ldk::CompoundPtr compound  )  [virtual]

Implements wifimac::convergence::ITxStartEnd.

Definition at line 154 of file StopAndWaitARQ.cpp.

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

Override this method to handle incoming compounds.

Reimplemented from wns::ldk::arq::StopAndWait.

Definition at line 223 of file StopAndWaitARQ.cpp.

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

Override this method to handle outgoing compounds.

Reimplemented from wns::ldk::arq::StopAndWait.

Definition at line 201 of file StopAndWaitARQ.cpp.

void StopAndWaitARQ::transmissionHasFailed ( const wns::ldk::CompoundPtr compound  )  [private]

Definition at line 359 of file StopAndWaitARQ.cpp.


Member Data Documentation

Definition at line 124 of file StopAndWaitARQ.hpp.

Definition at line 122 of file StopAndWaitARQ.hpp.

Definition at line 126 of file StopAndWaitARQ.hpp.

Definition at line 118 of file StopAndWaitARQ.hpp.

Definition at line 112 of file StopAndWaitARQ.hpp.

Definition at line 108 of file StopAndWaitARQ.hpp.

Definition at line 121 of file StopAndWaitARQ.hpp.

Definition at line 143 of file StopAndWaitARQ.hpp.

Definition at line 141 of file StopAndWaitARQ.hpp.

Definition at line 109 of file StopAndWaitARQ.hpp.

Definition at line 113 of file StopAndWaitARQ.hpp.

const std::string wifimac::lowerMAC::StopAndWaitARQ::rxsName [private]

Definition at line 106 of file StopAndWaitARQ.hpp.

Definition at line 117 of file StopAndWaitARQ.hpp.

Definition at line 111 of file StopAndWaitARQ.hpp.

Definition at line 120 of file StopAndWaitARQ.hpp.

Definition at line 116 of file StopAndWaitARQ.hpp.

Definition at line 115 of file StopAndWaitARQ.hpp.

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