User Manual, Developers Guide and API Documentation

lte::timing::ResourceScheduler Class Reference

Base Class for Functional Units performing the resource scheduling, i.e. allocation of resources in time and frequency (subchannels).

#include <timing/ResourceScheduler.hpp>

Inheritance diagram for lte::timing::ResourceScheduler:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

void closeMapOutput ()
void evaluateMap (wns::scheduler::SchedulingMapPtr schedulingMap, int frameNr)
int getPartitionGroup ()
 MapHandler needs to find out the group for partitioning.
virtual void onAssociated (wns::service::dll::UnicastAddress userAdr, wns::service::dll::UnicastAddress dstAdr)=0
 AssociationObserver interface.
virtual void onDisassociated (wns::service::dll::UnicastAddress userAdr, wns::service::dll::UnicastAddress dstAdr)=0
 AssociationObserver interface.
virtual void onFlowReleased (wns::service::dll::FlowID flowId, wns::scheduler::UserID user)
virtual void onFUNCreated ()
 Handle Intra-FUN dependencies and create colleagues - Get pointer to rlc, macg, phyUser Make object instances for the following helper classes: create (a) grouper create (b) queues create (c) the scheduling strategy handle colleagues (the objects a-c above).
void prepareMapOutput ()
 get+write statistics for prepared maps (on BS side
virtual void resetHARQScheduledPeerRetransmissions ()
 ResourceScheduler (wns::ldk::fun::FUN *fun, const wns::pyconfig::View &config)
virtual void sendPendingHARQFeedback ()
virtual ~ResourceScheduler ()
CompoundHandlerInterface


virtual bool doIsAccepting (const wns::ldk::CompoundPtr &compound) const
 upper FU asks this, whether SendData may be called
virtual void doOnData (const wns::ldk::CompoundPtr &compound)
 lower FU wants to deliver us a PDU (compound), reception
virtual void doSendData (const wns::ldk::CompoundPtr &compound)
 upper FU wants to give us a PDU (compound) for transmission the compound is then put into colleagues.queue
virtual void doWakeup ()
 upper FU is notified that we have space again for new PDUs
void postDecoding (const wns::ldk::CompoundPtr compound)
 Called 3ms after doOnData received data, to model decoding delay.
implementation of Scheduler Interface


void finishCollection (int frameNr, simTimeType _startTime)
 dequeue pdu=compounds from scheduledCompounds and send them downstack using sendData(pdu); startCollection = make scheduling decisions, finishCollection = send scheduled PDUs
MapInfoProviderInterface


wns::scheduler::SchedulingMapPtr getSchedulingMap (int frameNr) const
 return the SchedulingMap resulting from the scheduling performed by colleagues.strategy. Called by MapHandler in Lte.
implementation of SchedulerFUInterface


virtual void onNodeCreated ()
 in ILayer2::onNodeCreated() the handle for the PHY service is set here; This is done for resourceScheduler and resourceSchedulerRX
ScorerInterface


virtual lte::helper::Route score (const wns::ldk::CompoundPtr &compound)
 Implementation of ScorerInterface, forwarding to internal Scorer member.

Protected Member Functions

virtual void applyPowerLimitation (wns::scheduler::SchedulingMapPtr)
virtual void deliverReceived ()
void deliverSchedulingTimeSlot (bool canBeDecoded, const wns::scheduler::SchedulingTimeSlotPtr &schedulingTimeSlot, wns::service::phy::power::PowerMeasurementPtr &, int subband)
 Unpack a SchedulingTimeSlotPtr and send its contents to upper layers.
void probeResourceUsage (wns::scheduler::SchedulingMapPtr schedulingMap)
void startCollection (int frameNr, simTimeType duration)
 Starts the scheduling.

Protected Attributes

dll::services::control::AssociationassociationService
bool beamforming
 beamforming on/off
struct
lte::timing::ResourceScheduler::Colleagues 
colleagues
int framesPerSuperFrame
 usually 5..20 frames make one superframe
unsigned int freqChannels
 size of resources in frequency-direction
struct
lte::timing::ResourceScheduler::Friends 
friends
bool IamUplinkMaster
 Master scheduler for DL or UL? true only for RS-RX. Set in Python.
dll::ILayer2layer2
wns::logger::Logger logger
std::ofstream * mapFile
std::string mapOutputFileName
unsigned int maxBeams
 size of resources in spatial direction. This can be beamforming beams (available for WiMAC) or MIMO paths (not yet available).
wns::Power maxTxPower
unsigned int numberOfTimeSlots
 numer of slots in one frame (TDMA component)
int partitionGroup
 Indicates to which group this scheduler belongs taken from PyConfig.
wns::pyconfig::View pyConfig
 Python Config View.
wns::scheduler::harq::HARQInterface::DecodeStatusContainer receivedNonHARQTimeslots_
wns::probe::bus::ContextCollectorPtr resUsageProbe_
 probe to record ratio of used resources
wns::scheduler::SchedulerSpotType schedulerSpot
 there are three positions for the scheduler...
wns::scheduler::strategy::StrategyResultHistory schedulingResultOfFrame
 the scheduling result is stored here for each frame [0..9]
lte::macr::Scorer scorer
 member providing the scoring for outgoing compounds
simTimeType slotDuration
 size of resources in time-direction
long int transportBlockCounter
bool writeMapOutput
 output file names

Private Types

typedef std::list
< wns::ldk::CompoundPtr
CompoundList
typedef std::map
< wns::service::dll::UnicastAddress,
wns::service::dll::UnicastAddress
SeenTable
 the SeenTable is a dataStructure to support Layer2-Routing in the Multihop case. It relates the DLL address of a packet's original sender to the DLL address of the sender we actually received it from.

Friends

class controlplane::associationHandler::AssociationHandlerBS

Classes

struct  Colleagues
 colleagues are objects that are no FU themselves but helpers More...
struct  Friends
 friend classes. We need direct access to them. More...


Detailed Description

Definition at line 72 of file ResourceScheduler.hpp.


Member Typedef Documentation

Definition at line 93 of file ResourceScheduler.hpp.

Definition at line 91 of file ResourceScheduler.hpp.


Constructor & Destructor Documentation

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

Definition at line 53 of file ResourceScheduler.cpp.

ResourceScheduler::~ResourceScheduler (  )  [virtual]

Definition at line 97 of file ResourceScheduler.cpp.


Member Function Documentation

void ResourceScheduler::applyPowerLimitation ( wns::scheduler::SchedulingMapPtr  schedulingMap  )  [protected, virtual]

Definition at line 884 of file ResourceScheduler.cpp.

void ResourceScheduler::closeMapOutput (  ) 

Definition at line 995 of file ResourceScheduler.cpp.

void ResourceScheduler::deliverReceived (  )  [protected, virtual]

Implements lte::timing::SchedulerIncoming.

Definition at line 347 of file ResourceScheduler.cpp.

void ResourceScheduler::deliverSchedulingTimeSlot ( bool  canBeDecoded,
const wns::scheduler::SchedulingTimeSlotPtr schedulingTimeSlot,
wns::service::phy::power::PowerMeasurementPtr phyMeasurement,
int  subband 
) [protected]

Definition at line 291 of file ResourceScheduler.cpp.

bool ResourceScheduler::doIsAccepting ( const wns::ldk::CompoundPtr compound  )  const [virtual]

Definition at line 277 of file ResourceScheduler.cpp.

void ResourceScheduler::doOnData ( const wns::ldk::CompoundPtr compound  )  [virtual]

Definition at line 385 of file ResourceScheduler.cpp.

void ResourceScheduler::doSendData ( const wns::ldk::CompoundPtr compound  )  [virtual]

Definition at line 284 of file ResourceScheduler.cpp.

void ResourceScheduler::doWakeup (  )  [virtual]

Definition at line 442 of file ResourceScheduler.cpp.

void ResourceScheduler::evaluateMap ( wns::scheduler::SchedulingMapPtr  schedulingMap,
int  frameNr 
)

Definition at line 979 of file ResourceScheduler.cpp.

void ResourceScheduler::finishCollection ( int  frameNr,
simTimeType  _startTime 
) [virtual]

Implements lte::timing::SchedulerOutgoing.

Definition at line 590 of file ResourceScheduler.cpp.

int lte::timing::ResourceScheduler::getPartitionGroup (  ) 

Definition at line 118 of file ResourceScheduler.cpp.

wns::scheduler::SchedulingMapPtr ResourceScheduler::getSchedulingMap ( int  frameNr  )  const [virtual]

virtual void lte::timing::ResourceScheduler::onAssociated ( wns::service::dll::UnicastAddress  userAdr,
wns::service::dll::UnicastAddress  dstAdr 
) [pure virtual]

virtual void lte::timing::ResourceScheduler::onDisassociated ( wns::service::dll::UnicastAddress  userAdr,
wns::service::dll::UnicastAddress  dstAdr 
) [pure virtual]

void ResourceScheduler::onFlowReleased ( wns::service::dll::FlowID  flowId,
wns::scheduler::UserID  user 
) [virtual]

Definition at line 269 of file ResourceScheduler.cpp.

void ResourceScheduler::onFUNCreated (  )  [virtual]

Reimplemented from wns::ldk::FunctionalUnit.

Reimplemented in lte::timing::ResourceSchedulerBS, and lte::timing::ResourceSchedulerUT.

Definition at line 125 of file ResourceScheduler.cpp.

void ResourceScheduler::onNodeCreated (  )  [virtual]

See also:
lte::ILayer2::ILayer2::onNodeCreated()

Implements lte::timing::SchedulerFUInterface.

Definition at line 258 of file ResourceScheduler.cpp.

void ResourceScheduler::postDecoding ( const wns::ldk::CompoundPtr  compound  ) 

Definition at line 400 of file ResourceScheduler.cpp.

void ResourceScheduler::prepareMapOutput (  ) 

Definition at line 965 of file ResourceScheduler.cpp.

void ResourceScheduler::probeResourceUsage ( wns::scheduler::SchedulingMapPtr  schedulingMap  )  [protected]

Definition at line 845 of file ResourceScheduler.cpp.

void ResourceScheduler::resetHARQScheduledPeerRetransmissions (  )  [virtual]

Reimplemented in lte::timing::ResourceSchedulerBS.

Definition at line 943 of file ResourceScheduler.cpp.

lte::helper::Route ResourceScheduler::score ( const wns::ldk::CompoundPtr compound  )  [virtual]

Implements lte::macr::ScorerInterface.

Definition at line 958 of file ResourceScheduler.cpp.

void ResourceScheduler::sendPendingHARQFeedback (  )  [virtual]

Implements lte::timing::SchedulerIncoming.

Definition at line 952 of file ResourceScheduler.cpp.

void ResourceScheduler::startCollection ( int  frameNr,
simTimeType  duration 
) [protected]

Definition at line 458 of file ResourceScheduler.cpp.


Friends And Related Function Documentation

Definition at line 83 of file ResourceScheduler.hpp.


Member Data Documentation

to associationService, to query about associations

Definition at line 270 of file ResourceScheduler.hpp.

Definition at line 341 of file ResourceScheduler.hpp.

Definition at line 313 of file ResourceScheduler.hpp.

Definition at line 323 of file ResourceScheduler.hpp.

Definition at line 373 of file ResourceScheduler.hpp.

Definition at line 265 of file ResourceScheduler.hpp.

Definition at line 263 of file ResourceScheduler.hpp.

std::ofstream* lte::timing::ResourceScheduler::mapFile [protected]

Definition at line 382 of file ResourceScheduler.hpp.

Definition at line 380 of file ResourceScheduler.hpp.

Definition at line 336 of file ResourceScheduler.hpp.

Definition at line 388 of file ResourceScheduler.hpp.

Definition at line 329 of file ResourceScheduler.hpp.

Definition at line 347 of file ResourceScheduler.hpp.

Definition at line 261 of file ResourceScheduler.hpp.

Definition at line 386 of file ResourceScheduler.hpp.

Definition at line 362 of file ResourceScheduler.hpp.

Definition at line 367 of file ResourceScheduler.hpp.

Definition at line 352 of file ResourceScheduler.hpp.

Definition at line 357 of file ResourceScheduler.hpp.

Definition at line 318 of file ResourceScheduler.hpp.

Definition at line 384 of file ResourceScheduler.hpp.

Definition at line 378 of file ResourceScheduler.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