ns3::SatBeamScheduler Class Reference

class for module Beam Scheduler. More...

#include "satellite-beam-scheduler.h"

+ Inheritance diagram for ns3::SatBeamScheduler:
+ Collaboration diagram for ns3::SatBeamScheduler:

Classes

class  CnoCompare
 CnoCompare class to sort UT request according to C/N0 information. More...
 
class  SatUtInfo
 UT information helper class for SatBeamScheduler. More...
 

Public Types

typedef void(* BacklogRequestsTraceCallback) (std::string trace)
 Callback signature for BacklogRequestsTrace trace source. More...
 
typedef void(* ExceedingCapacityTraceCallback) (uint32_t exceedingCapacity)
 Callback signature for the ExceedingCapacityTrace trace source. More...
 
enum  HandoverInformationForward_t { BASIC , CHECK_GATEWAY }
 Strategies to exchange informations between beams. More...
 
typedef Callback< bool, Ptr< SatControlMessage >, const Address & > SendCtrlMsgCallback
 
typedef Callback< void, Ptr< SatTbtpMessage > > SendTbtpCallback
 
typedef Callback< void, uint32_t, Ptr< SatTbtpMessage > > TbtpAddCallback
 
typedef void(* UnmetCapacityTraceCallback) (uint32_t unmetCapacity)
 Callback signature for the UnmetCapacityTrace trace source. More...
 
typedef void(* UsableCapacityTraceCallback) (uint32_t usableCapacity)
 Callback signature for the UsableCapacityTrace trace source. More...
 
typedef void(* WaveformTraceCallback) (uint32_t waveformId)
 Callback signature for WaveformTrace trace source. More...
 

Public Member Functions

 SatBeamScheduler ()
 Construct a SatBeamScheduler. More...
 
 ~SatBeamScheduler ()
 Destroy a SatBeamScheduler. More...
 
uint32_t AddUt (Address utId, Ptr< SatLowerLayerServiceConf > llsConf)
 Add UT to scheduler. More...
 
Ptr< SatTimuMessageCreateTimu () const
 Create a TIM unicast message containing enough data for a terminal to connect to the beam handled by this SatBeamScheduler. More...
 
Address GetGwAddress (void) const
 Return the address of the gateway responsible of this beam. More...
 
bool HasUt (Address utId)
 Check whether an UT is handled by this scheduler. More...
 
void Initialize (uint32_t beamId, SatBeamScheduler::SendCtrlMsgCallback cb, Ptr< SatSuperframeSeq > seq, uint32_t maxFrameSizeInBytes, Address gwAddress)
 
void RemoveUt (Address utId)
 Remove a UT from its SatBeamScheduler. More...
 
void ReserveLogonChannel (uint32_t logonChannelId)
 
bool Send (Ptr< SatControlMessage > message)
 Send control messages to the beam. More...
 
bool SendTo (Ptr< SatControlMessage > message, Address utId)
 Send control message to an UT into the beam. More...
 
bool SendToSatellite (Ptr< SatControlMessage > msg, Address satelliteMac)
 Send control message to the satellite. More...
 
void SetSendTbtpCallback (SendTbtpCallback cb)
 Set the callback to inform NCC a TBTP has been sent. More...
 
void TransferUtToBeam (Address utId, Ptr< SatBeamScheduler > destination)
 Transfer ownership of a terminal to the given SatBeamScheduler. More...
 
void UpdateSatelliteCno (Address satelliteMac, double cno)
 Update satellite C/N0 info with the latest value. More...
 
void UpdateUtCno (Address utId, double cno)
 Update UT C/N0 info with the latest value. More...
 
void UtCrReceived (Address utId, Ptr< SatCrMessage > crMsg)
 Receive capacity requests from UTs. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Types

typedef std::map< Address, Ptr< SatUtInfo > > UtInfoMap_t
 Map container to store UT information. More...
 
typedef std::list< UtReqInfoItem_tUtReqInfoContainer_t
 Container to store capacity request information for the UTs. More...
 
typedef std::pair< Address, SatFrameAllocator::SatFrameAllocReqUtReqInfoItem_t
 Pair to store capacity request information for the UT. More...
 

Private Member Functions

void AddRaChannels (std::vector< Ptr< SatTbtpMessage >> &tbtpContainer)
 Add RA channel information to TBTP(s). More...
 
void AddUtInfo (Address utId, Ptr< SatUtInfo > utInfo)
 
Ptr< SatCnoEstimatorCreateCnoEstimator ()
 Create estimator for the UT according to set attributes. More...
 
void DoDispose (void)
 Dispose actions for SatBeamScheduler. More...
 
void DoPreResourceAllocation ()
 Do pre-allocation of the symbols per UT/RC, before time slot generation. More...
 
void RemoveUtInfo (UtInfoMap_t::iterator iterator)
 
void Schedule ()
 Schedule UTs added (registered) to scheduler. More...
 
void SendCnoToSatellite ()
 Send an estimation of cno to satellite, if samples have been received. More...
 
uint32_t UpdateDamaEntriesWithAllocs (SatFrameAllocator::UtAllocInfoContainer_t &utAllocContainer)
 Update dama entries with given allocations at end of the scheduling. More...
 
uint32_t UpdateDamaEntriesWithReqs ()
 Update dama entries with received requests at beginning of the scheduling. More...
 

Private Attributes

TracedCallback< std::string > m_backlogRequestsTrace
 Trace for backlog requests done to beam scheduler. More...
 
uint32_t m_beamId
 ID of the beam. More...
 
Time m_cnoEstimationWindow
 Time window for C/N0 estimation. More...
 
SatCnoEstimator::EstimationMode_t m_cnoEstimatorMode
 Mode used for C/N0 estimator. More...
 
Time m_controlSlotInterval
 Interval to generate control time slots. More...
 
bool m_controlSlotsEnabled
 Flag to indicated if control time slots generation is enabled. More...
 
TracedCallback< uint32_t > m_exceedingCapacityTrace
 Trace exceeding capacity. More...
 
TracedCallback< uint32_t, double > m_frameLoadTrace
 Trace frame load ratio. More...
 
TracedCallback< uint32_t, uint32_t > m_frameUtLoadTrace
 Trace count of UTs scheduled per Frame. More...
 
Address m_gwAddress
 
HandoverInformationForward_t m_handoverStrategy
 
uint32_t m_logonChannelIndex
 Logon channel ID to exclude it from the RA channel selection. More...
 
uint32_t m_maxBbFrameSize
 Maximum size of the BB frame. More...
 
Time m_maxTbtpTxAndProcessingDelay
 Maximum TBTP tx and processing delay estimate at the GW (scheduler). More...
 
Time m_maxTwoWayPropagationDelay
 Maximum two-way propagation delay estimate between GW-SAT-UT-SAT-GW. More...
 
Ptr< RandomVariableStream > m_raChRandomIndex
 Random variable stream to select RA channel for a UT. More...
 
bool m_receivedSatelliteCnoSample
 Indicates if Cno sample have been received since last C/N0 control message sent. More...
 
Ptr< SatCnoEstimatorm_satelliteCnoEstimator
 Estimator for the C/N0 from satellite. More...
 
Address m_satelliteMac
 MAC address of the satellite (used when regenerative) More...
 
Ptr< SatSuperframeAllocatorm_superframeAllocator
 Superframe allocator to maintain load information of the frames and their configurations. More...
 
SatEnums::SuperframeAllocatorType_t m_superframeAllocatorType
 Type of SatSuperframeAllocator class to use. More...
 
uint32_t m_superFrameCounter
 Counter for super frame sequence. More...
 
Ptr< SatSuperframeSeqm_superframeSeq
 Pointer to super frame sequence. More...
 
SatBeamScheduler::SendCtrlMsgCallback m_txCallback
 The control message send callback. More...
 
SatBeamScheduler::SendTbtpCallback m_txTbtpCallback
 The TBTP send callback to inform GW Mac. More...
 
TracedCallback< uint32_t > m_unmetCapacityTrace
 Trace unmet capacity. More...
 
TracedCallback< uint32_t > m_usableCapacityTrace
 Trace usable capacity. More...
 
UtInfoMap_t m_utInfos
 Map to store UT information in beam for updating purposes. More...
 
UtReqInfoContainer_t m_utRequestInfos
 Container including every UT's allocation requests. More...
 
TracedCallback< uint32_t > m_waveformTrace
 Trace first wave form scheduled for the UT. More...
 

Detailed Description

class for module Beam Scheduler.

This SatBeamScheduler class implements scheduler used to for one specific beam. It's is created and used by NCC.

The scheduling process is briefly:

  • SatDamaEntry/CR update
  • Preliminary resource allocation
  • Time slot generation
  • SatDamaEntry update
  • TBTP signaling (generation)

    • Schedule next scheduling time for the next SF

    One scheduler per spot-beam is created and utilized.

Definition at line 73 of file satellite-beam-scheduler.h.

Member Typedef Documentation

◆ BacklogRequestsTraceCallback

typedef void(* ns3::SatBeamScheduler::BacklogRequestsTraceCallback) (std::string trace)

Callback signature for BacklogRequestsTrace trace source.

Parameters
traceA string containing the following information:
  • the current simulation time (in seconds),
  • beam ID,
  • UT ID,
  • type (RBDC or VBDC), and
  • request size (in kbps for RBDC or in bytes for VBDC).

Definition at line 221 of file satellite-beam-scheduler.h.

◆ ExceedingCapacityTraceCallback

typedef void(* ns3::SatBeamScheduler::ExceedingCapacityTraceCallback) (uint32_t exceedingCapacity)

Callback signature for the ExceedingCapacityTrace trace source.

Parameters
exceedingCapacityThe amount capacity offered exceeds capacity requested, in kbps.

Definition at line 251 of file satellite-beam-scheduler.h.

◆ SendCtrlMsgCallback

typedef Callback<bool, Ptr<SatControlMessage>, const Address&> ns3::SatBeamScheduler::SendCtrlMsgCallback
Parameters
msgthe message send
addressPacket destination address
Returns
Result of sending, true success or false failure

Definition at line 112 of file satellite-beam-scheduler.h.

◆ SendTbtpCallback

Parameters
msgthe TBTP sent

Definition at line 117 of file satellite-beam-scheduler.h.

◆ TbtpAddCallback

typedef Callback<void, uint32_t, Ptr<SatTbtpMessage> > ns3::SatBeamScheduler::TbtpAddCallback
Parameters
idId of the TBTP message to add.
tbtpPointer to the TBTP message to add.

Definition at line 123 of file satellite-beam-scheduler.h.

◆ UnmetCapacityTraceCallback

typedef void(* ns3::SatBeamScheduler::UnmetCapacityTraceCallback) (uint32_t unmetCapacity)

Callback signature for the UnmetCapacityTrace trace source.

Parameters
unmetCapacityThe amount of capacity requested but not used, in kbps.

Definition at line 243 of file satellite-beam-scheduler.h.

◆ UsableCapacityTraceCallback

typedef void(* ns3::SatBeamScheduler::UsableCapacityTraceCallback) (uint32_t usableCapacity)

Callback signature for the UsableCapacityTrace trace source.

Parameters
usableCapacityThe amount of capacity allocated, in kbps.

Definition at line 235 of file satellite-beam-scheduler.h.

◆ UtInfoMap_t

typedef std::map<Address, Ptr<SatUtInfo> > ns3::SatBeamScheduler::UtInfoMap_t
private

Map container to store UT information.

Definition at line 399 of file satellite-beam-scheduler.h.

◆ UtReqInfoContainer_t

Container to store capacity request information for the UTs.

Definition at line 404 of file satellite-beam-scheduler.h.

◆ UtReqInfoItem_t

Pair to store capacity request information for the UT.

Definition at line 394 of file satellite-beam-scheduler.h.

◆ WaveformTraceCallback

typedef void(* ns3::SatBeamScheduler::WaveformTraceCallback) (uint32_t waveformId)

Callback signature for WaveformTrace trace source.

Parameters
waveformIdThe first waveform scheduled for a UT.

Definition at line 228 of file satellite-beam-scheduler.h.

Member Enumeration Documentation

◆ HandoverInformationForward_t

Strategies to exchange informations between beams.

Enumerator
BASIC 
CHECK_GATEWAY 

Definition at line 80 of file satellite-beam-scheduler.h.

Constructor & Destructor Documentation

◆ SatBeamScheduler()

ns3::SatBeamScheduler::SatBeamScheduler ( )

Construct a SatBeamScheduler.

This is the constructor for the SatBeamScheduler

Definition at line 277 of file satellite-beam-scheduler.cc.

◆ ~SatBeamScheduler()

ns3::SatBeamScheduler::~SatBeamScheduler ( )

Destroy a SatBeamScheduler.

This is the destructor for the SatBeamScheduler.

Definition at line 292 of file satellite-beam-scheduler.cc.

Member Function Documentation

◆ AddRaChannels()

void ns3::SatBeamScheduler::AddRaChannels ( std::vector< Ptr< SatTbtpMessage >> &  tbtpContainer)
private

Add RA channel information to TBTP(s).

Parameters
tbtpContainerReference to container including TBTPs already and to be added.

Definition at line 686 of file satellite-beam-scheduler.cc.

References m_maxBbFrameSize, m_superframeSeq, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.

Referenced by Schedule().

+ Here is the caller graph for this function:

◆ AddUt()

uint32_t ns3::SatBeamScheduler::AddUt ( Address  utId,
Ptr< SatLowerLayerServiceConf llsConf 
)

Add UT to scheduler.

Parameters
utIdID (mac address) of the UT to be added
llsConfLower layer service configuration for the UT.
Returns
Index of the RA channel allocated to added UT

Definition at line 431 of file satellite-beam-scheduler.cc.

References AddUtInfo(), CreateCnoEstimator(), m_controlSlotInterval, m_controlSlotsEnabled, m_logonChannelIndex, m_raChRandomIndex, m_superframeSeq, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.

+ Here is the call graph for this function:

◆ AddUtInfo()

void ns3::SatBeamScheduler::AddUtInfo ( Address  utId,
Ptr< SatUtInfo utInfo 
)
private

◆ CreateCnoEstimator()

Ptr< SatCnoEstimator > ns3::SatBeamScheduler::CreateCnoEstimator ( )
private

Create estimator for the UT according to set attributes.

Returns
pointer to created estimator

Definition at line 564 of file satellite-beam-scheduler.cc.

References ns3::SatCnoEstimator::AVERAGE, ns3::SatCnoEstimator::LAST, m_cnoEstimationWindow, m_cnoEstimatorMode, and ns3::SatCnoEstimator::MINIMUM.

Referenced by AddUt(), and Initialize().

+ Here is the caller graph for this function:

◆ CreateTimu()

Ptr< SatTimuMessage > ns3::SatBeamScheduler::CreateTimu ( ) const

Create a TIM unicast message containing enough data for a terminal to connect to the beam handled by this SatBeamScheduler.

Definition at line 1005 of file satellite-beam-scheduler.cc.

References m_beamId, and m_gwAddress.

◆ DoDispose()

void ns3::SatBeamScheduler::DoDispose ( void  )
private

Dispose actions for SatBeamScheduler.

Definition at line 298 of file satellite-beam-scheduler.cc.

References m_txCallback.

◆ DoPreResourceAllocation()

void ns3::SatBeamScheduler::DoPreResourceAllocation ( )
private

Do pre-allocation of the symbols per UT/RC, before time slot generation.

Definition at line 837 of file satellite-beam-scheduler.cc.

References m_superframeAllocator, m_utInfos, and m_utRequestInfos.

Referenced by Schedule().

+ Here is the caller graph for this function:

◆ GetGwAddress()

Address ns3::SatBeamScheduler::GetGwAddress ( void  ) const
inline

Return the address of the gateway responsible of this beam.

Definition at line 277 of file satellite-beam-scheduler.h.

References m_gwAddress.

◆ GetTypeId()

◆ HasUt()

bool ns3::SatBeamScheduler::HasUt ( Address  utId)

Check whether an UT is handled by this scheduler.

Parameters
utIdID (mac address) of the UT to be searched for
Returns
Whether or not this UT is in this beam

Definition at line 522 of file satellite-beam-scheduler.cc.

References m_utInfos.

Referenced by SendTo(), UpdateUtCno(), and UtCrReceived().

