ns3::SatUtMac Class Reference

UT specific Mac class for Sat Net Devices. More...

#include "satellite-ut-mac.h"

+ Inheritance diagram for ns3::SatUtMac:
+ Collaboration diagram for ns3::SatUtMac:

Classes

class  SatTimuInfo
 

Public Types

typedef Callback< uint32_t > AskedBeamCallback
 Callback to ask for the best beam ID during handover. More...
 
typedef Callback< void, uint8_t, uint32_t > AssignedDaResourcesCallback
 Callback for informing the amount of dedicated access bytes received from TBTP. More...
 
typedef Callback< bool, uint32_t, uint32_t > BeamCheckerCallback
 Callback to check whether the current beam is still the best one to use for sending data; and sending handover recommendation if not. More...
 
typedef Callback< Ptr< SatBeamScheduler >, uint32_t, uint32_t > BeamScheculerCallback
 Callback to get the SatBeamScheduler from the beam ID for handover. More...
 
typedef Callback< void, Mac48Address > GatewayUpdateCallback
 Callback to update gateway address after handover. More...
 
typedef Callback< void, uint32_t > HandoverCallback
 Callback to reconfigure physical layer during handover. More...
 
typedef Callback< void > SendLogonCallback
 Callback to send a logon message to the gateway. More...
 
typedef Callback< void, uint8_t > SliceSubscriptionCallback
 Callback to check if TX is operational. More...
 
typedef void(* TbtpResourcesTraceCallback) (uint32_t size)
 Callback signature for DaResourcesTrace trace source. More...
 
typedef Callback< Time > TimingAdvanceCallback
 
typedef Callback< bool > TxCheckCallback
 Callback to check if TX is operational. More...
 
typedef Callback< void, Mac48Address > UpdateGwAddressCallback
 Callback to update GW address to SatRequestManager. More...
 
- Public Types inherited from ns3::SatMac
typedef Callback< void, Ptr< const Packet > > LoraReceiveCallback
 Callback to receive packet by upper layer. More...
 
typedef Callback< Ptr< SatControlMessage >, uint32_t > ReadCtrlMsgCallback
 Callback to read control messages from container storing control messages. More...
 
typedef Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > ReceiveCallback
 Callback to receive packet by upper layer. More...
 
typedef Callback< uint32_t, Ptr< SatControlMessage > > ReserveCtrlMsgCallback
 Callback to reserve an id and initially store the control message. More...
 
typedef Callback< void, Address, Address > RoutingUpdateCallback
 Callback to update routing and ARP tables after handover. More...
 
typedef Callback< uint32_t, uint32_t > SendCtrlMsgCallback
 Callback to send a control message and allocate a recv ID for it. More...
 
typedef Callback< void, SatPhy::PacketContainer_t, uint32_t, Time, SatSignalParameters::txInfo_sTransmitCallback
 Callback to send packet to lower layer. More...
 

Public Member Functions

 SatUtMac ()
 Default constructor, which is not used. More...
 
 SatUtMac (uint32_t satId, uint32_t beamId, Ptr< SatSuperframeSeq > seq, SatEnums::RegenerationMode_t forwardLinkRegenerationMode, SatEnums::RegenerationMode_t returnLinkRegenerationMode, bool crdsaOnlyForControl)
 Construct a SatUtMac. More...
 
 ~SatUtMac ()
 Destroy a SatUtMac. More...
 
bool ControlMsgTransmissionPossible () const
 Method to check whether a transmission of a control msg is somewhat possible. More...
 
uint32_t GetBeamId () const
 Get beam ID of the object. More...
 
Mac48Address GetGwAddress ()
 Get address of the GW (or its MAC) serving this UT. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Derived from Object. More...
 
Time GetNextSuperFrameTxTime (uint8_t superFrameSeqId) const
 Get Tx time for the next possible superframe. More...
 
uint32_t GetRaChannel () const
 Get RA channel assigned for this UT. More...
 
SatUtMacState::RcstState_t GetRcstState () const
 
uint32_t GetSatId () const
 Get sat ID of the object. More...
 
void LogOff ()
 
bool LogonMsgTransmissionPossible () const
 Method to check whether a transmission of a logon msg is somewhat possible. More...
 
virtual void Receive (SatPhy::PacketContainer_t packets, Ptr< SatSignalParameters >)
 Receive packet from lower layer. More...
 
virtual void ReceiveQueueEvent (SatQueue::QueueEvent_t event, uint8_t rcIndex)
 Receive a queue event: More...
 
virtual void ReceiveQueueEventEssa (SatQueue::QueueEvent_t event, uint8_t rcIndex)
 Receive a queue event: More...
 
void SendLogon (Ptr< Packet > packet)
 Receive a logon message to transmit /param packet The logon packet to send. More...
 
void SetAskedBeamCallback (SatUtMac::AskedBeamCallback cb)
 Method to get the best beam when performing handover. More...
 
void SetAssignedDaResourcesCallback (SatUtMac::AssignedDaResourcesCallback cb)
 Set the assigned DA resources callback. More...
 
void SetBeamCheckerCallback (SatUtMac::BeamCheckerCallback cb)
 Method to set the beam checker callback. More...
 
void SetBeamScheculerCallback (SatUtMac::BeamScheculerCallback cb)
 Set the beam scheduler callback. More...
 
void SetGatewayUpdateCallback (SatUtMac::GatewayUpdateCallback cb)
 Method to set the gateway address update callback. More...
 
void SetGwAddress (Mac48Address gwAddress)
 Set address of the GW (or its MAC) serving this UT. More...
 
void SetHandoverCallback (SatUtMac::HandoverCallback cb)
 Method to set handover callback. More...
 
void SetLogonChannel (uint32_t channelId)
 
virtual void SetNodeInfo (Ptr< SatNodeInfo > nodeInfo)
 Set the node info. More...
 
void SetRaChannel (uint32_t raChannel)
 Set RA channel assigned for this UT. More...
 
void SetRandomAccess (Ptr< SatRandomAccess > randomAccess)
 Set the random access module. More...
 
virtual void SetSatelliteAddress (Address satelliteAddress)
 Set the satellite MAC address on the other side of this link (if regenerative satellite). More...
 
void SetSendLogonCallback (SatUtMac::SendLogonCallback cb)
 Set the logon callback. More...
 
void SetSliceSubscriptionCallback (SatUtMac::SliceSubscriptionCallback cb)
 Get sliec subscription info from MAC layer. More...
 
void SetTimingAdvanceCallback (SatUtMac::TimingAdvanceCallback cb)
 Set the timing advance callback. More...
 
void SetTxCheckCallback (SatUtMac::TxCheckCallback cb)
 Set the TX check callback. More...
 
void SetUpdateGwAddressCallback (SatUtMac::UpdateGwAddressCallback cb)
 Set the gw update callback. More...
 
- Public Member Functions inherited from ns3::SatMac
 SatMac ()
 Construct a SatMac. More...
 
 SatMac (uint32_t satId, uint32_t beamId, SatEnums::RegenerationMode_t forwardLinkRegenerationMode, SatEnums::RegenerationMode_t returnLinkRegenerationMode)
 Construct a SatMac. More...
 
 ~SatMac ()
 Destroy a SatMac. More...
 
virtual void Disable ()
 Disable the MAC layer, i.e. More...
 
virtual void Enable ()
 Enable the MAC layer, i.e. More...
 
Address GetAddress () const
 Get MAC address. More...
 
uint32_t GetBeamId () const
 Get beam ID of the object. More...
 
uint32_t GetSatId () const
 Get sat ID of the object. More...
 
uint32_t ReserveIdAndStoreCtrlMsgToContainer (Ptr< SatControlMessage > msg)
 Reserve id and store the control message. More...
 
uint32_t SendCtrlMsgFromContainer (uint32_t sendId)
 Send the control message from the container. More...
 
void SetLoraReceiveCallback (SatMac::LoraReceiveCallback cb)
 Method to set receive callback. More...
 
void SetReadCtrlCallback (SatMac::ReadCtrlMsgCallback cb)
 Method to set read control message callback. More...
 
void SetReceiveCallback (SatMac::ReceiveCallback cb)
 Method to set receive callback. More...
 
void SetReserveCtrlCallback (SatMac::ReserveCtrlMsgCallback cb)
 Method to set reserve control message id callback. More...
 
void SetRoutingUpdateCallback (SatMac::RoutingUpdateCallback cb)
 Method to set the routing update callback. More...
 
void SetSendCtrlCallback (SatMac::SendCtrlMsgCallback cb)
 Method to set send control message callback. More...
 
void SetTransmitCallback (SatMac::TransmitCallback cb)
 Method to set transmit callback. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Derived from Object. More...
 
- Static Public Member Functions inherited from ns3::SatMac
static TypeId GetTypeId (void)
 Derived from Object. More...
 

Protected Member Functions

void DoDispose (void)
 Dispose of SatUtMac. More...
 
- Protected Member Functions inherited from ns3::SatMac
void DoDispose (void)
 Dispose of SatMac. More...
 
void RxTraces (SatPhy::PacketContainer_t packets)
 Invoke the Rx trace source for each received packet. More...
 
virtual void SendPacket (SatPhy::PacketContainer_t packets, uint32_t carrierId, Time duration, SatSignalParameters::txInfo_s txInfo)
 Send packets to lower layer by using a callback. More...
 
void SetTimeTag (SatPhy::PacketContainer_t packets)
 Set SatMacTimeTag of packets. More...
 

Private Types

