17#include "ns3/simulator.h"
77 : m_rlcSapUser(nullptr),
78 m_macSapProvider(nullptr),
98 .AddTraceSource(
"TxPDU",
99 "PDU transmission notified to the MAC.",
101 "ns3::LteRlc::NotifyTxTracedCallback")
102 .AddTraceSource(
"RxPDU",
105 "ns3::LteRlc::ReceiveTracedCallback")
106 .AddTraceSource(
"TxDrop",
107 "Trace source indicating a packet "
108 "has been dropped before transmission",
110 "ns3::Packet::TracedCallback");
241 params.pdu->AddByteTag(tag, 1, params.pdu->GetSize());
245 params.layer = txOpParams.
layer;
246 params.harqProcessId = txOpParams.
harqId;
251 <<
" size=" << txOpParams.
bytes);
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
virtual void TransmitPdu(TransmitPduParameters params)=0
send an RLC PDU to the MAC for transmission.
virtual void ReportBufferStatus(ReportBufferStatusParameters params)=0
Report the RLC buffer status to the MAC.
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
This abstract base class defines the API to interact with the Radio Link Control (LTE_RLC) in LTE,...
LteRlcSapUser * m_rlcSapUser
RLC SAP user.
void SetPacketDelayBudgetMs(uint16_t packetDelayBudget)
friend class LteRlcSpecificLteMacSapUser
allow LteRlcSpecificLteMacSapUser class friend access
virtual void DoNotifyTxOpportunity(LteMacSapUser::TxOpportunityParameters params)=0
Notify transmit opportunity.
TracedCallback< Ptr< const Packet > > m_txDropTrace
The trace source fired when the RLC drops a packet before transmission.
TracedCallback< uint16_t, uint8_t, uint32_t, uint64_t > m_rxPdu
Used to inform of a PDU reception from the MAC SAP user.
void DoDispose() override
Destructor implementation.
LteRlcSapProvider * m_rlcSapProvider
RLC SAP provider.
LteMacSapUser * m_macSapUser
MAC SAP user.
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
void SetLteRlcSapUser(LteRlcSapUser *s)
uint16_t m_packetDelayBudgetMs
the packet delay budget in ms of the corresponding logical channel
friend class LteRlcSpecificLteRlcSapProvider< LteRlc >
allow LteRlcSpecificLteRlcSapProvider<LteRlc> class friend access
TracedCallback< uint16_t, uint8_t, uint32_t > m_txPdu
Used to inform of a PDU delivery to the MAC SAP provider.
void SetRnti(uint16_t rnti)
virtual void DoNotifyHarqDeliveryFailure()=0
Notify HARQ delivery failure.
void SetLteMacSapProvider(LteMacSapProvider *s)
virtual void DoReceivePdu(LteMacSapUser::ReceivePduParameters params)=0
Receive PDU function.
LteMacSapUser * GetLteMacSapUser()
void SetLcId(uint8_t lcId)
static TypeId GetTypeId()
Get the type ID.
LteRlcSapProvider * GetLteRlcSapProvider()
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36....
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36....
LTE_RLC Saturation Mode (SM): simulation-specific mode used for experiments that do not need to consi...
void DoDispose() override
Destructor implementation.
void DoInitialize() override
Initialize() implementation.
static TypeId GetTypeId()
Get the type ID.
void DoReceivePdu(LteMacSapUser::ReceivePduParameters rxPduParams) override
Receive PDU function.
void DoTransmitPdcpPdu(Ptr< Packet > p) override
Transmit PDCP PDU.
void DoNotifyHarqDeliveryFailure() override
Notify HARQ delivery failure.
void ReportBufferStatus()
Report buffer status.
void DoNotifyTxOpportunity(LteMacSapUser::TxOpportunityParameters txOpParams) override
Notify transmit opportunity.
LteRlcSpecificLteMacSapUser class.
void NotifyTxOpportunity(LteMacSapUser::TxOpportunityParameters params) override
Called by the MAC to notify the RLC that the scheduler granted a transmission opportunity to this RLC...
LteRlcSpecificLteMacSapUser()
void ReceivePdu(LteMacSapUser::ReceivePduParameters params) override
Called by the MAC to notify the RLC of the reception of a new PDU.
void NotifyHarqDeliveryFailure() override
Called by the MAC to notify the RLC that an HARQ process related to this RLC instance has failed.
A base class which provides memory management and object aggregation.
uint32_t GetSize() const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
bool FindFirstMatchingByteTag(Tag &tag) const
Finds the first tag matching the parameter Tag type.
Smart pointer class similar to boost::intrusive_ptr.
Tag to calculate the per-PDU delay from eNb RLC to UE RLC.
Time GetSenderTimestamp() const
Get the instant when the RLC delivers the PDU to the MAC SAP provider.
static Time Now()
Return the current simulation virtual time.
Simulation virtual time values and global simulation resolution.
int64_t GetNanoSeconds() const
Get an approximation of the time stored in this instance in the indicated unit.
TimeWithUnit As(const Unit unit=Time::AUTO) const
Attach a unit to a Time, to facilitate output in a specific unit.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
#define NS_ABORT_MSG_UNLESS(cond, msg)
Abnormal program termination if a condition is false, with a message.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Parameters for LteMacSapProvider::ReportBufferStatus.
uint32_t txQueueSize
the current size of the RLC transmission queue
uint16_t retxQueueHolDelay
the Head Of Line delay of the retransmission queue
uint16_t txQueueHolDelay
the Head Of Line delay of the transmission queue
uint32_t retxQueueSize
the current size of the RLC retransmission queue in bytes
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
uint16_t rnti
the C-RNTI identifying the UE
uint16_t statusPduSize
the current size of the pending STATUS RLC PDU message in bytes
Parameters for LteMacSapProvider::TransmitPdu.
Parameters for LteMacSapUser::ReceivePdu.
Ptr< Packet > p
the RLC PDU to be received
Parameters for LteMacSapUser::NotifyTxOpportunity.
uint8_t harqId
the HARQ ID
uint32_t bytes
the number of bytes to transmit
uint8_t componentCarrierId
the component carrier id
uint8_t layer
the layer of transmission (MIMO)