+ Here is the caller graph for this function:

◆ Initialize()

void ns3::SatBeamScheduler::Initialize ( uint32_t  beamId,
SatBeamScheduler::SendCtrlMsgCallback  cb,
Ptr< SatSuperframeSeq seq,
uint32_t  maxFrameSizeInBytes,
Address  gwAddress 
)
Parameters
beamIdID of the beam which for callback is set
cbcallback to invoke whenever a TBTP is ready for sending and must be forwarded to the Beam UTs.
seqSuperframe sequence.
maxFrameSizeInBytesMaximum non fragmented BB frame size with most robust ModCod
gwAddressMac address of the gateway responsible for this beam

Calculating to start time for super frame counts to start the scheduling from. The offset is calculated by estimating the maximum delay between GW and UT, so that the sent TBTP will be received by UT in time to be able to still send the packet in time.

It is assumed currently, that a random RA channel index is selected for each UT. If there is only one RA possible RA channel, then all UTs shall be using the same channel.

Definition at line 344 of file satellite-beam-scheduler.cc.

References CreateCnoEstimator(), ns3::SatEnums::DEFAULT_SUPERFRAME_ALLOCATOR, m_beamId, m_gwAddress, m_logonChannelIndex, m_maxBbFrameSize, m_maxTbtpTxAndProcessingDelay, m_maxTwoWayPropagationDelay, m_raChRandomIndex, m_satelliteCnoEstimator, m_superframeAllocator, m_superframeAllocatorType, m_superFrameCounter, m_superframeSeq, m_txCallback, Schedule(), and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.

+ Here is the call graph for this function:

◆ RemoveUt()

void ns3::SatBeamScheduler::RemoveUt ( Address  utId)

Remove a UT from its SatBeamScheduler.

Parameters
utIdthe terminal that is leaving this beam

Definition at line 989 of file satellite-beam-scheduler.cc.

References m_utInfos, and RemoveUtInfo().

+ Here is the call graph for this function:

◆ RemoveUtInfo()

void ns3::SatBeamScheduler::RemoveUtInfo ( UtInfoMap_t::iterator  iterator)
private

Definition at line 499 of file satellite-beam-scheduler.cc.

References m_controlSlotsEnabled, m_superframeAllocator, m_utInfos, and m_utRequestInfos.

Referenced by RemoveUt(), and TransferUtToBeam().

+ Here is the caller graph for this function:

◆ ReserveLogonChannel()

void ns3::SatBeamScheduler::ReserveLogonChannel ( uint32_t  logonChannelId)

Definition at line 1016 of file satellite-beam-scheduler.cc.

References m_logonChannelIndex, and m_raChRandomIndex.

◆ Schedule()

void ns3::SatBeamScheduler::Schedule ( )
private

◆ Send()

bool ns3::SatBeamScheduler::Send ( Ptr< SatControlMessage message)

Send control messages to the beam.

Parameters
messagePointer or control message to send.
Returns
true if sending is success, false otherwise.

Definition at line 306 of file satellite-beam-scheduler.cc.

References m_txCallback.

Referenced by Schedule().

+ Here is the caller graph for this function:

◆ SendCnoToSatellite()

void ns3::SatBeamScheduler::SendCnoToSatellite ( )
private

Send an estimation of cno to satellite, if samples have been received.

Definition at line 587 of file satellite-beam-scheduler.cc.

References m_receivedSatelliteCnoSample, m_satelliteCnoEstimator, m_satelliteMac, and SendToSatellite().

Referenced by Schedule().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendTo()

bool ns3::SatBeamScheduler::SendTo ( Ptr< SatControlMessage message,
Address  utId 
)

Send control message to an UT into the beam.

Parameters
messagePointer of control message to send.
utIdAddress of the UT to send the message to.
Returns
true if sending is success, false otherwise.

Definition at line 315 of file satellite-beam-scheduler.cc.

References HasUt(), and m_txCallback.

+ Here is the call graph for this function:

◆ SendToSatellite()

bool ns3::SatBeamScheduler::SendToSatellite ( Ptr< SatControlMessage msg,
Address  satelliteMac 
)

Send control message to the satellite.

