From 698380bda5e01809c462b6f985a92ffb71cd6cfa Mon Sep 17 00:00:00 2001 From: Budiarto Herman Date: Fri, 2 Aug 2013 19:03:01 +0300 Subject: [PATCH] Restructured the initiation of cell selection, so that UeNetDevice does not directly interact with PHY --- src/lte/helper/lte-helper.cc | 22 +++--- src/lte/model/epc-ue-nas.cc | 12 +++- src/lte/model/epc-ue-nas.h | 20 +++--- src/lte/model/lte-as-sap.h | 54 ++++++++++----- src/lte/model/lte-ue-cphy-sap.h | 103 ++++++++++++++++++++++------- src/lte/model/lte-ue-net-device.cc | 2 - src/lte/model/lte-ue-phy.cc | 36 +++++----- src/lte/model/lte-ue-phy.h | 27 ++------ src/lte/model/lte-ue-rrc.cc | 43 ++++++------ src/lte/model/lte-ue-rrc.h | 13 +--- 10 files changed, 194 insertions(+), 138 deletions(-) diff --git a/src/lte/helper/lte-helper.cc b/src/lte/helper/lte-helper.cc index 6688b3347..1c9b7348e 100644 --- a/src/lte/helper/lte-helper.cc +++ b/src/lte/helper/lte-helper.cc @@ -611,13 +611,13 @@ LteHelper::Attach (Ptr ueDevice) NS_FATAL_ERROR ("The passed NetDevice must be an LteUeNetDevice"); } - // execute cell search - Ptr uePhy = ueLteDevice->GetPhy (); - uePhy->CellSearch (); - - // instruct UE to immediately enter CONNECTED mode after camping + // initiate cell selection Ptr ueNas = ueLteDevice->GetNas (); NS_ASSERT (ueNas != 0); + uint16_t dlEarfcn = ueLteDevice->GetDlEarfcn (); + ueNas->StartCellSelection (dlEarfcn); + + // instruct UE to immediately enter CONNECTED mode after camping ueNas->Connect (); // activate default EPS bearer @@ -1195,7 +1195,7 @@ FindImsiForUe (std::string path, uint16_t rnti) void DlPhyTransmissionCallback (Ptr phyTxStats, - std::string path, PhyTransmissionStatParameters params) + std::string path, PhyTransmissionStatParameters params) { NS_LOG_FUNCTION (phyTxStats << path); uint64_t imsi = 0; @@ -1217,7 +1217,7 @@ DlPhyTransmissionCallback (Ptr phyTxStats, void UlPhyTransmissionCallback (Ptr phyTxStats, - std::string path, PhyTransmissionStatParameters params) + std::string path, PhyTransmissionStatParameters params) { NS_LOG_FUNCTION (phyTxStats << path); uint64_t imsi = 0; @@ -1240,7 +1240,7 @@ UlPhyTransmissionCallback (Ptr phyTxStats, void DlPhyReceptionCallback (Ptr phyRxStats, - std::string path, PhyReceptionStatParameters params) + std::string path, PhyReceptionStatParameters params) { NS_LOG_FUNCTION (phyRxStats << path); uint64_t imsi = 0; @@ -1262,7 +1262,7 @@ DlPhyReceptionCallback (Ptr phyRxStats, void UlPhyReceptionCallback (Ptr phyRxStats, - std::string path, PhyReceptionStatParameters params) + std::string path, PhyReceptionStatParameters params) { NS_LOG_FUNCTION (phyRxStats << path); uint64_t imsi = 0; @@ -1418,8 +1418,8 @@ LteHelper::EnableUlMacTraces (void) void ReportCurrentCellRsrpSinrCallback (Ptr phyStats, - std::string path, uint16_t cellId, uint16_t rnti, - double rsrp, double sinr) + std::string path, uint16_t cellId, uint16_t rnti, + double rsrp, double sinr) { NS_LOG_FUNCTION (phyStats << path); uint64_t imsi = 0; diff --git a/src/lte/model/epc-ue-nas.cc b/src/lte/model/epc-ue-nas.cc index c3f037e65..39581a073 100644 --- a/src/lte/model/epc-ue-nas.cc +++ b/src/lte/model/epc-ue-nas.cc @@ -133,6 +133,13 @@ EpcUeNas::SetForwardUpCallback (Callback > cb) m_forwardUpCallback = cb; } +void +EpcUeNas::StartCellSelection (uint16_t dlEarfcn) +{ + NS_LOG_FUNCTION (this); + m_asSapProvider->StartCellSelection (dlEarfcn); +} + void EpcUeNas::Connect () { @@ -143,13 +150,12 @@ EpcUeNas::Connect () } void -EpcUeNas::Connect (uint16_t cellId, uint16_t earfcn) +EpcUeNas::Connect (uint16_t cellId, uint16_t dlEarfcn) { NS_LOG_FUNCTION (this); - // since RRC Idle Mode cell selection is not supported yet, we // force the UE RRC to be camped on a specific eNB - m_asSapProvider->ForceCampedOnEnb (cellId, earfcn); + m_asSapProvider->ForceCampedOnEnb (cellId, dlEarfcn); // tell RRC to go into connected mode m_asSapProvider->Connect (); diff --git a/src/lte/model/epc-ue-nas.h b/src/lte/model/epc-ue-nas.h index 4cff99328..1e1d6f7a4 100644 --- a/src/lte/model/epc-ue-nas.h +++ b/src/lte/model/epc-ue-nas.h @@ -98,26 +98,30 @@ public: void SetForwardUpCallback (Callback > cb); /** - * \brief Instruct the NAS to go to ACTIVE state + * \brief Causes NAS to tell AS to find a suitable cell and camp to it. + * + * \param dlEarfcn the DL frequency of the eNB + */ + void StartCellSelection (uint16_t dlEarfcn); + + /** + * \brief Causes NAS to tell AS to go to ACTIVE state. * * The end result is equivalent with EMM Registered + ECM Connected states. - * If this function is called when the UE is in a situation where connecting - * is not possible (e.g. before the simulation begin), then the UE will - * attempt to connect at the earliest possible time (e.g. after it camps to a - * suitable cell). */ void Connect (); /** - * \brief Instruct the NAS to camp to a specific cell and go to ACTIVE state. + * \brief Causes NAS to tell AS to camp to a specific cell and go to ACTIVE + * state. * \param cellId the id of the eNB to camp on - * \param earfcn the DL frequency of the eNB + * \param dlEarfcn the DL frequency of the eNB * * The end result is equivalent with EMM Registered + ECM Connected states. * Since RRC Idle Mode cell selection is not supported yet, we force the UE * RRC to be camped on a specific eNB. */ - void Connect (uint16_t cellId, uint16_t earfcn); + void Connect (uint16_t cellId, uint16_t dlEarfcn); /** * instruct the NAS to disconnect diff --git a/src/lte/model/lte-as-sap.h b/src/lte/model/lte-as-sap.h index b21c14b72..706ea877b 100644 --- a/src/lte/model/lte-as-sap.h +++ b/src/lte/model/lte-as-sap.h @@ -51,24 +51,34 @@ public: */ virtual void SetCsgWhiteList (uint32_t csgId) = 0; - /** - * Force the RRC to stay camped on a certain eNB - * - * \param enbDevice the eNB device (wild hack, might go away in - * future versions) - * \param cellId the Cell ID identifying the eNB + /** + * \brief Initiate Idle mode cell selection procedure. + * + * \param dlEarfcn the downlink carrier frequency (EARFCN) */ - virtual void ForceCampedOnEnb (uint16_t cellId, uint16_t earfcn) = 0; + virtual void StartCellSelection (uint16_t dlEarfcn) = 0; /** - * Tell the RRC to go into Connected Mode - * + * \brief Force the RRC entity to stay camped on a certain eNodeB. + * + * \param cellId the cell ID identifying the eNodeB + * \param dlEarfcn the downlink carrier frequency (EARFCN) + */ + virtual void ForceCampedOnEnb (uint16_t cellId, uint16_t dlEarfcn) = 0; + + /** + * \brief Tell the RRC entity to enter Connected mode. + * + * If this function is called when the UE is in a situation where connecting + * is not possible (e.g. before the simulation begin), then the UE will + * attempt to connect at the earliest possible time (e.g. after it camps to a + * suitable cell). */ virtual void Connect (void) = 0; /** - * Send a data packet - * + * \brief Send a data packet. + * * \param packet the packet * \param bid the EPS bearer ID */ @@ -76,8 +86,8 @@ public: /** - * Tell the RRC to release the connection - * + * \brief Tell the RRC entity to release the connection. + * */ virtual void Disconnect () = 0; @@ -98,13 +108,13 @@ public: virtual ~LteAsSapUser (); /** - * Notify the NAS that RRC Connection Establishment was successful + * \brief Notify the NAS that RRC Connection Establishment was successful. * */ virtual void NotifyConnectionSuccessful () = 0; /** - * Notify the NAS that RRC Connection Establishment failed + * \brief Notify the NAS that RRC Connection Establishment failed. * */ virtual void NotifyConnectionFailed () = 0; @@ -141,7 +151,8 @@ public: // inherited from LteAsSapProvider virtual void SetCsgWhiteList (uint32_t csgId); - virtual void ForceCampedOnEnb (uint16_t cellId, uint16_t earfcn); + virtual void StartCellSelection (uint16_t dlEarfcn); + virtual void ForceCampedOnEnb (uint16_t cellId, uint16_t dlEarfcn); virtual void Connect (void); virtual void SendData (Ptr packet, uint8_t bid); virtual void Disconnect (); @@ -171,9 +182,16 @@ MemberLteAsSapProvider::SetCsgWhiteList (uint32_t csgId) template void -MemberLteAsSapProvider::ForceCampedOnEnb (uint16_t cellId, uint16_t earfcn) +MemberLteAsSapProvider::StartCellSelection (uint16_t dlEarfcn) { - m_owner->DoForceCampedOnEnb (cellId, earfcn); + m_owner->DoStartCellSelection (dlEarfcn); +} + +template +void +MemberLteAsSapProvider::ForceCampedOnEnb (uint16_t cellId, uint16_t dlEarfcn) +{ + m_owner->DoForceCampedOnEnb (cellId, dlEarfcn); } template diff --git a/src/lte/model/lte-ue-cphy-sap.h b/src/lte/model/lte-ue-cphy-sap.h index a9ab8aa5f..975329401 100644 --- a/src/lte/model/lte-ue-cphy-sap.h +++ b/src/lte/model/lte-ue-cphy-sap.h @@ -54,27 +54,63 @@ public: virtual void Reset () = 0; /** - * \brief Tell the PHY to synchronize with a given eNB for communication - * purposes. Initially, the PHY will be configured to listen to 6 RBs - * of BCH. + * \brief Tell the PHY entity to listen to PSS from surrounding cells and + * measure the RSRP. * - * SetDlBandwidth can be called afterwards to change the bandwidth. - * - * \param cellId the ID of the eNB - * \param dlEarfcn the carrier frequency (EARFCN) in downlink + * This function will instruct this PHY instance to listen to the DL channel + * over the bandwidth of 6 RB. + * + * After this, it will start receiving Primary Synchronization Signal (PSS) + * and periodically returning measurement reports to RRC via + * LteUeCphySapUser::ReportUeMeasurements function. */ - virtual void SyncronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn) = 0; + virtual void StartCellSearch (uint16_t dlEarfcn) = 0; /** - * \param dlBandwidth the DL bandwidth in PRBs + * \brief Tell the PHY entity to synchronize with a given eNodeB over the + * currently active EARFCN for communication purposes. + * \param cellId the ID of the eNodeB + * + * By synchronizing, the PHY will start receiving various information + * transmitted by the eNodeB. For instance, when receiving system information, + * the message will be relayed to RRC via + * LteUeCphySapUser::RecvMasterInformationBlock and + * LteUeCphySapUser::RecvSystemInformationBlockType1 functions. + * + * Initially, the PHY will be configured to listen to 6 RBs of BCH. + * LteUeCphySapProvider::SetDlBandwidth can be called afterwards to increase + * the bandwidth. + */ + virtual void SynchronizeWithEnb (uint16_t cellId) = 0; + + /** + * \brief Tell the PHY entity to align to the given EARFCN and synchronize + * with a given eNodeB for communication purposes. + * \param cellId the ID of the eNodeB + * \param dlEarfcn the downlink carrier frequency (EARFCN) + * + * By synchronizing, the PHY will start receiving various information + * transmitted by the eNodeB. For instance, when receiving system information, + * the message will be relayed to RRC via + * LteUeCphySapUser::RecvMasterInformationBlock and + * LteUeCphySapUser::RecvSystemInformationBlockType1 functions. + * + * Initially, the PHY will be configured to listen to 6 RBs of BCH. + * LteUeCphySapProvider::SetDlBandwidth can be called afterwards to increase + * the bandwidth. + */ + virtual void SynchronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn) = 0; + + /** + * \param dlBandwidth the DL bandwidth in number of PRBs */ virtual void SetDlBandwidth (uint8_t dlBandwidth) = 0; /** - * Configure uplink (normally done after reception of SIB2) + * \brief Configure uplink (normally done after reception of SIB2) * - * \param ulEarfcn the carrier frequency (EARFCN) in uplink - * \param ulBandwidth the UL bandwidth in PRBs + * \param ulEarfcn the uplink carrier frequency (EARFCN) + * \param ulBandwidth the UL bandwidth in number of PRBs */ virtual void ConfigureUplink (uint16_t ulEarfcn, uint8_t ulBandwidth) = 0; @@ -118,15 +154,16 @@ public: * See section 5.1.1 and 5.1.3 of TS 36.214 */ struct UeMeasurementsElement - { - uint16_t m_cellId; - double m_rsrp; // [dBm] - double m_rsrq; // [dB] - }; + { + uint16_t m_cellId; + double m_rsrp; // [dBm] + double m_rsrq; // [dB] + }; + struct UeMeasurementsParameters - { - std::vector m_ueMeasurementsList; - }; + { + std::vector m_ueMeasurementsList; + }; /** @@ -166,8 +203,10 @@ public: // inherited from LteUeCphySapProvider virtual void Reset (); - virtual void SyncronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn); - virtual void SetDlBandwidth (uint8_t ulBandwidth); + virtual void StartCellSearch (uint16_t dlEarfcn); + virtual void SynchronizeWithEnb (uint16_t cellId); + virtual void SynchronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn); + virtual void SetDlBandwidth (uint8_t dlBandwidth); virtual void ConfigureUplink (uint16_t ulEarfcn, uint8_t ulBandwidth); virtual void SetRnti (uint16_t rnti); virtual void SetTransmissionMode (uint8_t txMode); @@ -198,13 +237,27 @@ MemberLteUeCphySapProvider::Reset () template void -MemberLteUeCphySapProvider::SyncronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn) +MemberLteUeCphySapProvider::StartCellSearch (uint16_t dlEarfcn) { - m_owner->DoSyncronizeWithEnb (cellId, dlEarfcn); + m_owner->DoStartCellSearch (dlEarfcn); } template -void +void +MemberLteUeCphySapProvider::SynchronizeWithEnb (uint16_t cellId) +{ + m_owner->DoSynchronizeWithEnb (cellId); +} + +template +void +MemberLteUeCphySapProvider::SynchronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn) +{ + m_owner->DoSynchronizeWithEnb (cellId, dlEarfcn); +} + +template +void MemberLteUeCphySapProvider::SetDlBandwidth (uint8_t dlBandwidth) { m_owner->DoSetDlBandwidth (dlBandwidth); diff --git a/src/lte/model/lte-ue-net-device.cc b/src/lte/model/lte-ue-net-device.cc index 0842ba784..f49496402 100644 --- a/src/lte/model/lte-ue-net-device.cc +++ b/src/lte/model/lte-ue-net-device.cc @@ -128,8 +128,6 @@ LteUeNetDevice::UpdateConfig (void) NS_LOG_FUNCTION (this); m_nas->SetImsi (m_imsi); m_rrc->SetImsi (m_imsi); - m_rrc->SetDlEarfcn (m_dlEarfcn); - m_phy->SetDlEarfcn (m_dlEarfcn); } diff --git a/src/lte/model/lte-ue-phy.cc b/src/lte/model/lte-ue-phy.cc index 9915357c0..c4ac26f2c 100644 --- a/src/lte/model/lte-ue-phy.cc +++ b/src/lte/model/lte-ue-phy.cc @@ -418,12 +418,6 @@ LteUePhy::CreateTxPowerSpectralDensity () return psd; } -void -LteUePhy::SetDlEarfcn (uint16_t earfcn) -{ - m_dlEarfcn = earfcn; -} - void LteUePhy::GenerateCtrlCqiReport (const SpectrumValue& sinr) { @@ -665,14 +659,6 @@ LteUePhy::CreateDlCqiFeedbackMessage (const SpectrumValue& sinr) } -void -LteUePhy::CellSearch () -{ - DoSetDlBandwidth (6); // configure DL for receiving PSS - SwitchToState (CELL_SEARCH); -} - - void LteUePhy::ReportUeMeasurements () { @@ -985,7 +971,7 @@ LteUePhy::SubframeIndication (uint32_t frameNo, uint32_t subframeNo) } else { - // send only PUCCH (ideal: fake null bandwidth signal) + // send only PUCCH (ideal: fake null bandwidth signal) if (ctrlMsg.size ()>0) { NS_LOG_LOGIC (this << " UE - start TX PUCCH (NO PUSCH)"); @@ -1068,9 +1054,26 @@ LteUePhy::DoReset () } // end of void LteUePhy::DoReset () void -LteUePhy::DoSyncronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn) +LteUePhy::DoStartCellSearch (uint16_t dlEarfcn) +{ + NS_LOG_FUNCTION (this << dlEarfcn); + m_dlEarfcn = dlEarfcn; + DoSetDlBandwidth (6); // configure DL for receiving PSS + SwitchToState (CELL_SEARCH); +} + +void +LteUePhy::DoSynchronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn) { NS_LOG_FUNCTION (this << cellId << dlEarfcn); + m_dlEarfcn = dlEarfcn; + DoSynchronizeWithEnb (cellId); +} + +void +LteUePhy::DoSynchronizeWithEnb (uint16_t cellId) +{ + NS_LOG_FUNCTION (this << cellId); if (cellId == 0) { @@ -1078,7 +1081,6 @@ LteUePhy::DoSyncronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn) } m_cellId = cellId; - m_dlEarfcn = dlEarfcn; m_downlinkSpectrumPhy->SetCellId (cellId); m_uplinkSpectrumPhy->SetCellId (cellId); diff --git a/src/lte/model/lte-ue-phy.h b/src/lte/model/lte-ue-phy.h index a8d22b3bb..b3d4a69d8 100644 --- a/src/lte/model/lte-ue-phy.h +++ b/src/lte/model/lte-ue-phy.h @@ -142,11 +142,6 @@ public: */ Ptr GetUlSpectrumPhy () const; - /** - * \param bw the downlink carrier frequency (EARFCN) - */ - void SetDlEarfcn (uint16_t earfcn); - /** * \brief Create the PSD for the TX * \return the pointer to the PSD @@ -175,16 +170,6 @@ public: */ std::vector GetSubChannelsForReception (void); - - /** - * \brief Listen to PSS from surrounding cells and measure the RSRP. - * - * This function will instruct this PHY instance to listen to the DL channel - * over the bandwidth of 6 RB. After this, it will start to receive Primary - * Synchronization Signal (PSS). - */ - void CellSearch (); - /** * \brief Create the DL CQI feedback from SINR values perceived at * the physical layer with the signal received from eNB @@ -244,7 +229,7 @@ public: private: - + void SetTxMode1Gain (double gain); void SetTxMode2Gain (double gain); void SetTxMode3Gain (double gain); @@ -269,7 +254,9 @@ private: // UE CPHY SAP methods void DoReset (); - void DoSyncronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn); + void DoStartCellSearch (uint16_t dlEarfcn); + void DoSynchronizeWithEnb (uint16_t cellId); + void DoSynchronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn); void DoSetDlBandwidth (uint8_t ulBandwidth); void DoConfigureUplink (uint16_t ulEarfcn, uint8_t ulBandwidth); void DoSetRnti (uint16_t rnti); @@ -277,13 +264,13 @@ private: void DoSetSrsConfigurationIndex (uint16_t srcCi); // UE PHY SAP methods - virtual void DoSendMacPdu (Ptr p); + virtual void DoSendMacPdu (Ptr p); virtual void DoSendLteControlMessage (Ptr msg); virtual void DoSendRachPreamble (uint32_t prachId, uint32_t raRnti); - + std::vector m_subChannelsForTransmission; std::vector m_subChannelsForReception; - + std::vector< std::vector > m_subChannelsForTransmissionQueue; diff --git a/src/lte/model/lte-ue-rrc.cc b/src/lte/model/lte-ue-rrc.cc index 5662cc1ce..c94b847f4 100644 --- a/src/lte/model/lte-ue-rrc.cc +++ b/src/lte/model/lte-ue-rrc.cc @@ -335,12 +335,6 @@ LteUeRrc::GetDlEarfcn () const return m_dlEarfcn; } -void -LteUeRrc::SetDlEarfcn (uint16_t earfcn) -{ - m_dlEarfcn = earfcn; -} - uint16_t LteUeRrc::GetUlEarfcn () const { @@ -348,12 +342,6 @@ LteUeRrc::GetUlEarfcn () const return m_ulEarfcn; } -void -LteUeRrc::SetUlEarfcn (uint16_t earfcn) -{ - m_ulEarfcn = earfcn; -} - LteUeRrc::State LteUeRrc::GetState (void) { @@ -417,9 +405,9 @@ LteUeRrc::DoSendData (Ptr packet, uint8_t bid) params.pdcpSdu = packet; params.rnti = m_rnti; params.lcid = it->second->m_logicalChannelIdentity; - + NS_LOG_LOGIC (this << " RNTI=" << m_rnti << " sending " << packet << "on DRBID " << (uint32_t) drbid << " (LCID" << params.lcid << ")" << " (" << packet->GetSize () << " bytes)"); - it->second->m_pdcp->GetLtePdcpSapProvider ()->TransmitPdcpSdu (params); + it->second->m_pdcp->GetLtePdcpSapProvider ()->TransmitPdcpSdu (params); } void @@ -517,17 +505,26 @@ LteUeRrc::DoSetCsgWhiteList (uint32_t csgId) } void -LteUeRrc::DoForceCampedOnEnb (uint16_t cellId, uint16_t earfcn) +LteUeRrc::DoStartCellSelection (uint16_t dlEarfcn) { - NS_LOG_FUNCTION (this << cellId << earfcn); + NS_LOG_FUNCTION (this << dlEarfcn); - m_cellId = cellId; - m_dlEarfcn = earfcn; - m_cphySapProvider->SyncronizeWithEnb (m_cellId, m_dlEarfcn); - SwitchToState (IDLE_WAIT_SYSTEM_INFO); + m_dlEarfcn = dlEarfcn; + m_cphySapProvider->StartCellSearch (dlEarfcn); } void +LteUeRrc::DoForceCampedOnEnb (uint16_t cellId, uint16_t dlEarfcn) +{ + NS_LOG_FUNCTION (this << cellId << dlEarfcn); + + m_cellId = cellId; + m_dlEarfcn = dlEarfcn; + m_cphySapProvider->SynchronizeWithEnb (m_cellId, m_dlEarfcn); + SwitchToState (IDLE_WAIT_SYSTEM_INFO); +} + +void LteUeRrc::DoConnect () { NS_LOG_FUNCTION (this); @@ -720,7 +717,7 @@ LteUeRrc::DoRecvRrcConnectionReconfiguration (LteRrcSap::RrcConnectionReconfigur m_cellId = mci.targetPhysCellId; NS_ASSERT (mci.haveCarrierFreq); NS_ASSERT (mci.haveCarrierBandwidth); - m_cphySapProvider->SyncronizeWithEnb (m_cellId, mci.carrierFreq.dlCarrierFreq); + m_cphySapProvider->SynchronizeWithEnb (m_cellId, mci.carrierFreq.dlCarrierFreq); m_cphySapProvider->SetDlBandwidth ( mci.carrierBandwidth.dlBandwidth); m_cphySapProvider->ConfigureUplink (mci.carrierFreq.ulCarrierFreq, mci.carrierBandwidth.ulBandwidth); m_rnti = msg.mobilityControlInfo.newUeIdentity; @@ -856,7 +853,7 @@ LteUeRrc::SynchronizeToStrongestCell () { NS_LOG_LOGIC (this << " cell " << maxRsrpCellId << " is the strongest untried surrounding cell"); - m_cphySapProvider->SyncronizeWithEnb (maxRsrpCellId, m_dlEarfcn); + m_cphySapProvider->SynchronizeWithEnb (maxRsrpCellId, m_dlEarfcn); } } // end of void LteUeRrc::SynchronizeToStrongestCell () @@ -900,7 +897,7 @@ LteUeRrc::EvaluateCellForSelection () if (isSuitableCell) { m_cellId = cellId; - m_cphySapProvider->SyncronizeWithEnb (cellId, m_dlEarfcn); + m_cphySapProvider->SynchronizeWithEnb (cellId, m_dlEarfcn); m_cphySapProvider->SetDlBandwidth (m_dlBandwidth); m_initialCellSelectionEndOkTrace (m_imsi, cellId); diff --git a/src/lte/model/lte-ue-rrc.h b/src/lte/model/lte-ue-rrc.h index 676fcfef8..2772339cf 100644 --- a/src/lte/model/lte-ue-rrc.h +++ b/src/lte/model/lte-ue-rrc.h @@ -226,21 +226,11 @@ public: */ uint16_t GetDlEarfcn () const; - /** - * \param bw the downlink carrier frequency (EARFCN) - */ - void SetDlEarfcn (uint16_t earfcn); - /** * \return the uplink carrier frequency (EARFCN) */ uint16_t GetUlEarfcn () const; - /** - * \param bw the uplink carrier frequency (EARFCN) - */ - void SetUlEarfcn (uint16_t earfcn); - /** * * \return the current state @@ -268,7 +258,8 @@ private: // LTE AS SAP methods void DoSetCsgWhiteList (uint32_t csgId); - void DoForceCampedOnEnb (uint16_t cellId, uint16_t earfcn); + void DoForceCampedOnEnb (uint16_t cellId, uint16_t dlEarfcn); + void DoStartCellSelection (uint16_t dlEarfcn); void DoConnect (); void DoSendData (Ptr packet, uint8_t bid); void DoDisconnect ();