ns3::SatMac Class Reference

Base MAC class for SatNetDevices. More...

#include "satellite-mac.h"

+ Inheritance diagram for ns3::SatMac:
+ Collaboration diagram for ns3::SatMac:

Public Types

typedef Callback< Ptr< SatBeamScheduler >, uint32_t, uint32_t > BeamSchedulerCallback
 Callback to get the SatBeamScheduler from the beam ID for handover. More...
 
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...
 
typedef Callback< void > UpdateIslCallback
 Callback to update ISL routes when handovers are performed. More...
 

Public Member Functions

 SatMac ()
 Construct a SatMac. More...
 
 SatMac (uint32_t satId, uint32_t beamId)
 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...
 
virtual void ReceiveQueueEvent (SatQueue::QueueEvent_t event, uint8_t flowIndex)
 Receive a queue event: 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 SetBeamId (uint32_t beamId)
 Set beam ID of the object. More...
 
void SetBeamSchedulerCallback (SatMac::BeamSchedulerCallback cb)
 Set the beam scheduler callback. More...
 
void SetHandoverModule (Ptr< SatHandoverModule > handoverModule)
 Set the handover module. More...
 
void SetLoraReceiveCallback (SatMac::LoraReceiveCallback cb)
 Method to set receive callback. More...
 
virtual void SetNodeInfo (Ptr< SatNodeInfo > nodeInfo)
 Set the node info. 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...
 
virtual void SetSatelliteAddress (Address satelliteAddress)
 Set the satellite MAC address on the other side of this link (if regenerative satellite). More...
 
void SetSatId (uint32_t satId)
 Set sat ID of the object. 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...
 
void SetUpdateIslCallback (SatMac::UpdateIslCallback cb)
 Method to set update ISL callback. More...
 

Static Public Member Functions

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

Protected Member Functions

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...
 

Protected Attributes

Time m_beamEnabledTime
 Time of the last beam enable event. More...
 
uint32_t m_beamId
 The ID of the beam where mac belongs. More...
 
SatMac::BeamSchedulerCallback m_beamSchedulerCallback
 Callback to get the SatBeamScheduler linked to a beam ID. 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...
 
Ptr< SatHandoverModulem_handoverModule
 Module used to perform handovers. 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...
 
SatMac::UpdateIslCallback m_updateIslCallback
 The update ISL routes callback. More...
 

Private Member Functions

 SatMac (const SatMac &)
 
SatMacoperator= (const SatMac &)
 

Detailed Description

Base MAC class for SatNetDevices.

SatMac implements the common MAC layer functionality for both UT and GW. More specialized implementations are located at the inherited classes. Satellite does not have a MAC sublayer at all.

Definition at line 56 of file satellite-mac.h.

Member Typedef Documentation

◆ BeamSchedulerCallback

typedef Callback<Ptr<SatBeamScheduler>, uint32_t, uint32_t> ns3::SatMac::BeamSchedulerCallback

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

Definition at line 208 of file satellite-mac.h.

◆ LoraReceiveCallback

typedef Callback<void, Ptr<const Packet> > ns3::SatMac::LoraReceiveCallback

Callback to receive packet by upper layer.

Parameters
packetthe packet received

Definition at line 166 of file satellite-mac.h.

◆ ReadCtrlMsgCallback

typedef Callback<Ptr<SatControlMessage>, uint32_t> ns3::SatMac::ReadCtrlMsgCallback

Callback to read control messages from container storing control messages.

Real length of the control messages are simulated in a packet, but not structure.

Parameters
uint32_tID of the message to read.
Returns
Pointer to read packet. (NULL if not found).

Definition at line 188 of file satellite-mac.h.

◆ ReceiveCallback

typedef Callback<void, Ptr<Packet>, Mac48Address, Mac48Address> ns3::SatMac::ReceiveCallback

Callback to receive packet by upper layer.

Parameters
SourceMAC address
DestinationMAC address
packetthe packet received

Definition at line 160 of file satellite-mac.h.

◆ ReserveCtrlMsgCallback

typedef Callback<uint32_t, Ptr<SatControlMessage> > ns3::SatMac::ReserveCtrlMsgCallback

Callback to reserve an id and initially store the control message.

Parameters
Pointerto the message to be stored.
Returns
uint32_t ID of the stored message.

Definition at line 196 of file satellite-mac.h.

