![]() |
User Manual, Developers Guide and API Documentation |
![]() |
#include <lowerMAC/Manager.hpp>


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::CommandPool * | createReply (const wns::ldk::CommandPool *original, wimemac::CompoundType compoundType) const |
| Create-reply and set frametype function. | |
| wns::ldk::CommandPool * | createReply (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::PhyUser * | getPhyUser () |
| Returns the phyUser. | |
| std::string | getPreambleMode (const wns::ldk::CommandPool *commandPool) const |
| Get Preamble Mode. | |
| wimemac::management::ProtocolCalculator * | getProtocolCalculator () |
| 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::ProtocolCalculator * | protocolCalculator |
| 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 |
Definition at line 141 of file Manager.hpp.
| wimemac::lowerMAC::Manager::Manager | ( | wns::ldk::fun::FUN * | fun, | |
| const wns::pyconfig::View & | config | |||
| ) |
| virtual wimemac::lowerMAC::Manager::~Manager | ( | ) | [virtual] |
| void wimemac::lowerMAC::Manager::Acknowledgment | ( | wns::service::dll::UnicastAddress | tx | ) | [virtual] |
Implements wimemac::drp::IDRPSchedulerServices.
| bool wimemac::lowerMAC::Manager::adjustMCSdown | ( | wns::service::dll::UnicastAddress | rx | ) | [virtual] |
Implements wimemac::drp::IDRPSchedulerServices.
| void wimemac::lowerMAC::Manager::BuildDTPmap | ( | ) | [virtual] |
Implements wimemac::management::IBeaconBuilderServices.
| 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] |
Implements wimemac::lowerMAC::IManagerServices.
| wns::ldk::CommandPool* wimemac::lowerMAC::Manager::createReply | ( | const wns::ldk::CommandPool * | original, | |
| wimemac::CompoundType | compoundType | |||
| ) | const [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| wns::ldk::CommandPool* wimemac::lowerMAC::Manager::createReply | ( | const wns::ldk::CommandPool * | original | ) | const [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| 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] |
| wimemac::CompoundType wimemac::lowerMAC::Manager::getCompoundType | ( | const wns::ldk::CommandPool * | commandPool | ) | const [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| wns::service::dll::UnicastAddress wimemac::lowerMAC::Manager::getCurrentTransmissionTarget | ( | ) | [virtual] |
Implements wimemac::drp::IDRPSchedulerServices.
| wimemac::convergence::PhyMode wimemac::lowerMAC::Manager::getDefaultPhyMode | ( | ) | const |
| double wimemac::lowerMAC::Manager::getDesiredPER | ( | ) |
| bool wimemac::lowerMAC::Manager::getDRPchannelAccess | ( | ) | [inline, virtual] |
| 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] |
Implements wimemac::drp::IDRPSchedulerServices.
| double wimemac::lowerMAC::Manager::getPatternPEROffset | ( | ) |
| bool wimemac::lowerMAC::Manager::getPCAchannelAccess | ( | ) | [inline, virtual] |
| wimemac::convergence::PhyMode wimemac::lowerMAC::Manager::getPhyMode | ( | const wns::ldk::CommandPool * | commandPool | ) | const [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| wimemac::convergence::PhyUser* wimemac::lowerMAC::Manager::getPhyUser | ( | ) |
| std::string wimemac::lowerMAC::Manager::getPreambleMode | ( | const wns::ldk::CommandPool * | commandPool | ) | const [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| wimemac::management::ProtocolCalculator* wimemac::lowerMAC::Manager::getProtocolCalculator | ( | ) | [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| 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] |
| 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] |
Implements wimemac::lowerMAC::IManagerServices.
| 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] |
Implements wimemac::lowerMAC::IManagerServices.
| bool wimemac::lowerMAC::Manager::hasPayload | ( | const wns::ldk::CommandPool * | commandPool | ) | const [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| bool wimemac::lowerMAC::Manager::isBeacon | ( | const wns::ldk::CommandPool * | commandPool | ) | const [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| bool wimemac::lowerMAC::Manager::isForMe | ( | const wns::ldk::CommandPool * | commandPool | ) | const [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| bool wimemac::lowerMAC::Manager::isPreamble | ( | const wns::ldk::CommandPool * | commandPool | ) | const [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| bool wimemac::lowerMAC::Manager::lifetimeExpired | ( | const wns::ldk::CommandPool * | commandPool | ) | const |
| void wimemac::lowerMAC::Manager::onBPStart | ( | wns::simulator::Time | BPduration | ) | [virtual] |
Implements wimemac::drp::IDRPSchedulerServices.
| 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] |
Implements wimemac::management::IBeaconBuilderServices.
| void wimemac::lowerMAC::Manager::processIncoming | ( | const wns::ldk::CompoundPtr & | compound | ) | [virtual] |
Implements wns::ldk::ProcessorInterface.
| void wimemac::lowerMAC::Manager::processOutgoing | ( | const wns::ldk::CompoundPtr & | compound | ) | [virtual] |
Implements wns::ldk::ProcessorInterface.
| void wimemac::lowerMAC::Manager::SetBPDuration | ( | wns::simulator::Time | duration | ) | [virtual] |
Implements wimemac::management::IBeaconBuilderServices.
| void wimemac::lowerMAC::Manager::setBPStartTime | ( | wns::simulator::Time | bpStartTime_ | ) | [inline, virtual] |
| void wimemac::lowerMAC::Manager::setCompoundType | ( | const wns::ldk::CommandPool * | commandPool, | |
| const CompoundType | type | |||
| ) | [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| void wimemac::lowerMAC::Manager::setFrameExchangeDuration | ( | const wns::ldk::CommandPool * | commandPool, | |
| const wns::simulator::Time | duration | |||
| ) | [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| 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] |
Implements wimemac::lowerMAC::IManagerServices.
| void wimemac::lowerMAC::Manager::setpsduDuration | ( | const wns::ldk::CommandPool * | commandPool, | |
| const wns::simulator::Time | duration | |||
| ) | [virtual] |
Implements wimemac::lowerMAC::IManagerServices.
| 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] |
Implements wimemac::drp::IDRPSchedulerServices.
| void wimemac::lowerMAC::Manager::txOPCloseIn | ( | wns::simulator::Time | duration | ) | [virtual] |
Implements wimemac::drp::IDRPSchedulerServices.
| void wimemac::lowerMAC::Manager::updateDRPConnection | ( | wns::service::dll::UnicastAddress | rx, | |
| int | CompoundspSF, | |||
| int | BitspSF, | |||
| int | MaxCompoundSize | |||
| ) | [virtual] |
Implements wimemac::management::IBeaconBuilderServices.
| void wimemac::lowerMAC::Manager::UpdateDRPMap | ( | Vector | DRPMap | ) | [virtual] |
Implements wimemac::drp::IDRPSchedulerServices.
| bool wimemac::lowerMAC::Manager::UpdateMapWithPeerAvailabilityMap | ( | wns::service::dll::UnicastAddress | rx, | |
| Vector & | DRPMap | |||
| ) | [virtual] |
Implements wimemac::drp::IDRPSchedulerServices.
Definition at line 406 of file Manager.hpp.
const wns::pyconfig::View wimemac::lowerMAC::Manager::config_ [private] |
Definition at line 376 of file Manager.hpp.
const wns::simulator::Time wimemac::lowerMAC::Manager::expectedACKDuration [private] |
Definition at line 379 of file Manager.hpp.
struct wimemac::lowerMAC::Manager::Friends wimemac::lowerMAC::Manager::friends [private] |
Definition at line 377 of file Manager.hpp.
Definition at line 408 of file Manager.hpp.
const wns::simulator::Time wimemac::lowerMAC::Manager::msduLifetimeLimit [private] |
Definition at line 393 of file Manager.hpp.
Definition at line 387 of file Manager.hpp.
Definition at line 410 of file Manager.hpp.
const std::string wimemac::lowerMAC::Manager::protocolCalculatorName [private] |
Definition at line 407 of file Manager.hpp.
Definition at line 396 of file Manager.hpp.
const wns::simulator::Time wimemac::lowerMAC::Manager::sifsDuration [private] |
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.
1.5.5