helper class for Satellite Beam Scheduler. More...
#include "satellite-default-superframe-allocator.h"
Public Member Functions | |
SatDefaultSuperframeAllocator (Ptr< SatSuperframeConf > superFrameConf) | |
Construct SatDefaultSuperframeAllocator. More... | |
~SatDefaultSuperframeAllocator () | |
Destruct SatDefaultSuperframeAllocator. More... | |
void | GenerateTimeSlots (SatFrameAllocator::TbtpMsgContainer_t &tbtpContainer, uint32_t maxSizeInBytes, SatFrameAllocator::UtAllocInfoContainer_t &utAllocContainer, TracedCallback< uint32_t > waveformTrace, TracedCallback< uint32_t, uint32_t > utLoadTrace, TracedCallback< uint32_t, double > loadTrace) |
Generate time slots in TBTP(s) for the UT/RC. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Get the type ID of instance. More... | |
void | PreAllocateSymbols (SatFrameAllocator::SatFrameAllocContainer_t &allocReqs) |
Preallocate symbols for given to UTs in superframe. More... | |
void | ReleaseMinimumRate (uint32_t minimumRateBytes, bool controlSlotsEnabled) |
Release minimum rate from the allocator. More... | |
void | ReserveMinimumRate (uint32_t minimumRateBytes, bool controlSlotsEnabled) |
Reserve minimum rate from the allocator. More... | |
Public Member Functions inherited from ns3::SatSuperframeAllocator | |
SatSuperframeAllocator (Ptr< SatSuperframeConf > superFrameConf) | |
Construct SatSuperframeAllocator. More... | |
virtual | ~SatSuperframeAllocator () |
Destruct SatSuperframeAllocator. More... | |
Time | GetSuperframeDuration () const |
Get super frame duration. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
derived from object More... | |
Static Public Member Functions inherited from ns3::SatSuperframeAllocator | |
static TypeId | GetTypeId (void) |
derived from object More... | |
Private Types | |
typedef std::vector< Ptr< SatFrameAllocator > > | FrameAllocatorContainer_t |
Container for SatFrameInfo items. More... | |
typedef std::map< Ptr< SatFrameAllocator >, uint32_t > | SupportedFramesMap_t |
Container for the supported SatFrameAllocator (frames). More... | |
Private Member Functions | |
bool | AllocateBasedOnCc (SatFrameAllocator::CcLevel_t ccLevel, SatFrameAllocator::SatFrameAllocReq *allocReq, const SupportedFramesMap_t &frames) |
Allocate given request according to type. More... | |
bool | AllocateToFrame (SatFrameAllocator::SatFrameAllocReq *allocReq) |
Allocate a request to a frame. More... | |
void | RemoveAllocations () |
Remove allocations from all frames maintained by frame allocator. More... | |
Ptr< SatFrameAllocator > | SelectBestCarrier (double cno, uint32_t &bestWaveFormId) |
Select which carrier is the best suited for handling requests of a terminal communicating at the given C/N0. More... | |
void | SelectCarriers (SatFrameAllocator::SatFrameAllocContainer_t &allocReqs) |
Select which carriers to use from the underlying frames. More... | |
Private Attributes | |
bool | m_fcaEnabled |
FrameAllocatorContainer_t | m_frameAllocators |
uint32_t | m_minCarrierPayloadInBytes |
uint32_t | m_minimumRateBasedBytesLeft |
uint32_t | m_mostRobustSlotPayloadInBytes |
bool | m_rcBasedAllocationEnabled |
double | m_targetLoad |
double | m_totalBandwidth |
Additional Inherited Members | |
Protected Attributes inherited from ns3::SatSuperframeAllocator | |
Ptr< SatSuperframeConf > | m_superframeConf |
helper class for Satellite Beam Scheduler.
SatDefaultSuperframeAllocator class is used by SatBeamScheduler to maintain information of the pre-allocated symbols per Capacity Category (CC) in frame. It also knows physical constrains of the frames.
SatDefaultSuperframeAllocator is created and used by SatBeamScheduler.
Definition at line 54 of file satellite-default-superframe-allocator.h.
|
private |
Container for SatFrameInfo items.
Definition at line 123 of file satellite-default-superframe-allocator.h.
|
private |
Container for the supported SatFrameAllocator (frames).
Definition at line 128 of file satellite-default-superframe-allocator.h.
ns3::SatDefaultSuperframeAllocator::SatDefaultSuperframeAllocator | ( | Ptr< SatSuperframeConf > | superFrameConf | ) |
Construct SatDefaultSuperframeAllocator.
superFrameConf | Super frame configuration |
Definition at line 76 of file satellite-default-superframe-allocator.cc.
References m_frameAllocators, m_minCarrierPayloadInBytes, m_minimumRateBasedBytesLeft, m_mostRobustSlotPayloadInBytes, and m_totalBandwidth.
ns3::SatDefaultSuperframeAllocator::~SatDefaultSuperframeAllocator | ( | ) |
Destruct SatDefaultSuperframeAllocator.
Definition at line 139 of file satellite-default-superframe-allocator.cc.
|
private |
Allocate given request according to type.
ccLevel | CC level of the request |
allocReq | Requested bytes |
frames | Information of the possibles frames to allocate. |
Definition at line 466 of file satellite-default-superframe-allocator.cc.
Referenced by AllocateToFrame().
|
private |
Allocate a request to a frame.
allocReq | Allocation request parameters for RC/CCs |
Definition at line 409 of file satellite-default-superframe-allocator.cc.
References AllocateBasedOnCc(), ns3::SatFrameAllocator::CC_LEVEL_CRA, ns3::SatFrameAllocator::CC_LEVEL_CRA_MIN_RBDC, ns3::SatFrameAllocator::CC_LEVEL_CRA_RBDC, ns3::SatFrameAllocator::CC_LEVEL_CRA_RBDC_VBDC, ns3::SatFrameAllocator::SatFrameAllocReq::m_cno, and m_frameAllocators.
Referenced by PreAllocateSymbols().
|
virtual |
Generate time slots in TBTP(s) for the UT/RC.
tbtpContainer | TBTP message container to add/fill TBTPs. |
maxSizeInBytes | Maximum size for a TBTP message. |
utAllocContainer | Reference to UT allocation container to fill in info of the allocation |
waveformTrace | Wave form trace callback |
utLoadTrace | UT load per the frame trace callback |
loadTrace | Load per the frame trace callback |
Implements ns3::SatSuperframeAllocator.
Definition at line 295 of file satellite-default-superframe-allocator.cc.
References m_frameAllocators, and m_rcBasedAllocationEnabled.
|
virtual |
Get the type ID of instance.
Reimplemented from ns3::SatSuperframeAllocator.
Definition at line 69 of file satellite-default-superframe-allocator.cc.
References GetTypeId().
|
static |
derived from object
Definition at line 44 of file satellite-default-superframe-allocator.cc.
References m_fcaEnabled, m_rcBasedAllocationEnabled, and m_targetLoad.
Referenced by GetInstanceTypeId().
|
virtual |
Preallocate symbols for given to UTs in superframe.
Pre-allocation is done in fairly manner between UTs and RCs.
Implements ns3::SatSuperframeAllocator.
Definition at line 325 of file satellite-default-superframe-allocator.cc.
References AllocateToFrame(), ns3::SatSuperframeConf::CONFIG_TYPE_3, m_fcaEnabled, m_frameAllocators, ns3::SatSuperframeAllocator::m_superframeConf, m_targetLoad, RemoveAllocations(), and SelectCarriers().
|
virtual |
Release minimum rate from the allocator.
This method is called when a UT leaves the beam using this allocator.
minimumRateBytes | Minimum rate based bytes needed to reserve |
controlSlotsEnabled | Flag indicating if control slot generation is enabled |
Implements ns3::SatSuperframeAllocator.
Definition at line 384 of file satellite-default-superframe-allocator.cc.
References m_minCarrierPayloadInBytes, m_minimumRateBasedBytesLeft, and m_mostRobustSlotPayloadInBytes.
|
private |
Remove allocations from all frames maintained by frame allocator.
Definition at line 282 of file satellite-default-superframe-allocator.cc.
References m_frameAllocators.
Referenced by PreAllocateSymbols().
|
virtual |
Reserve minimum rate from the allocator.
This method is called to perform CAC functionality.
minimumRateBytes | Minimum rate based bytes needed to reserve |
controlSlotsEnabled | Flag indicating if control slot generation is enabled |
Implements ns3::SatSuperframeAllocator.
Definition at line 353 of file satellite-default-superframe-allocator.cc.
References m_minCarrierPayloadInBytes, m_minimumRateBasedBytesLeft, and m_mostRobustSlotPayloadInBytes.
|
private |
Select which carrier is the best suited for handling requests of a terminal communicating at the given C/N0.
Definition at line 255 of file satellite-default-superframe-allocator.cc.
References m_frameAllocators.
Referenced by SelectCarriers().
|
private |
Select which carriers to use from the underlying frames.
This method is called to perform dynamic frequency plan functionality. It should be called only if the superframe configuration is of the CONFIG_TYPE_3 type.
Definition at line 145 of file satellite-default-superframe-allocator.cc.
References m_frameAllocators, m_totalBandwidth, and SelectBestCarrier().
Referenced by PreAllocateSymbols().
|
private |
Definition at line 137 of file satellite-default-superframe-allocator.h.
Referenced by GetTypeId(), and PreAllocateSymbols().
|
private |
Definition at line 131 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), AllocateToFrame(), GenerateTimeSlots(), PreAllocateSymbols(), RemoveAllocations(), SelectBestCarrier(), and SelectCarriers().
|
private |
Definition at line 140 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), ReleaseMinimumRate(), and ReserveMinimumRate().
|
private |
Definition at line 143 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), ReleaseMinimumRate(), and ReserveMinimumRate().
|
private |
Definition at line 150 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), ReleaseMinimumRate(), and ReserveMinimumRate().
|
private |
Definition at line 147 of file satellite-default-superframe-allocator.h.
Referenced by GenerateTimeSlots(), and GetTypeId().
|
private |
Definition at line 134 of file satellite-default-superframe-allocator.h.
Referenced by GetTypeId(), and PreAllocateSymbols().
|
private |
Definition at line 153 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), and SelectCarriers().