User Manual, Developers Guide and API Documentation

lte::timing::RegistryProxy Class Reference

this is one of the "colleagues" of the ResourceScheduler used to interface to the generic scheduler in libwns.

#include <timing/RegistryProxy.hpp>

Inheritance diagram for lte::timing::RegistryProxy:

Inheritance graph
[legend]
Collaboration diagram for lte::timing::RegistryProxy:

Collaboration graph
[legend]

List of all members.

Public Types

typedef
wns::container::Registry
< wns::scheduler::ConnectionID,
wns::scheduler::UserID
CidToUserId
typedef std::map
< wns::scheduler::UserID,
wns::scheduler::ConnectionVector
UserIdToConnections

Public Member Functions

virtual wns::scheduler::PowerMap calcULResources (const wns::scheduler::UserSet &, unsigned long int) const
void deregisterCID (wns::scheduler::ConnectionID cid, wns::scheduler::UserID user)
 deregisterCID (important e.g. for Handover)
bool duplexGroupIsReachableAt (const wns::scheduler::UserID user, const int frameNr) const
wns::Power estimateInterferenceStdDeviation (const wns::scheduler::UserID user)
wns::scheduler::ChannelQualityOnOneSubChannel estimateRxSINROf (const wns::scheduler::UserID user, int slot=0)
wns::scheduler::ChannelQualityOnOneSubChannel estimateTxSINRAt (const wns::scheduler::UserID user, int slot=0)
 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.
wns::scheduler::ConnectionSet filterReachable (wns::scheduler::ConnectionSet connections, const int frameNr, bool useHARQ)
 reduce the set of connections to those that can currently be reached.
wns::scheduler::UserSet filterReachable (wns::scheduler::UserSet users, const int frameNr)
 reduce the set 'user' to those that can can be reached at the given frameNr.
wns::scheduler::UserSet filterReachable (wns::scheduler::UserSet users)
 reduce the set 'user' to those that can currently be reached.
virtual wns::scheduler::UserSet getActiveULUsers () const
wns::service::phy::phymode::PhyModeInterfacePtr getBestPhyMode (const wns::Ratio &)
 For Link Adaptation, returns the best a PHYmode for a given SINR.
wns::scheduler::ChannelQualitiesOnAllSubBandsPtr getChannelQualities4UserOnDownlink (wns::scheduler::UserID user, int frameNr)
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.
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
 only true for RS-Tx in BS or RN-BS
int getFrameNumberToBeScheduled () const
wns::scheduler::UserID getMyUserID ()
 get UserID of this node/station
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 dll::NodeList getNodeList ()
 get all nodes in the simulation. Can be used to get the neighborhood (neighbor BSs).
virtual int getNumberOfFlowsForUser (const wns::scheduler::UserID user) const
 returns total number of flows/cids to a certain (end-end) user
virtual int getNumberOfPriorities ()
 gets the number of priorities (for QoS Scheduling)
int getNumberOfQoSClasses ()
 gets the number of QoS classes (for QoS Scheduling)
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
virtual int getPriorityForConnection (wns::scheduler::ConnectionID cid)
 tells priority of a connection
wns::scheduler::Bits getQueueSizeLimitPerConnection ()
 ???
wns::service::dll::StationType getStationType (const wns::scheduler::UserID user)
 returns StationType of argument station-ID
virtual int getTotalNumberOfFlows () const
 returns total number of flows/cids handled by this scheduler
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)
 determines UserID of next hop
bool hasResourcesGranted () const
 RegistryProxy (wns::ldk::fun::FUN *_fun, const wns::pyconfig::View &config)
void setAllStations ()
void setAssociationHandler (lte::controlplane::associationHandler::AssociationHandler *ah)
void setDL (bool _isForDL)
 only true for RS-Tx in BS or RN-BS
void setFrameNumberToBeScheduled (int frameNr)
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 setHARQ (wns::scheduler::harq::HARQInterface *harq)
void setRelaysOnly ()
 ~RegistryProxy ()

Private Member Functions

void deregisterUser (const wns::scheduler::UserID user)
 deregisterUser (important e.g. for Handover)
bool isReachableAt (const wns::scheduler::UserID user, const int frameNr, bool useHARQ) const
 Determine whether the given user is listening at the given frame.
int mapQoSClassToPriority (wns::service::qos::QoSClass qosClass)
 QoS->Priority mapping.
void onAssociated (wns::service::dll::UnicastAddress userAdr, wns::service::dll::UnicastAddress dstAdr)
 AssociationObserver interface.
void onDisassociated (wns::service::dll::UnicastAddress userAdr, wns::service::dll::UnicastAddress dstAdr)
void registerCID (wns::scheduler::ConnectionID cid, wns::scheduler::UserID user)
 registerCID given next hop userID (not end-to-end)

Private Attributes

std::string apcstrategyName
dll::services::control::AssociationassociationService
 the pointer to the association service
wns::container::Registry
< wns::scheduler::ConnectionID,
int
cidToPrio
CidToUserId cidToUserId
std::vector
< wns::scheduler::ConnectionList
connectionsForPriority
 container for list of connections within priority
std::string dsafbstrategyName
std::string dsastrategyName
bool eirpLimited
wns::scheduler::ChannelQualitiesOnAllSubBandsPtr fakeChannelQualities
int frameNumberToBeScheduled
 at what time do we need to calculate "reachable"
simTimeType frameNumberToBeScheduled_setTime
struct
lte::timing::RegistryProxy::Friends 
friends
wns::ldk::fun::FUNfun
 the Functional Unit Network I'm located in
dll::services::management::InterferenceCacheiCache
 the pointer to the interference cache service
bool isForDL
 DuplexGroups must match for DL; For UL they are toggled.
dll::Layer2layer2
 the layer2 I'm located in
wns::logger::Logger logger
 my Logger
wns::scheduler::TaskBSorUTType myTask
 for RelayNodes: in which task are we
int numberOfPriorities
int numberOfQosClasses
wns::service::phy::phymode::PhyModeMapperInterfacephyModeMapper
 mapping of ordered phyModes and SINR ranges the only reason for being here is to provide it to the libwns scheduler strategies
wns::scheduler::PowerCapabilities powerBS
wns::scheduler::PowerCapabilities powerUT
std::vector< intqosToPriorityMapping
uint32_t queueSize
bool relaysOnly
UserIdToConnections userIdToConnections
 Container to map userids to connections.

Classes

struct  Friends
 neighbour FUs in my FUN. We need to exchange infos with them More...


Detailed Description

Definition at line 63 of file RegistryProxy.hpp.


Member Typedef Documentation

Definition at line 70 of file RegistryProxy.hpp.

Definition at line 69 of file RegistryProxy.hpp.


Constructor & Destructor Documentation

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

Definition at line 65 of file RegistryProxy.cpp.

RegistryProxy::~RegistryProxy (  ) 

Definition at line 108 of file RegistryProxy.cpp.


Member Function Documentation

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

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 675 of file RegistryProxy.cpp.

void RegistryProxy::deregisterCID ( wns::scheduler::ConnectionID  cid,
wns::scheduler::UserID  user 
) [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 263 of file RegistryProxy.cpp.

void RegistryProxy::deregisterUser ( const wns::scheduler::UserID  user  )  [private, virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 298 of file RegistryProxy.cpp.

bool RegistryProxy::duplexGroupIsReachableAt ( const wns::scheduler::UserID  user,
const int  frameNr 
) const

Definition at line 572 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 458 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 438 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 403 of file RegistryProxy.cpp.

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

reduce the set of connections to those that can be reached at the given frameNr

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 527 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 485 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 476 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 683 of file RegistryProxy.cpp.

wns::service::phy::phymode::PhyModeInterfacePtr RegistryProxy::getBestPhyMode ( const wns::Ratio  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 391 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 764 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 755 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 347 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 832 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 844 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 217 of file RegistryProxy.cpp.

bool RegistryProxy::getCQIAvailable (  )  const [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 186 of file RegistryProxy.cpp.

bool RegistryProxy::getDL (  )  const [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 560 of file RegistryProxy.cpp.

int lte::timing::RegistryProxy::getFrameNumberToBeScheduled (  )  const [inline]

Definition at line 185 of file RegistryProxy.hpp.

UserID RegistryProxy::getMyUserID (  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 397 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 380 of file RegistryProxy.cpp.

dll::NodeList RegistryProxy::getNodeList (  )  [virtual]

Definition at line 881 of file RegistryProxy.cpp.

int RegistryProxy::getNumberOfFlowsForUser ( const wns::scheduler::UserID  user  )  const [virtual]

Definition at line 733 of file RegistryProxy.cpp.

int RegistryProxy::getNumberOfPriorities (  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 825 of file RegistryProxy.cpp.

int RegistryProxy::getNumberOfQoSClasses (  ) 

Definition at line 818 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 208 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 385 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 800 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 773 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 873 of file RegistryProxy.cpp.

Bits RegistryProxy::getQueueSizeLimitPerConnection (  )  [virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 463 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 468 of file RegistryProxy.cpp.

int RegistryProxy::getTotalNumberOfFlows (  )  const [virtual]

Definition at line 727 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 690 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 192 of file RegistryProxy.cpp.

bool RegistryProxy::hasResourcesGranted (  )  const

Definition at line 313 of file RegistryProxy.cpp.

bool RegistryProxy::isReachableAt ( const wns::scheduler::UserID  user,
const int  frameNr,
bool  useHARQ 
) const [private]

Definition at line 597 of file RegistryProxy.cpp.

int RegistryProxy::mapQoSClassToPriority ( wns::service::qos::QoSClass  qosClass  )  [private]

Definition at line 864 of file RegistryProxy.cpp.

void RegistryProxy::onAssociated ( wns::service::dll::UnicastAddress  userAdr,
wns::service::dll::UnicastAddress  dstAdr 
) [private]

Definition at line 320 of file RegistryProxy.cpp.

void RegistryProxy::onDisassociated ( wns::service::dll::UnicastAddress  userAdr,
wns::service::dll::UnicastAddress  dstAdr 
) [private]

Definition at line 326 of file RegistryProxy.cpp.

void RegistryProxy::registerCID ( wns::scheduler::ConnectionID  cid,
wns::scheduler::UserID  user 
) [private, virtual]

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 226 of file RegistryProxy.cpp.

void RegistryProxy::setAllStations (  ) 

Definition at line 748 of file RegistryProxy.cpp.

void RegistryProxy::setAssociationHandler ( lte::controlplane::associationHandler::AssociationHandler ah  ) 

Definition at line 566 of file RegistryProxy.cpp.

void RegistryProxy::setDL ( bool  _isForDL  ) 

Definition at line 554 of file RegistryProxy.cpp.

void lte::timing::RegistryProxy::setFrameNumberToBeScheduled ( int  frameNr  ) 

void RegistryProxy::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 117 of file RegistryProxy.cpp.

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

Implements wns::scheduler::RegistryProxyInterface.

Definition at line 129 of file RegistryProxy.cpp.

void RegistryProxy::setHARQ ( wns::scheduler::harq::HARQInterface harq  ) 

Definition at line 123 of file RegistryProxy.cpp.

void RegistryProxy::setRelaysOnly (  ) 

Definition at line 741 of file RegistryProxy.cpp.


Member Data Documentation

Definition at line 300 of file RegistryProxy.hpp.

Definition at line 267 of file RegistryProxy.hpp.

Definition at line 317 of file RegistryProxy.hpp.

Definition at line 316 of file RegistryProxy.hpp.

Definition at line 323 of file RegistryProxy.hpp.

Definition at line 302 of file RegistryProxy.hpp.

Definition at line 301 of file RegistryProxy.hpp.

Definition at line 298 of file RegistryProxy.hpp.

Definition at line 289 of file RegistryProxy.hpp.

Definition at line 305 of file RegistryProxy.hpp.

Definition at line 306 of file RegistryProxy.hpp.

Definition at line 259 of file RegistryProxy.hpp.

Definition at line 270 of file RegistryProxy.hpp.

Definition at line 308 of file RegistryProxy.hpp.

Definition at line 261 of file RegistryProxy.hpp.

Definition at line 264 of file RegistryProxy.hpp.

Definition at line 310 of file RegistryProxy.hpp.

Definition at line 312 of file RegistryProxy.hpp.

Definition at line 313 of file RegistryProxy.hpp.

Definition at line 287 of file RegistryProxy.hpp.

Definition at line 296 of file RegistryProxy.hpp.

Definition at line 295 of file RegistryProxy.hpp.

Definition at line 314 of file RegistryProxy.hpp.

Definition at line 291 of file RegistryProxy.hpp.

Definition at line 293 of file RegistryProxy.hpp.

Definition at line 320 of file RegistryProxy.hpp.


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

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