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" 48 virtual void NotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid);
110 .AddTraceSource (
"TxPDU",
111 "PDU transmission notified to the MAC.",
113 "ns3::LteRlc::NotifyTxTracedCallback")
114 .AddTraceSource (
"RxPDU",
117 "ns3::LteRlc::ReceiveTracedCallback")
230 <<
" LCID=" << (uint32_t)
m_lcid 241 params.
pdu = Create<Packet> (bytes);
244 params.
layer = layer;
252 <<
" LCID=" << (uint32_t)
m_lcid 253 <<
" size=" << bytes);
virtual void DoReceivePdu(Ptr< Packet > p, uint16_t rnti, uint8_t lcid)
Receive PDU function.
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36...
LteMacSapUser * m_macSapUser
MAC SAP user.
TracedCallback< uint16_t, uint8_t, uint32_t > m_txPdu
Used to inform of a PDU delivery to the MAC SAP provider.
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...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
NS_ASSERT_MSG(false, "Ipv4AddressGenerator::MaskToIndex(): Impossible")
LteRlcSpecificLteMacSapUser class.
static TypeId GetTypeId(void)
Get the type ID.
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 retxQueueSize
the current size of the RLC retransmission queue in bytes
virtual void DoNotifyHarqDeliveryFailure()
Notify HARQ delivery failure.
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
void SetRnti(uint16_t rnti)
uint16_t rnti
the C-RNTI identifying the UE
LteRlcSpecificLteRlcSapProvider.
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
Parameters for LteMacSapProvider::ReportBufferStatus.
virtual void DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid)=0
Notify transmit opportunity.
uint16_t txQueueHolDelay
the Head Of Line delay of the transmission queue
LteRlcSapUser * m_rlcSapUser
RLC SAP user.
uint16_t rnti
the C-RNTI identifying the UE
virtual void DoDispose()
Destructor implementation.
virtual void DoTransmitPdcpPdu(Ptr< Packet > p)
Transmit PDCP PDU.
LteMacSapUser * GetLteMacSapUser()
virtual void DoReceivePdu(Ptr< Packet > p, uint16_t rnti, uint8_t lcid)=0
Receive PDU function.
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
void ReportBufferStatus()
Report buffer status.
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
RLC SAP provider.
int64_t GetNanoSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
void SetLteRlcSapUser(LteRlcSapUser *s)
virtual void NotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid)
Called by the MAC to notify the RLC that the scheduler granted a transmission opportunity to this RLC...
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)
NS_LOG_LOGIC("Net device "<< nd<< " is not bridged")
uint16_t statusPduSize
the current size of the pending STATUS RLC PDU message in bytes
virtual void DoNotifyHarqDeliveryFailure()=0
Notify HARQ delivery failure.
void AddPacketTag(const Tag &tag) const
Add a packet tag.
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
bool RemovePacketTag(Tag &tag)
Remove a packet tag.
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
allow LteRlcSpecificLteMacSapUser class friend access
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.
bool PeekPacketTag(Tag &tag) const
Search a matching tag and call Tag::Deserialize if it is found.
virtual void DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid)
Notify transmit opportunity.
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 ReceivePdu(Ptr< Packet > p, uint16_t rnti, uint8_t lcid)
Called by the MAC to notify the RLC of the reception of a new PDU.
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)
Set the parent TypeId.
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)
Get the type ID.
Parameters for LteMacSapProvider::TransmitPdu.