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"
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, QueueCallback > | CallbackContainer_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< SatLowerLayerServiceConf > | m_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< SatNodeInfo > | m_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} |
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.
typedef void(* ns3::SatRequestManager::AvbdcTraceCallback) (uint32_t requestSize) |
Callback signature for AvbdcTrace
trace source.
requestSize | amount of requested size via AVBDC (in bytes). |
Definition at line 224 of file satellite-request-manager.h.
|
private |
Definition at line 244 of file satellite-request-manager.h.
typedef void(* ns3::SatRequestManager::CapacityRequestTraceCallback) (Time time, Mac48Address address, Ptr< SatCrMessage > message) |
Callback signature for CrTrace
trace source.
time | the current simulation time. |
address | the MAC address of the current node. |
message | the CR message to be transmitted. |
Definition at line 190 of file satellite-request-manager.h.
typedef void(* ns3::SatRequestManager::CapacityRequestTraceLogCallback) (std::string traceLog) |
Callback signature for CrLogTrace
trace source.
traceLog | A string containing the following information:
|
Definition at line 206 of file satellite-request-manager.h.
typedef Callback<bool> ns3::SatRequestManager::CtrlMsgTxPossibleCallback |
Callback to check whether control msg transmission is possible.
Definition at line 96 of file satellite-request-manager.h.
typedef Callback<bool> ns3::SatRequestManager::LogonMsgTxPossibleCallback |
Callback to check whether logon msg transmission is possible.
Definition at line 102 of file satellite-request-manager.h.
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.
typedef Callback<SatQueue::QueueStats_t, bool> ns3::SatRequestManager::QueueCallback |
Callback to fetch queue statistics.
Definition at line 82 of file satellite-request-manager.h.
typedef void(* ns3::SatRequestManager::RbdcTraceCallback) (uint32_t requestSize) |
Callback signature for RbdcTrace
trace source.
requestSize | amount of requested size via RBDC (in kbps). |
Definition at line 212 of file satellite-request-manager.h.
typedef Callback<bool, Ptr<SatControlMessage>, const Address&> ns3::SatRequestManager::SendCtrlCallback |
Control message sending callback.
Ptr<SatControlMessage> | The message to be sent |
Address | Packet destination address |
Definition at line 90 of file satellite-request-manager.h.
typedef void(* ns3::SatRequestManager::VbdcTraceCallback) (uint32_t requestSize) |
Callback signature for VbdcTrace
trace source.
requestSize | amount of requested size via VBDC (in bytes). |
Definition at line 218 of file satellite-request-manager.h.
ns3::SatRequestManager::SatRequestManager | ( | ) |
Default constructor.
Definition at line 48 of file satellite-request-manager.cc.
|
virtual |
Destructor for SatRequestManager.
Definition at line 73 of file satellite-request-manager.cc.
void ns3::SatRequestManager::AddQueueCallback | ( | uint8_t | rcIndex, |
SatRequestManager::QueueCallback | cb | ||
) |
Add a callback to fetch queue statistics.
rcIndex | RC identifier |
cb | Callback |
Definition at line 386 of file satellite-request-manager.cc.
References m_queueCallbacks.
void ns3::SatRequestManager::AssignedDaResources | ( | uint8_t | rcIndex, |
uint32_t | bytes | ||
) |
Sat UT MAC informs that certain amount of resources have been received in TBTP.
rcIndex | RC index |
bytes | Amount 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().
|
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().
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.
satId | The id of the satellite where C/N0 is from. |
beamId | The id of the beam where C/N0 is from. |
sourceMac | The MAC address of the source from where we measured C/N0. |
gwId | The id of the GW. |
cno | Value of the C/N0. |
isSatelliteMac | If 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().
|
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.
|
private |
Do evaluation of the buffer status and decide whether or not to send CRs.
TODO: Add the functionality here which handles a RC with both RBDC and VBDC enabled at the same time!
Definition at line 235 of file satellite-request-manager.cc.
References CheckForVolumeBacklogPersistence(), ns3::SatEnums::DA_AVBDC, ns3::SatEnums::DA_RBDC, DoRbdc(), DoVbdc(), ns3::SatEnums::GetCapacityAllocationCategory(), m_aVbdcTrace, m_crTraceLog, m_ctrlMsgTxPossibleCallback, m_headerOffsetVbcd, ns3::SatQueue::QueueStats_t::m_incomingRateKbps, m_lastVbdcCrSent, m_llsConf, m_nodeInfo, ns3::SatQueue::QueueStats_t::m_outgoingRateKbps, m_previousEvaluationTime, m_queueCallbacks, ns3::SatQueue::QueueStats_t::m_queueSizeBytes, m_rbdcTrace, m_vbdcTrace, ns3::SatQueue::QueueStats_t::m_volumeInBytes, ns3::SatQueue::QueueStats_t::m_volumeOutBytes, ResetAssignedResources(), SendCapacityRequest(), and UpdatePendingVbdcCounters().
Referenced by DoPeriodicalEvaluation(), and ReceiveQueueEvent().
|
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().
|
private |
Do RBDC calculation for a RC.
rc | Request class index |
stats | Queue statistics |
Definition at line 452 of file satellite-request-manager.cc.
References ns3::SatEnums::CR_RBDC_LEGACY, DoRbdcLegacy(), and m_rbdcCapacityRequestAlgorithm.
Referenced by DoEvaluation().
|
private |
Legacy algorithm to do RBDC calculation for a RC.
rc | Request class index |
stats | Queue statistics |
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().
|
private |
Do VBDC calculation for a RC.
rc | Request class index |
stats | Queue statistics |
&vbdcBytes | Reference to vbdcBytes |
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().
|
private |
Legacy algorithm to do VBDC calculation for a RC.
rc | Request class index |
stats | Queue statistics |
&vbdcBytes | Reference to vbdcBytes |
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().
|
private |
Calculate the needed AVBDC bytes for a RC.
rc | Request class index |
stats | Queue statistics |
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().
|
virtual |
Get the type ID of instance.
Definition at line 176 of file satellite-request-manager.cc.
References GetTypeId().
|
private |
Calculate the pending RBDC requests related to a specific RC.
rc | Request class index |
Definition at line 734 of file satellite-request-manager.cc.
References m_pendingRbdcRequestsKbps, and RemoveOldEntriesFromPendingRbdcContainer().
Referenced by DoRbdcLegacy().
|
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.
index | RC index |
reqRbdcKbps | Raw RBDC request |
Definition at line 963 of file satellite-request-manager.cc.
References m_llsConf, m_numValues, and m_rbdcScalingFactors.
Referenced by DoRbdcLegacy().
|
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.
index | RC index |
reqVbdcBytes | Raw VBDC request in Bytes |
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().
|
static |
inherited from Object
Definition at line 106 of file satellite-request-manager.cc.
References ns3::SatEnums::CR_RBDC_LEGACY, ns3::SatEnums::CR_VBDC_LEGACY, m_aVbdcTrace, m_cnoReportInterval, m_crTrace, m_crTraceLog, m_enableOnDemandEvaluation, m_evaluationInterval, m_gainValueK, m_overEstimationFactor, m_rbdcCapacityRequestAlgorithm, m_rbdcTrace, m_rttEstimate, m_vbdcCapacityRequestAlgorithm, and m_vbdcTrace.
Referenced by GetInstanceTypeId().
|
private |
Calculate the needed VBDC bytes for a RC.
rc | Request class index |
stats | Queue statistics |
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().
void ns3::SatRequestManager::Initialize | ( | Ptr< SatLowerLayerServiceConf > | llsConf, |
Time | superFrameDuration | ||
) |
Definition at line 78 of file satellite-request-manager.cc.
References DoPeriodicalEvaluation(), m_assignedDaResourcesBytes, m_cnoReportEvent, m_cnoReportInterval, m_evaluationInterval, m_llsConf, m_nodeInfo, m_pendingRbdcRequestsKbps, m_pendingVbdcBytes, m_previousEvaluationTime, m_superFrameDuration, and SendCnoReport().
void ns3::SatRequestManager::ReceiveQueueEvent | ( | SatQueue::QueueEvent_t | event, |
uint8_t | rcIndex | ||
) |
Receive a queue event.
event | Queue event from SatQueue |
rcIndex | RC 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().
|
private |
Clean-up the pending RBDC container from old samples.
rc | Request class index |
Definition at line 769 of file satellite-request-manager.cc.
References m_pendingRbdcRequestsKbps, and m_rttEstimate.
Referenced by GetPendingRbdcSumKbps().
|
private |
Reset RC index counters.
rc | RC index |
Definition at line 954 of file satellite-request-manager.cc.
References m_assignedDaResourcesBytes, and m_pendingVbdcBytes.
Referenced by GetAvbdcBytes().
|
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().
|
private |
Send the capacity request control msg via txCallback to SatNetDevice.
crMsg | Created 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().
|
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().
void ns3::SatRequestManager::SendHandoverRecommendation | ( | uint32_t | beamId | ) |
Send a handover recommendation message to the gateway.
beamId | The 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().
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().
void ns3::SatRequestManager::SetCtrlMsgCallback | ( | SatRequestManager::SendCtrlCallback | cb | ) |
Set the control message sending callback.
cb | callback to send control messages. |
Definition at line 393 of file satellite-request-manager.cc.
References m_ctrlCallback.
void ns3::SatRequestManager::SetCtrlMsgTxPossibleCallback | ( | SatRequestManager::CtrlMsgTxPossibleCallback | cb | ) |
Set the callback to check the possibility of sending a control message.
cb | callback to check whether ctrl message sending is possible. |
Definition at line 400 of file satellite-request-manager.cc.
References m_ctrlMsgTxPossibleCallback.
void ns3::SatRequestManager::SetGwAddress | ( | Mac48Address | address | ) |
Set the GW address needed for CR transmission.
address | GW MAC address |
Definition at line 414 of file satellite-request-manager.cc.
References m_gwAddress.
Referenced by ns3::SatUtHelper::InstallDvb().
void ns3::SatRequestManager::SetHeaderOffsetVbdc | ( | double | headerOffsetVbcd | ) |
Update the value of header offset.
headerOffsetVbcd | The new value of header offset |
Definition at line 927 of file satellite-request-manager.cc.
References m_headerOffsetVbcd.
void ns3::SatRequestManager::SetLogonMsgTxPossibleCallback | ( | SatRequestManager::LogonMsgTxPossibleCallback | cb | ) |
Set the callback to check the possibility of sending a control message.
cb | callback to check whether ctrl message sending is possible. |
Definition at line 407 of file satellite-request-manager.cc.
References m_logonMsgTxPossibleCallback.
void ns3::SatRequestManager::SetNodeInfo | ( | Ptr< SatNodeInfo > | nodeInfo | ) |
Set the node info of this UT.
nodeInfo | Node information pointer |
Definition at line 421 of file satellite-request-manager.cc.
References m_nodeInfo.
|
private |
Update the pending RBDC counters with new request information.
rc | Request class index |
kbps | Requested value in kbps or Bytes |
Definition at line 756 of file satellite-request-manager.cc.
References m_pendingRbdcRequestsKbps.
Referenced by DoRbdcLegacy().
|
private |
Update pending VBDC counters for all RCs.
Definition at line 791 of file satellite-request-manager.cc.
References m_llsConf.
Referenced by DoEvaluation().
|
private |
Update the pending VBDC counters with new request information.
rc | Request class index |
Definition at line 802 of file satellite-request-manager.cc.
References m_assignedDaResourcesBytes, and m_pendingVbdcBytes.
|
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().
|
private |
Definition at line 546 of file satellite-request-manager.h.
Referenced by DoEvaluation(), and GetTypeId().
|
private |
Event id for the C/NO report.
Definition at line 455 of file satellite-request-manager.h.
Referenced by Initialize(), SendCapacityRequest(), and SendCnoReport().
|
private |
Interval to send C/N0 report.
Definition at line 450 of file satellite-request-manager.h.
Referenced by GetTypeId(), Initialize(), SendCapacityRequest(), and SendCnoReport().
|
private |
Trace callback used for CR tracing.
Definition at line 531 of file satellite-request-manager.h.
Referenced by GetTypeId(), and SendCapacityRequest().
|
private |
Trace callback used for CR tracing.
Definition at line 536 of file satellite-request-manager.h.
Referenced by DoEvaluation(), and GetTypeId().
|
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().
|
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().
|
private |
Enable on demand / ad hoc CR evaluation.
Definition at line 478 of file satellite-request-manager.h.
Referenced by GetTypeId(), and ReceiveQueueEvent().
|
private |
Interval to do the periodical CR evaluation.
Definition at line 445 of file satellite-request-manager.h.
Referenced by DoPeriodicalEvaluation(), GetTypeId(), and Initialize().
|
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().
|
private |
Gain value K for the RBDC calculation.
Definition at line 460 of file satellite-request-manager.h.
Referenced by DoRbdcLegacy(), and GetTypeId().
|
private |
GW address.
Definition at line 417 of file satellite-request-manager.h.
Referenced by SendCapacityRequest(), SendCnoReport(), SendHandoverRecommendation(), SendLogonMessage(), and SetGwAddress().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
private |
Node information.
Definition at line 500 of file satellite-request-manager.h.
Referenced by DoEvaluation(), Initialize(), SendCapacityRequest(), and SetNodeInfo().
|
private |
Definition at line 524 of file satellite-request-manager.h.
Referenced by GetQuantizedRbdcValue(), and GetQuantizedVbdcValue().
|
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().
|
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().
|
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().
|
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().
|
private |
The queue enque/deque rate getter callback.
Definition at line 395 of file satellite-request-manager.h.
Referenced by AddQueueCallback(), DoDispose(), and DoEvaluation().
|
private |
The RBDC capacity algorithm to use.
Definition at line 551 of file satellite-request-manager.h.
Referenced by DoRbdc(), and GetTypeId().
|
staticprivate |
Definition at line 525 of file satellite-request-manager.h.
Referenced by GetQuantizedRbdcValue().
|
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().
|
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().
|
private |
SAT address.
Definition at line 422 of file satellite-request-manager.h.
Referenced by CnoUpdated(), and SendCnoReport().
|
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().
|
private |
The VBDC capacity algorithm to use.
Definition at line 556 of file satellite-request-manager.h.
Referenced by DoVbdc(), and GetTypeId().
|
staticprivate |
Definition at line 526 of file satellite-request-manager.h.
Referenced by GetQuantizedVbdcValue().
|
private |
Definition at line 545 of file satellite-request-manager.h.
Referenced by DoEvaluation(), and GetTypeId().