ns3::SatRequestManager Class Reference

SatRequestManager analyzes periodically or on-a-need-basis UT's buffer status for different RC indices (= queues), and sends Capacity Requests to NCC according to need and lower layer service configuration. More...

#include "satellite-request-manager.h"

+ Inheritance diagram for ns3::SatRequestManager:
+ Collaboration diagram for ns3::SatRequestManager:

Public Types

typedef void(* AvbdcTraceCallback) (uint32_t requestSize)
 Callback signature for AvbdcTrace trace source. More...
 
typedef void(* CapacityRequestTraceCallback) (Time time, Mac48Address address, Ptr< SatCrMessage > message)
 Callback signature for CrTrace trace source. More...
 
typedef void(* CapacityRequestTraceLogCallback) (std::string traceLog)
 Callback signature for CrLogTrace trace source. More...
 
typedef Callback< bool > CtrlMsgTxPossibleCallback
 Callback to check whether control msg transmission is possible. More...
 
typedef Callback< bool > LogonMsgTxPossibleCallback
 Callback to check whether logon msg transmission is possible. More...
 
typedef std::vector< std::deque< std::pair< Time, uint32_t > > > PendingRbdcRequestsContainer_t
 Container for the pending RBDC requests. More...
 
typedef Callback< SatQueue::QueueStats_t, bool > QueueCallback
 Callback to fetch queue statistics. More...
 
typedef void(* RbdcTraceCallback) (uint32_t requestSize)
 Callback signature for RbdcTrace trace source. More...
 
typedef Callback< bool, Ptr< SatControlMessage >, const Address & > SendCtrlCallback
 Control message sending callback. More...
 
typedef void(* VbdcTraceCallback) (uint32_t requestSize)
 Callback signature for VbdcTrace trace source. More...
 

Public Member Functions

 SatRequestManager ()
 Default constructor. More...
 
virtual ~SatRequestManager ()
 Destructor for SatRequestManager. More...
 
void AddQueueCallback (uint8_t rcIndex, SatRequestManager::QueueCallback cb)
 Add a callback to fetch queue statistics. More...
 
void AssignedDaResources (uint8_t rcIndex, uint32_t bytes)
 Sat UT MAC informs that certain amount of resources have been received in TBTP. More...
 
void CnoUpdated (uint32_t satId, uint32_t beamId, Address sourceMac, Address gwId, double cno, bool isSatelliteMac)
 Update C/N0 information from lower layer. More...
 
virtual void DoDispose ()
 Dispose of this class instance. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the type ID of instance. More...
 
void Initialize (Ptr< SatLowerLayerServiceConf > llsConf, Time superFrameDuration)
 
void ReceiveQueueEvent (SatQueue::QueueEvent_t event, uint8_t rcIndex)
 Receive a queue event. More...
 
void SendHandoverRecommendation (uint32_t beamId)
 Send a handover recommendation message to the gateway. More...
 
void SendLogonMessage ()
 Send a logon message to the gateway. More...
 
void SetCtrlMsgCallback (SatRequestManager::SendCtrlCallback cb)
 Set the control message sending callback. More...
 
void SetCtrlMsgTxPossibleCallback (SatRequestManager::CtrlMsgTxPossibleCallback cb)
 Set the callback to check the possibility of sending a control message. More...
 
void SetGwAddress (Mac48Address address)
 Set the GW address needed for CR transmission. More...
 
void SetHeaderOffsetVbdc (double headerOffsetVbcd)
 Update the value of header offset. More...
 
void SetLogonMsgTxPossibleCallback (SatRequestManager::LogonMsgTxPossibleCallback cb)
 Set the callback to check the possibility of sending a control message. More...
 
void SetNodeInfo (Ptr< SatNodeInfo > nodeInfo)
 Set the node info of this UT. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 inherited from Object More...
 

Private Types

typedef std::map< uint8_t, QueueCallbackCallbackContainer_t
 

Private Member Functions

void CheckForVolumeBacklogPersistence ()
 Check whether VBDC volume backlog persistence shall expire and whether UT should update request by AVBDC due pending requests. More...
 
void DoEvaluation ()
 Do evaluation of the buffer status and decide whether or not to send CRs. More...
 
void DoPeriodicalEvaluation ()
 Periodically check the buffer status and whether a new CR is needed to be sent. More...
 
uint32_t DoRbdc (uint8_t rc, const SatQueue::QueueStats_t &stats)
 Do RBDC calculation for a RC. More...
 
uint32_t DoRbdcLegacy (uint8_t rc, const SatQueue::QueueStats_t &stats)
 Legacy algorithm to do RBDC calculation for a RC. More...
 
SatEnums::SatCapacityAllocationCategory_t DoVbdc (uint8_t rc, const SatQueue::QueueStats_t &stats, uint32_t &rcVbdcBytes)
 Do VBDC calculation for a RC. More...
 
SatEnums::SatCapacityAllocationCategory_t DoVbdcLegacy (uint8_t rc, const SatQueue::QueueStats_t &stats, uint32_t &rcVbdcBytes)
 Legacy algorithm to do VBDC calculation for a RC. More...
 
uint32_t GetAvbdcBytes (uint8_t rc, const SatQueue::QueueStats_t &stats)
 Calculate the needed AVBDC bytes for a RC. More...
 
uint32_t GetPendingRbdcSumKbps (uint8_t rc)
 Calculate the pending RBDC requests related to a specific RC. More...
 