◆ RoutingUpdateCallback

typedef Callback<void, Address, Address> ns3::SatMac::RoutingUpdateCallback

Callback to update routing and ARP tables after handover.

Parameters
Addressthe address of this device
Addressthe address of the new gateway

Definition at line 251 of file satellite-mac.h.

◆ SendCtrlMsgCallback

typedef Callback<uint32_t, uint32_t> ns3::SatMac::SendCtrlMsgCallback

Callback to send a control message and allocate a recv ID for it.

Parameters
uint32_tInternal ID used for initial storing of the control msg.
Returns
uint32_t ID for the control message read operation.

Definition at line 203 of file satellite-mac.h.

◆ TransmitCallback

Callback to send packet to lower layer.

Parameters
Containerof the pointers to the packets received
uint32_tcarrierId
Timeduration

Definition at line 145 of file satellite-mac.h.

◆ UpdateIslCallback

typedef Callback<void> ns3::SatMac::UpdateIslCallback

Callback to update ISL routes when handovers are performed.

Definition at line 213 of file satellite-mac.h.

Constructor & Destructor Documentation

◆ SatMac() [1/3]

ns3::SatMac::SatMac ( )

Construct a SatMac.

This default constructor for the SatMac, which should not been used

Definition at line 95 of file satellite-mac.cc.

◆ SatMac() [2/3]

ns3::SatMac::SatMac ( uint32_t  satId,
uint32_t  beamId 
)

Construct a SatMac.

Parameters
satIdID of sat for this MAC
beamIdID of beam for this MAC

Definition at line 115 of file satellite-mac.cc.

◆ ~SatMac()

ns3::SatMac::~SatMac ( )

Destroy a SatMac.

This is the destructor for the SatMac.

Definition at line 136 of file satellite-mac.cc.

◆ SatMac() [3/3]

ns3::SatMac::SatMac ( const SatMac )
private

Member Function Documentation

◆ Disable()

void ns3::SatMac::Disable ( )
virtual

Disable the MAC layer, i.e.

disallow it to send data to the PHY layer. This is used in beam hopping implementation.

Definition at line 222 of file satellite-mac.cc.

References m_beamEnabledTime, m_beamServiceTrace, and m_txEnabled.

◆ DoDispose()

void ns3::SatMac::DoDispose ( void  )
protected

◆ Enable()

void ns3::SatMac::Enable ( )
virtual

Enable the MAC layer, i.e.

allow it to send data to the PHY layer. This is used in beam hopping implementation.

Definition at line 213 of file satellite-mac.cc.

References m_beamEnabledTime, and m_txEnabled.

◆ GetAddress()

Address ns3::SatMac::GetAddress ( void  ) const
inline

Get MAC address.

Returns
The MAC address

Definition at line 126 of file satellite-mac.h.

References m_nodeInfo.

◆ GetBeamId()

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

Get beam ID of the object.

Returns
beam ID

Definition at line 99 of file satellite-mac.h.

References m_beamId.

Referenced by ns3::LorawanGroundMacGateway::Receive(), and ns3::LorawanOrbiterMacGateway::Receive().

+ Here is the caller graph for this function:

◆ GetSatId()

uint32_t ns3::SatMac::GetSatId ( ) const
inline

Get sat ID of the object.

Returns
sat ID

Definition at line 90 of file satellite-mac.h.

References m_satId.

◆ GetTypeId()

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

◆ operator=()

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

◆ ReceiveQueueEvent()

void ns3::SatMac::ReceiveQueueEvent ( SatQueue::QueueEvent_t  event,
uint8_t  flowIndex 
)
virtual

Receive a queue event:

  • FIRST_BUFFER_RCVD
  • BUFFER_EMPTY
    Parameters
    eventQueue event from SatQueue
    flowIndexIdentifier of the queue

Reimplemented in ns3::SatUtMac.

Definition at line 207 of file satellite-mac.cc.

◆ ReserveIdAndStoreCtrlMsgToContainer()

uint32_t ns3::SatMac::ReserveIdAndStoreCtrlMsgToContainer ( Ptr< SatControlMessage msg)

Reserve id and store the control message.

Parameters
msgControl message to store to the container.
Returns
Id of the internally stored message (send ID).

Definition at line 172 of file satellite-mac.cc.

References m_reserveCtrlCallback.

