From ab92594cffa2819bb794eafd20006a9f58203f24 Mon Sep 17 00:00:00 2001 From: Budiarto Herman Date: Tue, 22 Oct 2013 19:09:26 +0300 Subject: [PATCH] Replaced SIB1 setter function with SetCsgId --- src/lte/model/lte-enb-net-device.cc | 5 +---- src/lte/model/lte-enb-rrc.cc | 13 ++++--------- src/lte/model/lte-enb-rrc.h | 23 ++++++++++++++++------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/lte/model/lte-enb-net-device.cc b/src/lte/model/lte-enb-net-device.cc index 448137d79..f8bf4a2f6 100644 --- a/src/lte/model/lte-enb-net-device.cc +++ b/src/lte/model/lte-enb-net-device.cc @@ -356,10 +356,7 @@ LteEnbNetDevice::UpdateConfig (void) NS_LOG_LOGIC (this << " Updating SIB1 of cell " << m_cellId << " with CSG ID " << m_csgId << " and CSG indication " << m_csgIndication); - LteRrcSap::SystemInformationBlockType1 sib1 = m_rrc->GetSystemInformationBlockType1 (); - sib1.cellAccessRelatedInfo.csgIdentity = m_csgId; - sib1.cellAccessRelatedInfo.csgIndication = m_csgIndication; - m_rrc->SetSystemInformationBlockType1 (sib1); + m_rrc->SetCsgId (m_csgId, m_csgIndication); } else { diff --git a/src/lte/model/lte-enb-rrc.cc b/src/lte/model/lte-enb-rrc.cc index 1072a4e9d..9adb7de33 100644 --- a/src/lte/model/lte-enb-rrc.cc +++ b/src/lte/model/lte-enb-rrc.cc @@ -2185,17 +2185,12 @@ LteEnbRrc::AddX2Neighbour (uint16_t cellId) } } -LteRrcSap::SystemInformationBlockType1 -LteEnbRrc::GetSystemInformationBlockType1 () const -{ - return m_sib1; -} - void -LteEnbRrc::SetSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 sib1) +LteEnbRrc::SetCsgId (uint32_t csgId, bool csgIndication) { - m_sib1 = sib1; - m_cphySapProvider->SetSystemInformationBlockType1 (sib1); + NS_LOG_FUNCTION (this << csgId << csgIndication); + m_sib1.cellAccessRelatedInfo.csgIdentity = csgId; + m_sib1.cellAccessRelatedInfo.csgIndication = csgIndication; } diff --git a/src/lte/model/lte-enb-rrc.h b/src/lte/model/lte-enb-rrc.h index 49cf029e1..b1b373c49 100644 --- a/src/lte/model/lte-enb-rrc.h +++ b/src/lte/model/lte-enb-rrc.h @@ -784,16 +784,25 @@ public: uint32_t GetSrsPeriodicity () const; /** + * \brief Associate this RRC entity with a particular CSG information. + * \param csgId the intended Closed Subscriber Group identity + * \param csgIndication if TRUE, only CSG members are allowed to access the + * cell * - * \param sib1 System Information Block Type 1 to be broadcasted over BCH - */ - void SetSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 sib1); - - /** + * CSG identity is a number identifying a Closed Subscriber Group which the + * cell belongs to. eNodeB is associated with a single CSG identity. * - * \return the System Information Block Type 1 that is currently broadcasted over BCH + * The same CSG identity can also be associated to several UEs, which is + * equivalent as enlisting these UEs as the members of this particular CSG. + * When the CSG indication field is set to TRUE, only UEs which are members of + * the CSG (i.e. same CSG ID) can gain access to the eNodeB, therefore + * enforcing closed access mode. Otherwise, the eNodeB operates as a non-CSG + * cell and implements open access mode. + * + * This restriction only applies to initial cell selection and EPC-enabled + * simulation. */ - LteRrcSap::SystemInformationBlockType1 GetSystemInformationBlockType1 () const; + void SetCsgId (uint32_t csgId, bool csgIndication); private: