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

Public Member Functions

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

Static Public Member Functions

static TypeId GetTypeId (void)
 inherited from Object

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.
void DoEvaluation ()
 Do evaluation of the buffer status and decide whether or not to send CRs.
void DoPeriodicalEvaluation ()
 Periodically check the buffer status and whether a new CR is needed to be sent.
uint32_t DoRbdc (uint8_t rc, const SatQueue::QueueStats_t &stats)
 Do RBDC calculation for a RC.
uint32_t DoRbdcLegacy (uint8_t rc, const SatQueue::QueueStats_t &stats)
 Legacy algorithm to do RBDC calculation for a RC.
SatEnums::SatCapacityAllocationCategory_t DoVbdc (uint8_t rc, const SatQueue::QueueStats_t &stats, uint32_t &rcVbdcBytes)
 Do VBDC calculation for a RC.
SatEnums::SatCapacityAllocationCategory_t DoVbdcLegacy (uint8_t rc, const SatQueue::QueueStats_t &stats, uint32_t &rcVbdcBytes)
 Legacy algorithm to do VBDC calculation for a RC.
uint32_t GetAvbdcBytes (uint8_t rc, const SatQueue::QueueStats_t &stats)
 Calculate the needed AVBDC bytes for a RC.
uint32_t GetPendingRbdcSumKbps (uint8_t rc)
 Calculate the pending RBDC requests related to a specific RC.
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.
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.
uint32_t GetVbdcBytes (uint8_t rc, const SatQueue::QueueStats_t &stats)
 Calculate the needed VBDC bytes for a RC.
void RemoveOldEntriesFromPendingRbdcContainer (uint8_t rc)
 Clean-up the pending RBDC container from old samples.
void Reset (uint8_t rc)
 Reset RC index counters.
void ResetAssignedResources ()
 Reset the assigned resources counter.
void SendCapacityRequest (Ptr< SatCrMessage > crMsg)
 Send the capacity request control msg via txCallback to SatNetDevice.
void SendCnoReport ()
 Send the C/N0 report message via txCallback to SatNetDevice.
void UpdatePendingRbdcCounters (uint8_t rc, uint32_t kbps)
 Update the pending RBDC counters with new request information.
void UpdatePendingVbdcCounters ()
 Update pending VBDC counters for all RCs.
void UpdatePendingVbdcCounters (uint8_t rc)
 Update the pending VBDC counters with new request information.

Private Attributes

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

◆ QueueCallback

Callback to fetch queue statistics.

Definition at line 81 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 211 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 89 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 217 of file satellite-request-manager.h.

Constructor & Destructor Documentation

◆ SatRequestManager()

◆ ~SatRequestManager()

ns3::SatRequestManager::~SatRequestManager ( )
virtual

Destructor for SatRequestManager.

Definition at line 78 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 385 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::SatUtHelperDvb::Install().

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 702 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 428 of file satellite-request-manager.cc.

References m_lastCno, m_lastSatelliteCno, and m_satAddress.

Referenced by ns3::SatUtHelperDvb::Install().

Here is the caller graph for this function:

◆ DoDispose()

void ns3::SatRequestManager::DoDispose ( )
virtual

Dispose of this class instance.

Definition at line 183 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 223 of file satellite-request-manager.cc.

References DoEvaluation(), DoPeriodicalEvaluation(), and m_evaluationInterval.

Referenced by DoPeriodicalEvaluation(), and 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 451 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 470 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 547 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 566 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 610 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:

◆ 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 733 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 655 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 205 of file satellite-request-manager.cc.

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

Referenced by ns3::SatUtLlc::CreateEncap(), and ns3::SatUtHelperDvb::Install().

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 768 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 825 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 854 of file satellite-request-manager.cc.

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

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

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

◆ SendHandoverRecommendation()

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

Send a handover recommendation message to the gateway.

Parameters
satIdThe sat ID to switch to
beamIdThe beam ID to switch to

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

References m_ctrlCallback, m_ctrlMsgTxPossibleCallback, and m_gwAddress.

Referenced by ns3::SatUtHelperDvb::Install().

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::SatUtHelperDvb::Install().

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 392 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 399 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 413 of file satellite-request-manager.cc.

References m_gwAddress.

Referenced by ns3::SatUtHelperDvb::Install().

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 406 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 420 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 755 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 790 of file satellite-request-manager.cc.

References m_llsConf, and UpdatePendingVbdcCounters().

Referenced by DoEvaluation(), and UpdatePendingVbdcCounters().

Here is the call graph for this function:
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 801 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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

◆ 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 SatRequestManager(), 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 SatRequestManager(), GetPendingRbdcSumKbps(), Initialize(), RemoveOldEntriesFromPendingRbdcContainer(), and UpdatePendingRbdcCounters().

◆ m_pendingVbdcBytes

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

◆ 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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 SatRequestManager(), 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: