From ec7fac9f5cb0741b15644cbdb90e8052a28d44bf Mon Sep 17 00:00:00 2001 From: Nicola Baldo Date: Fri, 14 Dec 2012 13:02:17 +0100 Subject: [PATCH] postpone eNB TX mode reconf to rx of RRC CONN RECONF COMPLETED --- src/lte/model/lte-enb-rrc.cc | 25 ++++++++++++++++--------- src/lte/model/lte-enb-rrc.h | 1 + 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/lte/model/lte-enb-rrc.cc b/src/lte/model/lte-enb-rrc.cc index 66e828629..81a052b19 100644 --- a/src/lte/model/lte-enb-rrc.cc +++ b/src/lte/model/lte-enb-rrc.cc @@ -138,7 +138,8 @@ UeManager::UeManager (Ptr rrc, uint16_t rnti, State s) m_state (s), m_pendingRrcConnectionReconfiguration (false), m_sourceX2apId (0), - m_sourceCellId (0) + m_sourceCellId (0), + m_needTransmissionModeConfiguration (false) { NS_LOG_FUNCTION (this); } @@ -701,6 +702,19 @@ UeManager::RecvRrcConnectionReconfigurationCompleted (LteRrcSap::RrcConnectionRe { case CONNECTION_RECONFIGURATION: StartDataRadioBearers (); + if (m_needTransmissionModeConfiguration) + { + // configure MAC (and scheduler) + LteEnbCmacSapProvider::UeConfig req; + req.m_rnti = m_rnti; + req.m_transmissionMode = m_physicalConfigDedicated.antennaInfo.transmissionMode; + m_rrc->m_cmacSapProvider->UeUpdateConfigurationReq (req); + + // configure PHY + m_rrc->m_cphySapProvider->SetTransmissionMode (req.m_rnti, req.m_transmissionMode); + + m_needTransmissionModeConfiguration = false; + } SwitchToState (CONNECTED_NORMALLY); m_rrc->m_connectionReconfigurationTrace (m_imsi, m_rrc->m_cellId, m_rnti); break; @@ -765,14 +779,7 @@ UeManager::CmacUeConfigUpdateInd (LteEnbCmacSapUser::UeConfig cmacParams) m_physicalConfigDedicated.antennaInfo.transmissionMode = cmacParams.m_transmissionMode; - // configure MAC (and scheduler) - LteEnbCmacSapProvider::UeConfig req; - req.m_rnti = m_rnti; - req.m_transmissionMode = m_physicalConfigDedicated.antennaInfo.transmissionMode; - m_rrc->m_cmacSapProvider->UeUpdateConfigurationReq (req); - - // configure PHY - m_rrc->m_cphySapProvider->SetTransmissionMode (req.m_rnti, req.m_transmissionMode); + m_needTransmissionModeConfiguration = true; // reconfigure the UE RRC ScheduleRrcConnectionReconfiguration (); diff --git a/src/lte/model/lte-enb-rrc.h b/src/lte/model/lte-enb-rrc.h index 48b8597f5..3d04d64fe 100644 --- a/src/lte/model/lte-enb-rrc.h +++ b/src/lte/model/lte-enb-rrc.h @@ -388,6 +388,7 @@ private: uint16_t m_sourceCellId; uint16_t m_targetCellId; std::list m_drbsToBeStarted; + bool m_needTransmissionModeConfiguration; };