◆ RxTraces()

◆ SendCtrlMsgFromContainer()

uint32_t ns3::SatMac::SendCtrlMsgFromContainer ( uint32_t  sendId)

Send the control message from the container.

Parameters
sendIdId of the internally stored message.
Returns
ID to be used in the control packet reception (recv ID).

Definition at line 190 of file satellite-mac.cc.

References m_sendCtrlCallback.

Referenced by SendPacket().

+ Here is the caller graph for this function:

◆ SendPacket()

void ns3::SatMac::SendPacket ( SatPhy::PacketContainer_t  packets,
uint32_t  carrierId,
Time  duration,
SatSignalParameters::txInfo_s  txInfo 
)
protectedvirtual

Send packets to lower layer by using a callback.

Parameters
packetsPackets to be sent.
carrierIdID of the carrier used for transmission.
durationDuration of the physical layer transmission.
txInfoAdditional parameterization for burst transmission.

The transmitted packets are gone through to check whether the PHY transmission contains control packets. If a control packet is found, its control tag is peeked and the control message is added to the control message container with control message id. Only made if not on a satellite.

Reimplemented in ns3::SatOrbiterMac.

Definition at line 261 of file satellite-mac.cc.

References ns3::SatControlMsgTag::GetMsgId(), ns3::SatControlMsgTag::GetMsgType(), m_isRegenerative, m_lastSOF, m_ncrMessagesToSend, m_ncrV2, m_satelliteAddress, m_txCallback, ns3::SatControlMsgTag::SAT_NCR_CTRL_MSG, SendCtrlMsgFromContainer(), ns3::SatMacTag::SetDestAddress(), ns3::SatControlMsgTag::SetMsgId(), and SetTimeTag().

Referenced by ns3::SatGwMac::StartTransmission(), and ns3::SatUtMac::TransmitPackets().

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

◆ SetBeamId()

void ns3::SatMac::SetBeamId ( uint32_t  beamId)
inline

Set beam ID of the object.

Parameters
beamIdbeam ID

Definition at line 117 of file satellite-mac.h.

References m_beamId.

Referenced by ns3::SatUtMac::DoFrameStart().

+ Here is the caller graph for this function:

◆ SetBeamSchedulerCallback()

void ns3::SatMac::SetBeamSchedulerCallback ( SatMac::BeamSchedulerCallback  cb)

Set the beam scheduler callback.

Parameters
cbCallback to get the SatBeamScheduler

Definition at line 464 of file satellite-mac.cc.

References m_beamSchedulerCallback.

◆ SetHandoverModule()

void ns3::SatMac::SetHandoverModule ( Ptr< SatHandoverModule handoverModule)

Set the handover module.

Parameters
handoverModuleThe handover module

Definition at line 407 of file satellite-mac.cc.

References m_handoverModule.

◆ SetLoraReceiveCallback()

void ns3::SatMac::SetLoraReceiveCallback ( SatMac::LoraReceiveCallback  cb)

Method to set receive callback.

Parameters
cbcallback to invoke whenever a packet has been received and must be forwarded to the higher layers.

Definition at line 429 of file satellite-mac.cc.

References m_rxLoraCallback.

◆ SetNodeInfo()

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

Set the node info.

Parameters
nodeInfocontaining node specific information

Reimplemented in ns3::SatUtMac.

Definition at line 162 of file satellite-mac.cc.

References m_nodeInfo.

Referenced by ns3::SatUtMac::SetNodeInfo().

+ Here is the caller graph for this function:

◆ SetReadCtrlCallback()

void ns3::SatMac::SetReadCtrlCallback ( SatMac::ReadCtrlMsgCallback  cb)

Method to set read control message callback.

Parameters
cbcallback to invoke whenever a control message is wanted to read.

Definition at line 436 of file satellite-mac.cc.

References m_readCtrlCallback.

◆ SetReceiveCallback()

void ns3::SatMac::SetReceiveCallback ( SatMac::ReceiveCallback  cb)

Method to set receive callback.

Parameters
cbcallback to invoke whenever a packet has been received and must be forwarded to the higher layers.

Definition at line 422 of file satellite-mac.cc.

References m_rxCallback.

◆ SetReserveCtrlCallback()

void ns3::SatMac::SetReserveCtrlCallback ( SatMac::ReserveCtrlMsgCallback  cb)

Method to set reserve control message id callback.

Parameters
cbcallback to invoke whenever an id is wanted to be reserved for a control message.

Definition at line 443 of file satellite-mac.cc.

References m_reserveCtrlCallback.

◆ SetRoutingUpdateCallback()

void ns3::SatMac::SetRoutingUpdateCallback ( SatMac::RoutingUpdateCallback  cb)

Method to set the routing update callback.

Parameters
cbcallback to invoke to update routing

Definition at line 457 of file satellite-mac.cc.

References m_routingUpdateCallback.

◆ SetSatelliteAddress()

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

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

Reimplemented in ns3::SatUtMac.

Definition at line 231 of file satellite-mac.cc.

References m_isRegenerative, and m_satelliteAddress.

Referenced by ns3::LorawanMacEndDevice::CheckHandovers(), and ns3::SatGwMac::StartTransmission().

+ Here is the caller graph for this function:

◆ SetSatId()

void ns3::SatMac::SetSatId ( uint32_t  satId)
inline

Set sat ID of the object.

Parameters
satIdsat ID

Definition at line 108 of file satellite-mac.h.

References m_satId.

Referenced by ns3::SatUtMac::DoFrameStart().

+ Here is the caller graph for this function:

◆ SetSendCtrlCallback()

void ns3::SatMac::SetSendCtrlCallback ( SatMac::SendCtrlMsgCallback  cb)

Method to set send control message callback.

Parameters
cbcallback to invoke whenever a control message is wanted to sent.

Definition at line 450 of file satellite-mac.cc.

References m_sendCtrlCallback.

◆ SetTimeTag()

void ns3::SatMac::SetTimeTag ( SatPhy::PacketContainer_t  packets)
protected

Set SatMacTimeTag of packets.

Parameters
packetsContainer of the pointers to the packets to tag.

Definition at line 238 of file satellite-mac.cc.

References m_isStatisticsTagsEnabled.

Referenced by SendPacket(), and ns3::SatOrbiterMac::SendPacket().

+ Here is the caller graph for this function:

◆ SetTransmitCallback()

void ns3::SatMac::SetTransmitCallback ( SatMac::TransmitCallback  cb)

Method to set transmit callback.

Parameters
cbcallback to invoke whenever a packet needs to be sent to lower layer (PHY)

Definition at line 415 of file satellite-mac.cc.

References m_txCallback.

◆ SetUpdateIslCallback()

void ns3::SatMac::SetUpdateIslCallback ( SatMac::UpdateIslCallback  cb)

Method to set update ISL callback.

Parameters
cbcallback to invoke whenever ISL routes need to be updated.

Definition at line 472 of file satellite-mac.cc.

References m_updateIslCallback.

Member Data Documentation

◆ m_beamEnabledTime

Time ns3::SatMac::m_beamEnabledTime
protected

Time of the last beam enable event.

Definition at line 477 of file satellite-mac.h.

Referenced by Disable(), DoDispose(), and Enable().

◆ m_beamId

uint32_t ns3::SatMac::m_beamId
protected

◆ m_beamSchedulerCallback

SatMac::BeamSchedulerCallback ns3::SatMac::m_beamSchedulerCallback
protected

◆ m_beamServiceTrace

TracedCallback<Time> ns3::SatMac::m_beamServiceTrace
protected

Traced callback for beam being disabled and including service time.

Definition at line 439 of file satellite-mac.h.

Referenced by Disable(), DoDispose(), and GetTypeId().

◆ m_forwardLinkRegenerationMode

SatEnums::RegenerationMode_t ns3::SatMac::m_forwardLinkRegenerationMode
protected

Regeneration mode on forward link.

Definition at line 497 of file satellite-mac.h.

Referenced by ns3::SatOrbiterUserMac::EnquePacket(), ns3::SatOrbiterFeederMac::Receive(), and ns3::SatGwMac::ReceiveSignalingPacket().

◆ m_handoverModule

Ptr<SatHandoverModule> ns3::SatMac::m_handoverModule
protected

◆ m_isRegenerative

bool ns3::SatMac::m_isRegenerative
protected

Indicate if satellite is regeneration (at least LINK level) for TX.

Definition at line 507 of file satellite-mac.h.

Referenced by SendPacket(), SetSatelliteAddress(), and ns3::SatUtMac::SetSatelliteAddress().

