The SatOrbiterFeederMac models the user link MAC layer of the satellite node. More...
#include "satellite-orbiter-feeder-mac.h"
 Inheritance diagram for ns3::SatOrbiterFeederMac:
 Collaboration diagram for ns3::SatOrbiterFeederMac: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().
 Here is the call graph for this function:| TypeId ns3::SatOrbiterFeederMac::GetInstanceTypeId | ( | void | ) | const | 
Definition at line 59 of file satellite-orbiter-feeder-mac.cc.
References GetTypeId().
 Here is the call graph for this function:
      
  | 
  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().
 Here is the call graph for this function:
      
  | 
  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().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  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().
 Here is the call graph for this function:
 Here is the caller graph for this function:| 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().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  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.