enum  HandoverState_t { NO_HANDOVER , HANDOVER_RECOMMENDATION_SENT , WAITING_FOR_TBTP }
 

Private Member Functions

 SatUtMac (const SatUtMac &)
 
void CreateCrdsaPacketInstances (uint32_t allocationChannel, std::set< uint32_t > slots)
 
void DoEssaTransmit (Time duration, Ptr< SatWaveform > waveform, uint32_t carrierId, uint8_t rcIndex, SatUtScheduler::SatCompliancePolicy_t policy=SatUtScheduler::LOOSE)
 Notify the upper layer about the ESSA Tx opportunity. More...
 
void DoFrameStart ()
 Function which is executed at every frame start. More...
 
void DoRandomAccess (SatEnums::RandomAccessTriggerType_t randomAccessTriggerType)
 Do random access evaluation for Tx opportunities. More...
 
void DoSlottedAlohaTransmit (Time duration, Ptr< SatWaveform > waveform, uint32_t carrierId, uint8_t rcIndex, SatUtScheduler::SatCompliancePolicy_t policy=SatUtScheduler::LOOSE)
 Notify the upper layer about the Slotted ALOHA Tx opportunity. More...
 
void DoTransmit (Time duration, uint32_t carrierId, Ptr< SatWaveform > wf, Ptr< SatTimeSlotConf > tsConf, SatUtScheduler::SatCompliancePolicy_t policy=SatUtScheduler::LOOSE)
 Notify the upper layer about the Tx opportunity. More...
 
void ExtractPacketsToSchedule (SatPhy::PacketContainer_t &packets, uint32_t payloadBytes, SatTimeSlotConf::SatTimeSlotType_t type, uint8_t rcIndex, SatUtScheduler::SatCompliancePolicy_t policy, bool randomAccessChannel)
 Extract packets from the underlying queue and put them in the provided container. More...
 
SatPhy::PacketContainer_t FetchPackets (uint32_t payloadBytes, SatTimeSlotConf::SatTimeSlotType_t type, uint8_t rcIndex, SatUtScheduler::SatCompliancePolicy_t policy)
 
std::pair< bool, uint32_t > FindNextAvailableRandomAccessSlot (Time opportunityOffset, Ptr< SatFrameConf > frameConf, uint32_t timeSlotCount, uint32_t superFrameId, uint32_t allocationChannel)
 
uint32_t GetCurrentSuperFrameId (uint8_t superFrameSeqId) const
 
Time GetCurrentSuperFrameStartTime (uint8_t superFrameSeqId) const
 Get start time for the current superframe. More...
 
uint32_t GetNextRandomAccessAllocationChannel ()
 Function for selecting the allocation channel for the current RA evaluation. More...
 
Time GetRealSendingTime (Time t)
 Compute real sending time of UT based on last NCR reception date and clock drift. More...
 
bool IsRandomAccessSlotAvailable (uint32_t superFrameId, uint32_t allocationChannelId, uint32_t slotId)
 
SatUtMacoperator= (const SatUtMac &)
 
void PrintUsedRandomAccessSlots ()
 
void ReceiveSignalingPacket (Ptr< Packet > packet)
 Signaling packet receiver, which handles all the signaling packet receptions. More...
 
void RemovePastRandomAccessSlots (uint32_t superFrameId)
 Function for removing the past used RA slots. More...
 
void ScheduleCrdsaTransmission (uint32_t allocationChannel, SatRandomAccess::RandomAccessTxOpportunities_s txOpportunities)
 Function for scheduling the CRDSA transmissions. More...
 
void ScheduleDaTxOpportunity (Time transmitDelay, Time duration, Ptr< SatWaveform > wf, Ptr< SatTimeSlotConf > tsConf, uint32_t carrierId)
 Schdules one Tx opportunity, i.e. More...
 
void ScheduleEssaTransmission (uint32_t allocationChannel)
 Function for scheduling the ESSA transmissions. More...
 
void ScheduleSlottedAlohaTransmission (uint32_t allocationChannel)
 Function for scheduling the Slotted ALOHA transmissions. More...
 
void ScheduleTimeSlots (Ptr< SatTbtpMessage > tbtp)
 Schedules time slots according to received TBTP message. More...
 
std::pair< bool, uint32_t > SearchFrameForAvailableSlot (Time superframeStartTime, Ptr< SatFrameConf > frameConf, uint32_t timeSlotCount, uint32_t superFrameId, uint32_t allocationChannel)
 
void TransmitPackets (SatPhy::PacketContainer_t packets, Time duration, uint32_t carrierId, SatSignalParameters::txInfo_s txInfo)
 
bool UpdateUsedRandomAccessSlots (uint32_t superFrameId, uint32_t allocationChannel, uint32_t slot)
 Function for updating the used RA slots. More...
 

Private Attributes

SatUtMac::AskedBeamCallback m_askedBeamCallback
 Beam checker and handover recommendation sending callback. More...
 
AssignedDaResourcesCallback m_assignedDaResourcesCallback
 Callback for informing the assigned TBTP resources. More...
 
SatUtMac::BeamCheckerCallback m_beamCheckerCallback
 Beam checker and handover recommendation sending callback. More...
 
uint32_t m_beamId
 ID of beam for UT. More...
 
SatUtMac::BeamScheculerCallback m_beamScheculerCallback
 Callback to get the SatBeamScheduler linked to a beam ID. More...
 
int32_t m_clockDrift
 Clock drift (number of ticks per second) More...
 
bool m_crdsaOnlyForControl
 Planned CRDSA usage: More...
 
uint32_t m_crdsaUniquePacketId
 CRDSA packet ID (per frame) More...
 
int64_t m_deltaNcr
 Correction to apply to NCR dates. More...
 
uint32_t m_firstTransmittableSuperframeId
 
SatUtMac::GatewayUpdateCallback m_gatewayUpdateCallback
 Gateway address update callback. More...
 
Time m_guardTime
 Guard time for time slots. More...
 
Mac48Address m_gwAddress
 
SatUtMac::HandoverCallback m_handoverCallback
 The physical layer handover callback. More...
 
uint32_t m_handoverMessagesCount
 
HandoverState_t m_handoverState
 
bool m_isRandomAccessScheduled
 Flag that indicates if a method DoRandomAccess is scheduled for asynchronous access. More...
 
Time m_lastNcrDateReceived
 Reception date of last NCR control message. More...
 
bool m_loggedOn
 UT is logged on. More...
 
uint32_t m_logonChannel
 RA channel dedicated to logon messages. More...
 
uint32_t m_maxHandoverMessagesSent
 
Time m_maxWaitingTimeLogonResponse
 Timeout for waiting for a response for a logon message. More...
 
uint64_t m_ncr
 NCR value of last NCR control message. More...
 
Time m_nextLogonTransmissionPossible
 Instant when a logon message can be transmitted. More...
 
Time m_nextPacketTime
 Next time when a next ESSA packet can be safely sent. More...
 
uint32_t m_raChannel
 RA channel assigned to the UT. More...
 
Ptr< SatRandomAccessm_randomAccess
 RA main module. More...
 
SatUtMacState m_rcstState
 
std::queue< Time > m_receptionDates
 Store last 3 packets reception date, to be associated to NCR dates. More...
 
uint32_t m_satId
 ID of sat for UT. More...
 
SatUtMac::SendLogonCallback m_sendLogonCallback
 Callback for sending a logon message. More...
 
uint32_t m_sendLogonTries
 Number of times a logon message has been sent without response. More...
 
SatUtMac::SliceSubscriptionCallback m_sliceSubscriptionCallback
 Tx checking callback. More...
 
Ptr< SatSuperframeSeqm_superframeSeq
 Used superframe sequence for the return link. More...
 
Ptr< SatTbtpContainerm_tbtpContainer
 Container for storing all the TBTP information related to this UT. More...
 
TracedCallback< uint32_t > m_tbtpResourcesTrace
 Assigned TBTP resources in superframe for this UT (in bytes). More...
 
TimingAdvanceCallback m_timingAdvanceCb
 Callback for getting the timing advance information. More...
 
Ptr< SatTimuInfom_timuInfo
 
SatUtMac::TxCheckCallback m_txCheckCallback
 Tx checking callback. More...
 
Ptr< UniformRandomVariable > m_uniformRandomVariable
 Uniform random variable distribution generator. More...
 
SatUtMac::UpdateGwAddressCallback m_updateGwAddressCallback
 Callback for sending a logon message. More...
 
std::map< std::pair< uint32_t, uint32_t >, std::set< uint32_t > > m_usedRandomAccessSlots
 A container for storing the used RA slots in each frame and allocation channel. More...
 
bool m_useLogon
 Should logon be simulated? More...
 
Ptr< SatUtSchedulerm_utScheduler
 UT scheduler. More...
 
Ptr< UniformRandomVariable > m_waitingTimeLogonRng
 The random generator for waiting transmission time. More...
 
Time m_windowInitLogon
 The initial max time to wait when sending a logon message. More...
 

Additional Inherited Members

- Protected Attributes inherited from ns3::SatMac
Time m_beamEnabledTime
 Time of the last beam enable event. More...
 
uint32_t m_beamId
 The ID of the beam where mac belongs. More...
 
TracedCallback< Time > m_beamServiceTrace
 Traced callback for beam being disabled and including service time. More...
 
SatEnums::RegenerationMode_t m_forwardLinkRegenerationMode
 Regeneration mode on forward link. More...
 
