--- 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: