User Manual, Developers Guide and API Documentation

wimemac::lowerMAC::Manager Class Reference

Management Entity for a single IEEE 802.11 transceiver, i.e. the lower MAC. More...

#include <lowerMAC/Manager.hpp>

Inheritance diagram for wimemac::lowerMAC::Manager:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

void Acknowledgment (wns::service::dll::UnicastAddress tx)
bool adjustMCSdown (wns::service::dll::UnicastAddress rx)
 Returns true if the PER is above the limit and the PhyMode should be set down.
void BuildDTPmap ()
wns::ldk::CompoundPtr createCompound (const wns::service::dll::UnicastAddress transmitterAddress, const wns::service::dll::UnicastAddress receiverAddress, const CompoundType compoundType, const bool hasPayload, const wns::simulator::Time frameExchangeDuration, const bool requiresDirectReply=false)
 Helper function for all FUs in this transceiver to create a new compound with given addresses, type, duration.
wns::ldk::CommandPoolcreateReply (const wns::ldk::CommandPool *original, wimemac::CompoundType compoundType) const
 Create-reply and set frametype function.
wns::ldk::CommandPoolcreateReply (const wns::ldk::CommandPool *original) const
 Create-reply function.
bool doIsAccepting (const wns::ldk::CompoundPtr &compound) const
wns::simulator::Time getBPStartTime ()
wimemac::CompoundType getCompoundType (const wns::ldk::CommandPool *commandPool) const
 Get the compound type.
wns::service::dll::UnicastAddress getCurrentTransmissionTarget ()
wimemac::convergence::PhyMode getDefaultPhyMode () const
 Get the default PhyMode.
double getDesiredPER ()
 Returns maximum allowed PER.
bool getDRPchannelAccess ()
double getErrorRateForCommandFrames (wns::Ratio sinr_, Bit maxCompoundSize_)
 Returns the per for given sinr and lowest phy mode.
wns::simulator::Time getExpirationTime (const wns::ldk::CommandPool *commandPool) const
 Returns the expiration time of the msdu.
wns::simulator::Time getFrameExchangeDuration (const wns::ldk::CommandPool *commandPool) const
 Get the frame exchange duration.
wns::Power getInterference (const wns::ldk::CommandPool *commandPool)
wns::service::dll::UnicastAddress getMACAddress () const
 Returns the MAC address of this transceiver. Do not use the similar function from the dll::UpperConvergence - this will give you the MAC address of the complete Layer2.
int getMASNumber (wns::simulator::Time time_)
wimemac::convergence::MCS getMaxPosMCS (wns::Ratio sinr_, Bit maxCompoundSize_, double per_)
 Returns the maximum possible MCS usable for the given SINR, PER and compoundsize.
int getNumOfRetransmissions (const wns::ldk::CompoundPtr &compound)
 get the number of retransmissions for the specified compound
double getPatternPEROffset ()
 Returns offset added to pattern according to PER.
bool getPCAchannelAccess ()
wimemac::convergence::PhyMode getPhyMode (const wns::ldk::CommandPool *commandPool) const
 Get the PhyMode from a compound.
wimemac::convergence::PhyUsergetPhyUser ()
 Returns the phyUser.
std::string getPreambleMode (const wns::ldk::CommandPool *commandPool) const
 Get Preamble Mode.
wimemac::management::ProtocolCalculatorgetProtocolCalculator ()
wns::simulator::Time getpsduDuration (const wns::ldk::CommandPool *commandPool) const
 Get the PSDU duration.
bool getRandomUse ()
bool getRateAdaptation ()
 Gets used methods.
wns::service::dll::UnicastAddress getReceiverAddress (const wns::ldk::CommandPool *commandPool) const
 Getter for the receiver address of the compound.
bool getRequiresDirectReply (const wns::ldk::CommandPool *commandPool) const
 Get the "requires direct reply" flag.
int getReservationBlocks ()
wns::Power getRxPower (const wns::ldk::CommandPool *commandPool)
 Provides information about the rxPower and interference for a given compound.
dll::Layer2::StationType getStationType () const
 Access the stationType.
wns::service::dll::UnicastAddress getTransmitterAddress (const wns::ldk::CommandPool *commandPool) const
 Getter for the transmitter address of the compound.
bool hasPayload (const wns::ldk::CommandPool *commandPool) const
 Check if Compound has payload.
bool isBeacon (const wns::ldk::CommandPool *commandPool) const
 Check if compound is a Beacon.
bool isForMe (const wns::ldk::CommandPool *commandPool) const
 True if a received frame is intended for me.
bool isPreamble (const wns::ldk::CommandPool *commandPool) const
 Check if compound type is PREAMBLE.
bool lifetimeExpired (const wns::ldk::CommandPool *commandPool) const
 Returns if the lifetime limit of the given msdu is expired.
 Manager (wns::ldk::fun::FUN *fun, const wns::pyconfig::View &config)
void onBPStart (wns::simulator::Time BPduration)
void prepareDRPConnection (wns::service::dll::UnicastAddress rx, int CompoundspSF, int BitspSF, int MaxCompoundSize)
 Handling of the services.
void processIncoming (const wns::ldk::CompoundPtr &compound)
 Process incoming compounds: Do Nothing at all.
void processOutgoing (const wns::ldk::CompoundPtr &compound)
 Process outgoing compounds: Activate command, set type to DATA and frame exchange duration to SIFS+ACK.
void SetBPDuration (wns::simulator::Time duration)
void setBPStartTime (wns::simulator::Time bpStartTime_)
void setCompoundType (const wns::ldk::CommandPool *commandPool, const CompoundType type)
 Set the compound type.
void setFrameExchangeDuration (const wns::ldk::CommandPool *commandPool, const wns::simulator::Time duration)
 Set the frame exchange duration.
void setHasPayload (const wns::ldk::CommandPool *commandPool, bool setPayloadTo)
 Sets hasPayload bit.
void setPhyMode (const wns::ldk::CommandPool *commandPool, const wimemac::convergence::PhyMode phyMode)
 Set the PhyMode using wimemac::convergence::PhyMode.
void setpsduDuration (const wns::ldk::CommandPool *commandPool, const wns::simulator::Time duration)
void setRequiresDirectReply (const wns::ldk::CommandPool *commandPool, bool requiresDirectReply)
 Set the "requires direct reply" flag.
bool startPCAtransmission ()
 Handling of the services.
void stopPCAtransmission ()
void txOPCloseIn (wns::simulator::Time duration)
void updateDRPConnection (wns::service::dll::UnicastAddress rx, int CompoundspSF, int BitspSF, int MaxCompoundSize)
void UpdateDRPMap (Vector DRPMap)
 Updates the map of DRP reservations.
bool UpdateMapWithPeerAvailabilityMap (wns::service::dll::UnicastAddress rx, Vector &DRPMap)
 Updates a DRPMap with the non available slots for a specified address.
virtual ~Manager ()

Private Member Functions

virtual void onFUNCreated ()
 Resolve inter-FU dependencies.

Private Attributes

wns::simulator::Time BPStartTime
const wns::pyconfig::View config_
const wns::simulator::Time expectedACKDuration
 Expected duration of an ACK frame.
struct
wimemac::lowerMAC::Manager::Friends 
friends
wns::logger::Logger logger_
wns::probe::bus::ContextCollectorPtr mcsProbe
const wns::simulator::Time msduLifetimeLimit
 Lifetime limit of MSDUs.
const
wns::service::dll::UnicastAddress 
myMACAddress_
 my MAC address, as given by the upper convergence
wimemac::management::ProtocolCalculatorprotocolCalculator
const std::string protocolCalculatorName
int reservationBlocks
 number of reservation blocks
const wns::simulator::Time sifsDuration
 storing the different channel configurations, in case of multi channel devices
const std::string ucName_
 Name of the upper convergence.
bool useDRPchannelAccess
 Channel access to be used.
bool usePCAchannelAccess
bool useRandomPattern
 Implementation method dependent parameters.
bool useRateAdaptation

Classes

struct  Friends


Detailed Description

Here, all management information related to a single IEEE 802.11 transceiver is stored and accessible for

Definition at line 141 of file Manager.hpp.


Constructor & Destructor Documentation

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

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


Member Function Documentation

void wimemac::lowerMAC::Manager::Acknowledgment ( wns::service::dll::UnicastAddress  tx  )  [virtual]

bool wimemac::lowerMAC::Manager::adjustMCSdown ( wns::service::dll::UnicastAddress  rx  )  [virtual]

void wimemac::lowerMAC::Manager::BuildDTPmap (  )  [virtual]

wns::ldk::CompoundPtr wimemac::lowerMAC::Manager::createCompound ( const wns::service::dll::UnicastAddress  transmitterAddress,
const wns::service::dll::UnicastAddress  receiverAddress,
const CompoundType  compoundType,
const bool  hasPayload,
const wns::simulator::Time  frameExchangeDuration,
const bool  requiresDirectReply = false 
) [virtual]

wns::ldk::CommandPool* wimemac::lowerMAC::Manager::createReply ( const wns::ldk::CommandPool original,
wimemac::CompoundType  compoundType 
) const [virtual]

wns::ldk::CommandPool* wimemac::lowerMAC::Manager::createReply ( const wns::ldk::CommandPool original  )  const [virtual]

