From 42e0929a0cf4f79eb54384ac00da8570187940e5 Mon Sep 17 00:00:00 2001
From: Stefan Schaffelder <stefan.schaffelder@orange.com>
Date: Thu, 4 Apr 2019 10:15:38 +0200
Subject: [PATCH] apply last diff from ssr to local orange_cdrx branch. Remove
 SSR comments

---
 openair2/COMMON/rrc_messages_types.h |  18 +--
 openair2/ENB_APP/enb_paramdef.h      |  80 ++++++------
 openair2/LAYER2/MAC/pre_processor.c  |   2 +-
 openair2/RRC/LTE/MESSAGES/asn1_msg.c |   6 +-
 openair2/RRC/LTE/MESSAGES/asn1_msg.h |   2 +-
 openair2/RRC/LTE/rrc_defs.h          |   2 +-
 openair2/RRC/LTE/rrc_eNB.c           | 176 ++++++++++++++-------------
 7 files changed, 147 insertions(+), 139 deletions(-)

diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h
index e8cabe5bf5..64810e644a 100644
--- a/openair2/COMMON/rrc_messages_types.h
+++ b/openair2/COMMON/rrc_messages_types.h
@@ -36,7 +36,7 @@
 #include "LTE_SystemInformationBlockType2.h"
 #include "LTE_SL-OffsetIndicator-r12.h"
 #include "LTE_SubframeBitmapSL-r12.h"
-#include "LTE_DRX-Config.h"                   // Add DRX SSR 2018-10
+#include "LTE_DRX-Config.h"
 #include "LTE_SL-CP-Len-r12.h"
 #include "LTE_SL-PeriodComm-r12.h"
 #include "LTE_SL-DiscResourcePool-r12.h"
