helper class for Satellite Beam Scheduler. More...
#include "satellite-default-superframe-allocator.h"
Public Member Functions | |
| SatDefaultSuperframeAllocator (Ptr< SatSuperframeConf > superFrameConf) | |
| Construct SatDefaultSuperframeAllocator. | |
| ~SatDefaultSuperframeAllocator () | |
| Destruct SatDefaultSuperframeAllocator. | |
| 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. | |
| void | PreAllocateSymbols (SatFrameAllocator::SatFrameAllocContainer_t &allocReqs) |
| Preallocate symbols for given to UTs in superframe. | |
| void | ReleaseMinimumRate (uint32_t minimumRateBytes, bool controlSlotsEnabled) |
| Release minimum rate from the allocator. | |
| void | ReserveMinimumRate (uint32_t minimumRateBytes, bool controlSlotsEnabled) |
| Reserve minimum rate from the allocator. | |
| Public Member Functions inherited from ns3::SatSuperframeAllocator | |
| SatSuperframeAllocator (Ptr< SatSuperframeConf > superFrameConf) | |
| Construct SatSuperframeAllocator. | |
| virtual | ~SatSuperframeAllocator () |
| Destruct SatSuperframeAllocator. | |
| Time | GetSuperframeDuration () const |
| Get super frame duration. | |
Static Public Member Functions | |
| static TypeId | GetTypeId (void) |
| derived from object | |
| Static Public Member Functions inherited from ns3::SatSuperframeAllocator | |
| static TypeId | GetTypeId (void) |
| derived from object | |
Private Types | |
| typedef std::vector< Ptr< SatFrameAllocator > > | FrameAllocatorContainer_t |
| Container for SatFrameInfo items. | |
| typedef std::map< Ptr< SatFrameAllocator >, uint32_t > | SupportedFramesMap_t |
| Container for the supported SatFrameAllocator (frames). | |
Private Member Functions | |
| bool | AllocateBasedOnCc (SatFrameAllocator::CcLevel_t ccLevel, SatFrameAllocator::SatFrameAllocReq *allocReq, const SupportedFramesMap_t &frames) |
| Allocate given request according to type. | |
| bool | AllocateToFrame (SatFrameAllocator::SatFrameAllocReq *allocReq) |
| Allocate a request to a frame. | |
| void | RemoveAllocations () |
| Remove allocations from all frames maintained by frame allocator. | |
| 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. | |
| void | SelectCarriers (SatFrameAllocator::SatFrameAllocContainer_t &allocReqs) |
| Select which carriers to use from the underlying frames. | |
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 117 of file satellite-default-superframe-allocator.h.
|
private |
Container for the supported SatFrameAllocator (frames).
Definition at line 122 of file satellite-default-superframe-allocator.h.
| ns3::SatDefaultSuperframeAllocator::SatDefaultSuperframeAllocator | ( | Ptr< SatSuperframeConf > | superFrameConf | ) |
Construct SatDefaultSuperframeAllocator.
| superFrameConf | Super frame configuration |
Definition at line 68 of file satellite-default-superframe-allocator.cc.
References ns3::SatSuperframeAllocator::SatSuperframeAllocator(), m_fcaEnabled, m_frameAllocators, m_minCarrierPayloadInBytes, m_minimumRateBasedBytesLeft, m_mostRobustSlotPayloadInBytes, m_rcBasedAllocationEnabled, m_targetLoad, and m_totalBandwidth.
| ns3::SatDefaultSuperframeAllocator::~SatDefaultSuperframeAllocator | ( | ) |
Destruct SatDefaultSuperframeAllocator.
Definition at line 131 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 458 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 401 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 287 of file satellite-default-superframe-allocator.cc.
References m_frameAllocators, and m_rcBasedAllocationEnabled.
|
static |
derived from object
Definition at line 44 of file satellite-default-superframe-allocator.cc.
References ns3::SatSuperframeAllocator::SatSuperframeAllocator(), m_fcaEnabled, m_rcBasedAllocationEnabled, and m_targetLoad.
|
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 317 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 376 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 274 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 345 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 247 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 137 of file satellite-default-superframe-allocator.cc.
References m_frameAllocators, m_totalBandwidth, and SelectBestCarrier().
Referenced by PreAllocateSymbols().
|
private |
Definition at line 131 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), GetTypeId(), and PreAllocateSymbols().
|
private |
Definition at line 125 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), AllocateToFrame(), GenerateTimeSlots(), PreAllocateSymbols(), RemoveAllocations(), SelectBestCarrier(), and SelectCarriers().
|
private |
Definition at line 134 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), ReleaseMinimumRate(), and ReserveMinimumRate().
|
private |
Definition at line 137 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), ReleaseMinimumRate(), and ReserveMinimumRate().
|
private |
Definition at line 144 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), ReleaseMinimumRate(), and ReserveMinimumRate().
|
private |
Definition at line 141 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), GenerateTimeSlots(), and GetTypeId().
|
private |
Definition at line 128 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), GetTypeId(), and PreAllocateSymbols().
|
private |
Definition at line 147 of file satellite-default-superframe-allocator.h.
Referenced by SatDefaultSuperframeAllocator(), and SelectCarriers().