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"
105 .AddTraceSource (
"TxPDU",
106 "PDU transmission notified to the MAC.",
108 "ns3::LteRlc::NotifyTxTracedCallback")
109 .AddTraceSource (
"RxPDU",
112 "ns3::LteRlc::ReceiveTracedCallback")
188 .AddConstructor<LteRlcSm> ()
225 <<
" LCID=" << (uint32_t)
m_lcid
236 params.
pdu = Create<Packet> (bytes);
239 params.
layer = layer;
246 <<
" LCID=" << (uint32_t)
m_lcid
247 <<
" 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
Finds the first tag matching the parameter Tag type.
Simulation virtual time values and global simulation resolution.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
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)
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
static TypeId GetTypeId(void)
virtual void DoDispose()
Destructor implementation.
Tag to calculate the per-PDU delay from eNb RLC to UE RLC.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
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
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
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()
Destructor implementation.
virtual void DoTransmitPdcpPdu(Ptr< Packet > p)
LteMacSapUser * GetLteMacSapUser()
LteMacSapProvider * m_macSapProvider
void ReportBufferStatus()
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
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...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
LteRlcSapProvider * m_rlcSapProvider
void SetLteRlcSapUser(LteRlcSapUser *s)
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 virtual time.
void SetLcId(uint8_t lcId)
virtual void DoReceivePdu(Ptr< Packet > p)=0
int64_t GetNanoSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
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()
Initialize() implementation.
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.