@@ -142,14 +142,14 @@ typedef struct RadioResourceConfig_s {
   long                    bcch_modificationPeriodCoeff;
   long                    pcch_defaultPagingCycle;
   long                    pcch_nB;
-  LTE_DRX_Config_PR                                   drx_Config_present;                   // Add DRX SSR 2018-10
-  long                                                drx_onDurationTimer;                  // Add DRX SSR 2018-10
-  long                                                drx_InactivityTimer;                  // Add DRX SSR 2018-10
-  long                                                drx_RetransmissionTimer;              // Add DRX SSR 2018-10
-  LTE_DRX_Config__setup__longDRX_CycleStartOffset_PR  drx_longDrx_CycleStartOffset_present; // Add DRX SSR 2018-10
-  long                                                drx_longDrx_CycleStartOffset;         // Add DRX SSR 2018-10
-  long                                                drx_shortDrx_Cycle;                   // Add DRX SSR 2018-10
-  long                                                drx_shortDrx_ShortCycleTimer;         // Add DRX SSR 2018-10
+  LTE_DRX_Config_PR                                   drx_Config_present;
+  long                                                drx_onDurationTimer;
+  long                                                drx_InactivityTimer;
+  long                                                drx_RetransmissionTimer;
+  LTE_DRX_Config__setup__longDRX_CycleStartOffset_PR  drx_longDrx_CycleStartOffset_present;
+  long                                                drx_longDrx_CycleStartOffset;
+  long                                                drx_shortDrx_Cycle;
+  long                                                drx_shortDrx_ShortCycleTimer;
   long                    ue_TimersAndConstants_t300;
   long                    ue_TimersAndConstants_t301;
   long                    ue_TimersAndConstants_t310;
diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h
index ba26f4e3d9..dff16ff9d7 100644
--- a/openair2/ENB_APP/enb_paramdef.h
+++ b/openair2/ENB_APP/enb_paramdef.h
@@ -363,14 +363,14 @@ typedef enum {
 #define ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX                            "rach_maxHARQ_Msg3Tx"
 #define ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE                     "pcch_default_PagingCycle"
 #define ENB_CONFIG_STRING_PCCH_NB                                       "pcch_nB"
-#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT                            "drx_Config_present"                  // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER                           "drx_onDurationTimer"                 // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER                           "drx_InactivityTimer"                 // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER                       "drx_RetransmissionTimer"             // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT          "drx_longDrx_CycleStartOffset_present" // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET                  "drx_longDrx_CycleStartOffset"        // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE                            "drx_shortDrx_Cycle"                  // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER                  "drx_shortDrx_ShortCycleTimer"        // Add DRX SSR 2018-10
+#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT                            "drx_Config_present"
+#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER                           "drx_onDurationTimer"
+#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER                           "drx_InactivityTimer"
+#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER                       "drx_RetransmissionTimer"
+#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT          "drx_longDrx_CycleStartOffset_present"
+#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET                  "drx_longDrx_CycleStartOffset"
+#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE                            "drx_shortDrx_Cycle"
+#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER                  "drx_shortDrx_ShortCycleTimer"
 #define ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF                  "bcch_modificationPeriodCoeff"
 #define ENB_CONFIG_STRING_UETIMERS_T300                                 "ue_TimersAndConstants_t300"
 #define ENB_CONFIG_STRING_UETIMERS_T301                                 "ue_TimersAndConstants_t301"
@@ -589,14 +589,14 @@ typedef struct ccparams_lte_s {
              { .s5= {NULL }} ,						     \
              { .s5= {NULL }} ,						     \
              { .s5= {NULL }} ,						     \
-             { .s5= {NULL }} ,	/* Add DRX SSR 2018-10 */					     \
-             { .s5= {NULL }} ,	/* Add DRX SSR 2018-10 */					     \
-             { .s5= {NULL }} ,	/* Add DRX SSR 2018-10 */					     \
-             { .s5= {NULL }} ,	/* Add DRX SSR 2018-10 */					     \
-             { .s5= {NULL }} ,	/* Add DRX SSR 2018-10 */					     \
-             { .s5= {NULL }} ,	/* Add DRX SSR 2018-10 */					     \
-             { .s5= {NULL }} ,	/* Add DRX SSR 2018-10 */					     \
-             { .s5= {NULL }} ,	/* Add DRX SSR 2018-10 */					     \
+             { .s5= {NULL }} ,  					     \
+             { .s5= {NULL }} ,	               \
+             { .s5= {NULL }} ,						     \
+             { .s5= {NULL }} ,						     \
+             { .s5= {NULL }} ,						     \
+             { .s5= {NULL }} ,						     \
+             { .s5= {NULL }} ,						     \
+             { .s5= {NULL }} ,						     \
              { .s5= {NULL }} ,						     \
              { .s1a= { config_check_modify_integer, UETIMER_T300_OKVALUES, UETIMER_T300_MODVALUES,8}} ,						     \
              { .s1a= { config_check_modify_integer, UETIMER_T301_OKVALUES, UETIMER_T301_MODVALUES,8}} ,						     \
@@ -711,14 +711,14 @@ typedef struct ccparams_lte_s {
 {ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX,                           NULL,   0,           iptr:&ccparams.rach_maxHARQ_Msg3Tx,                      defintval:4,               TYPE_UINT,       0},  \
 {ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE,                    NULL,   0,           iptr:&ccparams.pcch_defaultPagingCycle,                  defintval:128,             TYPE_INT,        0},  \
 {ENB_CONFIG_STRING_PCCH_NB,                                      NULL,   0,           strptr:&ccparams.pcch_nB,                                defstrval:"oneT",          TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_DRX_CONFIG_PRESENT,                           NULL,   0,           strptr:&ccparams.drx_Config_present,                     defstrval:"prNothing",     TYPE_STRING,     0},  /* Add DRX SSR 2018-10 */ \
-{ENB_CONFIG_STRING_DRX_ONDURATIONTIMER,                          NULL,   0,           strptr:&ccparams.drx_onDurationTimer,                    defstrval:"psf10",         TYPE_STRING,     0},  /* Add DRX SSR 2018-10 */ \
-{ENB_CONFIG_STRING_DRX_INACTIVITYTIMER,                          NULL,   0,           strptr:&ccparams.drx_InactivityTimer,                    defstrval:"psf10",         TYPE_STRING,     0},  /* Add DRX SSR 2018-10 */ \
-{ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER,                      NULL,   0,           strptr:&ccparams.drx_RetransmissionTimer,                defstrval:"psf8",          TYPE_STRING,     0},  /* Add DRX SSR 2018-10 */ \
-{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT,         NULL,   0,           strptr:&ccparams.drx_longDrx_CycleStartOffset_present,   defstrval:"prSf128",       TYPE_STRING,     0},  /* Add DRX SSR 2018-10 */ \
-{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET,                 NULL,   0,           iptr:&ccparams.drx_longDrx_CycleStartOffset,             defintval:0,               TYPE_UINT,       0},  /* Add DRX SSR 2018-10 */ \
-{ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE,                           NULL,   0,           strptr:&ccparams.drx_shortDrx_Cycle,                     defstrval:"sf32",          TYPE_STRING,     0},  /* Add DRX SSR 2018-10 */ \
-{ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER,                 NULL,   0,           iptr:&ccparams.drx_shortDrx_ShortCycleTimer,             defintval:3,               TYPE_UINT,       0},  /* Add DRX SSR 2018-10 */ \
+{ENB_CONFIG_STRING_DRX_CONFIG_PRESENT,                           NULL,   0,           strptr:&ccparams.drx_Config_present,                     defstrval:"prNothing",     TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_DRX_ONDURATIONTIMER,                          NULL,   0,           strptr:&ccparams.drx_onDurationTimer,                    defstrval:"psf10",         TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_DRX_INACTIVITYTIMER,                          NULL,   0,           strptr:&ccparams.drx_InactivityTimer,                    defstrval:"psf10",         TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER,                      NULL,   0,           strptr:&ccparams.drx_RetransmissionTimer,                defstrval:"psf8",          TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT,         NULL,   0,           strptr:&ccparams.drx_longDrx_CycleStartOffset_present,   defstrval:"prSf128",       TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET,                 NULL,   0,           iptr:&ccparams.drx_longDrx_CycleStartOffset,             defintval:0,               TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE,                           NULL,   0,           strptr:&ccparams.drx_shortDrx_Cycle,                     defstrval:"sf32",          TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER,                 NULL,   0,           iptr:&ccparams.drx_shortDrx_ShortCycleTimer,             defintval:3,               TYPE_UINT,       0},  \
 {ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF,                 NULL,   0,           iptr:&ccparams.bcch_modificationPeriodCoeff,             defintval:2,               TYPE_UINT,       0},  \
 {ENB_CONFIG_STRING_UETIMERS_T300,                                NULL,   0,           iptr:&ccparams.ue_TimersAndConstants_t300,               defintval:1000,            TYPE_UINT,       0},  \
 {ENB_CONFIG_STRING_UETIMERS_T301,                                NULL,   0,           iptr:&ccparams.ue_TimersAndConstants_t301,               defintval:1000,            TYPE_UINT,       0},  \
@@ -792,22 +792,22 @@ typedef struct ccparams_lte_s {
 #define ENB_CONFIG_RACH_MAXHARQMSG3TX_IDX  		     57
 #define ENB_CONFIG_PCCH_DEFAULT_PAGING_CYCLE_IDX	     58     
 #define ENB_CONFIG_PCCH_NB_IDX				     59
-#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT_IDX 60                   // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER_IDX 61                  // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER_IDX 62                  // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER_IDX 63              // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT_IDX 64 // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_IDX 65         // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE_IDX 66                   // Add DRX SSR 2018-10
-#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER_IDX 67         // Add DRX SSR 2018-10
-#define ENB_CONFIG_BCCH_MODIFICATIONPERIODCOEFF_IDX 68                // Modif DRX SSR 2018-10
-#define ENB_CONFIG_UETIMERS_T300_IDX 69                               // Modif DRX SSR 2018-10
-#define ENB_CONFIG_UETIMERS_T301_IDX 70                               // Modif DRX SSR 2018-10
-#define ENB_CONFIG_UETIMERS_T310_IDX 71                               // Modif DRX SSR 2018-10
-#define ENB_CONFIG_UETIMERS_T311_IDX 72                               // Modif DRX SSR 2018-10
-#define ENB_CONFIG_UETIMERS_N310_IDX 73                               // Modif DRX SSR 2018-10
-#define ENB_CONFIG_UETIMERS_N311_IDX 74                               // Modif DRX SSR 2018-10
-#define ENB_CONFIG_UE_TRANSMISSION_MODE_IDX 75                        // Modif DRX SSR 2018-10
+#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT_IDX 60
+#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER_IDX 61
+#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER_IDX 62
+#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER_IDX 63
+#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT_IDX 64
+#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_IDX 65
+#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE_IDX 66
+#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER_IDX 67
+#define ENB_CONFIG_BCCH_MODIFICATIONPERIODCOEFF_IDX 68
+#define ENB_CONFIG_UETIMERS_T300_IDX 69
+#define ENB_CONFIG_UETIMERS_T301_IDX 70
+#define ENB_CONFIG_UETIMERS_T310_IDX 71
+#define ENB_CONFIG_UETIMERS_T311_IDX 72
+#define ENB_CONFIG_UETIMERS_N310_IDX 73
+#define ENB_CONFIG_UETIMERS_N311_IDX 74
+#define ENB_CONFIG_UE_TRANSMISSION_MODE_IDX 75
 
 /*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
 /* SRB1 configuration parameters section name */
diff --git a/openair2/LAYER2/MAC/pre_processor.c b/openair2/LAYER2/MAC/pre_processor.c
index ea49cfa81e..3e04e601d3 100644
--- a/openair2/LAYER2/MAC/pre_processor.c
+++ b/openair2/LAYER2/MAC/pre_processor.c
@@ -1653,7 +1653,7 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP,
   UE_sched_ctrl *ue_sched_ctl;
   int N_RB_UL = 0;
   uint16_t available_rbs, first_rb_offset;
-  rnti_t rntiTable[MAX_MOBILES_PER_ENB];        // Rnti array => Add SSR 12-2018
+  rnti_t rntiTable[MAX_MOBILES_PER_ENB];
 
   // sort ues
   LOG_D(MAC, "In ulsch_preprocessor: sort ue \n");
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
index 14aeb895e8..278ea40fed 100644
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
@@ -317,10 +317,9 @@ uint8_t do_MIB_SL(const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index,
   return((enc_rval.encoded+7)/8);
 }
 
-// Begin add DRX SSR 2018-11
+
 LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *configuration, LTE_UE_EUTRA_Capability_t *UEcap)
 {
-  // Begin add DRX SSR 2018-12
   LTE_DRX_Config_t *drxConfig = NULL;
   BIT_STRING_t *featureGroupIndicators = NULL;
   bool ueSupportCdrxShortFlag = false;
@@ -335,7 +334,6 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *c
       } else LOG_W(RRC,"[do_DrxConfig] Not enough featureGroupIndicators bits\n");
     } else LOG_W(RRC,"[do_DrxConfig] No featureGroupIndicators pointer\n");
   } else LOG_W(RRC,"[do_DrxConfig] No UEcap pointer\n");
-  // End add DRX SSR 2018-12
 
   drxConfig = (LTE_DRX_Config_t *) malloc(sizeof(LTE_DRX_Config_t));
   if (drxConfig == NULL) return NULL;
@@ -419,8 +417,6 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *c
   }
   return drxConfig;
 }
