SatOrbiterFeederLlc holds the orbiter feeder implementation of LLC layer. More...
#include "satellite-orbiter-feeder-llc.h"
Public Member Functions | |
SatOrbiterFeederLlc () | |
Construct a SatOrbiterFeederLlc. More... | |
virtual | ~SatOrbiterFeederLlc () |
Destroy a SatOrbiterFeederLlc. More... | |
Public Member Functions inherited from ns3::SatOrbiterLlc | |
SatOrbiterLlc () | |
Construct a SatOrbiterLlc. More... | |
virtual | ~SatOrbiterLlc () |
Destroy a SatOrbiterLlc. More... | |
virtual void | ClearQueues () |
Remove all packets from the queues. More... | |
virtual bool | Enque (Ptr< Packet > packet, Address dest, uint8_t flowId) |
Called from higher layer (SatNetDevice) to enque packet to LLC. More... | |
virtual uint32_t | GetNBytesInQueue (Mac48Address utAddress) const |
Get the number of (new) bytes at LLC queue for a certain UT. More... | |
virtual uint32_t | GetNPacketsInQueue (Mac48Address utAddress) const |
Get the number of (new) packets at LLC queues for a certain UT. More... | |
virtual void | GetSchedulingContexts (std::vector< Ptr< SatSchedulingObject >> &output) const |
Create and fill the scheduling objects based on LLC layer information. More... | |
virtual Ptr< Packet > | NotifyTxOpportunity (uint32_t bytes, Mac48Address utAddr, uint8_t flowId, uint32_t &bytesLeft, uint32_t &nextMinTxO) |
Called from lower layer (MAC) to inform a Tx opportunity of certain amount of bytes. More... | |
virtual void | ReceiveHigherLayerPdu (Ptr< Packet > packet, Mac48Address source, Mac48Address dest) |
Receive HL PDU from encapsulator/decapsulator entity. More... | |
void | SetReceiveSatelliteCallback (SatOrbiterLlc::ReceiveSatelliteCallback cb) |
Set Receive callback to forward packet to upper layer on satellite. More... | |
Public Member Functions inherited from ns3::SatLlc | |
SatLlc () | |
Construct a SatLlc. More... | |
virtual | ~SatLlc () |
Destroy a SatLlc. More... | |
void | AddDecap (Mac48Address source, Mac48Address dest, uint8_t flowId, Ptr< SatBaseEncapsulator > dec) |
Add an decapsulator entry for the LLC. More... | |
void | AddEncap (Mac48Address source, Mac48Address dest, uint8_t flowId, Ptr< SatBaseEncapsulator > enc) |
Add an encapsulator entry for the LLC. More... | |
virtual bool | BuffersEmpty () const |
Are buffers empty? More... | |
virtual bool | ControlBuffersEmpty () const |
Are buffers empty? More... | |
virtual uint32_t | GetNBytesInQueue () const |
Get the total number of (new) bytes in all encapsulators. More... | |
virtual uint32_t | GetNPacketsInQueue () const |
Get the total number of (new) packets in all encapsulators. More... | |
virtual void | Receive (Ptr< Packet > packet, Mac48Address source, Mac48Address dest) |
Receive user data packet from lower layer. More... | |
void | SetAdditionalHeaderSize (uint32_t additionalHeaderSize) |
Set the additional header size. More... | |
void | SetCtrlMsgCallback (SatBaseEncapsulator::SendCtrlCallback cb) |
virtual void | SetGwAddress (Mac48Address address) |
Set the GW address. More... | |
virtual void | SetNodeInfo (Ptr< SatNodeInfo > nodeInfo) |
Set the node info. More... | |
void | SetReadCtrlCallback (SatLlc::ReadCtrlMsgCallback cb) |
Method to set read control message callback. More... | |
void | SetReceiveCallback (SatLlc::ReceiveCallback cb) |
Set Receive callback to forward packet to upper layer. More... | |
virtual void | SetSatelliteAddress (Mac48Address address) |
Set the SAT address. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Derived from Object. More... | |
Static Public Member Functions inherited from ns3::SatOrbiterLlc | |
static TypeId | GetTypeId (void) |
Derived from Object. More... | |
Static Public Member Functions inherited from ns3::SatLlc | |
static TypeId | GetTypeId (void) |
Derived from Object. More... | |
Protected Member Functions | |
virtual void | CreateDecap (Ptr< EncapKey > key) |
Virtual method to create a new decapsulator 'on-a-need-basis' dynamically. More... | |
virtual void | CreateEncap (Ptr< EncapKey > key) |
Method to create a new encapsulator 'on-a-need-basis' dynamically. More... | |
virtual void | DoDispose () |
Dispose of this class instance. More... | |
Protected Member Functions inherited from ns3::SatLlc | |
virtual SatEnums::SatLinkDir_t | GetSatLinkRxDir () |
Get the link RX direction. More... | |
virtual SatEnums::SatLinkDir_t | GetSatLinkTxDir () |
Get the link TX direction. More... | |
virtual void | ReceiveAck (Ptr< SatArqAckMessage > ack, Mac48Address source, Mac48Address dest) |
Receive a control msg (ARQ ACK) from lower layer. More... | |
Additional Inherited Members | |
Public Types inherited from ns3::SatOrbiterLlc | |
typedef Callback< void, Ptr< Packet >, const Address & > | ReceiveSatelliteCallback |
Receive callback used for sending packet to netdevice layer. More... | |
Public Types inherited from ns3::SatLlc | |
typedef std::map< Ptr< EncapKey >, Ptr< SatBaseEncapsulator >, EncapKeyCompare > | EncapContainer_t |
Key = Ptr<EncapKey> (source, dest, flowId) Value = Ptr<SatBaseEncapsulator> Compare class = EncapKeyCompare. More... | |
typedef Callback< Ptr< SatControlMessage >, uint32_t > | ReadCtrlMsgCallback |
Callback to read control messages from container storing control messages. More... | |
typedef Callback< void, Ptr< const Packet > > | ReceiveCallback |
Receive callback used for sending packet to netdevice layer. More... | |
Protected Attributes inherited from ns3::SatOrbiterLlc | |
ReceiveSatelliteCallback | m_rxSatelliteCallback |
The upper layer package receive callback. More... | |
Protected Attributes inherited from ns3::SatLlc | |
uint32_t | m_additionalHeaderSize |
Additional header size to add to encapsulation/decapsulation. More... | |
EncapContainer_t | m_decaps |
Map of decapsulator base pointers. More... | |
EncapContainer_t | m_encaps |
Map of encapsulator base pointers. More... | |
SatEnums::RegenerationMode_t | m_forwardLinkRegenerationMode |
Regeneration mode on forward link. More... | |
bool | m_fwdLinkArqEnabled |
Is FWD link ARQ enabled. More... | |
Mac48Address | m_gwAddress |
GW address. 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... | |
SatLlc::ReadCtrlMsgCallback | m_readCtrlCallback |
The read control message callback. More... | |
SatEnums::RegenerationMode_t | m_returnLinkRegenerationMode |
Regeneration mode on return link. More... | |
bool | m_rtnLinkArqEnabled |
Is RTN link ARQ enabled. More... | |
ReceiveCallback | m_rxCallback |
The upper layer package receive callback. More... | |
Mac48Address | m_satelliteAddress |
SAT address, used in case of network regeneration. More... | |
SatBaseEncapsulator::SendCtrlCallback | m_sendCtrlCallback |
Callback to send control messages. More... | |
SatOrbiterFeederLlc holds the orbiter feeder implementation of LLC layer.
SatOrbiterFeederLlc is inherited from SatOrbiterLlc base class and implements the needed changes from the base class related to SAT feeder LLC packet transmissions and receptions.
Definition at line 35 of file satellite-orbiter-feeder-llc.h.
ns3::SatOrbiterFeederLlc::SatOrbiterFeederLlc | ( | ) |
Construct a SatOrbiterFeederLlc.
Definition at line 45 of file satellite-orbiter-feeder-llc.cc.
|
virtual |
Destroy a SatOrbiterFeederLlc.
This is the destructor for the SatOrbiterFeederLlc.
Definition at line 51 of file satellite-orbiter-feeder-llc.cc.
|
protectedvirtual |
Virtual method to create a new decapsulator 'on-a-need-basis' dynamically.
key | Encapsulator key class |
Reimplemented from ns3::SatOrbiterLlc.
Definition at line 118 of file satellite-orbiter-feeder-llc.cc.
References ns3::SatLlc::m_additionalHeaderSize, ns3::SatLlc::m_decaps, ns3::SatLlc::m_forwardLinkRegenerationMode, ns3::SatLlc::m_fwdLinkArqEnabled, ns3::SatLlc::ReceiveHigherLayerPdu(), and ns3::SatEnums::REGENERATION_NETWORK.
|
protectedvirtual |
Method to create a new encapsulator 'on-a-need-basis' dynamically.
key | Encapsulator key class |
Reimplemented from ns3::SatOrbiterLlc.
Definition at line 63 of file satellite-orbiter-feeder-llc.cc.
References ns3::SatLlc::m_additionalHeaderSize, ns3::SatLlc::m_encaps, ns3::SatLlc::m_returnLinkRegenerationMode, ns3::SatLlc::m_rtnLinkArqEnabled, and ns3::SatEnums::REGENERATION_NETWORK.
|
protectedvirtual |
Dispose of this class instance.
Reimplemented from ns3::SatOrbiterLlc.
Definition at line 57 of file satellite-orbiter-feeder-llc.cc.
|
static |
Derived from Object.
Definition at line 39 of file satellite-orbiter-feeder-llc.cc.