User Manual, Developers Guide and API Documentation

wns::scheduler::PhysicalResourceBlock Class Reference

class to describe one PhysicalResourceBlock. There are 1..M of this object in the SchedulingMap for each subChannel. With MIMO there are CxM of these altogether.

#include <scheduler/SchedulingMap.hpp>

Collaboration diagram for wns::scheduler::PhysicalResourceBlock:

Collaboration graph
[legend]

List of all members.

Public Member Functions

bool addCompound (strategy::RequestForResource &request, MapInfoEntryPtr mapInfoEntry, wns::ldk::CompoundPtr compoundPtr, bool _useHARQ)
 put scheduled compound (one after another) into the PhysicalResourceBlock
bool addCompound (simTimeType compoundDuration, wns::scheduler::ConnectionID connectionID, wns::scheduler::UserID userID, wns::scheduler::UserID sourceUserID, wns::ldk::CompoundPtr compoundPtr, wns::service::phy::phymode::PhyModeInterfacePtr phyModePtr, wns::Power txPower, wns::service::phy::ofdma::PatternPtr pattern, ChannelQualityOnOneSubChannel _estimatedCQI, bool _useHARQ)
 put scheduled compound (one after another) into the SchedulingSubChannel
void clearScheduledCompounds ()
void consistencyCheck ()
 mark t=[0..nextPosition] as used by compounds. The rest is free.
int countScheduledCompounds () const
 number of compunds inside this resource
void deleteCompounds ()
 Delete all compounds. But keep all other info (PhyMode, usedTime). This is called by the UL master scheduler, because there are no "real" compounds (just fakes). Only useful for UL scheduling.
std::string dumpContents (const std::string &prefix) const
 output structure (machine readable table for Matlab,Gnuplot,etc)
ChannelQualityOnOneSubChannel getEstimatedCQI () const
int getFreeBitsOnPhysicalResourceBlock (MapInfoEntryPtr mapInfoEntry) const
 returns number of bits that fit into the PhysicalResourceBlock. Depends on PhyMode provided by mapInfoEntry.
simTimeType getFreeTime () const
 total free time on this PhysicalResourceBlock
int getNetBlockSizeInBits () const
 determine the length in bits stored in this resource
simTimeType getNextPosition () const
 get "offset for new compounds" == used time for already scheduled compounds. Zero for empty subChannel
wns::service::phy::phymode::PhyModeInterfacePtr getPhyMode ()
wns::scheduler::UserID getSourceUserID () const
wns::scheduler::UserID getSourceUserIDOfScheduledCompounds ()
int getSpatialLayerIndex () const
int getSubChannelIndex () const
int getTimeSlotIndex () const
wns::Power getTxPower ()
wns::Power getTxPower () const
 get txPower assigned to this resource. Assumes that all contents are for ONE user only and have all equal power.
simTimeType getUsedTime () const
 total used time in this PhysicalResourceBlock
wns::scheduler::UserID getUserID () const
 get userID this resource has been reserved for or NULL if empty
wns::scheduler::UserID getUserIDOfScheduledCompounds ()
void grantFullResources ()
 extent the usage of each resource to 100% so that UL master map doesn't waste resources. Only useful for UL scheduling.
bool hasResourcesForUser (wns::scheduler::UserID user) const
 checks if there are UL resources available for given user
bool hasScheduledCompounds () const
bool isEmpty () const
 true if there is nothing reserved(scheduled) in this block (DL). For the uplink the master map entries have isEmpty==false. This question is NOT enough to allow it to be used. see subChannelIsUsable.
bool isHARQEnabled () const
bool pduFitsInto (strategy::RequestForResource &request, MapInfoEntryPtr mapInfoEntry) const
 true if compound can be put into the PhysicalResourceBlock
 PhysicalResourceBlock (int _subChannelIndex, int _timeSlotIndex, int _spatialLayer, simTimeType _slotLength)
 PhysicalResourceBlock (const PhysicalResourceBlock &other)
 PhysicalResourceBlock ()
void processMasterMap ()
 perform modifications to use this as MasterMap (called in uplink slave scheduler). Only useful for UL scheduling.
ScheduledCompoundsList::const_iterator scheduledCompoundsBegin ()
ScheduledCompoundsList::const_iterator scheduledCompoundsEnd ()
void setSubChannelIndex (int scindex)
void setTimeSlotIndex (int tsindex)
void setTxPower (wns::Power power)
 set txPower assigned to this resource. Assumes that all contents are for ONE user only. All contents get the same power. Must only be used by APC styrategies.
std::string toString () const
 doToString(): human-readable format
 ~PhysicalResourceBlock ()

Private Attributes

wns::service::phy::ofdma::PatternPtr antennaPattern
 Antenna pattern for beamforming; else empty. Yet unclear if this is constant over all subchannels or not.
ChannelQualityOnOneSubChannel estimatedCQI
 Estimated CQI at last scheduling time.
simTimeType freeTime
 remaining time on this subChannel for new compounds
simTimeType nextPosition
 offset for new compounds == used time for already scheduled compounds
wns::service::phy::phymode::PhyModeInterfacePtr phyModePtr
 phyMode used in this subChannel (all compounds should have the same)
ScheduledCompoundsList scheduledCompounds
 list of all compound together with their attributes
simTimeType slotLength
 fixed frame/slot length given from outside
wns::scheduler::UserID sourceUserID
int spatialIndex
 my own spatialIndex as seen from outside (container). For MIMO; in [0..(maxSpatialLayers-1)]
int subChannelIndex
 my own subChannelIndex as seen from outside (container)
int timeSlotIndex
 index of time slot (TDMA component)
wns::Power txPower
 transmit power used in this subChannel (e.g. when APC is used)
wns::scheduler::UserID userID
 usually all compounds in a PRB must have the same user


Detailed Description

Definition at line 126 of file SchedulingMap.hpp.


Constructor & Destructor Documentation

PhysicalResourceBlock::PhysicalResourceBlock (  ) 

Definition at line 137 of file SchedulingMap.cpp.

PhysicalResourceBlock::PhysicalResourceBlock ( const PhysicalResourceBlock other  ) 

Definition at line 169 of file SchedulingMap.cpp.

PhysicalResourceBlock::PhysicalResourceBlock ( int  _subChannelIndex,
int  _timeSlotIndex,
int  _spatialLayer,
simTimeType  _slotLength 
)

Definition at line 152 of file SchedulingMap.cpp.

PhysicalResourceBlock::~PhysicalResourceBlock (  ) 

Definition at line 192 of file SchedulingMap.cpp.


Member Function Documentation

bool PhysicalResourceBlock::addCompound ( strategy::RequestForResource request,
MapInfoEntryPtr  mapInfoEntry,
wns::ldk::CompoundPtr  compoundPtr,
bool  _useHARQ 
)

Parameters:
MapInfoEntryPtr contains result from doAdaptiveResourceScheduling(), but without compound contained
compoundPtr is the PDU to be put into the resource
Returns:
true if successful, false if not enough space.

Definition at line 327 of file SchedulingMap.cpp.

bool PhysicalResourceBlock::addCompound ( simTimeType  compoundDuration,
wns::scheduler::ConnectionID  connectionID,
wns::scheduler::UserID  userID,
wns::scheduler::UserID  sourceUserID,
wns::ldk::CompoundPtr  compoundPtr,
wns::service::phy::phymode::PhyModeInterfacePtr  phyModePtr,
wns::Power  txPower,
wns::service::phy::ofdma::PatternPtr  pattern,
ChannelQualityOnOneSubChannel  _estimatedCQI,
bool  _useHARQ 
)

Definition at line 248 of file SchedulingMap.cpp.

void wns::scheduler::PhysicalResourceBlock::clearScheduledCompounds (  )  [inline]

Definition at line 276 of file SchedulingMap.hpp.

void PhysicalResourceBlock::consistencyCheck (  ) 

Definition at line 549 of file SchedulingMap.cpp.

int PhysicalResourceBlock::countScheduledCompounds (  )  const

Definition at line 454 of file SchedulingMap.cpp.

void PhysicalResourceBlock::deleteCompounds (  ) 

Definition at line 511 of file SchedulingMap.cpp.

std::string PhysicalResourceBlock::dumpContents ( const std::string &  prefix  )  const

Definition at line 375 of file SchedulingMap.cpp.

ChannelQualityOnOneSubChannel wns::scheduler::PhysicalResourceBlock::getEstimatedCQI (  )  const [inline]

Definition at line 282 of file SchedulingMap.hpp.

int PhysicalResourceBlock::getFreeBitsOnPhysicalResourceBlock ( MapInfoEntryPtr  mapInfoEntry  )  const

Definition at line 236 of file SchedulingMap.cpp.

simTimeType PhysicalResourceBlock::getFreeTime (  )  const

Definition at line 204 of file SchedulingMap.cpp.

int PhysicalResourceBlock::getNetBlockSizeInBits (  )  const

Definition at line 558 of file SchedulingMap.cpp.

simTimeType PhysicalResourceBlock::getNextPosition (  )  const

Definition at line 211 of file SchedulingMap.cpp.

wns::service::phy::phymode::PhyModeInterfacePtr wns::scheduler::PhysicalResourceBlock::getPhyMode (  )  [inline]

Definition at line 220 of file SchedulingMap.hpp.

wns::scheduler::UserID PhysicalResourceBlock::getSourceUserID (  )  const

Definition at line 480 of file SchedulingMap.cpp.

wns::scheduler::UserID wns::scheduler::PhysicalResourceBlock::getSourceUserIDOfScheduledCompounds (  )  [inline]

Definition at line 254 of file SchedulingMap.hpp.

int wns::scheduler::PhysicalResourceBlock::getSpatialLayerIndex (  )  const [inline]

Definition at line 238 of file SchedulingMap.hpp.

int wns::scheduler::PhysicalResourceBlock::getSubChannelIndex (  )  const [inline]

Definition at line 226 of file SchedulingMap.hpp.

int wns::scheduler::PhysicalResourceBlock::getTimeSlotIndex (  )  const [inline]

Definition at line 232 of file SchedulingMap.hpp.

wns::Power wns::scheduler::PhysicalResourceBlock::getTxPower (  )  [inline]

Definition at line 223 of file SchedulingMap.hpp.

wns::Power PhysicalResourceBlock::getTxPower (  )  const

Definition at line 486 of file SchedulingMap.cpp.

simTimeType PhysicalResourceBlock::getUsedTime (  )  const

Definition at line 197 of file SchedulingMap.cpp.

wns::scheduler::UserID PhysicalResourceBlock::getUserID (  )  const

Definition at line 470 of file SchedulingMap.cpp.

wns::scheduler::UserID wns::scheduler::PhysicalResourceBlock::getUserIDOfScheduledCompounds (  )  [inline]

Definition at line 244 of file SchedulingMap.hpp.

void PhysicalResourceBlock::grantFullResources (  ) 

Definition at line 517 of file SchedulingMap.cpp.

bool PhysicalResourceBlock::hasResourcesForUser ( wns::scheduler::UserID  user  )  const

Definition at line 543 of file SchedulingMap.cpp.

bool wns::scheduler::PhysicalResourceBlock::hasScheduledCompounds (  )  const [inline]

Definition at line 241 of file SchedulingMap.hpp.

bool PhysicalResourceBlock::isEmpty (  )  const

Definition at line 460 of file SchedulingMap.cpp.

bool PhysicalResourceBlock::isHARQEnabled (  )  const

Definition at line 577 of file SchedulingMap.cpp.

bool PhysicalResourceBlock::pduFitsInto ( strategy::RequestForResource request,
MapInfoEntryPtr  mapInfoEntry 
) const

Definition at line 217 of file SchedulingMap.cpp.

void PhysicalResourceBlock::processMasterMap (  ) 

Definition at line 529 of file SchedulingMap.cpp.

ScheduledCompoundsList::const_iterator wns::scheduler::PhysicalResourceBlock::scheduledCompoundsBegin (  )  [inline]

Definition at line 264 of file SchedulingMap.hpp.

ScheduledCompoundsList::const_iterator wns::scheduler::PhysicalResourceBlock::scheduledCompoundsEnd (  )  [inline]

Definition at line 270 of file SchedulingMap.hpp.

void wns::scheduler::PhysicalResourceBlock::setSubChannelIndex ( int  scindex  )  [inline]

Definition at line 229 of file SchedulingMap.hpp.

void wns::scheduler::PhysicalResourceBlock::setTimeSlotIndex ( int  tsindex  )  [inline]

Definition at line 235 of file SchedulingMap.hpp.

void PhysicalResourceBlock::setTxPower ( wns::Power  power  ) 

Definition at line 492 of file SchedulingMap.cpp.

std::string PhysicalResourceBlock::toString (  )  const

Definition at line 417 of file SchedulingMap.cpp.


Member Data Documentation

Definition at line 316 of file SchedulingMap.hpp.

Definition at line 319 of file SchedulingMap.hpp.

Definition at line 301 of file SchedulingMap.hpp.

Definition at line 303 of file SchedulingMap.hpp.

Definition at line 310 of file SchedulingMap.hpp.

Definition at line 305 of file SchedulingMap.hpp.

Definition at line 299 of file SchedulingMap.hpp.

Definition at line 308 of file SchedulingMap.hpp.

Definition at line 297 of file SchedulingMap.hpp.

Definition at line 292 of file SchedulingMap.hpp.

Definition at line 294 of file SchedulingMap.hpp.

Definition at line 312 of file SchedulingMap.hpp.

Definition at line 307 of file SchedulingMap.hpp.


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

Generated on Sun May 27 03:33:03 2012 for openWNS by  doxygen 1.5.5