postpone eNB TX mode reconf to rx of RRC CONN RECONF COMPLETED
authorNicola Baldo <nbaldo@cttc.es>
Fri, 14 Dec 2012 13:02:17 +0100
changeset 9541 7811eb81a32c
parent 9538 9d8d81c9655a
child 9542 c94274e6f124
postpone eNB TX mode reconf to rx of RRC CONN RECONF COMPLETED
src/lte/model/lte-enb-rrc.cc
src/lte/model/lte-enb-rrc.h
--- a/src/lte/model/lte-enb-rrc.cc	Fri Dec 14 10:54:12 2012 +0100
+++ b/src/lte/model/lte-enb-rrc.cc	Fri Dec 14 13:02:17 2012 +0100
@@ -138,7 +138,8 @@
     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 @@
     {
     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 @@
   
   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 ();
--- a/src/lte/model/lte-enb-rrc.h	Fri Dec 14 10:54:12 2012 +0100
+++ b/src/lte/model/lte-enb-rrc.h	Fri Dec 14 13:02:17 2012 +0100
@@ -388,6 +388,7 @@
   uint16_t m_sourceCellId;
   uint16_t m_targetCellId;
   std::list<uint8_t> m_drbsToBeStarted;
+  bool m_needTransmissionModeConfiguration;
 };