bool m_isRegenerative
 Indicate if satellite is regeneration (at least LINK level) for TX. More...
 
bool m_isStatisticsTagsEnabled
 EnableStatisticsTags attribute. More...
 
Time m_lastDelay
 Last delay measurement. More...
 
Time m_lastLinkDelay
 Last delay measurement for link. More...
 
std::queue< Time > m_lastSOF
 Store last 3 SOF date for Forward messages, to insert in NCR packets. More...
 
std::queue< Ptr< SatNcrMessage > > m_ncrMessagesToSend
 List of NCR control messages created but not sent yet. More...
 
bool m_ncrV2
 Use of version 2 of NCR dates. More...
 
Ptr< SatNodeInfom_nodeInfo
 Node info containing node related information, such as node type, node id and MAC address (of the SatNetDevice) More...
 
TracedCallback< Time, SatEnums::SatPacketEvent_t, SatEnums::SatNodeType_t, uint32_t, Mac48Address, SatEnums::SatLogLevel_t, SatEnums::SatLinkDir_t, std::string > m_packetTrace
 Trace callback used for packet tracing. More...
 
SatMac::ReadCtrlMsgCallback m_readCtrlCallback
 The read control message callback. More...
 
SatMac::ReserveCtrlMsgCallback m_reserveCtrlCallback
 The reserve control message id callback. More...
 
SatEnums::RegenerationMode_t m_returnLinkRegenerationMode
 Regeneration mode on return link. More...
 
SatMac::RoutingUpdateCallback m_routingUpdateCallback
 Callback to update routing and ARP tables after a beam handover. More...
 
SatMac::ReceiveCallback m_rxCallback
 The upper layer package receive callback. More...
 
TracedCallback< const Time &, const Address & > m_rxDelayTrace
 Traced callback for all received packets, including delay information and the address of the senders. More...
 
TracedCallback< const Time &, const Address & > m_rxJitterTrace
 Traced callback for all received packets, including jitter information and the address of the senders. More...
 
TracedCallback< const Time &, const Address & > m_rxLinkDelayTrace
 Traced callback for all received packets, including link delay information and the address of the senders. More...
 
TracedCallback< const Time &, const Address & > m_rxLinkJitterTrace
 Traced callback for all received packets, including link jitter information and the address of the senders. More...
 
SatMac::LoraReceiveCallback m_rxLoraCallback
 The upper layer package receive callback. More...
 
TracedCallback< Ptr< const Packet >, const Address & > m_rxTrace
 Traced callback for all received packets, including the address of the senders. More...
 
Address m_satelliteAddress
 MAC address of satellite on other side of the link. More...
 
uint32_t m_satId
 The ID of the sat where mac belongs. More...
 
SatMac::SendCtrlMsgCallback m_sendCtrlCallback
 The send control message callback. More...
 
SatMac::TransmitCallback m_txCallback
 The lower layer packet transmit callback. More...
 
bool m_txEnabled
 Flag indicating whether the MAC is enabled, i.e. More...
 

Detailed Description

UT specific Mac class for Sat Net Devices.

This SatUtMac class specializes the MAC class with UT characteristics. UT MAC receives BB frames intended for it (including at least one packet intended for it) from the forward link and disassembles the GSE PDUs from the BB frame. BB frame may hold also TBTP messages from GW (forward link) including allocations for the UT. UT schedules the tx opportunities to LLC via UT scheduler. UT forwards a container of packets to the PHY layer. Packet container models the Frame PDU, including one or more RLE PDUs.

Definition at line 71 of file satellite-ut-mac.h.

Member Typedef Documentation

◆ AskedBeamCallback

typedef Callback<uint32_t> ns3::SatUtMac::AskedBeamCallback

Callback to ask for the best beam ID during handover.

Returns
The best beam ID

Definition at line 354 of file satellite-ut-mac.h.

◆ AssignedDaResourcesCallback

typedef Callback<void, uint8_t, uint32_t> ns3::SatUtMac::AssignedDaResourcesCallback

Callback for informing the amount of dedicated access bytes received from TBTP.

Parameters
uint8_tRC index
uint32_tSum of bytes in this superframe

Definition at line 156 of file satellite-ut-mac.h.

◆ BeamCheckerCallback

typedef Callback<bool, uint32_t, uint32_t> ns3::SatUtMac::BeamCheckerCallback

Callback to check whether the current beam is still the best one to use for sending data; and sending handover recommendation if not.

Parameters
uint32_tthe current satellite ID
uint32_tthe current beam ID

Definition at line 348 of file satellite-ut-mac.h.

◆ BeamScheculerCallback

typedef Callback<Ptr<SatBeamScheduler>, uint32_t, uint32_t> ns3::SatUtMac::BeamScheculerCallback

Callback to get the SatBeamScheduler from the beam ID for handover.

Definition at line 211 of file satellite-ut-mac.h.

◆ GatewayUpdateCallback

typedef Callback<void, Mac48Address> ns3::SatUtMac::GatewayUpdateCallback

Callback to update gateway address after handover.

Parameters
Mac48Addressthe address of the new gateway

Definition at line 334 of file satellite-ut-mac.h.

◆ HandoverCallback

typedef Callback<void, uint32_t> ns3::SatUtMac::HandoverCallback

Callback to reconfigure physical layer during handover.

Parameters
uint32_tnew beam Id

Definition at line 322 of file satellite-ut-mac.h.

◆ SendLogonCallback

typedef Callback<void> ns3::SatUtMac::SendLogonCallback

Callback to send a logon message to the gateway.

Definition at line 189 of file satellite-ut-mac.h.

◆ SliceSubscriptionCallback

typedef Callback<void, uint8_t> ns3::SatUtMac::SliceSubscriptionCallback

Callback to check if TX is operational.

Definition at line 178 of file satellite-ut-mac.h.

◆ TbtpResourcesTraceCallback

typedef void(* ns3::SatUtMac::TbtpResourcesTraceCallback) (uint32_t size)

Callback signature for DaResourcesTrace trace source.

Parameters
sizethe amount of assigned TBTP resources (in bytes) in the superframe for this UT

Definition at line 316 of file satellite-ut-mac.h.

◆ TimingAdvanceCallback

typedef Callback<Time> ns3::SatUtMac::TimingAdvanceCallback
Returns
Timing advance as Time object.

Definition at line 142 of file satellite-ut-mac.h.

◆ TxCheckCallback

typedef Callback<bool> ns3::SatUtMac::TxCheckCallback

Callback to check if TX is operational.

Definition at line 167 of file satellite-ut-mac.h.

◆ UpdateGwAddressCallback

typedef Callback<void, Mac48Address> ns3::SatUtMac::UpdateGwAddressCallback

Callback to update GW address to SatRequestManager.

Definition at line 200 of file satellite-ut-mac.h.

Member Enumeration Documentation

◆ HandoverState_t

Enumerator
NO_HANDOVER 
HANDOVER_RECOMMENDATION_SENT 
WAITING_FOR_TBTP 

Definition at line 794 of file satellite-ut-mac.h.

Constructor & Destructor Documentation

◆ SatUtMac() [1/3]

ns3::SatUtMac::SatUtMac ( )

Default constructor, which is not used.

Definition at line 112 of file satellite-ut-mac.cc.

◆ SatUtMac() [2/3]

ns3::SatUtMac::SatUtMac ( uint32_t  satId,
uint32_t  beamId,
Ptr< SatSuperframeSeq seq,
SatEnums::RegenerationMode_t  forwardLinkRegenerationMode,
SatEnums::RegenerationMode_t  returnLinkRegenerationMode,
bool  crdsaOnlyForControl 
)

Construct a SatUtMac.

This is the constructor for the SatUtMac

Parameters
satIdID of sat for UT
beamIdID of beam for UT
seqPointer to superframe sequence.
forwardLinkRegenerationModeForward link regeneration mode
returnLinkRegenerationModeReturn link regeneration mode
crdsaOnlyForControlCRDSA buffer operation mode

Definition at line 159 of file satellite-ut-mac.cc.

References m_superframeSeq, m_tbtpContainer, and m_uniformRandomVariable.

◆ ~SatUtMac()

ns3::SatUtMac::~SatUtMac ( )

Destroy a SatUtMac.

This is the destructor for the SatUtMac.

Definition at line 210 of file satellite-ut-mac.cc.

References m_randomAccess, m_tbtpContainer, and m_timuInfo.

◆ SatUtMac() [3/3]

ns3::SatUtMac::SatUtMac ( const SatUtMac )
private

Member Function Documentation

◆ ControlMsgTransmissionPossible()

bool ns3::SatUtMac::ControlMsgTransmissionPossible ( ) const

Method to check whether a transmission of a control msg is somewhat possible.

Transmission cannot be guaranteed, but at least the possibility to do so (e.g. random access / CRDSA enabled, TBTP with time slots received).

Returns
Boolean to indicate whether a control msg transmission is possible

Definition at line 387 of file satellite-ut-mac.cc.

References m_logonChannel, m_raChannel, m_randomAccess, m_tbtpContainer, and m_useLogon.

Referenced by ns3::SatUtHelper::InstallDvb(), and ReceiveSignalingPacket().

+ Here is the caller graph for this function:

◆ CreateCrdsaPacketInstances()

void ns3::SatUtMac::CreateCrdsaPacketInstances ( uint32_t  allocationChannel,
std::set< uint32_t >  slots 
)
private

CRDSA is evaluated only at the frame start TODO this has to be changed when a proper mobility model is implemented

get the slot payload

