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"
106 .SetGroupName (
"Lte")
107 .AddTraceSource (
"TxPDU",
108 "PDU transmission notified to the MAC.",
110 "ns3::LteRlc::NotifyTxTracedCallback")
111 .AddTraceSource (
"RxPDU",
114 "ns3::LteRlc::ReceiveTracedCallback")
115 .AddTraceSource (
"TxDrop",
116 "Trace source indicating a packet "
117 "has been dropped before transmission",
119 "ns3::Packet::TracedCallback")
195 .SetGroupName (
"Lte")
232 <<
" LCID=" << (uint32_t)
m_lcid
233 <<
" size=" << rxPduParams.
p->
GetSize ()
245 params.
pdu = Create<Packet> (txOpParams.
bytes);
261 <<
" LCID=" << (uint32_t)
m_lcid
262 <<
" 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.
friend class LteRlcSpecificLteMacSapUser
allow LteRlcSpecificLteMacSapUser class friend access
virtual void DoNotifyTxOpportunity(LteMacSapUser::TxOpportunityParameters params)=0
Notify transmit opportunity.
static TypeId GetTypeId(void)
Get the type ID.
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.
LteRlcSapProvider * m_rlcSapProvider
RLC SAP provider.
LteMacSapUser * m_macSapUser
MAC SAP user.
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
virtual void DoDispose()
Destructor implementation.
void SetLteRlcSapUser(LteRlcSapUser *s)
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)
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...
virtual void DoDispose()
Destructor implementation.
virtual void DoNotifyTxOpportunity(LteMacSapUser::TxOpportunityParameters txOpParams)
Notify transmit opportunity.
static TypeId GetTypeId(void)
Get the type ID.
virtual void DoTransmitPdcpPdu(Ptr< Packet > p)
Transmit PDCP PDU.
virtual void DoInitialize()
Initialize() implementation.
virtual void DoNotifyHarqDeliveryFailure()
Notify HARQ delivery failure.
virtual void DoReceivePdu(LteMacSapUser::ReceivePduParameters rxPduParams)
Receive PDU function.
void ReportBufferStatus()
Report buffer status.
LteRlcSpecificLteMacSapUser class.
virtual void NotifyHarqDeliveryFailure()
Called by the MAC to notify the RLC that an HARQ process related to this RLC instance has failed.
virtual void NotifyTxOpportunity(LteMacSapUser::TxOpportunityParameters params)
Called by the MAC to notify the RLC that the scheduler granted a transmission opportunity to this RLC...
LteRlcSpecificLteMacSapUser()
virtual void ReceivePdu(LteMacSapUser::ReceivePduParameters params)
Called by the MAC to notify the RLC of the reception of a new PDU.
A base class which provides memory management and object aggregation.
bool FindFirstMatchingByteTag(Tag &tag) const
Finds the first tag matching the parameter Tag type.
void AddByteTag(const Tag &tag) const
Tag each byte included in this packet with a new byte tag.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
Tag to calculate the per-PDU delay from eNb RLC to UE RLC.
Time GetSenderTimestamp(void) const
Get the instant when the RLC delivers the PDU to the MAC SAP provider.
static Time Now(void)
Return the current simulation virtual time.
Simulation virtual time values and global simulation resolution.
TimeWithUnit As(const enum Unit unit=Time::AUTO) const
Attach a unit to a Time, to facilitate output in a specific unit.
int64_t GetNanoSeconds(void) const
Get an approximation of the time stored in this instance in the indicated 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< 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.
uint16_t rnti
the C-RNTI identifying the UE
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
uint8_t componentCarrierId
the component carrier id corresponding to the sending Mac istance
Ptr< Packet > pdu
the RLC PDU
uint8_t harqProcessId
the HARQ process id that was passed by the MAC in the call to NotifyTxOpportunity that generated this...
uint8_t layer
the layer value that was passed by the MAC in the call to NotifyTxOpportunity that generated this PDU
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)