uint16_t GetQuantizedRbdcValue (uint8_t index, uint16_t reqRbdcKbps) const
 The RBDC value is signalled with 8 bits, which means that to be able to signal larger than 256 values, we need to use quantization and coding to convert the raw values into defined discrete values. More...
 
uint16_t GetQuantizedVbdcValue (uint8_t index, uint16_t reqVbdcBytes) const
 The RBDC value is signalled with 8 bits, which means that to be able to signal larger than 256 values, we need to use quantization and coding to convert the raw values into defined discrete values. More...
 
uint32_t GetVbdcBytes (uint8_t rc, const SatQueue::QueueStats_t &stats)
 Calculate the needed VBDC bytes for a RC. More...
 
void RemoveOldEntriesFromPendingRbdcContainer (uint8_t rc)
 Clean-up the pending RBDC container from old samples. More...
 
void Reset (uint8_t rc)
 Reset RC index counters. More...
 
void ResetAssignedResources ()
 Reset the assigned resources counter. More...
 
void SendCapacityRequest (Ptr< SatCrMessage > crMsg)
 Send the capacity request control msg via txCallback to SatNetDevice. More...
 
void SendCnoReport ()
 Send the C/N0 report message via txCallback to SatNetDevice. More...
 
void UpdatePendingRbdcCounters (uint8_t rc, uint32_t kbps)
 Update the pending RBDC counters with new request information. More...
 
void UpdatePendingVbdcCounters ()
 Update pending VBDC counters for all RCs. More...
 
void UpdatePendingVbdcCounters (uint8_t rc)
 Update the pending VBDC counters with new request information. More...
 

Private Attributes

std::vector< uint32_t > m_assignedDaResourcesBytes
 Dedicated assignments received within the previous superframe. More...
 
TracedCallback< uint32_t > m_aVbdcTrace
 
EventId m_cnoReportEvent
 Event id for the C/NO report. More...
 
Time m_cnoReportInterval
 Interval to send C/N0 report. More...
 
TracedCallback< Time, Mac48Address, Ptr< SatCrMessage > > m_crTrace
 Trace callback used for CR tracing. More...
 
TracedCallback< std::string > m_crTraceLog
 Trace callback used for CR tracing. More...
 
SendCtrlCallback m_ctrlCallback
 Callback to send control messages. More...
 
CtrlMsgTxPossibleCallback m_ctrlMsgTxPossibleCallback
 Callback to check from MAC if a control msg may be transmitted in the near future. More...
 
bool m_enableOnDemandEvaluation
 Enable on demand / ad hoc CR evaluation. More...
 
Time m_evaluationInterval
 Interval to do the periodical CR evaluation. More...
 
bool m_forcedAvbdcUpdate
 Flag indicating that UT should send a forced AVBDC request, since the volume backlog persistence shall expire and UT still has pending requested bytes. More...
 
double m_gainValueK
 Gain value K for the RBDC calculation. More...
 
Mac48Address m_gwAddress
 GW address. More...
 
double m_headerOffsetVbcd
 Additional VBDC to add to take into account E2E header in regenerative LINK or NETWORK, and in worst case. More...
 
double m_lastCno
 The last received on E2E C/N0 information from lower layer in linear format. More...
 
double m_lastSatelliteCno
 The last received user link C/N0 information from lower layer in linear format. More...
 
Time m_lastVbdcCrSent
 Time when the last CR including VBDC request was sent. More...
 
Ptr< SatLowerLayerServiceConfm_llsConf
 Lower layer services conf pointer, which holds the configurations for RCs and capacity allocation categories. More...
 
LogonMsgTxPossibleCallback m_logonMsgTxPossibleCallback
 Callback to check from MAC if a logon msg may be transmitted in the near future. More...
 
Ptr< SatNodeInfom_nodeInfo
 Node information. More...
 
uint32_t m_numValues
 
double m_overEstimationFactor
 Over-estimation factor used for estimating a bit more resources than there are in the buffers. More...
 
PendingRbdcRequestsContainer_t m_pendingRbdcRequestsKbps
 Key = RC index Value -> Key = Time when the request was sent Value -> Value = Requested bitrate or bytes. More...
 
std::vector< uint32_t > m_pendingVbdcBytes
 Pending VBDC counter for each RC index. More...
 
std::vector< Time > m_previousEvaluationTime
 Time when CR evaluation was previously done. More...
 
CallbackContainer_t m_queueCallbacks
 The queue enque/deque rate getter callback. More...
 
SatEnums::RbdcCapacityRequestAlgorithm_t m_rbdcCapacityRequestAlgorithm
 The RBDC capacity algorithm to use. More...
 
TracedCallback< uint32_t > m_rbdcTrace
 Traced callbacks for all sent RBDC and VBDC capacity requests. More...
 
Time m_rttEstimate
 Round trip time estimate. More...
 
Mac48Address m_satAddress
 SAT address. More...
 
Time m_superFrameDuration
 Superframe duration used for updating the volume backlog persistence. More...
 
SatEnums::VbdcCapacityRequestAlgorithm_t m_vbdcCapacityRequestAlgorithm
 The VBDC capacity algorithm to use. More...
 
TracedCallback< uint32_t > m_vbdcTrace
 

Static Private Attributes

static const uint32_t m_rbdcScalingFactors [4] = {1, 4, 16, 64}
 
static const uint32_t m_vbdcScalingFactors [4] = {1, 8, 64, 512}
 

Detailed Description