-// End add DRX SSR 2018-11
-
 
 uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
 		int Mod_id,int CC_id
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.h b/openair2/RRC/LTE/MESSAGES/asn1_msg.h
index 7022f9e6e0..331a3ca312 100644
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg.h
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.h
@@ -71,7 +71,7 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich
 	       );
 
 /**
-\brief Generate configuration for DRX_Config (Add DRX SSR 2018-11)
+\brief Generate configuration for DRX_Config
 @param Mod_id Instance of eNB
 @param CC_id Id of component to configure
 @param configuration Pointer Configuration Request structure
diff --git a/openair2/RRC/LTE/rrc_defs.h b/openair2/RRC/LTE/rrc_defs.h
index 6019ae2529..1da374dd42 100644
--- a/openair2/RRC/LTE/rrc_defs.h
+++ b/openair2/RRC/LTE/rrc_defs.h
@@ -200,7 +200,7 @@ void *send_UE_status_notification(void *);
 /* for ImsiMobileIdentity_t */
 #include "MobileIdentity.h"
 
-#include "LTE_DRX-Config.h"   // Add DRX SSR 2018-11
+#include "LTE_DRX-Config.h"
 
 /* correct Rel(8|10)/Rel14 differences
  * the code is in favor of Rel14, those defines do the translation
diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c
index b70846cc30..26eefcaec5 100644
--- a/openair2/RRC/LTE/rrc_eNB.c
+++ b/openair2/RRC/LTE/rrc_eNB.c
@@ -1286,123 +1286,136 @@ rrc_eNB_generate_RRCConnectionReestablishment(
   const int             CC_id)
 //-----------------------------------------------------------------------------
 {
-LTE_LogicalChannelConfig_t             *SRB1_logicalChannelConfig;
-  LTE_SRB_ToAddModList_t                 **SRB_configList;
-  LTE_SRB_ToAddMod_t                     *SRB1_config;
-  int                                 cnt;
-  T(T_ENB_RRC_CONNECTION_REESTABLISHMENT, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
-    T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
-
-  eNB_RRC_UE_t *ue_p = &ue_context_pP->ue_context; 
-
-  SRB_configList = &ue_p->SRB_configList;
-
-  ue_p->Srb0.Tx_buffer.payload_size =
-    do_RRCConnectionReestablishment(ctxt_pP,
-                                    ue_context_pP,
-                                    CC_id,
-                                    (uint8_t *) ue_p->Srb0.Tx_buffer.Payload,
-                                    (uint8_t) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2
-                                    rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id),
-                                    SRB_configList,
-                                    &ue_context_pP->ue_context.physicalConfigDedicated);
-  LOG_DUMPMSG(RRC,DEBUG_RRC,
-              (char *)(ue_p->Srb0.Tx_buffer.Payload),
-              ue_p->Srb0.Tx_buffer.payload_size,
-              "[MSG] RRCConnectionReestablishment\n"
-             );
-  // configure SRB1 for UE
-
+  int UE_id = -1;
+  LTE_LogicalChannelConfig_t *SRB1_logicalChannelConfig = NULL;
+  LTE_SRB_ToAddModList_t     **SRB_configList;
+  LTE_SRB_ToAddMod_t         *SRB1_config = NULL;
+  rrc_eNB_carrier_data_t     *carrier = NULL;
+  eNB_RRC_UE_t               *ue_context = NULL;
+
+  module_id_t module_id = ctxt_pP->module_id;
+  uint16_t rnti = ctxt_pP->rnti;
+
+  T(T_ENB_RRC_CONNECTION_REESTABLISHMENT,
+    T_INT(module_id),
+    T_INT(ctxt_pP->frame),
+    T_INT(ctxt_pP->subframe),
+    T_INT(rnti));
+
+  SRB_configList = &(ue_context_pP->ue_context.SRB_configList);
+  carrier = &(RC.rrc[ctxt_pP->module_id]->carrier[CC_id]);
+  ue_context = &(ue_context_pP->ue_context);
+
+  carrier->Srb0.Tx_buffer.payload_size = do_RRCConnectionReestablishment(ctxt_pP,
+                                                                         ue_context_pP,
+                                                                         CC_id,
+                                                                         (uint8_t *) carrier->Srb0.Tx_buffer.Payload,
+                                                                         (uint8_t) carrier->p_eNB, // at this point we do not have the UE capability information, so it can only be TM1 or TM2
+                                                                         rrc_eNB_get_next_transaction_identifier(module_id),
+                                                                         SRB_configList,
+                                                                         &(ue_context->physicalConfigDedicated));
+
+  LOG_DUMPMSG(RRC, DEBUG_RRC,
+              (char *)(carrier->Srb0.Tx_buffer.Payload),
+              carrier->Srb0.Tx_buffer.payload_size,
+              "[MSG] RRCConnectionReestablishment \n");
+
+  /* Configure SRB1 for UE */
   if (*SRB_configList != NULL) {
-    for (cnt = 0; cnt < (*SRB_configList)->list.count; cnt++) {
+    for (int cnt = 0; cnt < (*SRB_configList)->list.count; cnt++) {
       if ((*SRB_configList)->list.array[cnt]->srb_Identity == 1) {
         SRB1_config = (*SRB_configList)->list.array[cnt];
 
         if (SRB1_config->logicalChannelConfig) {
-          if (SRB1_config->logicalChannelConfig->present ==
-              LTE_SRB_ToAddMod__logicalChannelConfig_PR_explicitValue) {
-            SRB1_logicalChannelConfig = &SRB1_config->logicalChannelConfig->choice.explicitValue;
+          if (SRB1_config->logicalChannelConfig->present == LTE_SRB_ToAddMod__logicalChannelConfig_PR_explicitValue) {
+            SRB1_logicalChannelConfig = &(SRB1_config->logicalChannelConfig->choice.explicitValue);
           } else {
-            SRB1_logicalChannelConfig = &SRB1_logicalChannelConfig_defaultValue;
+            SRB1_logicalChannelConfig = &(SRB1_logicalChannelConfig_defaultValue);
           }
         } else {
-          SRB1_logicalChannelConfig = &SRB1_logicalChannelConfig_defaultValue;
+          SRB1_logicalChannelConfig = &(SRB1_logicalChannelConfig_defaultValue);
         }
 
-        LOG_D(RRC,
-              PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ  (SRB1) ---> MAC_eNB\n",
+        LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ  (SRB1) ---> MAC_eNB\n",
               PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
         if (NODE_IS_MONOLITHIC(RC.rrc[ctxt_pP->module_id]->node_type)) {
-          rrc_mac_config_req_eNB(ctxt_pP->module_id,
-                                 ue_context_pP->ue_context.primaryCC_id,
-                                 0,0,0,0,0,
+          rrc_mac_config_req_eNB(module_id,
+                                 ue_context->primaryCC_id,
+                                 0,
+                                 0,
+                                 0,
+                                 0,
+                                 0,
 #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
                                  0,
 #endif
-                                 ctxt_pP->rnti,
+                                 rnti,
                                  (LTE_BCCH_BCH_Message_t *) NULL,
                                  (LTE_RadioResourceConfigCommonSIB_t *) NULL,
 #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
                                  (LTE_RadioResourceConfigCommonSIB_t *) NULL,
 #endif
-                                 (struct LTE_PhysicalConfigDedicated * ) ue_context_pP->ue_context.physicalConfigDedicated,
+                                 (struct LTE_PhysicalConfigDedicated * ) ue_context->physicalConfigDedicated,
 #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
                                  (LTE_SCellToAddMod_r10_t *)NULL,
-                                 //(struct LTE_PhysicalConfigDedicatedSCell_r10 *)NULL,
 #endif
                                  (LTE_MeasObjectToAddMod_t **) NULL,
-                                 ue_context_pP->ue_context.mac_MainConfig,
+                                 ue_context->mac_MainConfig,
                                  1,
                                  SRB1_logicalChannelConfig,
-                                 ue_context_pP->ue_context.measGapConfig,
+                                 ue_context->measGapConfig,
                                  (LTE_TDD_Config_t *) NULL,
                                  NULL,
                                  (LTE_SchedulingInfoList_t *) NULL,
-                                 0, NULL, NULL, (LTE_MBSFN_SubframeConfigList_t *) NULL
+                                 0,
+                                 NULL,
+                                 NULL,
+                                 (LTE_MBSFN_SubframeConfigList_t *) NULL
 #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
-                                 , 0, (LTE_MBSFN_AreaInfoList_r9_t *) NULL, (LTE_PMCH_InfoList_r9_t *) NULL
+                                 , 0,
+                                 (LTE_MBSFN_AreaInfoList_r9_t *) NULL,
+                                 (LTE_PMCH_InfoList_r9_t *) NULL
 #endif
 #if (LTE_RRC_VERSION >= MAKE_VERSION(13, 0, 0))
-                                 ,(LTE_SystemInformationBlockType1_v1310_IEs_t *)NULL
+                                 ,(LTE_SystemInformationBlockType1_v1310_IEs_t *) NULL
 #endif
-                                );
+                                 );
           break;
         }
-      }
-    }
-  }
+      }  // if ((*SRB_configList)->list.array[cnt]->srb_Identity == 1)
+    }  // for (int cnt = 0; cnt < (*SRB_configList)->list.count; cnt++)
+  }  // if (*SRB_configList != NULL)
 
   MSC_LOG_TX_MESSAGE(MSC_RRC_ENB,
                      MSC_RRC_UE,
-                     ue_p->Srb0.Tx_buffer.Header,
-                     ue_p->Srb0.Tx_buffer.payload_size,
+                     carrier->Srb0.Tx_buffer.Header,
+                     carrier->Srb0.Tx_buffer.payload_size,
                      MSC_AS_TIME_FMT" LTE_RRCConnectionReestablishment UE %x size %u",
                      MSC_AS_TIME_ARGS(ctxt_pP),
-                     ue_context_pP->ue_context.rnti,
-                     ue_p->Srb0.Tx_buffer.payload_size);
+                     ue_context->rnti,
+                     carrier->Srb0.Tx_buffer.payload_size);
 