Parameters
messagePointer of control message to send.
satelliteMacAddress of the feeder SAT to send the message to.
Returns
true if sending is success, false otherwise.

Definition at line 329 of file satellite-beam-scheduler.cc.

References m_txCallback.

Referenced by SendCnoToSatellite().

+ Here is the caller graph for this function:

◆ SetSendTbtpCallback()

void ns3::SatBeamScheduler::SetSendTbtpCallback ( SendTbtpCallback  cb)

Set the callback to inform NCC a TBTP has been sent.

Definition at line 338 of file satellite-beam-scheduler.cc.

References m_txTbtpCallback.

◆ TransferUtToBeam()

void ns3::SatBeamScheduler::TransferUtToBeam ( Address  utId,
Ptr< SatBeamScheduler destination 
)

Transfer ownership of a terminal to the given SatBeamScheduler.

Parameters
utIdthe terminal that is leaving this beam
destinationthe beam that should accept the terminal

Definition at line 951 of file satellite-beam-scheduler.cc.

References BASIC, CHECK_GATEWAY, m_gwAddress, m_handoverStrategy, m_utInfos, and RemoveUtInfo().

+ Here is the call graph for this function:

◆ UpdateDamaEntriesWithAllocs()

uint32_t ns3::SatBeamScheduler::UpdateDamaEntriesWithAllocs ( SatFrameAllocator::UtAllocInfoContainer_t utAllocContainer)
private

Update dama entries with given allocations at end of the scheduling.

Parameters
utAllocContainerReference to container including granted allocations per UT.

Definition at line 861 of file satellite-beam-scheduler.cc.

References ns3::SatConstVariables::BITS_IN_KBIT, ns3::SatConstVariables::BITS_PER_BYTE, m_controlSlotInterval, m_superframeSeq, m_utInfos, m_utRequestInfos, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.

Referenced by Schedule().

+ Here is the caller graph for this function:

◆ UpdateDamaEntriesWithReqs()

uint32_t ns3::SatBeamScheduler::UpdateDamaEntriesWithReqs ( )
private

Update dama entries with received requests at beginning of the scheduling.

Definition at line 748 of file satellite-beam-scheduler.cc.

References ns3::SatConstVariables::BITS_IN_KBIT, ns3::SatConstVariables::BITS_PER_BYTE, ns3::SatEnums::DA_RBDC, ns3::SatEnums::DA_VBDC, m_backlogRequestsTrace, m_beamId, m_superframeSeq, m_utInfos, m_utRequestInfos, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.

Referenced by Schedule().

+ Here is the caller graph for this function:

◆ UpdateSatelliteCno()

void ns3::SatBeamScheduler::UpdateSatelliteCno ( Address  satelliteMac,
double  cno 
)

Update satellite C/N0 info with the latest value.

Parameters
satelliteMacMAC of the SAT (address).
cnoC/N0 value

Definition at line 542 of file satellite-beam-scheduler.cc.

References m_receivedSatelliteCnoSample, m_satelliteCnoEstimator, and m_satelliteMac.

◆ UpdateUtCno()

void ns3::SatBeamScheduler::UpdateUtCno ( Address  utId,
double  cno 
)

Update UT C/N0 info with the latest value.

Parameters
utIdId of the UT (address).
cnoC/N0 value

Definition at line 531 of file satellite-beam-scheduler.cc.

References HasUt(), and m_utInfos.

+ Here is the call graph for this function:

◆ UtCrReceived()

void ns3::SatBeamScheduler::UtCrReceived ( Address  utId,
Ptr< SatCrMessage crMsg 
)

Receive capacity requests from UTs.

Parameters
utIdId of the UT (address).
crMsgPointer to the CR message

Definition at line 553 of file satellite-beam-scheduler.cc.

References HasUt(), and m_utInfos.

+ Here is the call graph for this function:

Member Data Documentation

◆ m_backlogRequestsTrace

TracedCallback<std::string> ns3::SatBeamScheduler::m_backlogRequestsTrace
private

Trace for backlog requests done to beam scheduler.

Definition at line 550 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and UpdateDamaEntriesWithReqs().

◆ m_beamId

uint32_t ns3::SatBeamScheduler::m_beamId
private

