User Manual, Developers Guide and API Documentation

wimac::scheduler::RegistryProxyWiMAC Class Reference

The registry proxy for the WiMAC.

#include <scheduler/RegistryProxyWiMAC.hpp>

Inheritance diagram for wimac::scheduler::RegistryProxyWiMAC:

Inheritance graph
[legend]
Collaboration diagram for wimac::scheduler::RegistryProxyWiMAC:

Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual wns::scheduler::PowerMap calcULResources (const wns::scheduler::UserSet &, unsigned long int) const
 returns information for all active uplink users about their requested share of the overall resources, the maximum number of subbands that may be allocated to them and the ul txpower they may use.
virtual void deregisterCID (wns::scheduler::ConnectionID cid, const wns::scheduler::UserID userID)
 deregisterCID (important e.g. for Handover)
virtual void deregisterUser (const wns::scheduler::UserID userID)
 deregisterUser (important e.g. for Handover)
wns::Power estimateInterferenceStdDeviation (const wns::scheduler::UserID user)
wns::scheduler::ChannelQualityOnOneSubChannel estimateRxSINROf (const wns::scheduler::UserID user, int slot)
wns::scheduler::ChannelQualityOnOneSubChannel estimateTxSINRAt (const wns::scheduler::UserID user, int slot)
 Returns (an estimate of) the current interference level at the specified user's location. Included in this figure is everything besides the carrier signal, i.e. inter+intra cell interference and noise. This information will usually be signalled back by the mobile terminals and is needed for the correct SINR estimation when sending to a mobile terminal. By specifying the own user ID as returned by getMyUserID(), the current interference level at the own station should be returned which is also needed for SINR estimation in the receive case. This method assumes a flat channel. For frequency-selective channels better use CQI.
virtual
wns::scheduler::ConnectionSet 
filterReachable (wns::scheduler::ConnectionSet connections, const int frameNr, bool useHARQ)
 filters the given set of connections and return only those that can be reached in the given frame
virtual wns::scheduler::UserSet filterReachable (wns::scheduler::UserSet users, const int frameNr)
 filters the given set of users and return only those that can be reached in the given frame
virtual wns::scheduler::UserSet filterReachable (wns::scheduler::UserSet users)
 filters the given set of users and return only those that can be reached within the next scheduling round. Soon obsolete. Use filterReachable(UserSet users, const int frameNr) for future code.
virtual wns::scheduler::UserSet getActiveULUsers () const
wns::SmartPtr< const
wns::service::phy::phymode::PhyModeInterface
getBestPhyMode (const wns::Ratio &)
 For Link Adaptation, returns the best a PHYmode for a given SINR.
virtual
wns::scheduler::ChannelQualitiesOnAllSubBandsPtr 
getChannelQualities4UserOnDownlink (wns::scheduler::UserID user, int frameNr)
virtual
wns::scheduler::ChannelQualitiesOnAllSubBandsPtr 
getChannelQualities4UserOnUplink (wns::scheduler::UserID user, int frameNr)
 get the ChannelsQualities (CQI) on all the subbands of the user. Eventually for a future frameNr (prediction).
wns::scheduler::ConnectionID getCIDforPDU (const wns::ldk::CompoundPtr &compound)
 Retrieves a scheduler internal CID from the compound. This is usually done by asking a friend FU, e.g., the classifier.
virtual
wns::scheduler::ConnectionList
getCIDListForPriority (int priority)
 get all CIds for the Priority Class (for QoS Scheduling)
virtual
wns::scheduler::ConnectionSet 
getConnectionsForPriority (int priority)
 retrieve a set of Connections for the same priority
wns::scheduler::ConnectionVector getConnectionsForUser (const wns::scheduler::UserID user)
 Retrieve a list of (internal) Connection IDs that the specified user is associated with. The convention is that the strategy serves the different connections sequentially in the order they are contained in the vector. Thus, connection IDs should be ordered by descending priority, e.g. control/management connections should come first. Again, these IDs might differ externally in the system.
virtual bool getCQIAvailable () const
 tells if CQI system is available. Doesn't mean that at this moment there is a valid CQI information.
bool getDL () const
 true for downlink master scheduler
float getMaxDelayForCID (wns::scheduler::ConnectionID cid)
wns::Ratio getMinSIRForCID (wns::scheduler::ConnectionID cid)
float getMinTPForCID (wns::scheduler::ConnectionID cid)
wns::scheduler::UserID getMyUserID ()
 Returns the station's own UserID.
std::string getNameForUser (const wns::scheduler::UserID user)
 Useful for debugging/logging purposes to attach meaningful names to a user internally only known by its UserID (wns::node::Node*).
virtual int getNumberOfPriorities ()
 gets the number of priorities (for QoS Scheduling)
int getNumberOfQoSClasses ()
 gets the number of QoS classes (for QoS Scheduling)
simTimeType getOverhead (int numBursts)
virtual
wns::service::dll::UnicastAddress 
getPeerAddressForCID (wns::scheduler::ConnectionID cid)
 determines Address of next hop
wns::service::phy::phymode::PhyModeMapperInterfacegetPhyModeMapper () const
 Returns the PhyModeMapper object which can be asked about PhyMode-to-SINR-Range properties (table).
virtual
wns::scheduler::PowerCapabilities 
getPowerCapabilities () const
 retrieve info about a user's power capabilities
virtual
wns::scheduler::PowerCapabilities 
getPowerCapabilities (const wns::scheduler::UserID user) const
 retrieve info about a user's power capabilities
int getPriorityForConnection (wns::scheduler::ConnectionID)
 tells priority of a connection
wns::scheduler::Bits getQueueSizeLimitPerConnection ()
 ???
int getStationType (const wns::scheduler::UserID user)
 Returns the type of the user, e.g. base station, relay station, subscriber station.
virtual int getTotalNumberOfUsers (const wns::scheduler::UserID user)
 returns one for UTs, and connected UTs in case of RNs
wns::scheduler::UserID getUserForCID (wns::scheduler::ConnectionID cid)
 Retrieve the peer user at the other end of the connection that is specified by the connection id. Both CID and UserID are scheduler internal types and might differ from those used in the host system. In that case, they have to be mapped accordingly.
virtual void registerCID (wns::scheduler::ConnectionID cid, wns::scheduler::UserID userID)
 registerCID
 RegistryProxyWiMAC (wns::ldk::fun::FUN *, const wns::pyconfig::View &)
void setFriends (const wns::ldk::CommandTypeSpecifierInterface *_classifier)
 Function that is used by the scheduler FU that instantiates the different scheduling objects such as the registry. The FU can do a findFriend to retrieve a pointer to the classifier. This is given to the registry with this function.
void setFUN (const wns::ldk::fun::FUN *_fun)
 By calling this function, the scheduler FU gives the registry a pointer to the FUN it belongs to. The registry needs this, e.g., to get the layer and references to entities such as station/conn managers.
void switchFilterTo (int qos)
 ~RegistryProxyWiMAC ()

Protected Attributes

