The SatOrbiterFeederMac models the user link MAC layer of the satellite node. More...
#include "satellite-orbiter-feeder-mac.h"
Public Member Functions | |
SatOrbiterFeederMac (uint32_t satId, uint32_t beamId) | |
Construct a SatOrbiterFeederMac. More... | |
SatOrbiterFeederMac (void) | |
Default constructor. More... | |
virtual | ~SatOrbiterFeederMac () |
Destructor for SatOrbiterFeederMac. More... | |
virtual bool | AddPeer (Mac48Address address) |
Add a remote peer to this MAC. More... | |
virtual void | DoDispose (void) |
Dispose of this class instance. More... | |
virtual void | DoInitialize (void) |
virtual void | EnquePacket (Ptr< Packet > packet) |
Add new packet to the LLC queue. More... | |
TypeId | GetInstanceTypeId (void) const |
void | Receive (SatPhy::PacketContainer_t packets, Ptr< SatSignalParameters > rxParams) |
Receive packet from lower layer. More... | |
void | ReceiveSignalingPacket (Ptr< Packet > packet) |
virtual bool | RemovePeer (Mac48Address address) |
Remove a remote peer from this MAC. More... | |
Public Member Functions inherited from ns3::SatOrbiterMac | |
SatOrbiterMac (uint32_t satId, uint32_t beamId) | |
Construct a SatOrbiterMac. More... | |
SatOrbiterMac (void) | |
Default constructor. More... | |
virtual | ~SatOrbiterMac () |
Destructor for SatOrbiterMac. More... | |
virtual Time | GetGuardTime () const |
TypeId | GetInstanceTypeId (void) const |
void | SetBeamSchedulerCallback (SatOrbiterMac::BeamSchedulerCallback cb) |
Set the beam scheduler callback. More... | |
void | SetFwdScheduler (Ptr< SatFwdLinkScheduler > fwdScheduler) |
Method to set link scheduler (forward or SCPC) More... | |
virtual void | SetGuardTime (Time guardTime) |
void | SetLlc (Ptr< SatOrbiterLlc > llc) |
Set the orbiter LLC associated to this orbiter MAC layer. More... | |
void | SetReceiveNetDeviceCallback (SatOrbiterMac::ReceiveNetDeviceCallback cb) |
void | SetTransmitCallback (SatOrbiterMac::TransmitCallback cb) |
void | StartPeriodicTransmissions () |
Starts periodical transmissions. More... | |
virtual void | StopPeriodicTransmissions () |
Stop periodic transmission, until a pacquet in enqued. More... | |
Public Member Functions inherited from ns3::SatMac | |
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) |
inherited from Object More... | |
Static Public Member Functions inherited from ns3::SatOrbiterMac | |
static TypeId | GetTypeId (void) |
inherited from Object More... | |
Static Public Member Functions inherited from ns3::SatMac | |
static TypeId | GetTypeId (void) |
Derived from Object. More... | |
Private Member Functions | |
virtual Address | GetRxUtAddress (Ptr< Packet > packet) |
Get the UT address associated to this RX packet. More... | |
virtual SatEnums::SatLinkDir_t | GetSatLinkRxDir () |
Get the link RX direction. More... | |
virtual SatEnums::SatLinkDir_t | GetSatLinkTxDir () |
Get the link TX direction. More... | |
virtual bool | HasPeer () |
Indicates if at least one device is connected in this beam. More... | |
Additional Inherited Members | |
Public Types inherited from ns3::SatOrbiterMac | |
typedef Callback< Ptr< SatBeamScheduler >, uint32_t, uint32_t > | BeamSchedulerCallback |
Callback to get the SatBeamScheduler from the beam ID for handover. More... | |
typedef Callback< void, SatPhy::PacketContainer_t, Ptr< SatSignalParameters > > | ReceiveNetDeviceCallback |
typedef Callback< void, Ptr< SatSignalParameters > > | TransmitCallback |
Public Types inherited from ns3::SatMac | |
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_s > | TransmitCallback |
Callback to send packet to lower layer. More... | |
typedef Callback< void > | UpdateIslCallback |
Callback to update ISL routes when handovers are performed. More... | |
Protected Member Functions inherited from ns3::SatOrbiterMac | |
virtual 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 | StartTransmission (uint32_t carrierId) |
Start sending a Packet Down the Wire. 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... | |
void | SetTimeTag (SatPhy::PacketContainer_t packets) |
Set SatMacTimeTag of packets. More... | |
Protected Attributes inherited from ns3::SatOrbiterMac | |
TracedCallback< Ptr< SatBbFrame > > | m_bbFrameTxTrace |
Trace for transmitted BB frames. More... | |
uint32_t | m_beamId |
ID of beam for UT. More... | |
bool | m_disableSchedulingIfNoDeviceConnected |
If true, the periodic calls of StartTransmission are not called when no devices are connected to this MAC. More... | |
Ptr< SatFwdLinkScheduler > | m_fwdScheduler |
Scheduler for the forward link. More... | |
Time | m_guardTime |
Guard time for BB frames. More... | |
Ptr< SatOrbiterLlc > | m_llc |
LLC layer linked to this MAC. More... | |
bool | m_periodicTransmissionEnabled |
Indicated if periodic transmission is enabled. More... | |
ReceiveNetDeviceCallback | m_rxNetDeviceCallback |
uint32_t | m_satId |
ID of sat for UT. More... | |
TransmitCallback | m_txCallback |
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... | |
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< SatHandoverModule > | m_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< SatNodeInfo > | m_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... | |
The SatOrbiterFeederMac models the user link MAC layer of the satellite node.
Definition at line 48 of file satellite-orbiter-feeder-mac.h.
ns3::SatOrbiterFeederMac::SatOrbiterFeederMac | ( | void | ) |
Default constructor.
Definition at line 66 of file satellite-orbiter-feeder-mac.cc.
ns3::SatOrbiterFeederMac::SatOrbiterFeederMac | ( | uint32_t | satId, |
uint32_t | beamId | ||
) |
Construct a SatOrbiterFeederMac.
This is the constructor for the SatOrbiterFeederMac
satId | ID of sat for UT |
beamid | ID of beam for UT |
Definition at line 72 of file satellite-orbiter-feeder-mac.cc.
|
virtual |
Destructor for SatOrbiterFeederMac.
Definition at line 78 of file satellite-orbiter-feeder-mac.cc.
|
virtual |
Add a remote peer to this MAC.
address | The MAC address of the peer |
Implements ns3::SatOrbiterMac.
Definition at line 316 of file satellite-orbiter-feeder-mac.cc.
|
virtual |
Dispose of this class instance.
Reimplemented from ns3::SatOrbiterMac.
Definition at line 84 of file satellite-orbiter-feeder-mac.cc.
|
virtual |
Reimplemented from ns3::SatOrbiterMac.
Definition at line 91 of file satellite-orbiter-feeder-mac.cc.
|
virtual |
Add new packet to the LLC queue.
packet | Packets to be sent. |
Implements ns3::SatOrbiterMac.
Definition at line 98 of file satellite-orbiter-feeder-mac.cc.
References ns3::SatAddressE2ETag::GetE2EDestAddress(), ns3::SatOrbiterMac::m_llc, ns3::SatMac::m_nodeInfo, ns3::SatOrbiterMac::m_periodicTransmissionEnabled, ns3::SatMac::m_returnLinkRegenerationMode, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatMacTag::SetDestAddress(), and ns3::SatMacTag::SetSourceAddress().
TypeId ns3::SatOrbiterFeederMac::GetInstanceTypeId | ( | void | ) | const |
Definition at line 59 of file satellite-orbiter-feeder-mac.cc.
References GetTypeId().
|
privatevirtual |
Get the UT address associated to this RX packet.
In this class, this is the destination address
packet | The packet to consider |
Implements ns3::SatOrbiterMac.
Definition at line 299 of file satellite-orbiter-feeder-mac.cc.
References ns3::SatAddressE2ETag::GetE2EDestAddress().
|
privatevirtual |
Get the link RX direction.
Must be implemented by child clases.
Implements ns3::SatOrbiterMac.
Definition at line 293 of file satellite-orbiter-feeder-mac.cc.
References ns3::SatEnums::LD_FORWARD.
|
privatevirtual |
Get the link TX direction.
Must be implemented by child clases.
Implements ns3::SatOrbiterMac.
Definition at line 287 of file satellite-orbiter-feeder-mac.cc.
References ns3::SatEnums::LD_RETURN.
|
static |
inherited from Object
Definition at line 44 of file satellite-orbiter-feeder-mac.cc.
References ns3::SatOrbiterMac::GetGuardTime(), and ns3::SatOrbiterMac::SetGuardTime().
Referenced by GetInstanceTypeId().
|
privatevirtual |
Indicates if at least one device is connected in this beam.
Implements ns3::SatOrbiterMac.
Definition at line 332 of file satellite-orbiter-feeder-mac.cc.
void ns3::SatOrbiterFeederMac::Receive | ( | SatPhy::PacketContainer_t | packets, |
Ptr< SatSignalParameters > | rxParams | ||
) |
Receive packet from lower layer.
packets | Pointers to packets received. |
Definition at line 138 of file satellite-orbiter-feeder-mac.cc.
References ns3::SatMacTag::GetDestAddress(), ns3::SatAddressE2ETag::GetE2EDestAddress(), ns3::SatControlMsgTag::GetMsgType(), ns3::SatUtils::GetPacketInfo(), ns3::SatMacTag::GetSourceAddress(), ns3::SatEnums::LD_FORWARD, ns3::SatEnums::LL_MAC, ns3::SatMac::m_forwardLinkRegenerationMode, ns3::SatMac::m_nodeInfo, ns3::SatMac::m_packetTrace, ns3::SatMac::m_rxCallback, ns3::SatOrbiterMac::m_rxNetDeviceCallback, ns3::SatEnums::PACKET_RECV, ReceiveSignalingPacket(), ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatOrbiterMac::RxTraces(), and ns3::SatControlMsgTag::SAT_NON_CTRL_MSG.
Referenced by ns3::SatOrbiterHelper::AttachChannelsFeeder().
void ns3::SatOrbiterFeederMac::ReceiveSignalingPacket | ( | Ptr< Packet > | packet | ) |
Definition at line 239 of file satellite-orbiter-feeder-mac.cc.
References ns3::SatControlMsgTag::GetMsgId(), ns3::SatControlMsgTag::GetMsgType(), ns3::SatMacTag::GetSourceAddress(), ns3::SatOrbiterMac::m_fwdScheduler, ns3::SatMac::m_readCtrlCallback, and ns3::SatControlMsgTag::SAT_CN0_REPORT.
Referenced by Receive().
|
virtual |
Remove a remote peer from this MAC.
address | The MAC address of the peer |
Implements ns3::SatOrbiterMac.
Definition at line 324 of file satellite-orbiter-feeder-mac.cc.