ID of the beam.

Definition at line 461 of file satellite-beam-scheduler.h.

Referenced by CreateTimu(), Initialize(), and UpdateDamaEntriesWithReqs().

◆ m_cnoEstimationWindow

Time ns3::SatBeamScheduler::m_cnoEstimationWindow
private

Time window for C/N0 estimation.

Definition at line 511 of file satellite-beam-scheduler.h.

Referenced by CreateCnoEstimator(), and GetTypeId().

◆ m_cnoEstimatorMode

SatCnoEstimator::EstimationMode_t ns3::SatBeamScheduler::m_cnoEstimatorMode
private

Mode used for C/N0 estimator.

Definition at line 506 of file satellite-beam-scheduler.h.

Referenced by CreateCnoEstimator(), and GetTypeId().

◆ m_controlSlotInterval

Time ns3::SatBeamScheduler::m_controlSlotInterval
private

Interval to generate control time slots.

Definition at line 540 of file satellite-beam-scheduler.h.

Referenced by AddUt(), GetTypeId(), and UpdateDamaEntriesWithAllocs().

◆ m_controlSlotsEnabled

bool ns3::SatBeamScheduler::m_controlSlotsEnabled
private

Flag to indicated if control time slots generation is enabled.

Definition at line 545 of file satellite-beam-scheduler.h.

Referenced by AddUt(), AddUtInfo(), GetTypeId(), ns3::SatBeamScheduler::SatUtInfo::IsControlSlotGenerationTime(), and RemoveUtInfo().

◆ m_exceedingCapacityTrace

TracedCallback<uint32_t> ns3::SatBeamScheduler::m_exceedingCapacityTrace
private

Trace exceeding capacity.

Definition at line 580 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and Schedule().

◆ m_frameLoadTrace

TracedCallback<uint32_t, double> ns3::SatBeamScheduler::m_frameLoadTrace
private

Trace frame load ratio.

Definition at line 565 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and Schedule().

◆ m_frameUtLoadTrace

TracedCallback<uint32_t, uint32_t> ns3::SatBeamScheduler::m_frameUtLoadTrace
private

Trace count of UTs scheduled per Frame.

Definition at line 560 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and Schedule().

◆ m_gwAddress

Address ns3::SatBeamScheduler::m_gwAddress
private

Definition at line 630 of file satellite-beam-scheduler.h.

Referenced by CreateTimu(), GetGwAddress(), Initialize(), and TransferUtToBeam().

◆ m_handoverStrategy

HandoverInformationForward_t ns3::SatBeamScheduler::m_handoverStrategy
private

Definition at line 632 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and TransferUtToBeam().

◆ m_logonChannelIndex

uint32_t ns3::SatBeamScheduler::m_logonChannelIndex
private

Logon channel ID to exclude it from the RA channel selection.

Definition at line 501 of file satellite-beam-scheduler.h.

Referenced by AddUt(), Initialize(), and ReserveLogonChannel().

◆ m_maxBbFrameSize

uint32_t ns3::SatBeamScheduler::m_maxBbFrameSize
private

Maximum size of the BB frame.

Definition at line 535 of file satellite-beam-scheduler.h.

Referenced by AddRaChannels(), Initialize(), and Schedule().

◆ m_maxTbtpTxAndProcessingDelay

Time ns3::SatBeamScheduler::m_maxTbtpTxAndProcessingDelay
private

Maximum TBTP tx and processing delay estimate at the GW (scheduler).

This is used to estimate how much time into the future the scheduler has to schedule the super frames.

Definition at line 530 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and Initialize().

◆ m_maxTwoWayPropagationDelay

Time ns3::SatBeamScheduler::m_maxTwoWayPropagationDelay
private

Maximum two-way propagation delay estimate between GW-SAT-UT-SAT-GW.

This is used to estimate how much time into the future the scheduler has to schedule the super frames.

Definition at line 523 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and Initialize().

◆ m_raChRandomIndex

Ptr<RandomVariableStream> ns3::SatBeamScheduler::m_raChRandomIndex
private

Random variable stream to select RA channel for a UT.

Definition at line 496 of file satellite-beam-scheduler.h.

Referenced by AddUt(), Initialize(), and ReserveLogonChannel().

◆ m_receivedSatelliteCnoSample

bool ns3::SatBeamScheduler::m_receivedSatelliteCnoSample
private

Indicates if Cno sample have been received since last C/N0 control message sent.

Definition at line 652 of file satellite-beam-scheduler.h.

Referenced by SendCnoToSatellite(), and UpdateSatelliteCno().

◆ m_satelliteCnoEstimator

Ptr<SatCnoEstimator> ns3::SatBeamScheduler::m_satelliteCnoEstimator
private

Estimator for the C/N0 from satellite.

Definition at line 642 of file satellite-beam-scheduler.h.

Referenced by Initialize(), SendCnoToSatellite(), and UpdateSatelliteCno().

◆ m_satelliteMac

Address ns3::SatBeamScheduler::m_satelliteMac
private

MAC address of the satellite (used when regenerative)

Definition at line 647 of file satellite-beam-scheduler.h.

Referenced by SendCnoToSatellite(), and UpdateSatelliteCno().

◆ m_superframeAllocator

Ptr<SatSuperframeAllocator> ns3::SatBeamScheduler::m_superframeAllocator
private

Superframe allocator to maintain load information of the frames and their configurations.

Definition at line 516 of file satellite-beam-scheduler.h.

Referenced by AddUtInfo(), DoPreResourceAllocation(), Initialize(), RemoveUtInfo(), and Schedule().

◆ m_superframeAllocatorType

SatEnums::SuperframeAllocatorType_t ns3::SatBeamScheduler::m_superframeAllocatorType
private

Type of SatSuperframeAllocator class to use.

Definition at line 637 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and Initialize().

◆ m_superFrameCounter

uint32_t ns3::SatBeamScheduler::m_superFrameCounter
private

Counter for super frame sequence.

Definition at line 471 of file satellite-beam-scheduler.h.

Referenced by Initialize(), and Schedule().

◆ m_superframeSeq

Ptr<SatSuperframeSeq> ns3::SatBeamScheduler::m_superframeSeq
private

Pointer to super frame sequence.

Definition at line 466 of file satellite-beam-scheduler.h.

Referenced by AddRaChannels(), AddUt(), Initialize(), Schedule(), UpdateDamaEntriesWithAllocs(), and UpdateDamaEntriesWithReqs().

◆ m_txCallback

SatBeamScheduler::SendCtrlMsgCallback ns3::SatBeamScheduler::m_txCallback
private

The control message send callback.

Definition at line 476 of file satellite-beam-scheduler.h.

Referenced by DoDispose(), Initialize(), Send(), SendTo(), and SendToSatellite().

◆ m_txTbtpCallback

SatBeamScheduler::SendTbtpCallback ns3::SatBeamScheduler::m_txTbtpCallback
private

The TBTP send callback to inform GW Mac.

Definition at line 481 of file satellite-beam-scheduler.h.

Referenced by Schedule(), and SetSendTbtpCallback().

◆ m_unmetCapacityTrace

TracedCallback<uint32_t> ns3::SatBeamScheduler::m_unmetCapacityTrace
private

Trace unmet capacity.

Definition at line 575 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and Schedule().

◆ m_usableCapacityTrace

TracedCallback<uint32_t> ns3::SatBeamScheduler::m_usableCapacityTrace
private

Trace usable capacity.

Definition at line 570 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and Schedule().

◆ m_utInfos

UtInfoMap_t ns3::SatBeamScheduler::m_utInfos
private

◆ m_utRequestInfos

UtReqInfoContainer_t ns3::SatBeamScheduler::m_utRequestInfos
private

Container including every UT's allocation requests.

Definition at line 491 of file satellite-beam-scheduler.h.

Referenced by AddUtInfo(), DoPreResourceAllocation(), RemoveUtInfo(), UpdateDamaEntriesWithAllocs(), and UpdateDamaEntriesWithReqs().

◆ m_waveformTrace

TracedCallback<uint32_t> ns3::SatBeamScheduler::m_waveformTrace
private

Trace first wave form scheduled for the UT.

Definition at line 555 of file satellite-beam-scheduler.h.

Referenced by GetTypeId(), and Schedule().


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