SatRequestManager analyzes periodically or on-a-need-basis UT's buffer status for different RC indices (= queues), and sends Capacity Requests to NCC according to need and lower layer service configuration.

Request manager supports currently RBDC, AVBDC and VBDC request classes. However, RBDC and VBDC may not be configured in the same simulation for the same RC index.

Definition at line 48 of file satellite-request-manager.h.

Member Typedef Documentation

◆ AvbdcTraceCallback

typedef void(* ns3::SatRequestManager::AvbdcTraceCallback) (uint32_t requestSize)

Callback signature for AvbdcTrace trace source.

Parameters
requestSizeamount of requested size via AVBDC (in bytes).

Definition at line 224 of file satellite-request-manager.h.

◆ CallbackContainer_t

typedef std::map<uint8_t, QueueCallback> ns3::SatRequestManager::CallbackContainer_t
private

Definition at line 244 of file satellite-request-manager.h.

◆ CapacityRequestTraceCallback

typedef void(* ns3::SatRequestManager::CapacityRequestTraceCallback) (Time time, Mac48Address address, Ptr< SatCrMessage > message)

Callback signature for CrTrace trace source.

Parameters
timethe current simulation time.
addressthe MAC address of the current node.
messagethe CR message to be transmitted.

Definition at line 190 of file satellite-request-manager.h.

◆ CapacityRequestTraceLogCallback

typedef void(* ns3::SatRequestManager::CapacityRequestTraceLogCallback) (std::string traceLog)

Callback signature for CrLogTrace trace source.

Parameters
traceLogA string containing the following information:
  • the current simulation time (in seconds),
  • node ID,
  • RC index,
  • type of capacity allocation category, e.g., RBDC, VBDC, or AVBDC,
  • request size (in kbps for RBDC or in bytes for VBDC), and
  • queue size (in bytes).

Definition at line 206 of file satellite-request-manager.h.

◆ CtrlMsgTxPossibleCallback

Callback to check whether control msg transmission is possible.

Returns
boolean indicating whether control msg transmission is possible

Definition at line 96 of file satellite-request-manager.h.

◆ LogonMsgTxPossibleCallback

Callback to check whether logon msg transmission is possible.

Returns
boolean indicating whether logon msg transmission is possible

Definition at line 102 of file satellite-request-manager.h.

◆ PendingRbdcRequestsContainer_t

typedef std::vector<std::deque<std::pair<Time, uint32_t> > > ns3::SatRequestManager::PendingRbdcRequestsContainer_t

Container for the pending RBDC requests.

Definition at line 107 of file satellite-request-manager.h.

◆ QueueCallback

Callback to fetch queue statistics.

Definition at line 82 of file satellite-request-manager.h.

◆ RbdcTraceCallback

typedef void(* ns3::SatRequestManager::RbdcTraceCallback) (uint32_t requestSize)

Callback signature for RbdcTrace trace source.

Parameters
requestSizeamount of requested size via RBDC (in kbps).

Definition at line 212 of file satellite-request-manager.h.

◆ SendCtrlCallback

typedef Callback<bool, Ptr<SatControlMessage>, const Address&> ns3::SatRequestManager::SendCtrlCallback

Control message sending callback.

Parameters
Ptr<SatControlMessage>The message to be sent
AddressPacket destination address
Returns
boolean indicating whether the send was successful

Definition at line 90 of file satellite-request-manager.h.

◆ VbdcTraceCallback

typedef void(* ns3::SatRequestManager::VbdcTraceCallback) (uint32_t requestSize)

Callback signature for VbdcTrace trace source.

Parameters
requestSizeamount of requested size via VBDC (in bytes).

Definition at line 218 of file satellite-request-manager.h.

Constructor & Destructor Documentation

◆ SatRequestManager()

ns3::SatRequestManager::SatRequestManager ( )

Default constructor.

Definition at line 48 of file satellite-request-manager.cc.

◆ ~SatRequestManager()

ns3::SatRequestManager::~SatRequestManager ( )
virtual

Destructor for SatRequestManager.

Definition at line 73 of file satellite-request-manager.cc.

Member Function Documentation

◆ AddQueueCallback()

void ns3::SatRequestManager::AddQueueCallback ( uint8_t  rcIndex,
SatRequestManager::QueueCallback  cb 
)

Add a callback to fetch queue statistics.

Parameters
rcIndexRC identifier
cbCallback

Definition at line 386 of file satellite-request-manager.cc.

References m_queueCallbacks.

◆ AssignedDaResources()

void ns3::SatRequestManager::AssignedDaResources ( uint8_t  rcIndex,
uint32_t  bytes 
)

Sat UT MAC informs that certain amount of resources have been received in TBTP.

Parameters
rcIndexRC index
bytesAmount of bytes assigned to this UT in TBTP.

Definition at line 933 of file satellite-request-manager.cc.

References m_assignedDaResourcesBytes.

Referenced by ns3::SatUtHelper::InstallDvb().

+ Here is the caller graph for this function:

◆ CheckForVolumeBacklogPersistence()

void ns3::SatRequestManager::CheckForVolumeBacklogPersistence ( )
private

Check whether VBDC volume backlog persistence shall expire and whether UT should update request by AVBDC due pending requests.

Definition at line 703 of file satellite-request-manager.cc.

References m_forcedAvbdcUpdate, m_lastVbdcCrSent, m_llsConf, m_pendingVbdcBytes, and m_superFrameDuration.

Referenced by DoEvaluation().

+ Here is the caller graph for this function:

◆ CnoUpdated()

void ns3::SatRequestManager::CnoUpdated ( uint32_t  satId,
uint32_t  beamId,
Address  sourceMac,
Address  gwId,
double  cno,
bool  isSatelliteMac 
)

Update C/N0 information from lower layer.

The SatUtMac receives C/N0 information of packet receptions from GW to update this information to serving GW periodically.

Parameters
satIdThe id of the satellite where C/N0 is from.
beamIdThe id of the beam where C/N0 is from.
sourceMacThe MAC address of the source from where we measured C/N0.
gwIdThe id of the GW.
cnoValue of the C/N0.
isSatelliteMacIf true, cno corresponds to link SAT to UT; if false, cno corresponds to link GW to UT

Definition at line 429 of file satellite-request-manager.cc.

References m_lastCno, m_lastSatelliteCno, and m_satAddress.

Referenced by ns3::SatUtHelper::InstallDvb().

+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::SatRequestManager::DoDispose ( void  )
virtual

Dispose of this class instance.

Definition at line 184 of file satellite-request-manager.cc.

References m_ctrlCallback, m_ctrlMsgTxPossibleCallback, m_llsConf, m_logonMsgTxPossibleCallback, and m_queueCallbacks.

◆ DoEvaluation()

◆ DoPeriodicalEvaluation()

void ns3::SatRequestManager::DoPeriodicalEvaluation ( )
private

Periodically check the buffer status and whether a new CR is needed to be sent.

Definition at line 224 of file satellite-request-manager.cc.

References DoEvaluation(), and m_evaluationInterval.

Referenced by Initialize().

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

◆ DoRbdc()

uint32_t ns3::SatRequestManager::DoRbdc ( uint8_t  rc,
const SatQueue::QueueStats_t stats 
)
private

Do RBDC calculation for a RC.

Parameters
rcRequest class index
statsQueue statistics
Returns
uint32_t Requested bytes

Definition at line 452 of file satellite-request-manager.cc.

References ns3::SatEnums::CR_RBDC_LEGACY, DoRbdcLegacy(), and m_rbdcCapacityRequestAlgorithm.

Referenced by DoEvaluation().

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

◆ DoRbdcLegacy()

uint32_t ns3::SatRequestManager::DoRbdcLegacy ( uint8_t  rc,
const SatQueue::QueueStats_t stats 
)
private

Legacy algorithm to do RBDC calculation for a RC.

Parameters
rcRequest class index
statsQueue statistics
Returns
uint32_t Requested bytes

Definition at line 471 of file satellite-request-manager.cc.

References ns3::SatConstVariables::BITS_IN_KBIT, ns3::SatConstVariables::BITS_PER_BYTE, GetPendingRbdcSumKbps(), GetQuantizedRbdcValue(), m_gainValueK, ns3::SatQueue::QueueStats_t::m_incomingRateKbps, m_llsConf, m_overEstimationFactor, m_previousEvaluationTime, ns3::SatQueue::QueueStats_t::m_queueSizeBytes, and UpdatePendingRbdcCounters().

Referenced by DoRbdc().

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

◆ DoVbdc()

SatEnums::SatCapacityAllocationCategory_t ns3::SatRequestManager::DoVbdc ( uint8_t  rc,
const SatQueue::QueueStats_t stats,
uint32_t &  rcVbdcBytes 
)
private

Do VBDC calculation for a RC.

Parameters
rcRequest class index
statsQueue statistics
&vbdcBytesReference to vbdcBytes
Returns
SatCapacityAllocationCategory_t Capacity allocation category

Definition at line 548 of file satellite-request-manager.cc.

References ns3::SatEnums::CR_VBDC_LEGACY, ns3::SatEnums::DA_UNKNOWN, DoVbdcLegacy(), and m_vbdcCapacityRequestAlgorithm.

Referenced by DoEvaluation().

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

◆ DoVbdcLegacy()

SatEnums::SatCapacityAllocationCategory_t ns3::SatRequestManager::DoVbdcLegacy ( uint8_t  rc,
const SatQueue::QueueStats_t stats,
uint32_t &  rcVbdcBytes 
)
private

Legacy algorithm to do VBDC calculation for a RC.

Parameters
rcRequest class index
statsQueue statistics
&vbdcBytesReference to vbdcBytes
Returns
SatCapacityAllocationCategory_t Capacity allocation category

Definition at line 567 of file satellite-request-manager.cc.

References ns3::SatEnums::DA_AVBDC, ns3::SatEnums::DA_VBDC, GetAvbdcBytes(), GetVbdcBytes(), m_forcedAvbdcUpdate, m_pendingVbdcBytes, and ns3::SatQueue::QueueStats_t::m_volumeInBytes.

Referenced by DoVbdc().

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

◆ GetAvbdcBytes()

uint32_t ns3::SatRequestManager::GetAvbdcBytes ( uint8_t  rc,
const SatQueue::QueueStats_t stats 
)
private

Calculate the needed AVBDC bytes for a RC.

Parameters
rcRequest class index
statsQueue statistics
Returns
Requested AVBDC kilobytes

Definition at line 611 of file satellite-request-manager.cc.

References ns3::SatConstVariables::BITS_IN_KBIT, ns3::SatConstVariables::BITS_PER_BYTE, GetQuantizedVbdcValue(), m_llsConf, m_overEstimationFactor, m_pendingVbdcBytes, m_previousEvaluationTime, ns3::SatQueue::QueueStats_t::m_queueSizeBytes, and Reset().