◆ m_isStatisticsTagsEnabled

◆ m_lastDelay

Time ns3::SatMac::m_lastDelay
protected

Last delay measurement.

Used to compute jitter.

Definition at line 482 of file satellite-mac.h.

Referenced by RxTraces().

◆ m_lastLinkDelay

Time ns3::SatMac::m_lastLinkDelay
protected

Last delay measurement for link.

Used to compute link jitter.

Definition at line 517 of file satellite-mac.h.

Referenced by RxTraces(), and ns3::SatOrbiterMac::RxTraces().

◆ m_lastSOF

std::queue<Time> ns3::SatMac::m_lastSOF
protected

Store last 3 SOF date for Forward messages, to insert in NCR packets.

Definition at line 492 of file satellite-mac.h.

Referenced by SendPacket(), and ns3::SatGwMac::StartTransmission().

◆ m_ncrMessagesToSend

std::queue<Ptr<SatNcrMessage> > ns3::SatMac::m_ncrMessagesToSend
protected

List of NCR control messages created but not sent yet.

Definition at line 487 of file satellite-mac.h.

Referenced by ns3::SatGwMac::SendNcrMessage(), and SendPacket().

◆ m_ncrV2

bool ns3::SatMac::m_ncrV2
protected

Use of version 2 of NCR dates.

Version 1 use date of frame N-2. Version 2 use date of frame N.

Definition at line 391 of file satellite-mac.h.

Referenced by GetTypeId(), ns3::SatUtMac::ReceiveSignalingPacket(), SendPacket(), ns3::SatGwMac::SetFwdScheduler(), and ns3::SatGwMac::StartTransmission().

◆ m_nodeInfo

Ptr<SatNodeInfo> ns3::SatMac::m_nodeInfo
protected

Node info containing node related information, such as node type, node id and MAC address (of the SatNetDevice)

Definition at line 450 of file satellite-mac.h.

Referenced by ns3::LorawanMacEndDevice::CheckHandovers(), ns3::SatUtMac::CreateCrdsaPacketInstances(), ns3::SatUtMac::DoEssaTransmit(), ns3::SatUtMac::DoFrameStart(), ns3::SatUtMac::DoRandomAccess(), ns3::SatUtMac::DoSlottedAlohaTransmit(), ns3::SatUtMac::DoTransmit(), ns3::SatOrbiterFeederMac::EnquePacket(), ns3::SatOrbiterUserMac::EnquePacket(), ns3::SatUtMac::FetchPackets(), ns3::SatUtMac::FindNextAvailableRandomAccessSlot(), GetAddress(), ns3::SatUtMac::GetNextRandomAccessAllocationChannel(), ns3::SatUtMac::PrintUsedRandomAccessSlots(), ns3::LorawanMacEndDeviceClassA::Receive(), ns3::SatOrbiterFeederMac::Receive(), ns3::SatOrbiterUserMac::Receive(), ns3::LorawanOrbiterMacGateway::Receive(), ns3::SatGwMac::Receive(), ns3::SatUtMac::Receive(), ns3::SatUtMac::ReceiveQueueEvent(), ns3::SatUtMac::ReceiveQueueEventEssa(), ns3::SatUtMac::ReceiveSignalingPacket(), ns3::SatUtMac::RemovePastRandomAccessSlots(), RxTraces(), ns3::SatOrbiterMac::RxTraces(), ns3::SatUtMac::ScheduleCrdsaTransmission(), ns3::SatUtMac::ScheduleEssaTransmission(), ns3::SatUtMac::ScheduleSlottedAlohaTransmission(), ns3::SatUtMac::ScheduleTimeSlots(), ns3::SatUtMac::SearchFrameForAvailableSlot(), ns3::LorawanGroundMacGateway::Send(), ns3::LorawanOrbiterMacGateway::Send(), ns3::LorawanMacGateway::Send(), ns3::SatOrbiterMac::SendPacket(), ns3::LorawanMacEndDeviceClassA::SendToPhy(), SetNodeInfo(), ns3::SatGwMac::StartTransmission(), ns3::SatUtMac::TransmitPackets(), and ns3::SatUtMac::UpdateUsedRandomAccessSlots().

◆ m_packetTrace

◆ m_readCtrlCallback

◆ m_reserveCtrlCallback