service::ConnectionManagerconnManager
int currentQoSFilter
struct {
   wns::ldk::CommandTypeSpecifierInterface *   classifier
friends
wns::ldk::fun::FUNfun
wimac::Componentlayer2
wns::service::phy::phymode::PhyModeMapperInterfacephyModeMapper
const int queueSize
std::map
< wns::scheduler::UserID,
ConnectionIdentifier::StationID
userId2StationId

Private Member Functions

wns::scheduler::UserSet filterListening (wns::scheduler::UserSet users)
wns::scheduler::UserSet filterQoSbased (wns::scheduler::UserSet users)

Private Attributes

wns::scheduler::ConnectionList cidList
bool isDL_
wimac::frame::MapHandlerInterfacemapHandler
int numberOfPriorities
wns::scheduler::PowerCapabilities powerAP
wns::scheduler::PowerCapabilities powerFRS
wns::scheduler::PowerCapabilities powerUT


Detailed Description

Definition at line 50 of file RegistryProxyWiMAC.hpp.


Constructor & Destructor Documentation

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

Definition at line 52 of file RegistryProxyWiMAC.cpp.

wimac::scheduler::RegistryProxyWiMAC::~RegistryProxyWiMAC (  )  [inline]

Definition at line 55 of file RegistryProxyWiMAC.hpp.


Member Function Documentation

wns::scheduler::PowerMap RegistryProxyWiMAC::calcULResources ( const wns::scheduler::UserSet ,
unsigned long  int 
) const [virtual]

Todo:
dbn: DEPRECATED: calcULResources is only used in old PCRR scheduling strategy. To be removed

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 459 of file RegistryProxyWiMAC.cpp.

virtual void wimac::scheduler::RegistryProxyWiMAC::deregisterCID ( wns::scheduler::ConnectionID  cid,
const wns::scheduler::UserID  userID 
) [inline, virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 101 of file RegistryProxyWiMAC.hpp.

virtual void wimac::scheduler::RegistryProxyWiMAC::deregisterUser ( const wns::scheduler::UserID  userID  )  [inline, virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 105 of file RegistryProxyWiMAC.hpp.

wns::Power RegistryProxyWiMAC::estimateInterferenceStdDeviation ( const wns::scheduler::UserID  user  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 312 of file RegistryProxyWiMAC.cpp.

wns::scheduler::ChannelQualityOnOneSubChannel RegistryProxyWiMAC::estimateRxSINROf ( const wns::scheduler::UserID  user,
int  slot 
) [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 296 of file RegistryProxyWiMAC.cpp.

wns::scheduler::ChannelQualityOnOneSubChannel RegistryProxyWiMAC::estimateTxSINRAt ( const wns::scheduler::UserID  user,
int  slot 
) [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 274 of file RegistryProxyWiMAC.cpp.

wns::scheduler::UserSet RegistryProxyWiMAC::filterListening ( wns::scheduler::UserSet  users  )  [private]

Definition at line 362 of file RegistryProxyWiMAC.cpp.

wns::scheduler::UserSet RegistryProxyWiMAC::filterQoSbased ( wns::scheduler::UserSet  users  )  [private]

Definition at line 386 of file RegistryProxyWiMAC.cpp.

wns::scheduler::ConnectionSet RegistryProxyWiMAC::filterReachable ( wns::scheduler::ConnectionSet  connections,
const int  frameNr,
bool  usesHARQ 
) [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 453 of file RegistryProxyWiMAC.cpp.

wns::scheduler::UserSet RegistryProxyWiMAC::filterReachable ( wns::scheduler::UserSet  users,
const int  frameNr 
) [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 435 of file RegistryProxyWiMAC.cpp.

wns::scheduler::UserSet RegistryProxyWiMAC::filterReachable ( wns::scheduler::UserSet  users  )  [virtual]

wns::scheduler::UserSet RegistryProxyWiMAC::getActiveULUsers (  )  const [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 466 of file RegistryProxyWiMAC.cpp.

wns::SmartPtr< const wns::service::phy::phymode::PhyModeInterface > RegistryProxyWiMAC::getBestPhyMode ( const wns::Ratio  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 253 of file RegistryProxyWiMAC.cpp.

wns::scheduler::ChannelQualitiesOnAllSubBandsPtr RegistryProxyWiMAC::getChannelQualities4UserOnDownlink ( wns::scheduler::UserID  user,
int  frameNr 
) [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 505 of file RegistryProxyWiMAC.cpp.

wns::scheduler::ChannelQualitiesOnAllSubBandsPtr RegistryProxyWiMAC::getChannelQualities4UserOnUplink ( wns::scheduler::UserID  user,
int  frameNr 
) [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 499 of file RegistryProxyWiMAC.cpp.

wns::scheduler::ConnectionID RegistryProxyWiMAC::getCIDforPDU ( const wns::ldk::CompoundPtr compound  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 187 of file RegistryProxyWiMAC.cpp.

wns::scheduler::ConnectionList & RegistryProxyWiMAC::getCIDListForPriority ( int  priority  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 562 of file RegistryProxyWiMAC.cpp.

wns::scheduler::ConnectionSet RegistryProxyWiMAC::getConnectionsForPriority ( int  priority  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 571 of file RegistryProxyWiMAC.cpp.

wns::scheduler::ConnectionVector RegistryProxyWiMAC::getConnectionsForUser ( const wns::scheduler::UserID  user  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 135 of file RegistryProxyWiMAC.cpp.

bool RegistryProxyWiMAC::getCQIAvailable (  )  const [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 620 of file RegistryProxyWiMAC.cpp.

bool RegistryProxyWiMAC::getDL (  )  const [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 613 of file RegistryProxyWiMAC.cpp.

float RegistryProxyWiMAC::getMaxDelayForCID ( wns::scheduler::ConnectionID  cid  ) 

Definition at line 175 of file RegistryProxyWiMAC.cpp.

wns::Ratio RegistryProxyWiMAC::getMinSIRForCID ( wns::scheduler::ConnectionID  cid  ) 

Definition at line 181 of file RegistryProxyWiMAC.cpp.

float RegistryProxyWiMAC::getMinTPForCID ( wns::scheduler::ConnectionID  cid  ) 

Definition at line 168 of file RegistryProxyWiMAC.cpp.

wns::scheduler::UserID RegistryProxyWiMAC::getMyUserID (  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 259 of file RegistryProxyWiMAC.cpp.

std::string RegistryProxyWiMAC::getNameForUser ( const wns::scheduler::UserID  user  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 224 of file RegistryProxyWiMAC.cpp.

int RegistryProxyWiMAC::getNumberOfPriorities (  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 555 of file RegistryProxyWiMAC.cpp.

int RegistryProxyWiMAC::getNumberOfQoSClasses (  ) 

Definition at line 548 of file RegistryProxyWiMAC.cpp.

simTimeType RegistryProxyWiMAC::getOverhead ( int  numBursts  ) 

Definition at line 265 of file RegistryProxyWiMAC.cpp.

wns::service::dll::UnicastAddress RegistryProxyWiMAC::getPeerAddressForCID ( wns::scheduler::ConnectionID  cid  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 126 of file RegistryProxyWiMAC.cpp.

wns::service::phy::phymode::PhyModeMapperInterface * RegistryProxyWiMAC::getPhyModeMapper (  )  const [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 245 of file RegistryProxyWiMAC.cpp.

wns::scheduler::PowerCapabilities RegistryProxyWiMAC::getPowerCapabilities (  )  const [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 531 of file RegistryProxyWiMAC.cpp.

wns::scheduler::PowerCapabilities RegistryProxyWiMAC::getPowerCapabilities ( const wns::scheduler::UserID  user  )  const [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 511 of file RegistryProxyWiMAC.cpp.

int RegistryProxyWiMAC::getPriorityForConnection ( wns::scheduler::ConnectionID  cid  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 604 of file RegistryProxyWiMAC.cpp.

wns::scheduler::Bits RegistryProxyWiMAC::getQueueSizeLimitPerConnection (  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 318 of file RegistryProxyWiMAC.cpp.

wns::service::dll::StationType RegistryProxyWiMAC::getStationType ( const wns::scheduler::UserID  user  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 324 of file RegistryProxyWiMAC.cpp.

int RegistryProxyWiMAC::getTotalNumberOfUsers ( const wns::scheduler::UserID  user  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 473 of file RegistryProxyWiMAC.cpp.

wns::scheduler::UserID RegistryProxyWiMAC::getUserForCID ( wns::scheduler::ConnectionID  cid  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 68 of file RegistryProxyWiMAC.cpp.

virtual void wimac::scheduler::RegistryProxyWiMAC::registerCID ( wns::scheduler::ConnectionID  cid,
wns::scheduler::UserID  userID 
) [inline, virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 97 of file RegistryProxyWiMAC.hpp.

void RegistryProxyWiMAC::setFriends ( const wns::ldk::CommandTypeSpecifierInterface _classifier  )  [virtual]

Todo:
could be abolished because registry knows fun and could do it by itself

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 197 of file RegistryProxyWiMAC.cpp.

void RegistryProxyWiMAC::setFUN ( const wns::ldk::fun::FUN fun  )  [virtual]

void RegistryProxyWiMAC::switchFilterTo ( int  qos  ) 

Definition at line 493 of file RegistryProxyWiMAC.cpp.


Member Data Documentation

Definition at line 171 of file RegistryProxyWiMAC.hpp.

Definition at line 152 of file RegistryProxyWiMAC.hpp.

Definition at line 146 of file RegistryProxyWiMAC.hpp.

Definition at line 160 of file RegistryProxyWiMAC.hpp.

Definition at line 144 of file RegistryProxyWiMAC.hpp.

Definition at line 172 of file RegistryProxyWiMAC.hpp.

Definition at line 145 of file RegistryProxyWiMAC.hpp.

Definition at line 173 of file RegistryProxyWiMAC.hpp.

Definition at line 170 of file RegistryProxyWiMAC.hpp.

Definition at line 156 of file RegistryProxyWiMAC.hpp.

Definition at line 167 of file RegistryProxyWiMAC.hpp.

Definition at line 168 of file RegistryProxyWiMAC.hpp.

Definition at line 166 of file RegistryProxyWiMAC.hpp.

Definition at line 158 of file RegistryProxyWiMAC.hpp.

Todo:
remove this when node->getComponent can deliver Layer2

Definition at line 149 of file RegistryProxyWiMAC.hpp.


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

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