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 satId, 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 53 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 229 of file satellite-request-manager.h.
|
private |
Definition at line 250 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 195 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 211 of file satellite-request-manager.h.
typedef Callback<bool> ns3::SatRequestManager::CtrlMsgTxPossibleCallback |
Callback to check whether control msg transmission is possible.
Definition at line 101 of file satellite-request-manager.h.
typedef Callback<bool> ns3::SatRequestManager::LogonMsgTxPossibleCallback |
Callback to check whether logon msg transmission is possible.
Definition at line 107 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 112 of file satellite-request-manager.h.
typedef Callback<SatQueue::QueueStats_t, bool> ns3::SatRequestManager::QueueCallback |
Callback to fetch queue statistics.
Definition at line 87 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 217 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 95 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 223 of file satellite-request-manager.h.
ns3::SatRequestManager::SatRequestManager | ( | ) |
Default constructor.
Definition at line 53 of file satellite-request-manager.cc.
|
virtual |
Destructor for SatRequestManager.
Definition at line 78 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 393 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 941 of file satellite-request-manager.cc.
References m_assignedDaResourcesBytes.
Referenced by ns3::SatUtHelperDvb::Install().
|
private |
Check whether VBDC volume backlog persistence shall expire and whether UT should update request by AVBDC due pending requests.
Definition at line 710 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 436 of file satellite-request-manager.cc.
References m_lastCno, m_lastSatelliteCno, and m_satAddress.
Referenced by ns3::SatUtHelperDvb::Install().
|
virtual |
Dispose of this class instance.
Definition at line 191 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 242 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 231 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 459 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 478 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 555 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 574 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 618 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 183 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 741 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 971 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 1002 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 111 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 663 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 83 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 213 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().
|
private |
Clean-up the pending RBDC container from old samples.
rc | Request class index |
Definition at line 776 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 962 of file satellite-request-manager.cc.
References m_assignedDaResourcesBytes, and m_pendingVbdcBytes.
Referenced by GetAvbdcBytes().
|
private |
Reset the assigned resources counter.
Definition at line 951 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 833 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 862 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 | satId, |
uint32_t | beamId | ||
) |
Send a handover recommendation message to the gateway.
satId | The sat ID to switch to |
beamId | The beam ID to switch to |
Definition at line 900 of file satellite-request-manager.cc.
References m_ctrlCallback, m_ctrlMsgTxPossibleCallback, and m_gwAddress.
Referenced by ns3::SatUtHelperDvb::Install().
void ns3::SatRequestManager::SendLogonMessage | ( | ) |
Send a logon message to the gateway.
Definition at line 919 of file satellite-request-manager.cc.
References m_ctrlCallback, m_gwAddress, and m_logonMsgTxPossibleCallback.
Referenced by ns3::SatUtHelperDvb::Install().
void ns3::SatRequestManager::SetCtrlMsgCallback | ( | SatRequestManager::SendCtrlCallback | cb | ) |
Set the control message sending callback.
cb | callback to send control messages. |
Definition at line 400 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 407 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 421 of file satellite-request-manager.cc.
References m_gwAddress.
Referenced by ns3::SatUtHelperDvb::Install().
void ns3::SatRequestManager::SetHeaderOffsetVbdc | ( | double | headerOffsetVbcd | ) |
Update the value of header offset.
headerOffsetVbcd | The new value of header offset |
Definition at line 935 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 414 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 428 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 763 of file satellite-request-manager.cc.
References m_pendingRbdcRequestsKbps.
Referenced by DoRbdcLegacy().
|
private |
Update pending VBDC counters for all RCs.
Definition at line 798 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 809 of file satellite-request-manager.cc.
References m_assignedDaResourcesBytes, and m_pendingVbdcBytes.
|
private |
Dedicated assignments received within the previous superframe.
Definition at line 511 of file satellite-request-manager.h.
Referenced by AssignedDaResources(), Initialize(), Reset(), ResetAssignedResources(), and UpdatePendingVbdcCounters().
|
private |
Definition at line 552 of file satellite-request-manager.h.
Referenced by DoEvaluation(), and GetTypeId().
|
private |
Event id for the C/NO report.
Definition at line 461 of file satellite-request-manager.h.
Referenced by Initialize(), SendCapacityRequest(), and SendCnoReport().
|
private |
Interval to send C/N0 report.
Definition at line 456 of file satellite-request-manager.h.
Referenced by GetTypeId(), Initialize(), SendCapacityRequest(), and SendCnoReport().
|
private |
Trace callback used for CR tracing.
Definition at line 537 of file satellite-request-manager.h.
Referenced by GetTypeId(), and SendCapacityRequest().
|
private |
Trace callback used for CR tracing.
Definition at line 542 of file satellite-request-manager.h.
Referenced by DoEvaluation(), and GetTypeId().
|
private |
Callback to send control messages.
Definition at line 406 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 412 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 484 of file satellite-request-manager.h.
Referenced by GetTypeId(), and ReceiveQueueEvent().
|
private |
Interval to do the periodical CR evaluation.
Definition at line 451 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 528 of file satellite-request-manager.h.
Referenced by CheckForVolumeBacklogPersistence(), and DoVbdcLegacy().
|
private |
Gain value K for the RBDC calculation.
Definition at line 466 of file satellite-request-manager.h.
Referenced by DoRbdcLegacy(), and GetTypeId().
|
private |
GW address.
Definition at line 423 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 568 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 434 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 440 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 516 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 446 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 418 of file satellite-request-manager.h.
Referenced by DoDispose(), SendLogonMessage(), and SetLogonMsgTxPossibleCallback().
|
private |
Node information.
Definition at line 506 of file satellite-request-manager.h.
Referenced by DoEvaluation(), Initialize(), SendCapacityRequest(), and SetNodeInfo().
|
private |
Definition at line 530 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 479 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 491 of file satellite-request-manager.h.
Referenced by GetPendingRbdcSumKbps(), Initialize(), RemoveOldEntriesFromPendingRbdcContainer(), and UpdatePendingRbdcCounters().
|
private |
Pending VBDC counter for each RC index.
Definition at line 496 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 501 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 401 of file satellite-request-manager.h.
Referenced by AddQueueCallback(), DoDispose(), and DoEvaluation().
|
private |
The RBDC capacity algorithm to use.
Definition at line 557 of file satellite-request-manager.h.
Referenced by DoRbdc(), and GetTypeId().
|
staticprivate |
Definition at line 531 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 550 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 472 of file satellite-request-manager.h.
Referenced by GetTypeId(), and RemoveOldEntriesFromPendingRbdcContainer().
|
private |
SAT address.
Definition at line 428 of file satellite-request-manager.h.
Referenced by CnoUpdated(), and SendCnoReport().
|
private |
Superframe duration used for updating the volume backlog persistence.
Definition at line 521 of file satellite-request-manager.h.
Referenced by CheckForVolumeBacklogPersistence(), and Initialize().
|
private |
The VBDC capacity algorithm to use.
Definition at line 562 of file satellite-request-manager.h.
Referenced by DoVbdc(), and GetTypeId().
|
staticprivate |
Definition at line 532 of file satellite-request-manager.h.
Referenced by GetQuantizedVbdcValue().
|
private |
Definition at line 551 of file satellite-request-manager.h.
Referenced by DoEvaluation(), and GetTypeId().