SatMac::ReserveCtrlMsgCallback ns3::SatMac::m_reserveCtrlCallback
protected

The reserve control message id callback.

Definition at line 364 of file satellite-mac.h.

Referenced by DoDispose(), ReserveIdAndStoreCtrlMsgToContainer(), and SetReserveCtrlCallback().

◆ m_returnLinkRegenerationMode

SatEnums::RegenerationMode_t ns3::SatMac::m_returnLinkRegenerationMode
protected

◆ m_routingUpdateCallback

SatMac::RoutingUpdateCallback ns3::SatMac::m_routingUpdateCallback
protected

Callback to update routing and ARP tables after a beam handover.

Definition at line 444 of file satellite-mac.h.

Referenced by ns3::LorawanMacEndDevice::CheckHandovers(), DoDispose(), ns3::SatUtMac::DoFrameStart(), and SetRoutingUpdateCallback().

◆ m_rxCallback

◆ m_rxDelayTrace

TracedCallback<const Time&, const Address&> ns3::SatMac::m_rxDelayTrace
protected

Traced callback for all received packets, including delay information and the address of the senders.

Definition at line 416 of file satellite-mac.h.

Referenced by GetTypeId(), and RxTraces().

◆ m_rxJitterTrace

TracedCallback<const Time&, const Address&> ns3::SatMac::m_rxJitterTrace
protected

Traced callback for all received packets, including jitter information and the address of the senders.

Definition at line 428 of file satellite-mac.h.

Referenced by GetTypeId(), and RxTraces().

◆ m_rxLinkDelayTrace

TracedCallback<const Time&, const Address&> ns3::SatMac::m_rxLinkDelayTrace
protected

Traced callback for all received packets, including link delay information and the address of the senders.

Definition at line 422 of file satellite-mac.h.

Referenced by GetTypeId(), RxTraces(), and ns3::SatOrbiterMac::RxTraces().

◆ m_rxLinkJitterTrace

TracedCallback<const Time&, const Address&> ns3::SatMac::m_rxLinkJitterTrace
protected

Traced callback for all received packets, including link jitter information and the address of the senders.

Definition at line 434 of file satellite-mac.h.

Referenced by GetTypeId(), RxTraces(), and ns3::SatOrbiterMac::RxTraces().

◆ m_rxLoraCallback

SatMac::LoraReceiveCallback ns3::SatMac::m_rxLoraCallback
protected

The upper layer package receive callback.

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

Referenced by SetLoraReceiveCallback().

◆ m_rxTrace

TracedCallback<Ptr<const Packet>, const Address&> ns3::SatMac::m_rxTrace
protected

Traced callback for all received packets, including the address of the senders.

Definition at line 410 of file satellite-mac.h.

Referenced by GetTypeId(), RxTraces(), and ns3::SatOrbiterMac::RxTraces().

◆ m_satelliteAddress

◆ m_satId

uint32_t ns3::SatMac::m_satId
protected

The ID of the sat where mac belongs.

Definition at line 455 of file satellite-mac.h.

Referenced by ns3::LorawanMacEndDevice::CheckHandovers(), GetSatId(), SetSatId(), and ns3::SatGwMac::StartTransmission().

◆ m_sendCtrlCallback

SatMac::SendCtrlMsgCallback ns3::SatMac::m_sendCtrlCallback
protected

The send control message callback.

Definition at line 369 of file satellite-mac.h.

Referenced by DoDispose(), SendCtrlMsgFromContainer(), and SetSendCtrlCallback().

◆ m_txCallback

SatMac::TransmitCallback ns3::SatMac::m_txCallback
protected

The lower layer packet transmit callback.

Definition at line 344 of file satellite-mac.h.

Referenced by DoDispose(), SendPacket(), and SetTransmitCallback().

◆ m_txEnabled

bool ns3::SatMac::m_txEnabled
protected

Flag indicating whether the MAC is enabled, i.e.

it is capable/allowed to transmit data to PHY layer. This is used for beam hopping, where forward link is only supported currently, thus, it is set to true by default.

Definition at line 472 of file satellite-mac.h.

Referenced by Disable(), DoDispose(), Enable(), ns3::SatGwMac::StartTransmission(), and ns3::SatOrbiterMac::StartTransmission().

◆ m_updateIslCallback

SatMac::UpdateIslCallback ns3::SatMac::m_updateIslCallback
protected

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