-  LOG_I(RRC,
-        PROTOCOL_RRC_CTXT_UE_FMT" [RAPROC] Logical Channel DL-CCCH, Generating LTE_RRCConnectionReestablishment (bytes %d)\n",
+  LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" [RAPROC] Logical Channel DL-CCCH, Generating LTE_RRCConnectionReestablishment (bytes %d)\n",
         PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
-        ue_p->Srb0.Tx_buffer.payload_size);
-  if (!NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type)) {
-	  int UE_id = find_UE_id(ctxt_pP->module_id, ctxt_pP->rnti);
-	  if(UE_id != -1){
-	    // activate release timer, if RRCComplete not received after 100 frames, remove UE
-	    RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1;
-	    // remove UE after 100 frames after RRCConnectionReestablishmentRelease is triggered
-	    RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer_thres = 1000;
-	  } else{
-	    LOG_E(RRC,
-	          PROTOCOL_RRC_CTXT_UE_FMT" Generating LTE_RRCConnectionReestablishment without UE_id(MAC) rnti %x\n",
-	          PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), ctxt_pP->rnti);
-	  }
-  }
-  // activate release timer, if RRCComplete not received after 100 frames, remove UE
+        carrier->Srb0.Tx_buffer.payload_size);
+
+  UE_id = find_UE_id(module_id, rnti);
+
+  if (UE_id != -1) {
+    /* Activate reject timer, if RRCComplete not received after 10 frames, reject UE */
+    RC.mac[module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1;
+    /* Reject UE after 10 frames, LTE_RRCConnectionReestablishmentReject is triggered */
+    RC.mac[module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer_thres = 100;
+  } else {
+    LOG_E(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Generating LTE_RRCConnectionReestablishment without UE_id(MAC) rnti %x\n",
+          PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
+          rnti);
+  }
+
+  /* Activate release timer, if RRCComplete not received after 100 frames, remove UE */
   ue_context_pP->ue_context.ue_reestablishment_timer = 1;
-  // remove UE after 100 frames after LTE_RRCConnectionReestablishmentRelease is triggered
+  /* Remove UE after 100 frames after LTE_RRCConnectionReestablishmentReject is triggered */
   ue_context_pP->ue_context.ue_reestablishment_timer_thres = 1000;
-
 }
 
 //-----------------------------------------------------------------------------
@@ -2782,8 +2795,8 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons
   LTE_C_RNTI_t                           *cba_RNTI                         = NULL;
   int                                    x2_enabled;
   uint8_t xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id);   //Transaction_id,
-  uint8_t cc_id = ue_context_pP->ue_context.primaryCC_id;                      // Add DRX SSR 2018-11 => CC id
-  LTE_UE_EUTRA_Capability_t *UEcap = ue_context_pP->ue_context.UE_Capability;  // Add DRX SSR 2018-12
+  uint8_t cc_id = ue_context_pP->ue_context.primaryCC_id;
+  LTE_UE_EUTRA_Capability_t *UEcap = ue_context_pP->ue_context.UE_Capability;
 #ifdef CBA
   //struct PUSCH_CBAConfigDedicated_vlola  *pusch_CBAConfigDedicated_vlola;
   uint8_t                            *cba_RNTI_buf;
@@ -2956,7 +2969,6 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons
   mac_MainConfig->phr_Config->choice.setup.prohibitPHR_Timer = LTE_MAC_MainConfig__phr_Config__setup__prohibitPHR_Timer_sf200; // sf20 = 20 subframes // LTE_MAC_MainConfig__phr_Config__setup__prohibitPHR_Timer_sf1000
   mac_MainConfig->phr_Config->choice.setup.dl_PathlossChange = LTE_MAC_MainConfig__phr_Config__setup__dl_PathlossChange_dB3;  // Value dB1 =1 dB, dB3 = 3 dB
 
-  // Begin add DRX SSR 2018-11
   if (rrc_inst->carrier[cc_id].sib1->tdd_Config == NULL) { // CDRX configured in case of FDD
     LOG_D(RRC, "Processing the DRX configuration in RRC Connection Reconfiguration\n");
 
@@ -3016,7 +3028,6 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons
   } else { // CDRX not ready for TDD
     mac_MainConfig->drx_Config = NULL;
   }
-  // End add DRX SSR 2018-11
 
 #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
   sr_ProhibitTimer_r9 = CALLOC(1, sizeof(long));
@@ -5481,7 +5492,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
 )
 //-----------------------------------------------------------------------------
 {
-  int                                 drb_id;
+  int                                 i, drb_id;
   int                                 oip_ifup = 0;
   int                                 dest_ip_offset = 0;
   uint8_t                            *kRRCenc = NULL;
@@ -5505,6 +5516,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
     T_INT(ctxt_pP->subframe),
     T_INT(ctxt_pP->rnti));
 
+#if defined(ENABLE_SECURITY)
   /* Derive the keys from kenb */
   if (DRB_configList != NULL) {
     derive_key_up_enc(ue_context_pP->ue_context.ciphering_algorithm,
@@ -5826,10 +5838,10 @@ rrc_eNB_generate_RRCConnectionSetup(
                             SRB_configList,
                             &ue_context_pP->ue_context.physicalConfigDedicated);
   }
-    LOG_DUMPMSG(RRC,DEBUG_RRC,
-                (char *)(ue_p->Srb0.Tx_buffer.Payload),
-                ue_p->Srb0.Tx_buffer.payload_size,
-                "[MSG] RRC Connection Setup\n");
+  LOG_DUMPMSG(RRC,DEBUG_RRC,
+              (char *)(ue_p->Srb0.Tx_buffer.Payload),
+              ue_p->Srb0.Tx_buffer.payload_size,
+              "[MSG] RRC Connection Setup\n");
 
   // configure SRB1/SRB2, PhysicalConfigDedicated, MAC_MainConfig for UE
    switch (RC.rrc[ctxt_pP->module_id]->node_type){
-- 
GitLab