reduce the CRDSA signaling overhead from the payload

CRDSA can be utilized to transmit only control messages or both control and user data

get the next packet

create replicas

create replica slot ID tags

loop through the replicas

attach the replica tag

time slot configuration

start time

duration

carrier

create CRDSA Tx params

schedule transmission

Definition at line 1691 of file satellite-ut-mac.cc.

References ns3::SatCrdsaReplicaTag::AddSlotId(), ns3::SatEnums::CONTROL_FID, ns3::SatSignalParameters::txInfo_s::crdsaUniquePacketId, ExtractPacketsToSchedule(), ns3::SatSignalParameters::txInfo_s::fecBlockSizeInBytes, ns3::SatSignalParameters::txInfo_s::frameType, GetRealSendingTime(), ns3::SatUtScheduler::LOOSE, m_crdsaOnlyForControl, m_crdsaUniquePacketId, ns3::SatMac::m_nodeInfo, m_randomAccess, m_superframeSeq, ns3::SatSignalParameters::txInfo_s::modCod, ns3::SatEnums::PACKET_TYPE_CRDSA, ns3::SatSignalParameters::txInfo_s::packetType, ns3::SatSignalParameters::txInfo_s::sliceId, ns3::SatTimeSlotConf::SLOT_TYPE_TRC, ns3::SatUtScheduler::STRICT, ns3::SatConstVariables::SUPERFRAME_SEQUENCE, TransmitPackets(), ns3::SatEnums::UNDEFINED_FRAME, and ns3::SatSignalParameters::txInfo_s::waveformId.

Referenced by ScheduleCrdsaTransmission().

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

◆ DoDispose()

◆ DoEssaTransmit()

void ns3::SatUtMac::DoEssaTransmit ( Time  duration,
Ptr< SatWaveform waveform,
uint32_t  carrierId,
uint8_t  rcIndex,
SatUtScheduler::SatCompliancePolicy_t  policy = SatUtScheduler::LOOSE 
)
private

Notify the upper layer about the ESSA Tx opportunity.

If upper layer returns a PDU, send it to lower layer.

Parameters
durationduration of the burst
waveformwaveform
carrierIdCarrier id used for the transmission
rcIndexRC index

get the slot payload

get the next packets

create ESSA Tx params

update m_nextPacketTime

schedule a DoRandomAccess then in case there still are packets to transmit ( schedule DoRandomAccess in case there is a back-off to compute )

Definition at line 760 of file satellite-ut-mac.cc.

References ns3::SatSignalParameters::txInfo_s::crdsaUniquePacketId, DoRandomAccess(), ns3::SatSignalParameters::txInfo_s::fecBlockSizeInBytes, ns3::SatSignalParameters::txInfo_s::frameType, ns3::SatUtils::GetPacketInfo(), GetRealSendingTime(), ns3::SatEnums::LD_RETURN, ns3::SatEnums::LL_MAC, m_crdsaUniquePacketId, m_isRandomAccessScheduled, m_nextPacketTime, ns3::SatMac::m_nodeInfo, ns3::SatMac::m_packetTrace, m_utScheduler, ns3::SatSignalParameters::txInfo_s::modCod, ns3::SatEnums::PACKET_SENT, ns3::SatEnums::PACKET_TYPE_ESSA, ns3::SatSignalParameters::txInfo_s::packetType, ns3::SatEnums::RA_TRIGGER_TYPE_ESSA, ns3::SatTimeSlotConf::SLOT_TYPE_TRC, TransmitPackets(), ns3::SatEnums::UNDEFINED_FRAME, and ns3::SatSignalParameters::txInfo_s::waveformId.

Referenced by ScheduleEssaTransmission().

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

◆ DoFrameStart()

◆ DoRandomAccess()

void ns3::SatUtMac::DoRandomAccess ( SatEnums::RandomAccessTriggerType_t  randomAccessTriggerType)
private

Do random access evaluation for Tx opportunities.

Parameters
randomAccessTriggerType

reset the isRandomAccessScheduled flag. TODO: should be done only if randomAccessTriggerType is ESSA

select the RA allocation channel

run random access algorithm

process Slotted ALOHA Tx opportunities

schedule the check for next available RA slot

process CRDSA Tx opportunities

schedule CRDSA transmission

process ESSA opportunities

set the is RA scheduled TODO: if there are no Tx opportunities there'll be no scheduling until a new event arrives

schedule the transmission

Definition at line 1323 of file satellite-ut-mac.cc.

References GetNextRandomAccessAllocationChannel(), GetRealSendingTime(), ns3::SatUtMacState::GetState(), m_isRandomAccessScheduled, m_logonChannel, ns3::SatMac::m_nodeInfo, m_randomAccess, m_rcstState, m_useLogon, ns3::SatEnums::RA_TX_OPPORTUNITY_CRDSA, ns3::SatEnums::RA_TX_OPPORTUNITY_ESSA, ns3::SatEnums::RA_TX_OPPORTUNITY_SLOTTED_ALOHA, ScheduleCrdsaTransmission(), ScheduleEssaTransmission(), ScheduleSlottedAlohaTransmission(), ns3::SatRandomAccess::RandomAccessTxOpportunities_s::slottedAlohaTxOpportunity, and ns3::SatRandomAccess::RandomAccessTxOpportunities_s::txOpportunityType.

Referenced by DoEssaTransmit(), DoFrameStart(), ReceiveQueueEvent(), and ReceiveQueueEventEssa().

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

◆ DoSlottedAlohaTransmit()

void ns3::SatUtMac::DoSlottedAlohaTransmit ( Time  duration,
Ptr< SatWaveform waveform,
uint32_t  carrierId,
uint8_t  rcIndex,
SatUtScheduler::SatCompliancePolicy_t  policy = SatUtScheduler::LOOSE 
)
private

Notify the upper layer about the Slotted ALOHA Tx opportunity.

If upper layer returns a PDU, send it to lower layer.

Parameters
durationduration of the burst
waveformwaveform
carrierIdCarrier id used for the transmission
rcIndexRC index

get the slot payload

reduce the SA signaling overhead from the payload

Definition at line 696 of file satellite-ut-mac.cc.

References ExtractPacketsToSchedule(), ns3::SatSignalParameters::txInfo_s::fecBlockSizeInBytes, ns3::SatSignalParameters::txInfo_s::frameType, ns3::SatUtils::GetPacketInfo(), ns3::SatEnums::LD_RETURN, ns3::SatEnums::LL_MAC, ns3::SatMac::m_nodeInfo, ns3::SatMac::m_packetTrace, m_randomAccess, ns3::SatSignalParameters::txInfo_s::modCod, ns3::SatEnums::PACKET_SENT, ns3::SatEnums::PACKET_TYPE_SLOTTED_ALOHA, ns3::SatSignalParameters::txInfo_s::packetType, ns3::SatTimeSlotConf::SLOT_TYPE_C, TransmitPackets(), ns3::SatEnums::UNDEFINED_FRAME, and ns3::SatSignalParameters::txInfo_s::waveformId.

Referenced by ScheduleSlottedAlohaTransmission().

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

◆ DoTransmit()

void ns3::SatUtMac::DoTransmit ( Time  duration,
uint32_t  carrierId,
Ptr< SatWaveform wf,
Ptr< SatTimeSlotConf tsConf,
SatUtScheduler::SatCompliancePolicy_t  policy = SatUtScheduler::LOOSE 
)
private

◆ ExtractPacketsToSchedule()

void ns3::SatUtMac::ExtractPacketsToSchedule ( SatPhy::PacketContainer_t packets,
uint32_t  payloadBytes,
SatTimeSlotConf::SatTimeSlotType_t  type,
uint8_t  rcIndex,
SatUtScheduler::SatCompliancePolicy_t  policy,
bool  randomAccessChannel 
)
private

Extract packets from the underlying queue and put them in the provided container.

Parameters
packetsContainer for the packets to extract
payloadBytesTx opportunity payload
typeTime slot type
rcIndexRC index
policyScheduler policy
randomAccessChannelwhether the packets are to be sent on RA or DA

Definition at line 2116 of file satellite-ut-mac.cc.

References ns3::SatEnums::CONTROL_FID, GetCurrentSuperFrameId(), ns3::SatControlMsgTag::GetMsgType(), HANDOVER_RECOMMENDATION_SENT, m_firstTransmittableSuperframeId, m_handoverState, m_utScheduler, NO_HANDOVER, ns3::SatControlMsgTag::SAT_HR_CTRL_MSG, ns3::SatTimeSlotConf::SLOT_TYPE_C, ns3::SatUtScheduler::STRICT, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.

Referenced by CreateCrdsaPacketInstances(), DoSlottedAlohaTransmit(), and FetchPackets().

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

◆ FetchPackets()

SatPhy::PacketContainer_t ns3::SatUtMac::FetchPackets ( uint32_t  payloadBytes,
SatTimeSlotConf::SatTimeSlotType_t  type,
uint8_t  rcIndex,
SatUtScheduler::SatCompliancePolicy_t  policy 
)
private
Parameters
payloadBytesTx opportunity payload
typeTime slot type
rcIndexRC index
policyScheduler policy
Returns

Instruct the UT scheduler to fill the packet container based on given input; e.g. payload, RC index. The packet container models the FPDU, which may contain several RLE PDUs

Definition at line 837 of file satellite-ut-mac.cc.

