Replaced SIB1 setter function with SetCsgId
authorBudiarto Herman <budiarto.herman@magister.fi>
Tue, 22 Oct 2013 19:09:26 +0300
changeset 10384 e57bc4bbc25e
parent 10383 917e421b0e3b
child 10385 665af58c863b
Replaced SIB1 setter function with SetCsgId
src/lte/model/lte-enb-net-device.cc
src/lte/model/lte-enb-rrc.cc
src/lte/model/lte-enb-rrc.h
--- a/src/lte/model/lte-enb-net-device.cc	Tue Oct 22 17:51:04 2013 +0300
+++ b/src/lte/model/lte-enb-net-device.cc	Tue Oct 22 19:09:26 2013 +0300
@@ -356,10 +356,7 @@
       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
     {
--- a/src/lte/model/lte-enb-rrc.cc	Tue Oct 22 17:51:04 2013 +0300
+++ b/src/lte/model/lte-enb-rrc.cc	Tue Oct 22 19:09:26 2013 +0300
@@ -2185,17 +2185,12 @@
     }
 }
 
-LteRrcSap::SystemInformationBlockType1
-LteEnbRrc::GetSystemInformationBlockType1 () const
+void
+LteEnbRrc::SetCsgId (uint32_t csgId, bool csgIndication)
 {
-  return m_sib1;
-}
-
-void
-LteEnbRrc::SetSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 sib1)
-{
-  m_sib1 = sib1;
-  m_cphySapProvider->SetSystemInformationBlockType1 (sib1);
+  NS_LOG_FUNCTION (this << csgId << csgIndication);
+  m_sib1.cellAccessRelatedInfo.csgIdentity = csgId;
+  m_sib1.cellAccessRelatedInfo.csgIndication = csgIndication;
 }
 
 
--- a/src/lte/model/lte-enb-rrc.h	Tue Oct 22 17:51:04 2013 +0300
+++ b/src/lte/model/lte-enb-rrc.h	Tue Oct 22 19:09:26 2013 +0300
@@ -784,16 +784,25 @@
   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
+   * CSG identity is a number identifying a Closed Subscriber Group which the
+   * cell belongs to. eNodeB is associated with a single CSG identity.
+   *
+   * 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.
    */
-  void SetSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 sib1);
-
-  /**
-   *
-   * \return the System Information Block Type 1 that is currently broadcasted over BCH
-   */
-  LteRrcSap::SystemInformationBlockType1 GetSystemInformationBlockType1 () const;
+  void SetCsgId (uint32_t csgId, bool csgIndication);
 
 private: