#include <lte-pdcp.h>
Public Member Functions | |
LtePdcp () | |
virtual | ~LtePdcp () |
LtePdcpSapProvider * | GetLtePdcpSapProvider () |
LteRlcSapUser * | GetLteRlcSapUser () |
void | SetLcId (uint8_t lcId) |
void | SetLtePdcpSapUser (LtePdcpSapUser *s) |
void | SetLteRlcSapProvider (LteRlcSapProvider *s) |
void | SetRnti (uint16_t rnti) |
void | Start () |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~ObjectBase () |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Protected Member Functions | |
virtual void | DoReceivePdu (Ptr< Packet > p) |
virtual void | DoTransmitRrcPdu (Ptr< Packet > p) |
![]() | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
virtual void | DoStart (void) |
virtual void | NotifyNewAggregate (void) |
Protected Attributes | |
uint8_t | m_lcid |
LtePdcpSapProvider * | m_pdcpSapProvider |
LtePdcpSapUser * | m_pdcpSapUser |
LteRlcSapProvider * | m_rlcSapProvider |
LteRlcSapUser * | m_rlcSapUser |
uint16_t | m_rnti |
TracedCallback< uint16_t, uint8_t, uint32_t, uint64_t > | m_rxPdu |
TracedCallback< uint16_t, uint8_t, uint32_t > | m_txPdu |
Private Attributes | |
uint16_t | m_rxSequenceNumber |
uint16_t | m_txSequenceNumber |
Static Private Attributes | |
static const uint16_t | m_maxPdcpSn = 4095 |
Friends | |
class | LtePdcpSpecificLtePdcpSapProvider< LtePdcp > |
class | LtePdcpSpecificLteRlcSapUser |
LTE PDCP entity, see 3GPP TS 36.323
ns3::LtePdcp is accessible through the following paths with Config::Set and Config::Connect:
No Attributes are defined for this type.
Definition at line 37 of file lte-pdcp.h.
ns3::LtePdcp::LtePdcp | ( | ) |
Definition at line 66 of file lte-pdcp.cc.
References LtePdcpSpecificLteRlcSapUser, m_pdcpSapProvider, m_rlcSapUser, NS_LOG_FUNCTION, ns3::Simulator::ScheduleNow(), and Start().
|
virtual |
Definition at line 110 of file lte-pdcp.cc.
References m_pdcpSapProvider, m_rlcSapUser, and NS_LOG_FUNCTION.
Definition at line 180 of file lte-pdcp.cc.
References ns3::Packet::FindFirstMatchingByteTag(), ns3::Time::GetNanoSeconds(), ns3::Packet::GetSize(), ns3::LtePdcpSapUser::ReceiveRrcPduParameters::lcid, m_lcid, m_maxPdcpSn, m_pdcpSapUser, m_rnti, m_rxPdu, m_rxSequenceNumber, ns3::Now(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LtePdcpSapUser::ReceiveRrcPdu(), ns3::Packet::RemoveHeader(), ns3::LtePdcpSapUser::ReceiveRrcPduParameters::rnti, and ns3::LtePdcpSapUser::ReceiveRrcPduParameters::rrcPdu.
Referenced by ns3::LtePdcpSpecificLteRlcSapUser::ReceivePdcpPdu().
Definition at line 148 of file lte-pdcp.cc.
References ns3::Packet::AddByteTag(), ns3::Packet::AddHeader(), ns3::LtePdcpHeader::DATA_PDU, ns3::Packet::GetSize(), m_lcid, m_maxPdcpSn, m_rlcSapProvider, m_rnti, m_txPdu, m_txSequenceNumber, ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRlcSapProvider::TransmitPdcpPduParameters::rnti, ns3::LtePdcpHeader::SetSequenceNumber(), and ns3::LteRlcSapProvider::TransmitPdcpPdu().
LtePdcpSapProvider * ns3::LtePdcp::GetLtePdcpSapProvider | ( | ) |
s | the PDCP SAP Provider interface offered to the RRC by this LTE_PDCP |
Definition at line 125 of file lte-pdcp.cc.
References m_pdcpSapProvider, and NS_LOG_FUNCTION.
Referenced by ns3::LteEnbRrc::GetLtePdcpSapProvider().
LteRlcSapUser * ns3::LtePdcp::GetLteRlcSapUser | ( | ) |
s | the RLC SAP User interface offered to the RLC by this LTE_PDCP |
Definition at line 139 of file lte-pdcp.cc.
References m_rlcSapUser, and NS_LOG_FUNCTION.
Referenced by ns3::LteUeRrc::SetupRadioBearer(), and ns3::LteEnbRrc::SetupRadioBearer().
|
static |
Reimplemented from ns3::Object.
Definition at line 82 of file lte-pdcp.cc.
References m_rxPdu, m_txPdu, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
void ns3::LtePdcp::SetLcId | ( | uint8_t | lcId | ) |
lcId |
Definition at line 104 of file lte-pdcp.cc.
References m_lcid, and NS_LOG_FUNCTION.
Referenced by ns3::LteUeRrc::SetupRadioBearer(), and ns3::LteEnbRrc::SetupRadioBearer().
void ns3::LtePdcp::SetLtePdcpSapUser | ( | LtePdcpSapUser * | s | ) |
s | the PDCP SAP user to be used by this LTE_PDCP |
Definition at line 118 of file lte-pdcp.cc.
References m_pdcpSapUser, and NS_LOG_FUNCTION.
Referenced by ns3::LteUeRrc::SetupRadioBearer(), and ns3::LteEnbRrc::SetupRadioBearer().
void ns3::LtePdcp::SetLteRlcSapProvider | ( | LteRlcSapProvider * | s | ) |
s | the RLC SAP Provider to be used by this LTE_PDCP |
Definition at line 132 of file lte-pdcp.cc.
References m_rlcSapProvider, and NS_LOG_FUNCTION.
Referenced by ns3::LteUeRrc::SetupRadioBearer(), and ns3::LteEnbRrc::SetupRadioBearer().
void ns3::LtePdcp::SetRnti | ( | uint16_t | rnti | ) |
rnti |
Definition at line 97 of file lte-pdcp.cc.
References m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::LteUeRrc::SetupRadioBearer(), and ns3::LteEnbRrc::SetupRadioBearer().
void ns3::LtePdcp::Start | ( | void | ) |
This method calls the virtual DoStart method on all the objects aggregated to this object. DoStart will be called only once over the lifetime of an object, just like DoDispose is called only once.
Note: the code here is a bit tricky because we need to protect ourselves from modifications in the aggregate array while DoStart is called. The user's implementation of the DoStart method could call GetObject (which could reorder the array) and it could call AggregateObject which would add an object at the end of the array. To be safe, we restart iteration over the array whenever we call some user code, just in case.
Reimplemented from ns3::Object.
Definition at line 211 of file lte-pdcp.cc.
References NS_LOG_FUNCTION.
Referenced by LtePdcp().
|
friend |
Definition at line 40 of file lte-pdcp.h.
|
friend |
Definition at line 39 of file lte-pdcp.h.
Referenced by LtePdcp().
|
protected |
Definition at line 105 of file lte-pdcp.h.
Referenced by DoReceivePdu(), DoTransmitRrcPdu(), and SetLcId().
|
staticprivate |
Constants. See section 7.2 in TS 36.323
Definition at line 128 of file lte-pdcp.h.
Referenced by DoReceivePdu(), and DoTransmitRrcPdu().
|
protected |
Definition at line 96 of file lte-pdcp.h.
Referenced by GetLtePdcpSapProvider(), LtePdcp(), and ~LtePdcp().
|
protected |
Definition at line 95 of file lte-pdcp.h.
Referenced by DoReceivePdu(), and SetLtePdcpSapUser().
|
protected |
Definition at line 102 of file lte-pdcp.h.
Referenced by DoTransmitRrcPdu(), and SetLteRlcSapProvider().
|
protected |
Definition at line 101 of file lte-pdcp.h.
Referenced by GetLteRlcSapUser(), LtePdcp(), and ~LtePdcp().
|
protected |
Definition at line 104 of file lte-pdcp.h.
Referenced by DoReceivePdu(), DoTransmitRrcPdu(), and SetRnti().
|
protected |
Used to inform of a PDU reception from the RLC SAP user. The parameters are RNTI, LCID, bytes delivered and delivery delay in nanoseconds.
Definition at line 116 of file lte-pdcp.h.
Referenced by DoReceivePdu(), and GetTypeId().
|
private |
Definition at line 123 of file lte-pdcp.h.
Referenced by DoReceivePdu().
|
protected |
Used to inform of a PDU delivery to the RLC SAP provider. The parameters are RNTI, LCID and bytes delivered
Definition at line 111 of file lte-pdcp.h.
Referenced by DoTransmitRrcPdu(), and GetTypeId().
|
private |
State variables. See section 7.1 in TS 36.323
Definition at line 122 of file lte-pdcp.h.
Referenced by DoTransmitRrcPdu().