#include <lte-enb-rrc.h>
Public Member Functions | |
LteEnbRrc () | |
virtual | ~LteEnbRrc () |
uint16_t | AddUe (uint64_t imsi) |
void | ConfigureCell (uint8_t ulBandwidth, uint8_t dlBandwidth) |
virtual void | DoDispose (void) |
uint16_t | GetLastAllocatedRnti () const |
LteEnbCmacSapUser * | GetLteEnbCmacSapUser () |
std::map< uint16_t, Ptr< UeInfo > > | GetUeMap (void) const |
void | ReleaseRadioBearer (uint16_t rnti, uint8_t lcId) |
void | RemoveUe (uint16_t rnti) |
bool | Send (Ptr< Packet > p) |
void | SetFfMacSchedSapProvider (FfMacSchedSapProvider *s) |
void | SetForwardUpCallback (Callback< void, Ptr< Packet > > cb) |
void | SetLastAllocatedRnti (uint16_t lastAllocatedRnti) |
void | SetLteEnbCmacSapProvider (LteEnbCmacSapProvider *s) |
void | SetLteMacSapProvider (LteMacSapProvider *s) |
void | SetUeMap (std::map< uint16_t, Ptr< UeInfo > > ueMap) |
uint8_t | SetupRadioBearer (uint16_t rnti, EpsBearer bearer, TypeId rlcTypeId) |
![]() | |
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 |
void | Start (void) |
![]() | |
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) |
This method returns the TypeId associated to ns3::LteEnbRrc. |
Private Member Functions | |
uint16_t | CreateUeInfo (uint64_t imsi) |
void | DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success) |
void | DoReceiveRrcPdu (LtePdcpSapUser::ReceiveRrcPduParameters params) |
void | DoRrcConfigurationUpdateInd (LteUeConfig_t params) |
LtePdcpSapProvider * | GetLtePdcpSapProvider (uint16_t rnti, uint8_t lcid) |
Ptr< UeInfo > | GetUeInfo (uint16_t rnti) |
void | RemoveUeInfo (uint16_t rnti) |
Private Attributes | |
LteEnbCmacSapProvider * | m_cmacSapProvider |
LteEnbCmacSapUser * | m_cmacSapUser |
bool | m_configured |
uint8_t | m_defaultTransmissionMode |
FfMacSchedSapProvider * | m_ffMacSchedSapProvider |
Callback< void, Ptr< Packet > > | m_forwardUpCallback |
uint16_t | m_lastAllocatedRnti |
LteMacSapProvider * | m_macSapProvider |
LtePdcpSapUser * | m_pdcpSapUser |
std::map< uint16_t, Ptr< UeInfo > > | m_ueMap |
Friends | |
class | EnbRrcMemberLteEnbCmacSapUser |
class | LtePdcpSpecificLtePdcpSapUser< LteEnbRrc > |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoStart (void) |
virtual void | NotifyNewAggregate (void) |
Definition at line 94 of file lte-enb-rrc.h.
ns3::LteEnbRrc::LteEnbRrc | ( | ) |
create an RRC instance for use within an eNB
Definition at line 211 of file lte-enb-rrc.cc.
References EnbRrcMemberLteEnbCmacSapUser, m_cmacSapUser, m_pdcpSapUser, and NS_LOG_FUNCTION.
|
virtual |
uint16_t ns3::LteEnbRrc::AddUe | ( | uint64_t | imsi | ) |
Add a new UE to the cell
imsi | IMSI of the attaching UE |
Definition at line 330 of file lte-enb-rrc.cc.
References ns3::LteEnbCmacSapProvider::AddUe(), CreateUeInfo(), m_cmacSapProvider, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
Referenced by ns3::LteHelper::Attach().
void ns3::LteEnbRrc::ConfigureCell | ( | uint8_t | ulBandwidth, |
uint8_t | dlBandwidth | ||
) |
configure cell-specific parameters
ulBandwidth | the uplink bandwdith in number of RB |
dlBandwidth | the downlink bandwidth in number of RB |
Definition at line 321 of file lte-enb-rrc.cc.
References ns3::LteEnbCmacSapProvider::ConfigureMac(), m_cmacSapProvider, m_configured, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ns3::LteEnbNetDevice::UpdateConfig().
|
private |
Definition at line 466 of file lte-enb-rrc.cc.
References m_lastAllocatedRnti, m_ueMap, and NS_LOG_FUNCTION.
Referenced by AddUe().
|
virtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::Object.
Definition at line 231 of file lte-enb-rrc.cc.
References m_cmacSapUser, m_pdcpSapUser, and NS_LOG_FUNCTION.
|
private |
Definition at line 452 of file lte-enb-rrc.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::NotifyLcConfigResult().
|
private |
Definition at line 438 of file lte-enb-rrc.cc.
References ns3::Packet::AddPacketTag(), ns3::LtePdcpSapUser::ReceiveRrcPduParameters::lcid, m_forwardUpCallback, NS_LOG_FUNCTION, ns3::LtePdcpSapUser::ReceiveRrcPduParameters::rnti, ns3::LtePdcpSapUser::ReceiveRrcPduParameters::rrcPdu, ns3::LteRadioBearerTag::SetLcid(), and ns3::LteRadioBearerTag::SetRnti().
|
private |
Definition at line 505 of file lte-enb-rrc.cc.
References ns3::NodeList::Begin(), ns3::LteUeRrc::DoRrcConfigurationUpdateInd(), ns3::NodeList::End(), ns3::Node::GetDevice(), ns3::Node::GetNDevices(), ns3::Object::GetObject(), ns3::LteUeRrc::GetRnti(), m_cmacSapProvider, ns3::LteUeConfig_t::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::LteUeConfig_t::m_transmissionMode, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::LteEnbCmacSapProvider::RrcUpdateConfigurationReq().
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::RrcConfigurationUpdateInd(), and SetupRadioBearer().
uint16_t ns3::LteEnbRrc::GetLastAllocatedRnti | ( | ) | const |
Definition at line 260 of file lte-enb-rrc.cc.
References m_lastAllocatedRnti, and NS_LOG_FUNCTION.
LteEnbCmacSapUser * ns3::LteEnbRrc::GetLteEnbCmacSapUser | ( | ) |
Get the CMAC SAP offered by this RRC
Definition at line 293 of file lte-enb-rrc.cc.
References m_cmacSapUser, and NS_LOG_FUNCTION.
|
private |
Definition at line 315 of file lte-enb-rrc.cc.
References ns3::LtePdcp::GetLtePdcpSapProvider(), ns3::UeInfo::GetRadioBearer(), GetUeInfo(), and ns3::LteRadioBearerInfo::m_pdcp.
Referenced by Send().
|
static |
This method returns the TypeId associated to ns3::LteEnbRrc.
This object is accessible through the following paths with Config::Set and Config::Connect:
Attributes defined for this type:
No TraceSources defined for this type.
Reimplemented from ns3::Object.
Definition at line 239 of file lte-enb-rrc.cc.
References m_defaultTransmissionMode, m_ueMap, ns3::MakeObjectMapAccessor(), NS_LOG_FUNCTION, and ns3::TypeId::SetParent().
Definition at line 485 of file lte-enb-rrc.cc.
References m_ueMap, NS_ABORT_IF, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by GetLtePdcpSapProvider(), ReleaseRadioBearer(), and SetupRadioBearer().
Definition at line 265 of file lte-enb-rrc.cc.
References m_ueMap.
void ns3::LteEnbRrc::ReleaseRadioBearer | ( | uint16_t | rnti, |
uint8_t | lcId | ||
) |
Release the given radio bearer
rnti | the C-RNTI of the user owning the bearer |
lcId | the logical channel id of the bearer to be released |
Definition at line 402 of file lte-enb-rrc.cc.
References GetUeInfo(), NS_LOG_FUNCTION, and ns3::UeInfo::RemoveRadioBearer().
void ns3::LteEnbRrc::RemoveUe | ( | uint16_t | rnti | ) |
remove a UE from the cell
rnti | the C-RNTI identiftying the user |
Definition at line 341 of file lte-enb-rrc.cc.
References NS_FATAL_ERROR, NS_LOG_FUNCTION, and RemoveUeInfo().
|
private |
Definition at line 495 of file lte-enb-rrc.cc.
References m_ueMap, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
Referenced by RemoveUe().
Enqueue an IP packet on the proper bearer for downlink transmission
p | the packet |
Definition at line 412 of file lte-enb-rrc.cc.
References ns3::LteRadioBearerTag::GetLcid(), GetLtePdcpSapProvider(), ns3::LteRadioBearerTag::GetRnti(), ns3::LtePdcpSapProvider::TransmitRrcPduParameters::lcid, NS_ASSERT, NS_LOG_FUNCTION, ns3::Packet::RemovePacketTag(), ns3::LtePdcpSapProvider::TransmitRrcPduParameters::rnti, ns3::LtePdcpSapProvider::TransmitRrcPduParameters::rrcPdu, and ns3::LtePdcpSapProvider::TransmitRrcPdu().
Referenced by ns3::LteEnbNetDevice::Send().
void ns3::LteEnbRrc::SetFfMacSchedSapProvider | ( | FfMacSchedSapProvider * | s | ) |
set the FF MAC SCHED SAP provider. The eNB RRC does not use this directly, but it needs to provide it to newly created RLC instances.
s | the FF MAC SCHED SAP provider that will be used by all newly created RLC instances |
Definition at line 300 of file lte-enb-rrc.cc.
References m_ffMacSchedSapProvider, and NS_LOG_FUNCTION.
set the callback used to forward data packets up the stack
void | |
cb |
Definition at line 431 of file lte-enb-rrc.cc.
References m_forwardUpCallback.
void ns3::LteEnbRrc::SetLastAllocatedRnti | ( | uint16_t | lastAllocatedRnti | ) |
Definition at line 277 of file lte-enb-rrc.cc.
References m_lastAllocatedRnti, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteEnbCmacSapProvider | ( | LteEnbCmacSapProvider * | s | ) |
set the CMAC SAP this RRC should interact with
s | the CMAC SAP Provider to be used by this RRC |
Definition at line 286 of file lte-enb-rrc.cc.
References m_cmacSapProvider, and NS_LOG_FUNCTION.
Referenced by ns3::LteHelper::InstallSingleEnbDevice().
void ns3::LteEnbRrc::SetLteMacSapProvider | ( | LteMacSapProvider * | s | ) |
set the MAC SAP provider. The eNB RRC does not use this directly, but it needs to provide it to newly created RLC instances.
s | the MAC SAP provider that will be used by all newly created RLC instances |
Definition at line 308 of file lte-enb-rrc.cc.
References m_macSapProvider, and NS_LOG_FUNCTION.
Definition at line 270 of file lte-enb-rrc.cc.
References m_ueMap.
Setup a new radio bearer for the given user
rnti | the RNTI of the user |
bearer | the characteristics of the bearer to be activated |
rlcTypeId | the TypeId identifying the type of RLC to be used for this bearer. |
Definition at line 349 of file lte-enb-rrc.cc.
References ns3::LteEnbCmacSapProvider::AddLc(), ns3::UeInfo::AddRadioBearer(), ns3::ObjectFactory::Create(), DoRrcConfigurationUpdateInd(), ns3::GbrQosInformation::gbrDl, ns3::LteEnbCmacSapProvider::LcInfo::gbrDl, ns3::EpsBearer::gbrQosInfo, ns3::GbrQosInformation::gbrUl, ns3::LteEnbCmacSapProvider::LcInfo::gbrUl, ns3::LteRlc::GetLteMacSapUser(), ns3::LteRlc::GetLteRlcSapProvider(), ns3::LtePdcp::GetLteRlcSapUser(), ns3::Object::GetObject(), ns3::LteRlcSm::GetTypeId(), GetUeInfo(), ns3::LteEnbCmacSapProvider::LcInfo::isGbr, ns3::EpsBearer::IsGbr(), ns3::LteEnbCmacSapProvider::LcInfo::lcGroup, ns3::LteEnbCmacSapProvider::LcInfo::lcId, m_cmacSapProvider, m_defaultTransmissionMode, m_macSapProvider, ns3::LteRadioBearerInfo::m_pdcp, m_pdcpSapUser, ns3::LteRadioBearerInfo::m_rlc, ns3::LteUeConfig_t::m_rnti, ns3::LteUeConfig_t::m_transmissionMode, ns3::GbrQosInformation::mbrDl, ns3::LteEnbCmacSapProvider::LcInfo::mbrDl, ns3::GbrQosInformation::mbrUl, ns3::LteEnbCmacSapProvider::LcInfo::mbrUl, NS_LOG_FUNCTION, ns3::LteEnbCmacSapProvider::LcInfo::qci, ns3::EpsBearer::qci, ns3::LteEnbCmacSapProvider::LcInfo::rnti, ns3::LtePdcp::SetLcId(), ns3::LteRlc::SetLcId(), ns3::LteRlc::SetLteMacSapProvider(), ns3::LtePdcp::SetLtePdcpSapUser(), ns3::LtePdcp::SetLteRlcSapProvider(), ns3::LteRlc::SetLteRlcSapUser(), ns3::LtePdcp::SetRnti(), ns3::LteRlc::SetRnti(), and ns3::ObjectFactory::SetTypeId().
Referenced by ns3::LteHelper::ActivateEpsBearer().
|
friend |
Definition at line 97 of file lte-enb-rrc.h.
Referenced by LteEnbRrc().
|
friend |
Definition at line 98 of file lte-enb-rrc.h.
|
private |
Definition at line 238 of file lte-enb-rrc.h.
Referenced by AddUe(), ConfigureCell(), DoRrcConfigurationUpdateInd(), SetLteEnbCmacSapProvider(), and SetupRadioBearer().
|
private |
Definition at line 237 of file lte-enb-rrc.h.
Referenced by DoDispose(), GetLteEnbCmacSapUser(), and LteEnbRrc().
|
private |
Definition at line 244 of file lte-enb-rrc.h.
Referenced by ConfigureCell().
|
private |
Definition at line 249 of file lte-enb-rrc.h.
Referenced by GetTypeId(), and SetupRadioBearer().
|
private |
Definition at line 240 of file lte-enb-rrc.h.
Referenced by SetFfMacSchedSapProvider().
Definition at line 235 of file lte-enb-rrc.h.
Referenced by DoReceiveRrcPdu(), and SetForwardUpCallback().
|
private |
Definition at line 245 of file lte-enb-rrc.h.
Referenced by CreateUeInfo(), GetLastAllocatedRnti(), and SetLastAllocatedRnti().
|
private |
Definition at line 241 of file lte-enb-rrc.h.
Referenced by SetLteMacSapProvider(), and SetupRadioBearer().
|
private |
Definition at line 242 of file lte-enb-rrc.h.
Referenced by DoDispose(), LteEnbRrc(), and SetupRadioBearer().
Definition at line 247 of file lte-enb-rrc.h.
Referenced by CreateUeInfo(), GetTypeId(), GetUeInfo(), GetUeMap(), RemoveUeInfo(), and SetUeMap().