Referenced by DoVbdcLegacy().

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

◆ GetInstanceTypeId()

TypeId ns3::SatRequestManager::GetInstanceTypeId ( void  ) const
virtual

Get the type ID of instance.

Returns
the object TypeId

Definition at line 176 of file satellite-request-manager.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetPendingRbdcSumKbps()

uint32_t ns3::SatRequestManager::GetPendingRbdcSumKbps ( uint8_t  rc)
private

Calculate the pending RBDC requests related to a specific RC.

Parameters
rcRequest class index
Returns
Pending sum in kbps or Bytes

Definition at line 734 of file satellite-request-manager.cc.

References m_pendingRbdcRequestsKbps, and RemoveOldEntriesFromPendingRbdcContainer().

Referenced by DoRbdcLegacy().

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

◆ GetQuantizedRbdcValue()

uint16_t ns3::SatRequestManager::GetQuantizedRbdcValue ( uint8_t  index,
uint16_t  reqRbdcKbps 
) const
private

The RBDC value is signalled with 8 bits, which means that to be able to signal larger than 256 values, we need to use quantization and coding to convert the raw values into defined discrete values.

Parameters
indexRC index
reqRbdcKbpsRaw RBDC request
Returns
uint16_t Quantized RBDC value

Definition at line 963 of file satellite-request-manager.cc.

References m_llsConf, m_numValues, and m_rbdcScalingFactors.

Referenced by DoRbdcLegacy().

+ Here is the caller graph for this function:

◆ GetQuantizedVbdcValue()

uint16_t ns3::SatRequestManager::GetQuantizedVbdcValue ( uint8_t  index,
uint16_t  reqVbdcBytes 
) const
private

The RBDC value is signalled with 8 bits, which means that to be able to signal larger than 256 values, we need to use quantization and coding to convert the raw values into defined discrete values.

Parameters
indexRC index
reqVbdcBytesRaw VBDC request in Bytes
Returns
uint16_t Quantized VBDC value

Definition at line 994 of file satellite-request-manager.cc.

References ns3::SatConstVariables::BYTES_IN_KBYTE, m_llsConf, m_numValues, and m_vbdcScalingFactors.

Referenced by GetAvbdcBytes(), and GetVbdcBytes().

+ Here is the caller graph for this function:

◆ GetTypeId()

◆ GetVbdcBytes()

uint32_t ns3::SatRequestManager::GetVbdcBytes ( uint8_t  rc,
const SatQueue::QueueStats_t stats 
)
private

Calculate the needed VBDC bytes for a RC.

Parameters
rcRequest class index
statsQueue statistics
Returns
Requested VBDC kilobytes

Definition at line 656 of file satellite-request-manager.cc.

References ns3::SatConstVariables::BITS_IN_KBIT, ns3::SatConstVariables::BITS_PER_BYTE, GetQuantizedVbdcValue(), m_llsConf, m_overEstimationFactor, m_pendingVbdcBytes, m_previousEvaluationTime, and ns3::SatQueue::QueueStats_t::m_volumeInBytes.

Referenced by DoVbdcLegacy().

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

◆ Initialize()

void ns3::SatRequestManager::Initialize ( Ptr< SatLowerLayerServiceConf llsConf,
Time  superFrameDuration 
)

◆ ReceiveQueueEvent()

void ns3::SatRequestManager::ReceiveQueueEvent ( SatQueue::QueueEvent_t  event,
uint8_t  rcIndex 
)

Receive a queue event.

Parameters
eventQueue event from SatQueue
rcIndexRC identifier of the queue

Definition at line 206 of file satellite-request-manager.cc.

References DoEvaluation(), ns3::SatQueue::FIRST_BUFFERED_PKT, and m_enableOnDemandEvaluation.

Referenced by ns3::SatUtLlc::CreateEncap(), and ns3::SatUtHelper::InstallDvb().

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

◆ RemoveOldEntriesFromPendingRbdcContainer()

void ns3::SatRequestManager::RemoveOldEntriesFromPendingRbdcContainer ( uint8_t  rc)
private

Clean-up the pending RBDC container from old samples.

Parameters
rcRequest class index

Definition at line 769 of file satellite-request-manager.cc.

References m_pendingRbdcRequestsKbps, and m_rttEstimate.

Referenced by GetPendingRbdcSumKbps().

+ Here is the caller graph for this function:

◆ Reset()

void ns3::SatRequestManager::Reset ( uint8_t  rc)
private

Reset RC index counters.

Parameters
rcRC index

Definition at line 954 of file satellite-request-manager.cc.

References m_assignedDaResourcesBytes, and m_pendingVbdcBytes.

Referenced by GetAvbdcBytes().

+ Here is the caller graph for this function:

◆ ResetAssignedResources()

void ns3::SatRequestManager::ResetAssignedResources ( )
private

Reset the assigned resources counter.

Definition at line 943 of file satellite-request-manager.cc.

References m_assignedDaResourcesBytes, and m_llsConf.

Referenced by DoEvaluation().

+ Here is the caller graph for this function:

◆ SendCapacityRequest()

void ns3::SatRequestManager::SendCapacityRequest ( Ptr< SatCrMessage crMsg)
private

Send the capacity request control msg via txCallback to SatNetDevice.

Parameters
crMsgCreated capacity request

Definition at line 826 of file satellite-request-manager.cc.