References ExtractPacketsToSchedule(), ns3::SatUtils::GetPacketInfo(), ns3::SatEnums::LD_RETURN, ns3::SatEnums::LL_MAC, ns3::SatMac::m_nodeInfo, ns3::SatMac::m_packetTrace, and ns3::SatEnums::PACKET_SENT.

Referenced by DoTransmit().

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

◆ FindNextAvailableRandomAccessSlot()

std::pair< bool, uint32_t > ns3::SatUtMac::FindNextAvailableRandomAccessSlot ( Time  opportunityOffset,
Ptr< SatFrameConf frameConf,
uint32_t  timeSlotCount,
uint32_t  superFrameId,
uint32_t  allocationChannel 
)
private
Parameters
opportunityOffset
frameConf
timeSlotCount
superFrameId
allocationChannel
Returns

iterate through slots in this frame

if slot offset is equal or larger than Tx opportunity offset, i.e., the slot is in the future

if slot is available, set the slot as used and continue with the transmission

Definition at line 1544 of file satellite-ut-mac.cc.

References ns3::SatMac::m_nodeInfo, and UpdateUsedRandomAccessSlots().

Referenced by SearchFrameForAvailableSlot().

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

◆ GetBeamId()

uint32_t ns3::SatUtMac::GetBeamId ( void  ) const
inline

Get beam ID of the object.

Returns
beam ID

Definition at line 127 of file satellite-ut-mac.h.

References m_beamId.

◆ GetCurrentSuperFrameId()

uint32_t ns3::SatUtMac::GetCurrentSuperFrameId ( uint8_t  superFrameSeqId) const
private

Definition at line 462 of file satellite-ut-mac.cc.

References m_timingAdvanceCb.

Referenced by ExtractPacketsToSchedule(), ScheduleCrdsaTransmission(), and ScheduleSlottedAlohaTransmission().

+ Here is the caller graph for this function:

◆ GetCurrentSuperFrameStartTime()

Time ns3::SatUtMac::GetCurrentSuperFrameStartTime ( uint8_t  superFrameSeqId) const
private

Get start time for the current superframe.

Parameters
superFrameSeqIdSuperframe sequence id
Returns
Time Time to transmit

Definition at line 451 of file satellite-ut-mac.cc.

References m_timingAdvanceCb.

Referenced by ScheduleCrdsaTransmission(), and ScheduleSlottedAlohaTransmission().

+ Here is the caller graph for this function:

◆ GetGwAddress()

Mac48Address ns3::SatUtMac::GetGwAddress ( void  )

Get address of the GW (or its MAC) serving this UT.

Returns
Address of the GW.

Definition at line 317 of file satellite-ut-mac.cc.

References m_gwAddress.

◆ GetInstanceTypeId()

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

Derived from Object.

Definition at line 105 of file satellite-ut-mac.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetNextRandomAccessAllocationChannel()

uint32_t ns3::SatUtMac::GetNextRandomAccessAllocationChannel ( )
private

Function for selecting the allocation channel for the current RA evaluation.

Returns
allocation channel ID

TODO at the moment only one allocation channel is supported

Definition at line 1401 of file satellite-ut-mac.cc.

References ns3::SatMac::m_nodeInfo, and m_raChannel.

Referenced by DoRandomAccess().

+ Here is the caller graph for this function:

◆ GetNextSuperFrameTxTime()

Time ns3::SatUtMac::GetNextSuperFrameTxTime ( uint8_t  superFrameSeqId) const

Get Tx time for the next possible superframe.

Parameters
superFrameSeqIdSuperframe sequence id
Returns
Time Time to transmit

Definition at line 440 of file satellite-ut-mac.cc.

References m_timingAdvanceCb.

Referenced by DoFrameStart(), and SetTimingAdvanceCallback().

+ Here is the caller graph for this function:

◆ GetRaChannel()

uint32_t ns3::SatUtMac::GetRaChannel ( ) const

Get RA channel assigned for this UT.

Returns
RA channel assigned to this UT.

Definition at line 369 of file satellite-ut-mac.cc.

References m_raChannel.

◆ GetRcstState()

SatUtMacState::RcstState_t ns3::SatUtMac::GetRcstState ( ) const

Definition at line 2109 of file satellite-ut-mac.cc.

References ns3::SatUtMacState::GetState(), and m_rcstState.

+ Here is the call graph for this function:

◆ GetRealSendingTime()

Time ns3::SatUtMac::GetRealSendingTime ( Time  t)
private

Compute real sending time of UT based on last NCR reception date and clock drift.

Parameters
tSending time if clock is perfect (relative time from Simulator::Now ())
Returns
Corrected time (relative time from Simulator::Now ())

Definition at line 2073 of file satellite-ut-mac.cc.

References m_clockDrift, and m_deltaNcr.

Referenced by CreateCrdsaPacketInstances(), DoEssaTransmit(), DoFrameStart(), DoRandomAccess(), ScheduleDaTxOpportunity(), ScheduleEssaTransmission(), ScheduleSlottedAlohaTransmission(), SendLogon(), and SetTimingAdvanceCallback().

+ Here is the caller graph for this function:

◆ GetSatId()

uint32_t ns3::SatUtMac::GetSatId ( void  ) const
inline

Get sat ID of the object.

Returns
sat ID

Definition at line 118 of file satellite-ut-mac.h.

References m_satId.

◆ GetTypeId()

TypeId ns3::SatUtMac::GetTypeId ( void  )
static

Derived from Object.

Definition at line 55 of file satellite-ut-mac.cc.

References m_clockDrift, m_guardTime, m_maxHandoverMessagesSent, m_maxWaitingTimeLogonResponse, m_superframeSeq, m_tbtpResourcesTrace, m_utScheduler, and m_windowInitLogon.

Referenced by GetInstanceTypeId().

+ Here is the caller graph for this function:

◆ IsRandomAccessSlotAvailable()

bool ns3::SatUtMac::IsRandomAccessSlotAvailable ( uint32_t  superFrameId,
uint32_t  allocationChannelId,
uint32_t  slotId 
)
private
Parameters
superFrameId
allocationChannelId
slotId
Returns

◆ LogOff()

void ns3::SatUtMac::LogOff ( )

Definition at line 344 of file satellite-ut-mac.cc.

References m_loggedOn, m_logonChannel, m_raChannel, m_rcstState, and ns3::SatUtMacState::SwitchToOffStandby().

Referenced by DoFrameStart(), and ReceiveSignalingPacket().

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

◆ LogonMsgTransmissionPossible()

bool ns3::SatUtMac::LogonMsgTransmissionPossible ( ) const

Method to check whether a transmission of a logon msg is somewhat possible.

Returns
Boolean to indicate whether a logon msg transmission is possible

Definition at line 401 of file satellite-ut-mac.cc.

References ns3::SatUtMacState::GetState(), ns3::SatUtMacState::IsNcrTimeout(), m_rcstState, and m_useLogon.

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

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

◆ operator=()

SatUtMac& ns3::SatUtMac::operator= ( const SatUtMac )
private

◆ PrintUsedRandomAccessSlots()

void ns3::SatUtMac::PrintUsedRandomAccessSlots ( )
private

Definition at line 1943 of file satellite-ut-mac.cc.

References ns3::SatMac::m_nodeInfo, and m_usedRandomAccessSlots.

◆ Receive()

◆ ReceiveQueueEvent()

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

Receive a queue event:

  • FIRST_BUFFER_RCVD
  • BUFFER_EMPTY /param event Queue event from SatQueue /param rcIndex Identifier of the queue

Reimplemented from ns3::SatMac.

Definition at line 919 of file satellite-ut-mac.cc.

References ns3::SatQueue::BUFFERED_PKT, ns3::SatEnums::CONTROL_FID, DoRandomAccess(), ns3::SatQueue::FIRST_BUFFERED_PKT, ns3::SatMac::m_nodeInfo, m_randomAccess, and ns3::SatEnums::RA_TRIGGER_TYPE_SLOTTED_ALOHA.

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

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

◆ ReceiveQueueEventEssa()

void ns3::SatUtMac::ReceiveQueueEventEssa ( SatQueue::QueueEvent_t  event,
uint8_t  rcIndex 
)
virtual

Receive a queue event:

  • FIRST_BUFFER_RCVD
  • BUFFER_EMPTY /param event Queue event from SatQueue /param rcIndex Identifier of the queue

Definition at line 943 of file satellite-ut-mac.cc.

References ns3::SatQueue::BUFFERED_PKT, DoRandomAccess(), ns3::SatQueue::FIRST_BUFFERED_PKT, m_isRandomAccessScheduled, ns3::SatMac::m_nodeInfo, m_randomAccess, and ns3::SatEnums::RA_TRIGGER_TYPE_ESSA.

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

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

◆ ReceiveSignalingPacket()

void ns3::SatUtMac::ReceiveSignalingPacket ( Ptr< Packet >  packet)
private

Signaling packet receiver, which handles all the signaling packet receptions.

Parameters
packetReceived signaling packet

Control message NOT found in container anymore! This means, that the SatBeamHelper::CtrlMsgStoreTimeInFwdLink attribute may be set to too short value or there are something wrong in the FWD link RRM.

Control message NOT found in container anymore! This means, that the SatBeamHelper::CtrlMsgStoreTimeInFwdLink attribute may be set to too short value or there are something wrong in the FWD link RRM.

Control message NOT found in container anymore! This means, that the SatBeamHelper::CtrlMsgStoreTimeInFwdLink attribute may be set to too short value or there are something wrong in the FWD link RRM.

