23 #include "ns3/simulator.h"
25 #include "ns3/lte-rlc.h"
26 #include "ns3/lte-rlc-tag.h"
28 #include "ns3/lte-rlc-sap.h"
107 .AddTraceSource (
"TxPDU",
108 "PDU transmission notified to the MAC.",
110 .AddTraceSource (
"RxPDU",
189 .AddConstructor<LteRlcSm> ()
226 <<
" LCID=" << (uint32_t)
m_lcid
237 params.
pdu = Create<Packet> (bytes);
240 params.
layer = layer;
247 <<
" LCID=" << (uint32_t)
m_lcid
248 <<
" size=" << bytes);
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36...
LteMacSapUser * m_macSapUser
TracedCallback< uint16_t, uint8_t, uint32_t > m_txPdu
Used to inform of a PDU delivery to the MAC SAP provider.
bool FindFirstMatchingByteTag(Tag &tag) const
keep track of time values and allow control of global simulation resolution
#define NS_LOG_FUNCTION(parameters)
NS_LOG_COMPONENT_DEFINE("LteRlc")
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36...
virtual void DoReceivePdu(Ptr< Packet > p)
static TypeId GetTypeId(void)
virtual void DoDispose()
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
Tag to calculate the per-PDU delay from eNb RLC to UE RLC.
NS_OBJECT_ENSURE_REGISTERED(NullMessageSimulatorImpl)
uint32_t GetSize(void) const
uint32_t retxQueueSize
the current size of the RLC retransmission queue in bytes
virtual void ReceivePdu(Ptr< Packet > p)
Called by the MAC to notify the RLC of the reception of a new PDU.
virtual void DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId)
virtual void DoNotifyHarqDeliveryFailure()
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
void SetRnti(uint16_t rnti)
uint16_t rnti
the C-RNTI identifying the UE
Parameters for LteMacSapProvider::ReportBufferStatus.
uint16_t txQueueHolDelay
the Head Of Line delay of the transmission queue
virtual void NotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId)
Called by the MAC to notify the RLC that the scheduler granted a transmission opportunity to this RLC...
LteRlcSapUser * m_rlcSapUser
uint16_t rnti
the C-RNTI identifying the UE
virtual void DoDispose()
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
virtual void DoTransmitPdcpPdu(Ptr< Packet > p)
LteMacSapUser * GetLteMacSapUser()
LteMacSapProvider * m_macSapProvider
void ReportBufferStatus()
#define NS_LOG_LOGIC(msg)
virtual void DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId)=0
uint8_t layer
the layer value that was passed by the MAC in the call to NotifyTxOpportunity that generated this PDU...
LteRlcSapProvider * m_rlcSapProvider
void SetLteRlcSapUser(LteRlcSapUser *s)
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Time GetSenderTimestamp(void) const
Get the instant when the RLC delivers the PDU to the MAC SAP provider.
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
uint32_t txQueueSize
the current size of the RLC transmission queue
static Time Now(void)
Return the "current simulation time".
void SetLcId(uint8_t lcId)
virtual void DoReceivePdu(Ptr< Packet > p)=0
int64_t GetNanoSeconds(void) const
uint16_t statusPduSize
the current size of the pending STATUS RLC PDU message in bytes
virtual void DoNotifyHarqDeliveryFailure()=0
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
virtual void NotifyHarqDeliveryFailure()
Called by the MAC to notify the RLC that an HARQ process related to this RLC instance has failed...
uint16_t retxQueueHolDelay
the Head Of Line delay of the retransmission queue
Ptr< Packet > pdu
the RLC PDU
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
virtual void ReportBufferStatus(ReportBufferStatusParameters params)=0
Report the RLC buffer status to the MAC.
friend class LteRlcSpecificLteMacSapUser
LteRlcSapProvider * GetLteRlcSapProvider()
LteRlcSpecificLteMacSapUser()
TracedCallback< uint16_t, uint8_t, uint32_t, uint64_t > m_rxPdu
Used to inform of a PDU reception from the MAC SAP user.
a base class which provides memory management and object aggregation
virtual void DoInitialize()
This method is called only once by Object::Initialize.
uint8_t harqProcessId
the HARQ process id that was passed by the MAC in the call to NotifyTxOpportunity that generated this...
virtual void TransmitPdu(TransmitPduParameters params)=0
send an RLC PDU to the MAC for transmission.
This abstract base class defines the API to interact with the Radio Link Control (LTE_RLC) in LTE...
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
LTE_RLC Saturation Mode (SM): simulation-specific mode used for experiments that do not need to consi...
void SetLteMacSapProvider(LteMacSapProvider *s)
static TypeId GetTypeId(void)
void AddByteTag(const Tag &tag) const
Tag each byte included in this packet with a new byte tag.
Parameters for LteMacSapProvider::TransmitPdu.