#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) |
void | ConfigureNewUe (uint16_t rnti) |
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 | SetCellId (uint16_t m_cellId) |
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) |
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) |
uint16_t | GetNewSrsConfigurationIndex (void) |
Ptr< UeInfo > | GetUeInfo (uint16_t rnti) |
void | RemoveSrsConfigurationIndex (uint16_t srcCi) |
void | RemoveUeInfo (uint16_t rnti) |
void | SendUeConfigurationUpdate (LteUeConfig_t params) |
Private Attributes | |
uint16_t | m_cellId |
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_lastAllocatedConfigurationIndex |
uint16_t | m_lastAllocatedRnti |
LteMacSapProvider * | m_macSapProvider |
LtePdcpSapUser * | m_pdcpSapUser |
bool | m_reconfigureUes |
uint16_t | m_srsCurrentPeriodicityId |
std::map< uint16_t, Ptr< UeInfo > > | m_ueMap |
std::set< uint16_t > | m_ueSrsConfigurationIndexSet |
Friends | |
class | EnbRrcMemberLteEnbCmacSapUser |
class | LtePdcpSpecificLtePdcpSapUser< LteEnbRrc > |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoStart (void) |
virtual void | NotifyNewAggregate (void) |
ns3::LteEnbRrc is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 104 of file lte-enb-rrc.h.
ns3::LteEnbRrc::LteEnbRrc | ( | ) |
create an RRC instance for use within an eNB
Definition at line 251 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 373 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 bandwidth in number of RB |
dlBandwidth | the downlink bandwidth in number of RB |
Definition at line 364 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().
void ns3::LteEnbRrc::ConfigureNewUe | ( | uint16_t | rnti | ) |
Configure the UE peer RRC with all the correspondet info
rnti | the RNTI of the UE to be configured |
Definition at line 696 of file lte-enb-rrc.cc.
References ns3::LteUeConfig_t::m_rnti, m_ueMap, NS_ASSERT_MSG, NS_LOG_FUNCTION, and SendUeConfigurationUpdate().
Referenced by ns3::LteHelper::Attach().
|
private |
Definition at line 514 of file lte-enb-rrc.cc.
References GetNewSrsConfigurationIndex(), ns3::UeInfo::GetSrsConfigurationIndex(), m_cellId, m_lastAllocatedRnti, m_ueMap, NS_LOG_DEBUG, 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 274 of file lte-enb-rrc.cc.
References m_cmacSapUser, m_pdcpSapUser, and NS_LOG_FUNCTION.
|
private |
Definition at line 489 of file lte-enb-rrc.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::NotifyLcConfigResult().
|
private |
Definition at line 475 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 679 of file lte-enb-rrc.cc.
References ns3::LteUeConfig_t::m_reconfigureFlag, ns3::LteUeConfig_t::m_rnti, ns3::LteUeConfig_t::m_srsConfigurationIndex, ns3::LteUeConfig_t::m_transmissionMode, m_ueMap, NS_ASSERT_MSG, NS_LOG_FUNCTION, and SendUeConfigurationUpdate().
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::RrcConfigurationUpdateInd().
uint16_t ns3::LteEnbRrc::GetLastAllocatedRnti | ( | ) | const |
Definition at line 303 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 336 of file lte-enb-rrc.cc.
References m_cmacSapUser, and NS_LOG_FUNCTION.
|
private |
Definition at line 358 of file lte-enb-rrc.cc.
References ns3::LtePdcp::GetLtePdcpSapProvider(), ns3::UeInfo::GetRadioBearer(), GetUeInfo(), and ns3::LteRadioBearerInfo::m_pdcp.
Referenced by Send().
|
private |
Definition at line 536 of file lte-enb-rrc.cc.
References ns3::g_srsCiHigh, ns3::g_srsCiLow, ns3::g_srsPeriodicity, m_lastAllocatedConfigurationIndex, ns3::LteUeConfig_t::m_reconfigureFlag, ns3::LteUeConfig_t::m_rnti, ns3::LteUeConfig_t::m_srsConfigurationIndex, m_srsCurrentPeriodicityId, ns3::LteUeConfig_t::m_transmissionMode, m_ueMap, m_ueSrsConfigurationIndexSet, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, SendUeConfigurationUpdate(), and SRS_ENTRIES.
Referenced by CreateUeInfo().
|
static |
Reimplemented from ns3::Object.
Definition at line 282 of file lte-enb-rrc.cc.
References m_defaultTransmissionMode, m_ueMap, ns3::MakeObjectMapAccessor(), NS_LOG_FUNCTION, and ns3::TypeId::SetParent().
Definition at line 657 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 308 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 439 of file lte-enb-rrc.cc.
References GetUeInfo(), NS_LOG_FUNCTION, and ns3::UeInfo::RemoveRadioBearer().
|
private |
Definition at line 611 of file lte-enb-rrc.cc.
References ns3::g_srsCiLow, ns3::g_srsPeriodicity, m_lastAllocatedConfigurationIndex, ns3::LteUeConfig_t::m_reconfigureFlag, ns3::LteUeConfig_t::m_rnti, ns3::LteUeConfig_t::m_srsConfigurationIndex, m_srsCurrentPeriodicityId, ns3::LteUeConfig_t::m_transmissionMode, m_ueMap, m_ueSrsConfigurationIndexSet, ns3::Simulator::Now(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Seconds(), and SendUeConfigurationUpdate().
Referenced by RemoveUeInfo().
void ns3::LteEnbRrc::RemoveUe | ( | uint16_t | rnti | ) |
remove a UE from the cell
rnti | the C-RNTI identiftying the user |
Definition at line 384 of file lte-enb-rrc.cc.
References NS_FATAL_ERROR, NS_LOG_FUNCTION, and RemoveUeInfo().
|
private |
Definition at line 667 of file lte-enb-rrc.cc.
References m_ueMap, NS_ASSERT_MSG, NS_LOG_FUNCTION, and RemoveSrsConfigurationIndex().
Referenced by RemoveUe().
Enqueue an IP packet on the proper bearer for downlink transmission
p | the packet |
Definition at line 449 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().
|
private |
Definition at line 713 of file lte-enb-rrc.cc.
References ns3::NodeList::Begin(), ns3::LteUeRrc::DoRrcConfigurationUpdateInd(), ns3::NodeList::End(), ns3::LteUeRrc::GetCellId(), ns3::Node::GetDevice(), ns3::Node::GetNDevices(), ns3::Object::GetObject(), ns3::LteUeRrc::GetRnti(), m_cellId, m_cmacSapProvider, ns3::LteUeConfig_t::m_reconfigureFlag, ns3::LteUeConfig_t::m_rnti, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::LteEnbCmacSapProvider::UeUpdateConfigurationReq().
Referenced by ConfigureNewUe(), DoRrcConfigurationUpdateInd(), GetNewSrsConfigurationIndex(), and RemoveSrsConfigurationIndex().
void ns3::LteEnbRrc::SetCellId | ( | uint16_t | m_cellId | ) |
Definition at line 508 of file lte-enb-rrc.cc.
References m_cellId.
Referenced by ns3::LteEnbNetDevice::UpdateConfig().
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 343 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 468 of file lte-enb-rrc.cc.
References m_forwardUpCallback.
void ns3::LteEnbRrc::SetLastAllocatedRnti | ( | uint16_t | lastAllocatedRnti | ) |
Definition at line 320 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 329 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 351 of file lte-enb-rrc.cc.
References m_macSapProvider, and NS_LOG_FUNCTION.
Definition at line 313 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 392 of file lte-enb-rrc.cc.
References ns3::LteEnbCmacSapProvider::AddLc(), ns3::UeInfo::AddRadioBearer(), ns3::ObjectFactory::Create(), 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_macSapProvider, ns3::LteRadioBearerInfo::m_pdcp, m_pdcpSapUser, ns3::LteRadioBearerInfo::m_rlc, 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 107 of file lte-enb-rrc.h.
Referenced by LteEnbRrc().
|
friend |
Definition at line 108 of file lte-enb-rrc.h.
|
private |
Definition at line 273 of file lte-enb-rrc.h.
Referenced by CreateUeInfo(), SendUeConfigurationUpdate(), and SetCellId().
|
private |
Definition at line 260 of file lte-enb-rrc.h.
Referenced by AddUe(), ConfigureCell(), SendUeConfigurationUpdate(), SetLteEnbCmacSapProvider(), and SetupRadioBearer().
|
private |
Definition at line 259 of file lte-enb-rrc.h.
Referenced by DoDispose(), GetLteEnbCmacSapUser(), and LteEnbRrc().
|
private |
Definition at line 266 of file lte-enb-rrc.h.
Referenced by ConfigureCell().
|
private |
Definition at line 271 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
Definition at line 262 of file lte-enb-rrc.h.
Referenced by SetFfMacSchedSapProvider().
Definition at line 257 of file lte-enb-rrc.h.
Referenced by DoReceiveRrcPdu(), and SetForwardUpCallback().
|
private |
Definition at line 278 of file lte-enb-rrc.h.
Referenced by GetNewSrsConfigurationIndex(), and RemoveSrsConfigurationIndex().
|
private |
Definition at line 267 of file lte-enb-rrc.h.
Referenced by CreateUeInfo(), GetLastAllocatedRnti(), and SetLastAllocatedRnti().
|
private |
Definition at line 263 of file lte-enb-rrc.h.
Referenced by SetLteMacSapProvider(), and SetupRadioBearer().
|
private |
Definition at line 264 of file lte-enb-rrc.h.
Referenced by DoDispose(), LteEnbRrc(), and SetupRadioBearer().
|
private |
Definition at line 279 of file lte-enb-rrc.h.
|
private |
Definition at line 276 of file lte-enb-rrc.h.
Referenced by GetNewSrsConfigurationIndex(), and RemoveSrsConfigurationIndex().
Definition at line 269 of file lte-enb-rrc.h.
Referenced by ConfigureNewUe(), CreateUeInfo(), DoRrcConfigurationUpdateInd(), GetNewSrsConfigurationIndex(), GetTypeId(), GetUeInfo(), GetUeMap(), RemoveSrsConfigurationIndex(), RemoveUeInfo(), and SetUeMap().
|
private |
Definition at line 277 of file lte-enb-rrc.h.
Referenced by GetNewSrsConfigurationIndex(), and RemoveSrsConfigurationIndex().