References m_cnoReportEvent, m_cnoReportInterval, m_crTrace, m_ctrlCallback, m_gwAddress, m_lastCno, m_nodeInfo, and SendCnoReport().

Referenced by DoEvaluation().

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

◆ SendCnoReport()

void ns3::SatRequestManager::SendCnoReport ( )
private

Send the C/N0 report message via txCallback to SatNetDevice.

Definition at line 855 of file satellite-request-manager.cc.

References m_cnoReportEvent, m_cnoReportInterval, m_ctrlCallback, m_ctrlMsgTxPossibleCallback, m_gwAddress, m_lastCno, m_lastSatelliteCno, and m_satAddress.

Referenced by Initialize(), and SendCapacityRequest().

+ Here is the caller graph for this function:

◆ SendHandoverRecommendation()

void ns3::SatRequestManager::SendHandoverRecommendation ( uint32_t  beamId)

Send a handover recommendation message to the gateway.

Parameters
beamIdThe beam ID to switch to

Definition at line 893 of file satellite-request-manager.cc.

References m_ctrlCallback, m_ctrlMsgTxPossibleCallback, and m_gwAddress.

Referenced by ns3::SatUtHelper::InstallDvb().

+ Here is the caller graph for this function:

◆ SendLogonMessage()

void ns3::SatRequestManager::SendLogonMessage ( )

Send a logon message to the gateway.

Definition at line 911 of file satellite-request-manager.cc.

References m_ctrlCallback, m_gwAddress, and m_logonMsgTxPossibleCallback.

Referenced by ns3::SatUtHelper::InstallDvb().

+ Here is the caller graph for this function:

◆ SetCtrlMsgCallback()

void ns3::SatRequestManager::SetCtrlMsgCallback ( SatRequestManager::SendCtrlCallback  cb)

Set the control message sending callback.

Parameters
cbcallback to send control messages.

Definition at line 393 of file satellite-request-manager.cc.

References m_ctrlCallback.

◆ SetCtrlMsgTxPossibleCallback()

void ns3::SatRequestManager::SetCtrlMsgTxPossibleCallback ( SatRequestManager::CtrlMsgTxPossibleCallback  cb)

Set the callback to check the possibility of sending a control message.

Parameters
cbcallback to check whether ctrl message sending is possible.

Definition at line 400 of file satellite-request-manager.cc.

References m_ctrlMsgTxPossibleCallback.

◆ SetGwAddress()

void ns3::SatRequestManager::SetGwAddress ( Mac48Address  address)

Set the GW address needed for CR transmission.

Parameters
addressGW MAC address

Definition at line 414 of file satellite-request-manager.cc.

References m_gwAddress.

Referenced by ns3::SatUtHelper::InstallDvb().

+ Here is the caller graph for this function:

◆ SetHeaderOffsetVbdc()

void ns3::SatRequestManager::SetHeaderOffsetVbdc ( double  headerOffsetVbcd)

Update the value of header offset.

Parameters
headerOffsetVbcdThe new value of header offset

Definition at line 927 of file satellite-request-manager.cc.

References m_headerOffsetVbcd.

◆ SetLogonMsgTxPossibleCallback()

void ns3::SatRequestManager::SetLogonMsgTxPossibleCallback ( SatRequestManager::LogonMsgTxPossibleCallback  cb)

Set the callback to check the possibility of sending a control message.

Parameters
cbcallback to check whether ctrl message sending is possible.

Definition at line 407 of file satellite-request-manager.cc.

References m_logonMsgTxPossibleCallback.

◆ SetNodeInfo()

void ns3::SatRequestManager::SetNodeInfo ( Ptr< SatNodeInfo nodeInfo)

Set the node info of this UT.

Parameters
nodeInfoNode information pointer

Definition at line 421 of file satellite-request-manager.cc.

References m_nodeInfo.

◆ UpdatePendingRbdcCounters()

void ns3::SatRequestManager::UpdatePendingRbdcCounters ( uint8_t  rc,
uint32_t  kbps 
)
private

Update the pending RBDC counters with new request information.

Parameters
rcRequest class index
kbpsRequested value in kbps or Bytes

Definition at line 756 of file satellite-request-manager.cc.

References m_pendingRbdcRequestsKbps.

Referenced by DoRbdcLegacy().

+ Here is the caller graph for this function:

◆ UpdatePendingVbdcCounters() [1/2]

void ns3::SatRequestManager::UpdatePendingVbdcCounters ( )
private

Update pending VBDC counters for all RCs.

Definition at line 791 of file satellite-request-manager.cc.

References m_llsConf.

Referenced by DoEvaluation().

+ Here is the caller graph for this function:

◆ UpdatePendingVbdcCounters() [2/2]

void ns3::SatRequestManager::UpdatePendingVbdcCounters ( uint8_t  rc)
private

Update the pending VBDC counters with new request information.

Parameters
rcRequest class index

Definition at line 802 of file satellite-request-manager.cc.

References m_assignedDaResourcesBytes, and m_pendingVbdcBytes.

Member Data Documentation

◆ m_assignedDaResourcesBytes

std::vector<uint32_t> ns3::SatRequestManager::m_assignedDaResourcesBytes
private

Dedicated assignments received within the previous superframe.

Definition at line 505 of file satellite-request-manager.h.

Referenced by AssignedDaResources(), Initialize(), Reset(), ResetAssignedResources(), and UpdatePendingVbdcCounters().

◆ m_aVbdcTrace

TracedCallback<uint32_t> ns3::SatRequestManager::m_aVbdcTrace
private

