#include <lte-rlc.h>
Public Member Functions | |
LteRlcSm () | |
virtual | ~LteRlcSm () |
virtual void | DoNotifyHarqDeliveryFailure () |
virtual void | DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer) |
virtual void | DoReceivePdu (Ptr< Packet > p) |
virtual void | DoTransmitPdcpPdu (Ptr< Packet > p) |
void | Start () |
![]() | |
LteRlc () | |
virtual | ~LteRlc () |
LteMacSapUser * | GetLteMacSapUser () |
LteRlcSapProvider * | GetLteRlcSapProvider () |
void | SetLcId (uint8_t lcId) |
void | SetLteMacSapProvider (LteMacSapProvider *s) |
void | SetLteRlcSapUser (LteRlcSapUser *s) |
void | SetRnti (uint16_t rnti) |
![]() | |
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) |
Private Member Functions | |
void | ReportBufferStatus () |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
virtual void | DoStart (void) |
virtual void | NotifyNewAggregate (void) |
![]() | |
uint8_t | m_lcid |
LteMacSapProvider * | m_macSapProvider |
LteMacSapUser * | m_macSapUser |
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 |
LTE_RLC Saturation Mode (SM): simulation-specific mode used for experiments that do not need to consider the layers above the LTE_RLC. The LTE_RLC SM, unlike the standard LTE_RLC modes, it does not provide data delivery services to upper layers; rather, it just generates a new LTE_RLC PDU whenever the MAC notifies a transmission opportunity.
ns3::LteRlcSm is accessible through the following paths with Config::Set and Config::Connect:
No Attributes are defined for this type.
No TraceSources are defined for this type.
ns3::LteRlcSm::LteRlcSm | ( | ) |
Definition at line 166 of file lte-rlc.cc.
References NS_LOG_FUNCTION, ns3::Simulator::ScheduleNow(), and Start().
|
virtual |
Definition at line 173 of file lte-rlc.cc.
|
virtual |
|
virtual |
Implements ns3::LteRlc.
Definition at line 213 of file lte-rlc.cc.
References ns3::Packet::AddByteTag(), ns3::LteMacSapProvider::TransmitPduParameters::layer, ns3::LteMacSapProvider::TransmitPduParameters::lcid, ns3::LteRlc::m_lcid, ns3::LteRlc::m_macSapProvider, ns3::LteRlc::m_rnti, ns3::LteRlc::m_txPdu, ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteMacSapProvider::TransmitPduParameters::pdu, ReportBufferStatus(), ns3::LteMacSapProvider::TransmitPduParameters::rnti, and ns3::LteMacSapProvider::TransmitPdu().
Implements ns3::LteRlc.
Definition at line 195 of file lte-rlc.cc.
References ns3::Packet::FindFirstMatchingByteTag(), ns3::Time::GetNanoSeconds(), ns3::RlcTag::GetSenderTimestamp(), ns3::Packet::GetSize(), ns3::LteRlc::m_lcid, ns3::LteRlc::m_rnti, ns3::LteRlc::m_rxPdu, ns3::Now(), NS_LOG_FUNCTION, and NS_LOG_LOGIC.
|
static |
Reimplemented from ns3::LteRlc.
Definition at line 179 of file lte-rlc.cc.
References ns3::TypeId::SetParent().
Referenced by ns3::LteUeRrc::SetupRadioBearer(), and ns3::LteEnbRrc::SetupRadioBearer().
|
private |
Definition at line 248 of file lte-rlc.cc.
References ns3::LteMacSapProvider::ReportBufferStatusParameters::lcid, ns3::LteRlc::m_lcid, ns3::LteRlc::m_macSapProvider, ns3::LteRlc::m_rnti, NS_LOG_FUNCTION, ns3::LteMacSapProvider::ReportBufferStatus(), ns3::LteMacSapProvider::ReportBufferStatusParameters::retxQueueHolDelay, ns3::LteMacSapProvider::ReportBufferStatusParameters::retxQueueSize, ns3::LteMacSapProvider::ReportBufferStatusParameters::rnti, ns3::LteMacSapProvider::ReportBufferStatusParameters::statusPduSize, ns3::LteMacSapProvider::ReportBufferStatusParameters::txQueueHolDelay, and ns3::LteMacSapProvider::ReportBufferStatusParameters::txQueueSize.
Referenced by DoNotifyTxOpportunity(), and Start().
void ns3::LteRlcSm::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 241 of file lte-rlc.cc.
References NS_LOG_FUNCTION, and ReportBufferStatus().
Referenced by LteRlcSm().