bool wimemac::lowerMAC::Manager::doIsAccepting ( const wns::ldk::CompoundPtr compound  )  const [virtual]

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

wns::simulator::Time wimemac::lowerMAC::Manager::getBPStartTime (  )  [inline, virtual]

Implements wimemac::lowerMAC::IManagerServices.

Definition at line 332 of file Manager.hpp.

wimemac::CompoundType wimemac::lowerMAC::Manager::getCompoundType ( const wns::ldk::CommandPool commandPool  )  const [virtual]

wns::service::dll::UnicastAddress wimemac::lowerMAC::Manager::getCurrentTransmissionTarget (  )  [virtual]

wimemac::convergence::PhyMode wimemac::lowerMAC::Manager::getDefaultPhyMode (  )  const

double wimemac::lowerMAC::Manager::getDesiredPER (  ) 

bool wimemac::lowerMAC::Manager::getDRPchannelAccess (  )  [inline, virtual]

Implements wimemac::lowerMAC::IManagerServices.

Definition at line 183 of file Manager.hpp.

double wimemac::lowerMAC::Manager::getErrorRateForCommandFrames ( wns::Ratio  sinr_,
Bit  maxCompoundSize_ 
)

wns::simulator::Time wimemac::lowerMAC::Manager::getExpirationTime ( const wns::ldk::CommandPool commandPool  )  const

wns::simulator::Time wimemac::lowerMAC::Manager::getFrameExchangeDuration ( const wns::ldk::CommandPool commandPool  )  const [virtual]

The frame exchange duration denotes the expected duration of the complete frame exchange, starting from the successful reception of the compound where this duration is stored. E.g. an RTS contains the sum of SIFS, CTS, SIFS, DATA, ACK. Nodes overhearing this duration will set their NAV accordingly.

Implements wimemac::lowerMAC::IManagerServices.

wns::Power wimemac::lowerMAC::Manager::getInterference ( const wns::ldk::CommandPool commandPool  ) 

wns::service::dll::UnicastAddress wimemac::lowerMAC::Manager::getMACAddress (  )  const

int wimemac::lowerMAC::Manager::getMASNumber ( wns::simulator::Time  time_  ) 

wimemac::convergence::MCS wimemac::lowerMAC::Manager::getMaxPosMCS ( wns::Ratio  sinr_,
Bit  maxCompoundSize_,
double  per_ 
)

int wimemac::lowerMAC::Manager::getNumOfRetransmissions ( const wns::ldk::CompoundPtr compound  )  [virtual]

double wimemac::lowerMAC::Manager::getPatternPEROffset (  ) 

bool wimemac::lowerMAC::Manager::getPCAchannelAccess (  )  [inline, virtual]

Implements wimemac::lowerMAC::IManagerServices.

Definition at line 184 of file Manager.hpp.

wimemac::convergence::PhyMode wimemac::lowerMAC::Manager::getPhyMode ( const wns::ldk::CommandPool commandPool  )  const [virtual]

wimemac::convergence::PhyUser* wimemac::lowerMAC::Manager::getPhyUser (  ) 

std::string wimemac::lowerMAC::Manager::getPreambleMode ( const wns::ldk::CommandPool commandPool  )  const [virtual]

wimemac::management::ProtocolCalculator* wimemac::lowerMAC::Manager::getProtocolCalculator (  )  [virtual]

wns::simulator::Time wimemac::lowerMAC::Manager::getpsduDuration ( const wns::ldk::CommandPool commandPool  )  const [virtual]

The PSDU Duration is used in the preamble to store the duration of the following PSDU for synchronization purposes

Implements wimemac::lowerMAC::IManagerServices.

bool wimemac::lowerMAC::Manager::getRandomUse (  )  [inline, virtual]

Implements wimemac::lowerMAC::IManagerServices.

Definition at line 181 of file Manager.hpp.

bool wimemac::lowerMAC::Manager::getRateAdaptation (  )  [inline]

Definition at line 179 of file Manager.hpp.

wns::service::dll::UnicastAddress wimemac::lowerMAC::Manager::getReceiverAddress ( const wns::ldk::CommandPool commandPool  )  const [virtual]

bool wimemac::lowerMAC::Manager::getRequiresDirectReply ( const wns::ldk::CommandPool commandPool  )  const

If a compound requires a direct (i.e. after a short, constant duration) reply, this bit is set. The receiving node must stop all other transmission attempts and generate the accorind reply.

An examples is the RTS (requires a CTS after SIFS)

int wimemac::lowerMAC::Manager::getReservationBlocks (  )  [inline]

Definition at line 180 of file Manager.hpp.

wns::Power wimemac::lowerMAC::Manager::getRxPower ( const wns::ldk::CommandPool commandPool  ) 

dll::Layer2::StationType wimemac::lowerMAC::Manager::getStationType (  )  const

wns::service::dll::UnicastAddress wimemac::lowerMAC::Manager::getTransmitterAddress ( const wns::ldk::CommandPool commandPool  )  const [virtual]

bool wimemac::lowerMAC::Manager::hasPayload ( const wns::ldk::CommandPool commandPool  )  const [virtual]

bool wimemac::lowerMAC::Manager::isBeacon ( const wns::ldk::CommandPool commandPool  )  const [virtual]

bool wimemac::lowerMAC::Manager::isForMe ( const wns::ldk::CommandPool commandPool  )  const [virtual]

bool wimemac::lowerMAC::Manager::isPreamble ( const wns::ldk::CommandPool commandPool  )  const [virtual]

bool wimemac::lowerMAC::Manager::lifetimeExpired ( const wns::ldk::CommandPool commandPool  )  const

void wimemac::lowerMAC::Manager::onBPStart ( wns::simulator::Time  BPduration  )  [virtual]

virtual void wimemac::lowerMAC::Manager::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::Manager::prepareDRPConnection ( wns::service::dll::UnicastAddress  rx,
int  CompoundspSF,
int  BitspSF,
int  MaxCompoundSize 
) [virtual]

void wimemac::lowerMAC::Manager::processIncoming ( const wns::ldk::CompoundPtr compound  )  [virtual]

void wimemac::lowerMAC::Manager::processOutgoing ( const wns::ldk::CompoundPtr compound  )  [virtual]

void wimemac::lowerMAC::Manager::SetBPDuration ( wns::simulator::Time  duration  )  [virtual]

void wimemac::lowerMAC::Manager::setBPStartTime ( wns::simulator::Time  bpStartTime_  )  [inline, virtual]

Implements wimemac::lowerMAC::IManagerServices.

Definition at line 329 of file Manager.hpp.

void wimemac::lowerMAC::Manager::setCompoundType ( const wns::ldk::CommandPool commandPool,
const CompoundType  type 
) [virtual]

void wimemac::lowerMAC::Manager::setFrameExchangeDuration ( const wns::ldk::CommandPool commandPool,
const wns::simulator::Time  duration 
) [virtual]

void wimemac::lowerMAC::Manager::setHasPayload ( const wns::ldk::CommandPool commandPool,
bool  setPayloadTo 
)

void wimemac::lowerMAC::Manager::setPhyMode ( const wns::ldk::CommandPool commandPool,
const wimemac::convergence::PhyMode  phyMode 
) [virtual]

void wimemac::lowerMAC::Manager::setpsduDuration ( const wns::ldk::CommandPool commandPool,
const wns::simulator::Time  duration 
) [virtual]

void wimemac::lowerMAC::Manager::setRequiresDirectReply ( const wns::ldk::CommandPool commandPool,
bool  requiresDirectReply 
)

bool wimemac::lowerMAC::Manager::startPCAtransmission (  )  [virtual]

invokes a PCA transmission

Implements wimemac::drp::IDRPSchedulerServices.

void wimemac::lowerMAC::Manager::stopPCAtransmission (  )  [virtual]

void wimemac::lowerMAC::Manager::txOPCloseIn ( wns::simulator::Time  duration  )  [virtual]

void wimemac::lowerMAC::Manager::updateDRPConnection ( wns::service::dll::UnicastAddress  rx,
int  CompoundspSF,
int  BitspSF,
int  MaxCompoundSize 
) [virtual]

void wimemac::lowerMAC::Manager::UpdateDRPMap ( Vector  DRPMap  )  [virtual]

bool wimemac::lowerMAC::Manager::UpdateMapWithPeerAvailabilityMap ( wns::service::dll::UnicastAddress  rx,
Vector DRPMap 
) [virtual]


Member Data Documentation

Definition at line 406 of file Manager.hpp.

Definition at line 376 of file Manager.hpp.

Definition at line 379 of file Manager.hpp.

Definition at line 377 of file Manager.hpp.

Definition at line 408 of file Manager.hpp.

Definition at line 393 of file Manager.hpp.

Definition at line 387 of file Manager.hpp.

Definition at line 410 of file Manager.hpp.

Definition at line 407 of file Manager.hpp.

Definition at line 396 of file Manager.hpp.

Short Interframce Space duration

Definition at line 384 of file Manager.hpp.

const std::string wimemac::lowerMAC::Manager::ucName_ [private]

Definition at line 390 of file Manager.hpp.

Definition at line 403 of file Manager.hpp.

Definition at line 404 of file Manager.hpp.

Definition at line 399 of file Manager.hpp.

Definition at line 400 of file Manager.hpp.


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

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