Control message NOT found in container anymore! This means, that the SatBeamHelper::CtrlMsgStoreTimeInFwdLink attribute may be set to too short value or there are something wrong in the FWD link RRM.

Control message NOT found in container anymore! This means, that the SatBeamHelper::CtrlMsgStoreTimeInFwdLink attribute may be set to too short value or there are something wrong in the FWD link RRM.

Definition at line 1102 of file satellite-ut-mac.cc.

References ControlMsgTransmissionPossible(), ns3::SatMacTag::GetDestAddress(), ns3::SatAddressE2ETag::GetE2ESourceAddress(), ns3::SatControlMsgTag::GetMsgId(), ns3::SatControlMsgTag::GetMsgType(), ns3::SatUtMacState::GetState(), ns3::SatLog::LOG_WARNING, LogOff(), m_beamId, m_clockDrift, m_deltaNcr, m_firstTransmittableSuperframeId, m_handoverState, m_lastNcrDateReceived, m_loggedOn, m_ncr, ns3::SatMac::m_ncrV2, ns3::SatMac::m_nodeInfo, m_raChannel, m_randomAccess, m_rcstState, ns3::SatMac::m_readCtrlCallback, m_receptionDates, ns3::SatMac::m_rxCallback, m_sendLogonTries, m_sliceSubscriptionCallback, m_timuInfo, ns3::SatUtMacState::NcrControlMessageReceived(), NO_HANDOVER, ns3::SatControlMsgTag::SAT_ARQ_ACK, ns3::SatControlMsgTag::SAT_CMT_CTRL_MSG, ns3::SatControlMsgTag::SAT_LOGOFF_CTRL_MSG, ns3::SatControlMsgTag::SAT_LOGON_RESPONSE_CTRL_MSG, ns3::SatControlMsgTag::SAT_NCR_CTRL_MSG, ns3::SatControlMsgTag::SAT_RA_CTRL_MSG, ns3::SatControlMsgTag::SAT_SLICE_CTRL_MSG, ns3::SatControlMsgTag::SAT_TBTP_CTRL_MSG, ns3::SatControlMsgTag::SAT_TIMU_CTRL_MSG, ScheduleTimeSlots(), ns3::SatUtMacState::SetLogOffCallback(), ns3::SatUtMacState::SwitchToReadyForLogon(), ns3::SatUtMacState::SwitchToReadyForTdmaSync(), and WAITING_FOR_TBTP.

Referenced by Receive().

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

◆ RemovePastRandomAccessSlots()

void ns3::SatUtMac::RemovePastRandomAccessSlots ( uint32_t  superFrameId)
private

Function for removing the past used RA slots.

Parameters
superFrameIdsuper frame ID

Definition at line 1921 of file satellite-ut-mac.cc.

References ns3::SatMac::m_nodeInfo, and m_usedRandomAccessSlots.

Referenced by UpdateUsedRandomAccessSlots().

+ Here is the caller graph for this function:

◆ ScheduleCrdsaTransmission()

void ns3::SatUtMac::ScheduleCrdsaTransmission ( uint32_t  allocationChannel,
SatRandomAccess::RandomAccessTxOpportunities_s  txOpportunities 
)
private

Function for scheduling the CRDSA transmissions.

Parameters
allocationChannelRA allocation channel
txOpportunitiesTx opportunities

loop through the unique packets

loop through the replicas

check and update used slots

TODO this needs to be handled when multiple allocation channels are implemented In that case a slot exclusion list should be used when randomizing the Tx slots

create replicas and schedule the packets

Definition at line 1641 of file satellite-ut-mac.cc.

References ns3::SatRandomAccess::RandomAccessTxOpportunities_s::crdsaTxOpportunities, CreateCrdsaPacketInstances(), GetCurrentSuperFrameId(), GetCurrentSuperFrameStartTime(), m_crdsaUniquePacketId, ns3::SatMac::m_nodeInfo, ns3::SatConstVariables::SUPERFRAME_SEQUENCE, and UpdateUsedRandomAccessSlots().

Referenced by DoRandomAccess().

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

◆ ScheduleDaTxOpportunity()

void ns3::SatUtMac::ScheduleDaTxOpportunity ( Time  transmitDelay,
Time  duration,
Ptr< SatWaveform wf,
Ptr< SatTimeSlotConf tsConf,
uint32_t  carrierId 
)
private

Schdules one Tx opportunity, i.e.

time slot.

Parameters
transmitDelaytime when transmit possibility starts
durationduration of the burst
wfwaveform
tsConfTime slot conf
carrierIdCarrier id used for the transmission

Definition at line 585 of file satellite-ut-mac.cc.

References DoTransmit(), GetRealSendingTime(), and ns3::SatUtScheduler::LOOSE.

Referenced by ScheduleTimeSlots().

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

◆ ScheduleEssaTransmission()

void ns3::SatUtMac::ScheduleEssaTransmission ( uint32_t  allocationChannel)
private

Function for scheduling the ESSA transmissions.

Parameters
allocationChannelRA allocation channel

start time

not transmiting at the moment, transmit now

duration

carrier

schedule transmission

Definition at line 1588 of file satellite-ut-mac.cc.

References ns3::SatEnums::CONTROL_FID, DoEssaTransmit(), GetRealSendingTime(), ns3::SatUtScheduler::LOOSE, m_nextPacketTime, ns3::SatMac::m_nodeInfo, m_superframeSeq, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.

Referenced by DoRandomAccess().

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

◆ ScheduleSlottedAlohaTransmission()

void ns3::SatUtMac::ScheduleSlottedAlohaTransmission ( uint32_t  allocationChannel)
private

Function for scheduling the Slotted ALOHA transmissions.

Parameters
allocationChannelallocation channel

check if we have known DAMA allocations this functionality checks the current and all known future frames for DAMA allocation TODO it might be better to check only the current frame or a limited subset of frames

search for the next available slot if there is no free slots in the current frame, look for it in the following frames

time slot configuration

start time

duration

carrier

schedule transmission

Definition at line 1412 of file satellite-ut-mac.cc.

References ns3::SatEnums::CONTROL_FID, DoSlottedAlohaTransmit(), GetCurrentSuperFrameId(), GetCurrentSuperFrameStartTime(), GetRealSendingTime(), ns3::SatMac::m_nodeInfo, m_superframeSeq, m_tbtpContainer, SearchFrameForAvailableSlot(), ns3::SatUtScheduler::STRICT, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.

Referenced by DoRandomAccess().

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

◆ ScheduleTimeSlots()

void ns3::SatUtMac::ScheduleTimeSlots ( Ptr< SatTbtpMessage tbtp)
private

Schedules time slots according to received TBTP message.

Parameters
tbtpPointer to TBTP message.

Calculate the sending time of the time slots within this TBTP for this specific UT. UTs may be located at different distances from the satellite, thus they shall have to send the time slots at different times so that the transmissions are received at the GW at correct time.

If using asynchronous access (no timeslots), return TODO find better way of doing this

Definition at line 471 of file satellite-ut-mac.cc.

References ns3::SatSuperframeConf::CONFIG_TYPE_4, ns3::SatUtMacState::GetState(), m_assignedDaResourcesCallback, ns3::SatMac::m_nodeInfo, m_rcstState, m_superframeSeq, m_tbtpContainer, m_tbtpResourcesTrace, m_timingAdvanceCb, m_useLogon, ns3::SatEnums::NUM_FIDS, ScheduleDaTxOpportunity(), ns3::SatTimeSlotConf::SLOT_TYPE_C, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.

Referenced by ReceiveSignalingPacket().

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

◆ SearchFrameForAvailableSlot()

std::pair< bool, uint32_t > ns3::SatUtMac::SearchFrameForAvailableSlot ( Time  superframeStartTime,
Ptr< SatFrameConf frameConf,
uint32_t  timeSlotCount,
uint32_t  superFrameId,
uint32_t  allocationChannel 
)
private
Parameters
superframeStartTime
frameConf
timeSlotCount
superFrameId
allocationChannel
Returns

if we can not use the current superframe, e.g., we are in the the middle of the last slot of the frame, we will use offset 0, e.g., the first slot of the next frame

Definition at line 1515 of file satellite-ut-mac.cc.

References FindNextAvailableRandomAccessSlot(), and ns3::SatMac::m_nodeInfo.

Referenced by ScheduleSlottedAlohaTransmission().

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

◆ SendLogon()

◆ SetAskedBeamCallback()

void ns3::SatUtMac::SetAskedBeamCallback ( SatUtMac::AskedBeamCallback  cb)

Method to get the best beam when performing handover.

Parameters
cbcallback to invoke to ask best beam ID

Definition at line 263 of file satellite-ut-mac.cc.

References m_askedBeamCallback.

◆ SetAssignedDaResourcesCallback()

void ns3::SatUtMac::SetAssignedDaResourcesCallback ( SatUtMac::AssignedDaResourcesCallback  cb)

Set the assigned DA resources callback.

Parameters
cbcallback to invoke whenever TBTP is received.

Definition at line 432 of file satellite-ut-mac.cc.

References m_assignedDaResourcesCallback.

◆ SetBeamCheckerCallback()

void ns3::SatUtMac::SetBeamCheckerCallback ( SatUtMac::BeamCheckerCallback  cb)

Method to set the beam checker callback.

Parameters
cbcallback to invoke to check beams and recommend handover

Definition at line 256 of file satellite-ut-mac.cc.

References m_beamCheckerCallback.

◆ SetBeamScheculerCallback()

void ns3::SatUtMac::SetBeamScheculerCallback ( SatUtMac::BeamScheculerCallback  cb)

Set the beam scheduler callback.

Parameters
cbCallback to get the SatBeamScheduler

Definition at line 302 of file satellite-ut-mac.cc.

References m_beamScheculerCallback.

◆ SetGatewayUpdateCallback()

void ns3::SatUtMac::SetGatewayUpdateCallback ( SatUtMac::GatewayUpdateCallback  cb)

Method to set the gateway address update callback.

Parameters
cbcallback to invoke to update gateway address

Definition at line 249 of file satellite-ut-mac.cc.

References m_gatewayUpdateCallback.

◆ SetGwAddress()

void ns3::SatUtMac::SetGwAddress ( Mac48Address  gwAddress)

Set address of the GW (or its MAC) serving this UT.

Parameters
gwAddressAddress of the GW.

Definition at line 325 of file satellite-ut-mac.cc.

References m_gatewayUpdateCallback, and m_gwAddress.

Referenced by DoFrameStart().

+ Here is the caller graph for this function:

◆ SetHandoverCallback()

void ns3::SatUtMac::SetHandoverCallback ( SatUtMac::HandoverCallback  cb)

Method to set handover callback.

Parameters
cbcallback to invoke whenever a TIM-U is received prompting us to switch beams

Definition at line 242 of file satellite-ut-mac.cc.

References m_handoverCallback.

◆ SetLogonChannel()

void ns3::SatUtMac::SetLogonChannel ( uint32_t  channelId)

Definition at line 353 of file satellite-ut-mac.cc.

References m_logonChannel, and m_useLogon.

◆ SetNodeInfo()

void ns3::SatUtMac::SetNodeInfo ( Ptr< SatNodeInfo nodeInfo)
virtual

Set the node info.

Parameters
nodeInfocontaining node specific information

Reimplemented from ns3::SatMac.

Definition at line 334 of file satellite-ut-mac.cc.

References m_tbtpContainer, m_utScheduler, and ns3::SatMac::SetNodeInfo().

+ Here is the call graph for this function:

◆ SetRaChannel()

void ns3::SatUtMac::SetRaChannel ( uint32_t  raChannel)

Set RA channel assigned for this UT.

Parameters
raChannelRA channel assigned to this UT.

Definition at line 361 of file satellite-ut-mac.cc.

References m_raChannel.

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

+ Here is the caller graph for this function:

◆ SetRandomAccess()

void ns3::SatUtMac::SetRandomAccess ( Ptr< SatRandomAccess randomAccess)

Set the random access module.

Parameters
randomAccess

Definition at line 377 of file satellite-ut-mac.cc.

References ns3::SatTbtpContainer::HasScheduledTimeSlots(), m_randomAccess, and m_tbtpContainer.

+ Here is the call graph for this function:

◆ SetSatelliteAddress()

void ns3::SatUtMac::SetSatelliteAddress ( Address  satelliteAddress)
virtual

Set the satellite MAC address on the other side of this link (if regenerative satellite).

Reimplemented from ns3::SatMac.

Definition at line 310 of file satellite-ut-mac.cc.

References ns3::SatMac::m_isRegenerative, and ns3::SatMac::m_satelliteAddress.

◆ SetSendLogonCallback()

void ns3::SatUtMac::SetSendLogonCallback ( SatUtMac::SendLogonCallback  cb)

Set the logon callback.

Parameters
cbcallback to invoke when sending a logon message

Definition at line 286 of file satellite-ut-mac.cc.

References m_sendLogonCallback.

◆ SetSliceSubscriptionCallback()

void ns3::SatUtMac::SetSliceSubscriptionCallback ( SatUtMac::SliceSubscriptionCallback  cb)

Get sliec subscription info from MAC layer.

Parameters
cbcallback to invoke slices subscription changes

Definition at line 278 of file satellite-ut-mac.cc.

References m_sliceSubscriptionCallback.

◆ SetTimingAdvanceCallback()

void ns3::SatUtMac::SetTimingAdvanceCallback ( SatUtMac::TimingAdvanceCallback  cb)

Set the timing advance callback.

Parameters
cbcallback to invoke whenever a timing advance is needed by SatUtMac object.

schedule the next frame start

Definition at line 412 of file satellite-ut-mac.cc.

References DoFrameStart(), GetNextSuperFrameTxTime(), GetRealSendingTime(), m_timingAdvanceCb, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.

+ Here is the call graph for this function:

◆ SetTxCheckCallback()

void ns3::SatUtMac::SetTxCheckCallback ( SatUtMac::TxCheckCallback  cb)

Set the TX check callback.

Parameters
cbcallback to invoke when checking if TX is enabled

Definition at line 270 of file satellite-ut-mac.cc.

References m_txCheckCallback.

◆ SetUpdateGwAddressCallback()

void ns3::SatUtMac::SetUpdateGwAddressCallback ( SatUtMac::UpdateGwAddressCallback  cb)

Set the gw update callback.

Parameters
cbcallback to update GW address to SatRequestManager

Definition at line 294 of file satellite-ut-mac.cc.

References m_updateGwAddressCallback.

◆ TransmitPackets()

void ns3::SatUtMac::TransmitPackets ( SatPhy::PacketContainer_t  packets,
Time  duration,
uint32_t  carrierId,
SatSignalParameters::txInfo_s  txInfo 
)
private
Parameters
packets
duration
carrierId
txInfo

Definition at line 884 of file satellite-ut-mac.cc.

References ns3::SatUtMacState::GetState(), m_guardTime, ns3::SatMac::m_nodeInfo, m_rcstState, ns3::SatMac::SendPacket(), ns3::SatUtMacState::SwitchToOffStandby(), and ns3::SatUtMacState::SwitchToTdmaSync().

Referenced by CreateCrdsaPacketInstances(), DoEssaTransmit(), DoSlottedAlohaTransmit(), DoTransmit(), and SendLogon().

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

◆ UpdateUsedRandomAccessSlots()

bool ns3::SatUtMac::UpdateUsedRandomAccessSlots ( uint32_t  superFrameId,
uint32_t  allocationChannel,
uint32_t  slot 
)
private

Function for updating the used RA slots.

Parameters
superFrameIdsuper frame ID
allocationChannelallocation channel
slotRA slot
Returns
was the update successful

remove past RA Tx opportunity information

Definition at line 1866 of file satellite-ut-mac.cc.

References ns3::SatMac::m_nodeInfo, m_usedRandomAccessSlots, and RemovePastRandomAccessSlots().

Referenced by FindNextAvailableRandomAccessSlot(), and ScheduleCrdsaTransmission().

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

Member Data Documentation

◆ m_askedBeamCallback

SatUtMac::AskedBeamCallback ns3::SatUtMac::m_askedBeamCallback
private

Beam checker and handover recommendation sending callback.

Definition at line 826 of file satellite-ut-mac.h.

Referenced by DoDispose(), DoFrameStart(), and SetAskedBeamCallback().

◆ m_assignedDaResourcesCallback

AssignedDaResourcesCallback ns3::SatUtMac::m_assignedDaResourcesCallback
private

Callback for informing the assigned TBTP resources.

Definition at line 644 of file satellite-ut-mac.h.

Referenced by ScheduleTimeSlots(), and SetAssignedDaResourcesCallback().

◆ m_beamCheckerCallback

SatUtMac::BeamCheckerCallback ns3::SatUtMac::m_beamCheckerCallback
private

Beam checker and handover recommendation sending callback.

Definition at line 821 of file satellite-ut-mac.h.

Referenced by DoDispose(), DoFrameStart(), and SetBeamCheckerCallback().

◆ m_beamId

uint32_t ns3::SatUtMac::m_beamId
private

ID of beam for UT.

Definition at line 629 of file satellite-ut-mac.h.

Referenced by DoFrameStart(), GetBeamId(), ns3::SatUtMac::SatTimuInfo::GetBeamId(), and ReceiveSignalingPacket().

◆ m_beamScheculerCallback

SatUtMac::BeamScheculerCallback ns3::SatUtMac::m_beamScheculerCallback
private

Callback to get the SatBeamScheduler linked to a beam ID.

Definition at line 851 of file satellite-ut-mac.h.

Referenced by DoDispose(), DoFrameStart(), and SetBeamScheculerCallback().

◆ m_clockDrift

int32_t ns3::SatUtMac::m_clockDrift
private

Clock drift (number of ticks per second)

Definition at line 787 of file satellite-ut-mac.h.

Referenced by GetRealSendingTime(), GetTypeId(), and ReceiveSignalingPacket().

◆ m_crdsaOnlyForControl

bool ns3::SatUtMac::m_crdsaOnlyForControl
private

Planned CRDSA usage:

  • true -> only for control
  • false -> for control and user data

Definition at line 736 of file satellite-ut-mac.h.

Referenced by CreateCrdsaPacketInstances().

◆ m_crdsaUniquePacketId

uint32_t ns3::SatUtMac::m_crdsaUniquePacketId
private

CRDSA packet ID (per frame)

Definition at line 729 of file satellite-ut-mac.h.

Referenced by CreateCrdsaPacketInstances(), DoEssaTransmit(), DoFrameStart(), and ScheduleCrdsaTransmission().

◆ m_deltaNcr

int64_t ns3::SatUtMac::m_deltaNcr
private

Correction to apply to NCR dates.

Definition at line 782 of file satellite-ut-mac.h.

Referenced by GetRealSendingTime(), and ReceiveSignalingPacket().

◆ m_firstTransmittableSuperframeId

uint32_t ns3::SatUtMac::m_firstTransmittableSuperframeId
private

Definition at line 806 of file satellite-ut-mac.h.

Referenced by ExtractPacketsToSchedule(), and ReceiveSignalingPacket().

◆ m_gatewayUpdateCallback

SatUtMac::GatewayUpdateCallback ns3::SatUtMac::m_gatewayUpdateCallback
private

Gateway address update callback.

Definition at line 816 of file satellite-ut-mac.h.

Referenced by DoDispose(), SetGatewayUpdateCallback(), and SetGwAddress().

◆ m_guardTime

Time ns3::SatUtMac::m_guardTime
private

Guard time for time slots.

The guard time is modeled by shortening the duration of a time slot by a m_guardTime set by an attribute.

Definition at line 655 of file satellite-ut-mac.h.

Referenced by GetTypeId(), and TransmitPackets().

◆ m_gwAddress

Mac48Address ns3::SatUtMac::m_gwAddress
private

◆ m_handoverCallback

SatUtMac::HandoverCallback ns3::SatUtMac::m_handoverCallback
private

The physical layer handover callback.

Definition at line 811 of file satellite-ut-mac.h.

Referenced by DoDispose(), DoFrameStart(), and SetHandoverCallback().

◆ m_handoverMessagesCount

uint32_t ns3::SatUtMac::m_handoverMessagesCount
private

Definition at line 803 of file satellite-ut-mac.h.

Referenced by DoFrameStart().

◆ m_handoverState

HandoverState_t ns3::SatUtMac::m_handoverState
private

◆ m_isRandomAccessScheduled

bool ns3::SatUtMac::m_isRandomAccessScheduled
private

Flag that indicates if a method DoRandomAccess is scheduled for asynchronous access.

Definition at line 747 of file satellite-ut-mac.h.

Referenced by DoEssaTransmit(), DoRandomAccess(), and ReceiveQueueEventEssa().

◆ m_lastNcrDateReceived

Time ns3::SatUtMac::m_lastNcrDateReceived
private

Reception date of last NCR control message.

Definition at line 772 of file satellite-ut-mac.h.

Referenced by ReceiveSignalingPacket().

◆ m_loggedOn

bool ns3::SatUtMac::m_loggedOn
private

UT is logged on.

Definition at line 685 of file satellite-ut-mac.h.

Referenced by DoFrameStart(), LogOff(), and ReceiveSignalingPacket().

◆ m_logonChannel

uint32_t ns3::SatUtMac::m_logonChannel
private

RA channel dedicated to logon messages.

Definition at line 680 of file satellite-ut-mac.h.

Referenced by ControlMsgTransmissionPossible(), DoRandomAccess(), LogOff(), SendLogon(), and SetLogonChannel().

◆ m_maxHandoverMessagesSent

uint32_t ns3::SatUtMac::m_maxHandoverMessagesSent
private

Definition at line 804 of file satellite-ut-mac.h.

Referenced by DoFrameStart(), and GetTypeId().

◆ m_maxWaitingTimeLogonResponse

Time ns3::SatUtMac::m_maxWaitingTimeLogonResponse
private

Timeout for waiting for a response for a logon message.

Definition at line 705 of file satellite-ut-mac.h.

Referenced by GetTypeId(), and SendLogon().

◆ m_ncr

uint64_t ns3::SatUtMac::m_ncr
private

NCR value of last NCR control message.

Definition at line 777 of file satellite-ut-mac.h.

Referenced by ReceiveSignalingPacket().

◆ m_nextLogonTransmissionPossible

Time ns3::SatUtMac::m_nextLogonTransmissionPossible
private

Instant when a logon message can be transmitted.

Definition at line 714 of file satellite-ut-mac.h.

Referenced by DoFrameStart(), and SendLogon().

◆ m_nextPacketTime

Time ns3::SatUtMac::m_nextPacketTime
private

Next time when a next ESSA packet can be safely sent.

Definition at line 741 of file satellite-ut-mac.h.

Referenced by DoEssaTransmit(), and ScheduleEssaTransmission().

◆ m_raChannel

uint32_t ns3::SatUtMac::m_raChannel
private

◆ m_randomAccess

◆ m_rcstState

◆ m_receptionDates

std::queue<Time> ns3::SatUtMac::m_receptionDates
private

Store last 3 packets reception date, to be associated to NCR dates.

Definition at line 792 of file satellite-ut-mac.h.

Referenced by Receive(), and ReceiveSignalingPacket().

◆ m_satId

uint32_t ns3::SatUtMac::m_satId
private

ID of sat for UT.

Definition at line 624 of file satellite-ut-mac.h.

Referenced by DoFrameStart(), and GetSatId().

◆ m_sendLogonCallback

SatUtMac::SendLogonCallback ns3::SatUtMac::m_sendLogonCallback
private

Callback for sending a logon message.

Definition at line 841 of file satellite-ut-mac.h.

Referenced by DoDispose(), DoFrameStart(), and SetSendLogonCallback().

◆ m_sendLogonTries

uint32_t ns3::SatUtMac::m_sendLogonTries
private

Number of times a logon message has been sent without response.

Definition at line 695 of file satellite-ut-mac.h.

Referenced by ReceiveSignalingPacket(), and SendLogon().

◆ m_sliceSubscriptionCallback

SatUtMac::SliceSubscriptionCallback ns3::SatUtMac::m_sliceSubscriptionCallback
private

Tx checking callback.

Definition at line 836 of file satellite-ut-mac.h.

Referenced by DoDispose(), ReceiveSignalingPacket(), and SetSliceSubscriptionCallback().

◆ m_superframeSeq

Ptr<SatSuperframeSeq> ns3::SatUtMac::m_superframeSeq
private

◆ m_tbtpContainer

Ptr<SatTbtpContainer> ns3::SatUtMac::m_tbtpContainer
private

Container for storing all the TBTP information related to this UT.

Definition at line 660 of file satellite-ut-mac.h.

Referenced by SatUtMac(), ~SatUtMac(), ControlMsgTransmissionPossible(), DoDispose(), DoFrameStart(), ScheduleSlottedAlohaTransmission(), ScheduleTimeSlots(), SetNodeInfo(), and SetRandomAccess().

◆ m_tbtpResourcesTrace

TracedCallback<uint32_t> ns3::SatUtMac::m_tbtpResourcesTrace
private

Assigned TBTP resources in superframe for this UT (in bytes).

Definition at line 724 of file satellite-ut-mac.h.

Referenced by GetTypeId(), and ScheduleTimeSlots().

◆ m_timingAdvanceCb

TimingAdvanceCallback ns3::SatUtMac::m_timingAdvanceCb
private

Callback for getting the timing advance information.

Definition at line 639 of file satellite-ut-mac.h.

Referenced by DoDispose(), GetCurrentSuperFrameId(), GetCurrentSuperFrameStartTime(), GetNextSuperFrameTxTime(), ScheduleTimeSlots(), and SetTimingAdvanceCallback().

◆ m_timuInfo

Ptr<SatTimuInfo> ns3::SatUtMac::m_timuInfo
private

Definition at line 763 of file satellite-ut-mac.h.

Referenced by ~SatUtMac(), DoFrameStart(), and ReceiveSignalingPacket().

◆ m_txCheckCallback

SatUtMac::TxCheckCallback ns3::SatUtMac::m_txCheckCallback
private

Tx checking callback.

Definition at line 831 of file satellite-ut-mac.h.

Referenced by DoDispose(), DoFrameStart(), DoTransmit(), and SetTxCheckCallback().

◆ m_uniformRandomVariable

Ptr<UniformRandomVariable> ns3::SatUtMac::m_uniformRandomVariable
private

Uniform random variable distribution generator.

Definition at line 665 of file satellite-ut-mac.h.

Referenced by SatUtMac().

◆ m_updateGwAddressCallback

SatUtMac::UpdateGwAddressCallback ns3::SatUtMac::m_updateGwAddressCallback
private

Callback for sending a logon message.

Definition at line 846 of file satellite-ut-mac.h.

Referenced by DoDispose(), DoFrameStart(), and SetUpdateGwAddressCallback().

◆ m_usedRandomAccessSlots

std::map<std::pair<uint32_t, uint32_t>, std::set<uint32_t> > ns3::SatUtMac::m_usedRandomAccessSlots
private

A container for storing the used RA slots in each frame and allocation channel.

Definition at line 670 of file satellite-ut-mac.h.

Referenced by PrintUsedRandomAccessSlots(), RemovePastRandomAccessSlots(), and UpdateUsedRandomAccessSlots().

◆ m_useLogon

bool ns3::SatUtMac::m_useLogon
private

◆ m_utScheduler

Ptr<SatUtScheduler> ns3::SatUtMac::m_utScheduler
private

UT scheduler.

Definition at line 719 of file satellite-ut-mac.h.

Referenced by DoDispose(), DoEssaTransmit(), ExtractPacketsToSchedule(), GetTypeId(), and SetNodeInfo().

◆ m_waitingTimeLogonRng

Ptr<UniformRandomVariable> ns3::SatUtMac::m_waitingTimeLogonRng
private

The random generator for waiting transmission time.

Definition at line 709 of file satellite-ut-mac.h.

Referenced by SendLogon().

◆ m_windowInitLogon

Time ns3::SatUtMac::m_windowInitLogon
private

The initial max time to wait when sending a logon message.

Definition at line 700 of file satellite-ut-mac.h.

Referenced by GetTypeId(), and SendLogon().


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