class for module Beam Scheduler. More...
#include "satellite-beam-scheduler.h"
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... | |
void | ConnectGw (Mac48Address address) |
Connect a new GW address to this scheduler. More... | |
void | ConnectUt (Mac48Address address) |
Connect a new UT address to this scheduler. More... | |
Ptr< SatTimuMessage > | CreateTimu () const |
Create a TIM unicast message containing enough data for a terminal to connect to the beam handled by this SatBeamScheduler. More... | |
void | DisconnectGw (Mac48Address address) |
Disconnect a new GW address from this scheduler. More... | |
void | DisconnectUt (Mac48Address address) |
Disconnect a new UT address from this scheduler. More... | |
Address | GetGwAddress (void) const |
Return the address of the gateway responsible of this beam. More... | |
Address | GetSatAddress (void) const |
Return the address of the satellite responsible of this beam. More... | |
bool | HasUt () |
Check whether an UT is handled by this scheduler. More... | |
bool | HasUt (Address utId) |
Check whether an UT is handled by this scheduler. More... | |
void | Initialize (uint32_t satId, uint32_t beamId, Ptr< SatNetDevice > gwNetDevice, Ptr< SatOrbiterNetDevice > orbiterNetDevice, SatBeamScheduler::SendCtrlMsgCallback cb, Ptr< SatSuperframeSeq > seq, uint32_t maxFrameSizeInBytes, Address satAddress, 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 | SetUseLora (bool useLora) |
Set if SNS-3 is used with Lora standard. 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_t > | UtReqInfoContainer_t |
Container to store capacity request information for the UTs. More... | |
typedef std::pair< Address, SatFrameAllocator::SatFrameAllocReq > | UtReqInfoItem_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< SatCnoEstimator > | CreateCnoEstimator () |
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 |
Ptr< SatGwMac > | m_gwMac |
GW MAC linked to this beam. More... | |
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< SatOrbiterNetDevice > | m_orbiterNetDevice |
OrbiterNetDevice on satellite linked to this beam. 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... | |
Address | m_satAddress |
Ptr< SatCnoEstimator > | m_satelliteCnoEstimator |
Estimator for the C/N0 from satellite. More... | |
Address | m_satelliteMac |
MAC address of the satellite (used when regenerative) More... | |
uint32_t | m_satId |
ID of the satellite using this beam. More... | |
Ptr< SatSuperframeAllocator > | m_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< SatSuperframeSeq > | m_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... | |
bool | m_useLora |
Flag indicating if lora standard is used. 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... | |
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:
TBTP signaling (generation)
One scheduler per spot-beam is created and utilized.
Definition at line 80 of file satellite-beam-scheduler.h.
typedef void(* ns3::SatBeamScheduler::BacklogRequestsTraceCallback) (std::string trace) |
Callback signature for BacklogRequestsTrace
trace source.
trace | A string containing the following information:
|
Definition at line 243 of file satellite-beam-scheduler.h.
typedef void(* ns3::SatBeamScheduler::ExceedingCapacityTraceCallback) (uint32_t exceedingCapacity) |
Callback signature for the ExceedingCapacityTrace
trace source.
exceedingCapacity | The amount capacity offered exceeds capacity requested, in kbps. |
Definition at line 273 of file satellite-beam-scheduler.h.
typedef Callback<bool, Ptr<SatControlMessage>, const Address&> ns3::SatBeamScheduler::SendCtrlMsgCallback |
msg | the message send |
address | Packet destination address |
Definition at line 119 of file satellite-beam-scheduler.h.
typedef Callback<void, Ptr<SatTbtpMessage> > ns3::SatBeamScheduler::SendTbtpCallback |
msg | the TBTP sent |
Definition at line 124 of file satellite-beam-scheduler.h.
typedef Callback<void, uint32_t, Ptr<SatTbtpMessage> > ns3::SatBeamScheduler::TbtpAddCallback |
id | Id of the TBTP message to add. |
tbtp | Pointer to the TBTP message to add. |
Definition at line 130 of file satellite-beam-scheduler.h.
typedef void(* ns3::SatBeamScheduler::UnmetCapacityTraceCallback) (uint32_t unmetCapacity) |
Callback signature for the UnmetCapacityTrace
trace source.
unmetCapacity | The amount of capacity requested but not used, in kbps. |
Definition at line 265 of file satellite-beam-scheduler.h.
typedef void(* ns3::SatBeamScheduler::UsableCapacityTraceCallback) (uint32_t usableCapacity) |
Callback signature for the UsableCapacityTrace
trace source.
usableCapacity | The amount of capacity allocated, in kbps. |
Definition at line 257 of file satellite-beam-scheduler.h.
|
private |
Map container to store UT information.
Definition at line 463 of file satellite-beam-scheduler.h.
|
private |
Container to store capacity request information for the UTs.
Definition at line 468 of file satellite-beam-scheduler.h.
|
private |
Pair to store capacity request information for the UT.
Definition at line 458 of file satellite-beam-scheduler.h.
typedef void(* ns3::SatBeamScheduler::WaveformTraceCallback) (uint32_t waveformId) |
Callback signature for WaveformTrace
trace source.
waveformId | The first waveform scheduled for a UT. |
Definition at line 250 of file satellite-beam-scheduler.h.
Strategies to exchange informations between beams.
Enumerator | |
---|---|
BASIC | |
CHECK_GATEWAY |
Definition at line 87 of file satellite-beam-scheduler.h.
ns3::SatBeamScheduler::SatBeamScheduler | ( | ) |
Construct a SatBeamScheduler.
This is the constructor for the SatBeamScheduler
Definition at line 282 of file satellite-beam-scheduler.cc.
ns3::SatBeamScheduler::~SatBeamScheduler | ( | ) |
Destroy a SatBeamScheduler.
This is the destructor for the SatBeamScheduler.
Definition at line 298 of file satellite-beam-scheduler.cc.
|
private |
Add RA channel information to TBTP(s).
tbtpContainer | Reference to container including TBTPs already and to be added. |
Definition at line 715 of file satellite-beam-scheduler.cc.
References m_maxBbFrameSize, m_superframeSeq, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.
Referenced by Schedule().
uint32_t ns3::SatBeamScheduler::AddUt | ( | Address | utId, |
Ptr< SatLowerLayerServiceConf > | llsConf | ||
) |
Add UT to scheduler.
utId | ID (mac address) of the UT to be added |
llsConf | Lower layer service configuration for the UT. |
Definition at line 447 of file satellite-beam-scheduler.cc.
References AddUtInfo(), CreateCnoEstimator(), m_controlSlotInterval, m_controlSlotsEnabled, m_logonChannelIndex, m_raChRandomIndex, m_superframeSeq, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.
|
private |
Definition at line 484 of file satellite-beam-scheduler.cc.
References ns3::SatFrameAllocator::SatFrameAllocReq::m_address, ns3::SatFrameAllocator::SatFrameAllocReq::m_cno, m_controlSlotsEnabled, m_superframeAllocator, m_utInfos, and m_utRequestInfos.
Referenced by AddUt().
void ns3::SatBeamScheduler::ConnectGw | ( | Mac48Address | address | ) |
Connect a new GW address to this scheduler.
address | The GW address to connect |
Definition at line 1037 of file satellite-beam-scheduler.cc.
References m_beamId, and m_orbiterNetDevice.
void ns3::SatBeamScheduler::ConnectUt | ( | Mac48Address | address | ) |
Connect a new UT address to this scheduler.
address | The UT address to connect |
Definition at line 1019 of file satellite-beam-scheduler.cc.
References m_beamId, m_gwMac, and m_orbiterNetDevice.
|
private |
Create estimator for the UT according to set attributes.
Definition at line 588 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().
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 1069 of file satellite-beam-scheduler.cc.
References m_beamId, m_gwAddress, m_satAddress, and m_satId.
void ns3::SatBeamScheduler::DisconnectGw | ( | Mac48Address | address | ) |
Disconnect a new GW address from this scheduler.
address | The GW address to disconnect |
Definition at line 1045 of file satellite-beam-scheduler.cc.
References m_beamId, and m_orbiterNetDevice.
void ns3::SatBeamScheduler::DisconnectUt | ( | Mac48Address | address | ) |
Disconnect a new UT address from this scheduler.
address | The UT address to disconnect |
Definition at line 1028 of file satellite-beam-scheduler.cc.
References m_beamId, m_gwMac, and m_orbiterNetDevice.
|
private |
Dispose actions for SatBeamScheduler.
Definition at line 304 of file satellite-beam-scheduler.cc.
References m_txCallback.
|
private |
Do pre-allocation of the symbols per UT/RC, before time slot generation.
Definition at line 866 of file satellite-beam-scheduler.cc.
References m_superframeAllocator, m_utInfos, and m_utRequestInfos.
Referenced by Schedule().
|
inline |
Return the address of the gateway responsible of this beam.
Definition at line 335 of file satellite-beam-scheduler.h.
References m_gwAddress.
|
inline |
Return the address of the satellite responsible of this beam.
Definition at line 327 of file satellite-beam-scheduler.h.
References m_satAddress.
|
static |
Get the type ID.
Definition at line 192 of file satellite-beam-scheduler.cc.
References ns3::SatCnoEstimator::AVERAGE, BASIC, CHECK_GATEWAY, ns3::SatEnums::DEFAULT_SUPERFRAME_ALLOCATOR, ns3::SatCnoEstimator::LAST, m_backlogRequestsTrace, m_cnoEstimationWindow, m_cnoEstimatorMode, m_controlSlotInterval, m_controlSlotsEnabled, m_exceedingCapacityTrace, m_frameLoadTrace, m_frameUtLoadTrace, m_handoverStrategy, m_maxTbtpTxAndProcessingDelay, m_maxTwoWayPropagationDelay, m_superframeAllocatorType, m_unmetCapacityTrace, m_usableCapacityTrace, m_waveformTrace, and ns3::SatCnoEstimator::MINIMUM.
bool ns3::SatBeamScheduler::HasUt | ( | ) |
Check whether an UT is handled by this scheduler.
Definition at line 547 of file satellite-beam-scheduler.cc.
References m_utInfos.
Referenced by SendTo(), UpdateUtCno(), and UtCrReceived().
bool ns3::SatBeamScheduler::HasUt | ( | Address | utId | ) |
Check whether an UT is handled by this scheduler.
utId | ID (mac address) of the UT to be searched for |
Definition at line 538 of file satellite-beam-scheduler.cc.
References m_utInfos.
void ns3::SatBeamScheduler::Initialize | ( | uint32_t | satId, |
uint32_t | beamId, | ||
Ptr< SatNetDevice > | gwNetDevice, | ||
Ptr< SatOrbiterNetDevice > | orbiterNetDevice, | ||
SatBeamScheduler::SendCtrlMsgCallback | cb, | ||
Ptr< SatSuperframeSeq > | seq, | ||
uint32_t | maxFrameSizeInBytes, | ||
Address | satAddress, | ||
Address | gwAddress | ||
) |
beamId | ID of the beam which for callback is set |
satId | ID of the satellite using the beam which for callback is set |
gwNetDevice | GW NetDevice linked to this beam |
orbiterNetDevice | OrbiterNetDevice on satellite linked to this beam |
cb | callback to invoke whenever a TBTP is ready for sending and must be forwarded to the Beam UTs. |
seq | Superframe sequence. |
maxFrameSizeInBytes | Maximum non fragmented BB frame size with most robust ModCod |
satAddress | Mac address of the satellite responsible for this beam |
gwAddress | Mac 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 352 of file satellite-beam-scheduler.cc.
References CreateCnoEstimator(), ns3::SatEnums::DEFAULT_SUPERFRAME_ALLOCATOR, m_beamId, m_gwAddress, m_gwMac, m_logonChannelIndex, m_maxBbFrameSize, m_maxTbtpTxAndProcessingDelay, m_maxTwoWayPropagationDelay, m_orbiterNetDevice, m_raChRandomIndex, m_satAddress, m_satelliteCnoEstimator, m_satId, m_superframeAllocator, m_superframeAllocatorType, m_superFrameCounter, m_superframeSeq, m_txCallback, Schedule(), and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.
void ns3::SatBeamScheduler::RemoveUt | ( | Address | utId | ) |
Remove a UT from its SatBeamScheduler.
utId | the terminal that is leaving this beam |
Definition at line 1053 of file satellite-beam-scheduler.cc.
References m_utInfos, and RemoveUtInfo().
|
private |
Definition at line 515 of file satellite-beam-scheduler.cc.
References m_controlSlotsEnabled, m_superframeAllocator, m_utInfos, and m_utRequestInfos.
Referenced by RemoveUt(), and TransferUtToBeam().
void ns3::SatBeamScheduler::ReserveLogonChannel | ( | uint32_t | logonChannelId | ) |
Definition at line 1082 of file satellite-beam-scheduler.cc.
References m_logonChannelIndex, and m_raChRandomIndex.
|
private |
Schedule UTs added (registered) to scheduler.
Definition at line 627 of file satellite-beam-scheduler.cc.
References AddRaChannels(), DoPreResourceAllocation(), m_exceedingCapacityTrace, m_frameLoadTrace, m_frameUtLoadTrace, m_maxBbFrameSize, m_superframeAllocator, m_superFrameCounter, m_superframeSeq, m_txTbtpCallback, m_unmetCapacityTrace, m_usableCapacityTrace, m_useLora, m_utInfos, m_waveformTrace, Send(), SendCnoToSatellite(), ns3::SatConstVariables::SUPERFRAME_SEQUENCE, UpdateDamaEntriesWithAllocs(), and UpdateDamaEntriesWithReqs().
Referenced by Initialize().
bool ns3::SatBeamScheduler::Send | ( | Ptr< SatControlMessage > | message | ) |
Send control messages to the beam.
message | Pointer or control message to send. |
Definition at line 312 of file satellite-beam-scheduler.cc.
References m_txCallback.
Referenced by Schedule().
|
private |
Send an estimation of cno to satellite, if samples have been received.
Definition at line 611 of file satellite-beam-scheduler.cc.
References m_receivedSatelliteCnoSample, m_satelliteCnoEstimator, m_satelliteMac, and SendToSatellite().
Referenced by Schedule().
bool ns3::SatBeamScheduler::SendTo | ( | Ptr< SatControlMessage > | message, |
Address | utId | ||
) |
Send control message to an UT into the beam.
message | Pointer of control message to send. |
utId | Address of the UT to send the message to. |
Definition at line 321 of file satellite-beam-scheduler.cc.
References HasUt(), and m_txCallback.
bool ns3::SatBeamScheduler::SendToSatellite | ( | Ptr< SatControlMessage > | msg, |
Address | satelliteMac | ||
) |
Send control message to the satellite.
message | Pointer of control message to send. |
satelliteMac | Address of the feeder SAT to send the message to. |
Definition at line 335 of file satellite-beam-scheduler.cc.
References m_txCallback.
Referenced by SendCnoToSatellite().
void ns3::SatBeamScheduler::SetSendTbtpCallback | ( | SendTbtpCallback | cb | ) |
Set the callback to inform NCC a TBTP has been sent.
Definition at line 344 of file satellite-beam-scheduler.cc.
References m_txTbtpCallback.
void ns3::SatBeamScheduler::SetUseLora | ( | bool | useLora | ) |
Set if SNS-3 is used with Lora standard.
TBTPs are not sent in this mode.
useLora | boolean indicating if lora is used. |
Definition at line 1105 of file satellite-beam-scheduler.cc.
References m_useLora.
void ns3::SatBeamScheduler::TransferUtToBeam | ( | Address | utId, |
Ptr< SatBeamScheduler > | destination | ||
) |
Transfer ownership of a terminal to the given SatBeamScheduler.
utId | the terminal that is leaving this beam |
destination | the beam that should accept the terminal |
Definition at line 980 of file satellite-beam-scheduler.cc.
References BASIC, CHECK_GATEWAY, m_gwAddress, m_handoverStrategy, m_satAddress, m_utInfos, and RemoveUtInfo().
|
private |
Update dama entries with given allocations at end of the scheduling.
utAllocContainer | Reference to container including granted allocations per UT. |
Definition at line 890 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().
|
private |
Update dama entries with received requests at beginning of the scheduling.
Definition at line 777 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().
void ns3::SatBeamScheduler::UpdateSatelliteCno | ( | Address | satelliteMac, |
double | cno | ||
) |
Update satellite C/N0 info with the latest value.
satelliteMac | MAC of the SAT (address). |
cno | C/N0 value |
Definition at line 566 of file satellite-beam-scheduler.cc.
References m_receivedSatelliteCnoSample, m_satelliteCnoEstimator, and m_satelliteMac.
void ns3::SatBeamScheduler::UpdateUtCno | ( | Address | utId, |
double | cno | ||
) |
Update UT C/N0 info with the latest value.
utId | Id of the UT (address). |
cno | C/N0 value |
Definition at line 555 of file satellite-beam-scheduler.cc.
References HasUt(), and m_utInfos.
void ns3::SatBeamScheduler::UtCrReceived | ( | Address | utId, |
Ptr< SatCrMessage > | crMsg | ||
) |
Receive capacity requests from UTs.
utId | Id of the UT (address). |
crMsg | Pointer to the CR message |
Definition at line 577 of file satellite-beam-scheduler.cc.
References HasUt(), and m_utInfos.
|
private |
Trace for backlog requests done to beam scheduler.
Definition at line 629 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and UpdateDamaEntriesWithReqs().
|
private |
ID of the beam.
Definition at line 530 of file satellite-beam-scheduler.h.
Referenced by ConnectGw(), ConnectUt(), CreateTimu(), DisconnectGw(), DisconnectUt(), Initialize(), and UpdateDamaEntriesWithReqs().
|
private |
Time window for C/N0 estimation.
Definition at line 590 of file satellite-beam-scheduler.h.
Referenced by CreateCnoEstimator(), and GetTypeId().
|
private |
Mode used for C/N0 estimator.
Definition at line 585 of file satellite-beam-scheduler.h.
Referenced by CreateCnoEstimator(), and GetTypeId().
|
private |
Interval to generate control time slots.
Definition at line 619 of file satellite-beam-scheduler.h.
Referenced by AddUt(), GetTypeId(), and UpdateDamaEntriesWithAllocs().
|
private |
Flag to indicated if control time slots generation is enabled.
Definition at line 624 of file satellite-beam-scheduler.h.
Referenced by AddUt(), AddUtInfo(), GetTypeId(), ns3::SatBeamScheduler::SatUtInfo::IsControlSlotGenerationTime(), and RemoveUtInfo().
|
private |
Trace exceeding capacity.
Definition at line 659 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and Schedule().
|
private |
Trace frame load ratio.
Definition at line 644 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and Schedule().
|
private |
Trace count of UTs scheduled per Frame.
Definition at line 639 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and Schedule().
|
private |
Definition at line 711 of file satellite-beam-scheduler.h.
Referenced by CreateTimu(), GetGwAddress(), Initialize(), and TransferUtToBeam().
|
private |
GW MAC linked to this beam.
Definition at line 535 of file satellite-beam-scheduler.h.
Referenced by ConnectUt(), DisconnectUt(), and Initialize().
|
private |
Definition at line 713 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and TransferUtToBeam().
|
private |
Logon channel ID to exclude it from the RA channel selection.
Definition at line 580 of file satellite-beam-scheduler.h.
Referenced by AddUt(), Initialize(), and ReserveLogonChannel().
|
private |
Maximum size of the BB frame.
Definition at line 614 of file satellite-beam-scheduler.h.
Referenced by AddRaChannels(), Initialize(), and Schedule().
|
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 609 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and Initialize().
|
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 602 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and Initialize().
|
private |
OrbiterNetDevice on satellite linked to this beam.
Definition at line 540 of file satellite-beam-scheduler.h.
Referenced by ConnectGw(), ConnectUt(), DisconnectGw(), DisconnectUt(), and Initialize().
|
private |
Random variable stream to select RA channel for a UT.
Definition at line 575 of file satellite-beam-scheduler.h.
Referenced by AddUt(), Initialize(), and ReserveLogonChannel().
|
private |
Indicates if Cno sample have been received since last C/N0 control message sent.
Definition at line 733 of file satellite-beam-scheduler.h.
Referenced by SendCnoToSatellite(), and UpdateSatelliteCno().
|
private |
Definition at line 709 of file satellite-beam-scheduler.h.
Referenced by CreateTimu(), GetSatAddress(), Initialize(), and TransferUtToBeam().
|
private |
Estimator for the C/N0 from satellite.
Definition at line 723 of file satellite-beam-scheduler.h.
Referenced by Initialize(), SendCnoToSatellite(), and UpdateSatelliteCno().
|
private |
MAC address of the satellite (used when regenerative)
Definition at line 728 of file satellite-beam-scheduler.h.
Referenced by SendCnoToSatellite(), and UpdateSatelliteCno().
|
private |
ID of the satellite using this beam.
Definition at line 525 of file satellite-beam-scheduler.h.
Referenced by CreateTimu(), and Initialize().
|
private |
Superframe allocator to maintain load information of the frames and their configurations.
Definition at line 595 of file satellite-beam-scheduler.h.
Referenced by AddUtInfo(), DoPreResourceAllocation(), Initialize(), RemoveUtInfo(), and Schedule().
|
private |
Type of SatSuperframeAllocator class to use.
Definition at line 718 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and Initialize().
|
private |
Counter for super frame sequence.
Definition at line 550 of file satellite-beam-scheduler.h.
Referenced by Initialize(), and Schedule().
|
private |
Pointer to super frame sequence.
Definition at line 545 of file satellite-beam-scheduler.h.
Referenced by AddRaChannels(), AddUt(), Initialize(), Schedule(), UpdateDamaEntriesWithAllocs(), and UpdateDamaEntriesWithReqs().
|
private |
The control message send callback.
Definition at line 555 of file satellite-beam-scheduler.h.
Referenced by DoDispose(), Initialize(), Send(), SendTo(), and SendToSatellite().
|
private |
The TBTP send callback to inform GW Mac.
Definition at line 560 of file satellite-beam-scheduler.h.
Referenced by Schedule(), and SetSendTbtpCallback().
|
private |
Trace unmet capacity.
Definition at line 654 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and Schedule().
|
private |
Trace usable capacity.
Definition at line 649 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and Schedule().
|
private |
Flag indicating if lora standard is used.
Definition at line 738 of file satellite-beam-scheduler.h.
Referenced by Schedule(), and SetUseLora().
|
private |
Map to store UT information in beam for updating purposes.
Definition at line 565 of file satellite-beam-scheduler.h.
Referenced by AddUtInfo(), DoPreResourceAllocation(), HasUt(), RemoveUt(), RemoveUtInfo(), Schedule(), TransferUtToBeam(), UpdateDamaEntriesWithAllocs(), UpdateDamaEntriesWithReqs(), UpdateUtCno(), and UtCrReceived().
|
private |
Container including every UT's allocation requests.
Definition at line 570 of file satellite-beam-scheduler.h.
Referenced by AddUtInfo(), DoPreResourceAllocation(), RemoveUtInfo(), UpdateDamaEntriesWithAllocs(), and UpdateDamaEntriesWithReqs().
|
private |
Trace first wave form scheduled for the UT.
Definition at line 634 of file satellite-beam-scheduler.h.
Referenced by GetTypeId(), and Schedule().