Definition at line 546 of file satellite-request-manager.h.

Referenced by DoEvaluation(), and GetTypeId().

◆ m_cnoReportEvent

EventId ns3::SatRequestManager::m_cnoReportEvent
private

Event id for the C/NO report.

Definition at line 455 of file satellite-request-manager.h.

Referenced by Initialize(), SendCapacityRequest(), and SendCnoReport().

◆ m_cnoReportInterval

Time ns3::SatRequestManager::m_cnoReportInterval
private

Interval to send C/N0 report.

Definition at line 450 of file satellite-request-manager.h.

Referenced by GetTypeId(), Initialize(), SendCapacityRequest(), and SendCnoReport().

◆ m_crTrace

TracedCallback<Time, Mac48Address, Ptr<SatCrMessage> > ns3::SatRequestManager::m_crTrace
private

Trace callback used for CR tracing.

Definition at line 531 of file satellite-request-manager.h.

Referenced by GetTypeId(), and SendCapacityRequest().

◆ m_crTraceLog

TracedCallback<std::string> ns3::SatRequestManager::m_crTraceLog
private

Trace callback used for CR tracing.

Definition at line 536 of file satellite-request-manager.h.

Referenced by DoEvaluation(), and GetTypeId().

◆ m_ctrlCallback

SendCtrlCallback ns3::SatRequestManager::m_ctrlCallback
private

Callback to send control messages.

Definition at line 400 of file satellite-request-manager.h.

Referenced by DoDispose(), SendCapacityRequest(), SendCnoReport(), SendHandoverRecommendation(), SendLogonMessage(), and SetCtrlMsgCallback().

◆ m_ctrlMsgTxPossibleCallback

CtrlMsgTxPossibleCallback ns3::SatRequestManager::m_ctrlMsgTxPossibleCallback
private

Callback to check from MAC if a control msg may be transmitted in the near future.

Definition at line 406 of file satellite-request-manager.h.

Referenced by DoDispose(), DoEvaluation(), SendCnoReport(), SendHandoverRecommendation(), and SetCtrlMsgTxPossibleCallback().

◆ m_enableOnDemandEvaluation

bool ns3::SatRequestManager::m_enableOnDemandEvaluation
private

Enable on demand / ad hoc CR evaluation.

Definition at line 478 of file satellite-request-manager.h.

Referenced by GetTypeId(), and ReceiveQueueEvent().

◆ m_evaluationInterval

Time ns3::SatRequestManager::m_evaluationInterval
private

Interval to do the periodical CR evaluation.

Definition at line 445 of file satellite-request-manager.h.

Referenced by DoPeriodicalEvaluation(), GetTypeId(), and Initialize().

◆ m_forcedAvbdcUpdate

bool ns3::SatRequestManager::m_forcedAvbdcUpdate
private

Flag indicating that UT should send a forced AVBDC request, since the volume backlog persistence shall expire and UT still has pending requested bytes.

Definition at line 522 of file satellite-request-manager.h.

Referenced by CheckForVolumeBacklogPersistence(), and DoVbdcLegacy().

◆ m_gainValueK

double ns3::SatRequestManager::m_gainValueK
private

Gain value K for the RBDC calculation.

Definition at line 460 of file satellite-request-manager.h.

Referenced by DoRbdcLegacy(), and GetTypeId().

◆ m_gwAddress

Mac48Address ns3::SatRequestManager::m_gwAddress
private

◆ m_headerOffsetVbcd

double ns3::SatRequestManager::m_headerOffsetVbcd
private

Additional VBDC to add to take into account E2E header in regenerative LINK or NETWORK, and in worst case.

Definition at line 562 of file satellite-request-manager.h.

Referenced by DoEvaluation(), and SetHeaderOffsetVbdc().

◆ m_lastCno

double ns3::SatRequestManager::m_lastCno
private

The last received on E2E C/N0 information from lower layer in linear format.

Definition at line 428 of file satellite-request-manager.h.

Referenced by CnoUpdated(), SendCapacityRequest(), and SendCnoReport().

◆ m_lastSatelliteCno

double ns3::SatRequestManager::m_lastSatelliteCno
private

The last received user link C/N0 information from lower layer in linear format.

Definition at line 434 of file satellite-request-manager.h.

Referenced by CnoUpdated(), and SendCnoReport().

◆ m_lastVbdcCrSent

Time ns3::SatRequestManager::m_lastVbdcCrSent
private

Time when the last CR including VBDC request was sent.

Definition at line 510 of file satellite-request-manager.h.

Referenced by CheckForVolumeBacklogPersistence(), and DoEvaluation().

◆ m_llsConf

Ptr<SatLowerLayerServiceConf> ns3::SatRequestManager::m_llsConf
private

Lower layer services conf pointer, which holds the configurations for RCs and capacity allocation categories.

Definition at line 440 of file satellite-request-manager.h.

Referenced by CheckForVolumeBacklogPersistence(), DoDispose(), DoEvaluation(), DoRbdcLegacy(), GetAvbdcBytes(), GetQuantizedRbdcValue(), GetQuantizedVbdcValue(), GetVbdcBytes(), Initialize(), ResetAssignedResources(), and UpdatePendingVbdcCounters().

◆ m_logonMsgTxPossibleCallback

LogonMsgTxPossibleCallback ns3::SatRequestManager::m_logonMsgTxPossibleCallback
private

Callback to check from MAC if a logon msg may be transmitted in the near future.

Definition at line 412 of file satellite-request-manager.h.

Referenced by DoDispose(), SendLogonMessage(), and SetLogonMsgTxPossibleCallback().

◆ m_nodeInfo

Ptr<SatNodeInfo> ns3::SatRequestManager::m_nodeInfo
private

Node information.

Definition at line 500 of file satellite-request-manager.h.

Referenced by DoEvaluation(), Initialize(), SendCapacityRequest(), and SetNodeInfo().

◆ m_numValues

uint32_t ns3::SatRequestManager::m_numValues
private

Definition at line 524 of file satellite-request-manager.h.

Referenced by GetQuantizedRbdcValue(), and GetQuantizedVbdcValue().

◆ m_overEstimationFactor

double ns3::SatRequestManager::m_overEstimationFactor
private

Over-estimation factor used for estimating a bit more resources than there are in the buffers.

The purpose is to compensate the RLE and FPDU header overhead.

Definition at line 473 of file satellite-request-manager.h.

Referenced by DoRbdcLegacy(), GetAvbdcBytes(), GetTypeId(), and GetVbdcBytes().

◆ m_pendingRbdcRequestsKbps

PendingRbdcRequestsContainer_t ns3::SatRequestManager::m_pendingRbdcRequestsKbps
private

Key = RC index Value -> Key = Time when the request was sent Value -> Value = Requested bitrate or bytes.

Definition at line 485 of file satellite-request-manager.h.

Referenced by GetPendingRbdcSumKbps(), Initialize(), RemoveOldEntriesFromPendingRbdcContainer(), and UpdatePendingRbdcCounters().

◆ m_pendingVbdcBytes

std::vector<uint32_t> ns3::SatRequestManager::m_pendingVbdcBytes
private

Pending VBDC counter for each RC index.

Definition at line 490 of file satellite-request-manager.h.

Referenced by CheckForVolumeBacklogPersistence(), DoVbdcLegacy(), GetAvbdcBytes(), GetVbdcBytes(), Initialize(), Reset(), and UpdatePendingVbdcCounters().

◆ m_previousEvaluationTime

std::vector<Time> ns3::SatRequestManager::m_previousEvaluationTime
private

Time when CR evaluation was previously done.

Definition at line 495 of file satellite-request-manager.h.

Referenced by DoEvaluation(), DoRbdcLegacy(), GetAvbdcBytes(), GetVbdcBytes(), and Initialize().

◆ m_queueCallbacks

CallbackContainer_t ns3::SatRequestManager::m_queueCallbacks
private

The queue enque/deque rate getter callback.

Definition at line 395 of file satellite-request-manager.h.

Referenced by AddQueueCallback(), DoDispose(), and DoEvaluation().

◆ m_rbdcCapacityRequestAlgorithm

SatEnums::RbdcCapacityRequestAlgorithm_t ns3::SatRequestManager::m_rbdcCapacityRequestAlgorithm
private

The RBDC capacity algorithm to use.

Definition at line 551 of file satellite-request-manager.h.

Referenced by DoRbdc(), and GetTypeId().

◆ m_rbdcScalingFactors

const uint32_t ns3::SatRequestManager::m_rbdcScalingFactors = {1, 4, 16, 64}
staticprivate

Definition at line 525 of file satellite-request-manager.h.

Referenced by GetQuantizedRbdcValue().

◆ m_rbdcTrace

TracedCallback<uint32_t> ns3::SatRequestManager::m_rbdcTrace
private

Traced callbacks for all sent RBDC and VBDC capacity requests.

Note, that the RC indices are not identified! Thus, if you have two RC indices using the same CAC, the requests may be mixed up at the receiving side.

Definition at line 544 of file satellite-request-manager.h.

Referenced by DoEvaluation(), and GetTypeId().

◆ m_rttEstimate

Time ns3::SatRequestManager::m_rttEstimate
private

Round trip time estimate.

Used to estimate the amount of capacity requests on the air.

Definition at line 466 of file satellite-request-manager.h.

Referenced by GetTypeId(), and RemoveOldEntriesFromPendingRbdcContainer().

◆ m_satAddress

Mac48Address ns3::SatRequestManager::m_satAddress
private

SAT address.

Definition at line 422 of file satellite-request-manager.h.

Referenced by CnoUpdated(), and SendCnoReport().

◆ m_superFrameDuration

Time ns3::SatRequestManager::m_superFrameDuration
private

Superframe duration used for updating the volume backlog persistence.

Definition at line 515 of file satellite-request-manager.h.

Referenced by CheckForVolumeBacklogPersistence(), and Initialize().

◆ m_vbdcCapacityRequestAlgorithm

SatEnums::VbdcCapacityRequestAlgorithm_t ns3::SatRequestManager::m_vbdcCapacityRequestAlgorithm
private

The VBDC capacity algorithm to use.

Definition at line 556 of file satellite-request-manager.h.

Referenced by DoVbdc(), and GetTypeId().

◆ m_vbdcScalingFactors

const uint32_t ns3::SatRequestManager::m_vbdcScalingFactors = {1, 8, 64, 512}
staticprivate

Definition at line 526 of file satellite-request-manager.h.

Referenced by GetQuantizedVbdcValue().

◆ m_vbdcTrace

TracedCallback<uint32_t> ns3::SatRequestManager::m_vbdcTrace
private

Definition at line 545 of file satellite-request-manager.h.

Referenced by DoEvaluation(), and GetTypeId().


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