21 #ifndef SAT_BASE_ENCAPSULATOR_H
22 #define SAT_BASE_ENCAPSULATOR_H
27 #include <ns3/mac48-address.h>
28 #include <ns3/nstime.h>
29 #include <ns3/object.h>
30 #include <ns3/packet.h>
31 #include <ns3/trace-source-accessor.h>
32 #include <ns3/traced-value.h>
33 #include <ns3/uinteger.h>
71 Mac48Address decapAddress,
72 Mac48Address sourceE2EAddress,
73 Mac48Address destE2EAddress,
75 uint32_t additionalHeaderSize = 0);
138 virtual void EnquePdu(Ptr<Packet> p, Mac48Address dest);
151 uint32_t& nextMinTxO);
165 virtual void ReceiveAck(Ptr<SatArqAckMessage> ack);
A base encapsulator implementation which does not support encapsulation, fragmentation or packing.
SatBaseEncapsulator()
Default constructor not used.
void SetCtrlMsgCallback(SatBaseEncapsulator::SendCtrlCallback cb)
virtual Time GetHolDelay() const
Get Head-of-Line packet buffering delay.
virtual uint32_t GetMinTxOpportunityInBytes() const
Get minimum Tx opportunity in bytes, which takes the assumed header sizes into account.
virtual void ReceiveAck(Ptr< SatArqAckMessage > ack)
Receive a control message (ARQ ACK)
virtual uint32_t GetTxBufferSizeInBytes() const
Get the buffered packets for this encapsulator.
static TypeId GetTypeId(void)
Get the type ID.
void SetReceiveCallback(ReceiveCallback cb)
Method to set receive callback.
ReceiveCallback m_rxCallback
Receive callback.
virtual Ptr< Packet > NotifyTxOpportunity(uint32_t bytes, uint32_t &bytesLeft, uint32_t &nextMinTxO)
Notify a Tx opportunity to this base encapsulator.
Callback< bool, Ptr< SatControlMessage >, const Address & > SendCtrlCallback
Control msg sending callback.
virtual ~SatBaseEncapsulator()
Destructor for SatBaseEncapsulator.
Mac48Address m_destE2EAddress
Mac48Address m_sourceE2EAddress
uint8_t m_flowId
Flow identifier.
virtual void EnquePdu(Ptr< Packet > p, Mac48Address dest)
Enqueue a packet to txBuffer.
virtual void DoDispose()
Dispose of this class instance.
Mac48Address m_encapAddress
Source and destination mac addresses.
Ptr< SatQueue > m_txQueue
Used queue in satellite encapsulator.
Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > ReceiveCallback
Callback to send packet to lower layer.
SendCtrlCallback m_ctrlCallback
Callback to send control messages.
virtual void ReceivePdu(Ptr< Packet > p)
Receive a packet.
void SetQueue(Ptr< SatQueue > queue)
Set the used queue from outside.
uint32_t m_additionalHeaderSize
Additional value in to take into account when pulling packets to represent E2E tags.
Ptr< SatQueue > GetQueue()
Get the queue instance.
Mac48Address m_decapAddress
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.