16#include "ns3/simulator.h"
62 : m_pdcpSapUser(nullptr),
63 m_rlcSapProvider(nullptr),
66 m_txSequenceNumber(0),
85 .AddTraceSource(
"TxPDU",
86 "PDU transmission notified to the RLC.",
88 "ns3::LtePdcp::PduTxTracedCallback")
89 .AddTraceSource(
"RxPDU",
92 "ns3::LtePdcp::PduRxTracedCallback");
183 p->AddHeader(pdcpHeader);
193 NS_LOG_INFO(
"Transmitting PDCP PDU with header: " << pdcpHeader);
205 p->FindFirstMatchingByteTag(pdcpTag);
210 p->RemoveHeader(pdcpHeader);
LTE PDCP entity, see 3GPP TS 36.323.
uint16_t m_rxSequenceNumber
State variables.
void SetLtePdcpSapUser(LtePdcpSapUser *s)
LteRlcSapUser * GetLteRlcSapUser()
LtePdcpSapUser * m_pdcpSapUser
PDCP SAP user.
LtePdcpSapProvider * GetLtePdcpSapProvider()
virtual void DoReceivePdu(Ptr< Packet > p)
Interface provided to lower RLC entity.
LteRlcSapUser * m_rlcSapUser
RLC SAP user.
uint16_t m_txSequenceNumber
State variables.
void SetStatus(Status s)
Set the status of the PDCP.
friend class LtePdcpSpecificLtePdcpSapProvider< LtePdcp >
allow LtePdcpSpecificLtePdcpSapProvider<LtePdcp> class friend access
virtual void DoTransmitPdcpSdu(LtePdcpSapProvider::TransmitPdcpSduParameters params)
Interface provided to upper RRC entity.
LteRlcSapProvider * m_rlcSapProvider
RLC SAP provider.
TracedCallback< uint16_t, uint8_t, uint32_t, uint64_t > m_rxPdu
Used to inform of a PDU reception from the RLC SAP user.
static const uint16_t m_maxPdcpSn
Constants.
void SetRnti(uint16_t rnti)
friend class LtePdcpSpecificLteRlcSapUser
allow LtePdcpSpecificLteRlcSapUser class friend access
TracedCallback< uint16_t, uint8_t, uint32_t > m_txPdu
Used to inform of a PDU delivery to the RLC SAP provider.
LtePdcpSapProvider * m_pdcpSapProvider
PDCP SAP provider.
void SetLteRlcSapProvider(LteRlcSapProvider *s)
void DoDispose() override
Destructor implementation.
void SetLcId(uint8_t lcId)
static TypeId GetTypeId()
Get the type ID.
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
virtual void ReceivePdcpSdu(ReceivePdcpSduParameters params)=0
Called by the PDCP entity to notify the RRC entity of the reception of a new RRC PDU.
LtePdcpSpecificLteRlcSapUser class.
LtePdcpSpecificLteRlcSapUser()
void ReceivePdcpPdu(Ptr< Packet > p) override
Called by the RLC entity to notify the PDCP entity of the reception of a new PDCP PDU.
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36....
virtual void TransmitPdcpPdu(TransmitPdcpPduParameters params)=0
Send a PDCP PDU to the RLC for transmission This method is to be called when upper PDCP entity has a ...
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36....
A base class which provides memory management and object aggregation.
Tag to calculate the per-PDU delay from eNb PDCP to UE PDCP.
Time GetSenderTimestamp() const
Get the instant when the PDCP delivers the PDU to the MAC SAP provider.
Smart pointer class similar to boost::intrusive_ptr.
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.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
#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_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
#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.
Status variables of the PDCP.
uint16_t rxSn
RX sequence number.
uint16_t txSn
TX sequence number.
Parameters for LtePdcpSapProvider::TransmitPdcpSdu.
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
Parameters for LteRlcSapProvider::TransmitPdcpPdu.
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
Ptr< Packet > pdcpPdu
the PDCP PDU
uint16_t rnti
the C-RNTI identifying the UE