22 #include "ns3/simulator.h"
25 #include "ns3/lte-rlc-tm.h"
26 #include "ns3/lte-rlc-tag.h"
35 : m_maxTxBufferSize (0),
53 .AddAttribute (
"MaxTxBufferSize",
54 "Maximum Size of the Transmission Buffer (in Bytes)",
57 MakeUintegerChecker<uint32_t> ())
132 if (bytes < packet->GetSize ())
134 NS_LOG_WARN (
"TX opportunity too small = " << bytes <<
" (PDU size: " << packet->
GetSize () <<
")");
151 params.layer = layer;
152 params.harqProcessId = harqId;
196 uint32_t queueSize = 0;
201 m_txBuffer.front ()->PeekPacketTag (holTimeTag);
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 "...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
virtual void DoNotifyHarqDeliveryFailure()
void ExpireRbsTimer(void)
void AddPacketTag(const Tag &tag) const
Add a packet tag.
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.
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit.
void DoReportBufferStatus()
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
static EventId Schedule(Time const &time, MEM mem_ptr, OBJ obj)
Schedule an event to expire at the relative time "time" is reached.
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
LteRlcSapUser * m_rlcSapUser
Hold an unsigned integer type.
virtual void DoTransmitPdcpPdu(Ptr< Packet > p)
RLC SAP.
virtual void ReceivePdcpPdu(Ptr< Packet > p)=0
Called by the RLC entity to notify the PDCP entity of the reception of a new PDCP PDU...
virtual void DoDispose()
Destructor implementation.
LteMacSapProvider * m_macSapProvider
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
LTE RLC Transparent Mode (TM), see 3GPP TS 36.322.
Ptr< Packet > Copy(void) const
performs a COW copy of the packet.
std::vector< Ptr< Packet > > m_txBuffer
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static TypeId GetTypeId(void)
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.
int64_t GetNanoSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
virtual void DoReceivePdu(Ptr< Packet > p)
uint16_t statusPduSize
the current size of the pending STATUS RLC PDU message in bytes
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN.
uint32_t m_maxTxBufferSize
uint16_t retxQueueHolDelay
the Head Of Line delay of the retransmission queue
Ptr< Packet > pdu
the RLC PDU
void Cancel(void)
This method is syntactic sugar for the ns3::Simulator::Cancel method.
virtual void ReportBufferStatus(ReportBufferStatusParameters params)=0
Report the RLC buffer status to the MAC.
virtual void DoDispose()
Destructor implementation.
TracedCallback< uint16_t, uint8_t, uint32_t, uint64_t > m_rxPdu
Used to inform of a PDU reception from the MAC SAP user.
virtual void TransmitPdu(TransmitPduParameters params)=0
send an RLC PDU to the MAC for transmission.
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
This abstract base class defines the API to interact with the Radio Link Control (LTE_RLC) in LTE...
a unique identifier for an interface.
int64_t GetMilliSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
TypeId SetParent(TypeId tid)
void AddByteTag(const Tag &tag) const
Tag each byte included in this packet with a new byte tag.
virtual void DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId)
MAC SAP.
Parameters for LteMacSapProvider::TransmitPdu.