diff --git a/NOTICE.md b/NOTICE.md
index 96b5d4c552ed9752d8a8ba396c9c4df4293dc34b..39dd33795d71fa7b42d86a6ddc4fe9b7a6048c7d 100644
--- a/NOTICE.md
+++ b/NOTICE.md
@@ -21,3 +21,7 @@ The Regents of the University of California: BSD 3-Clause Licence.
 
 Niels Provos <provos@citi.umich.edu>: BSD 2-Clause Licence.
 
+## Credits for source code openair3/GTPV1-U/nw-gtpv1u: ##
+
+Amit Chawre <http://www.amitchawre.net/contact.html>: BSD 2-Clause Licence.
+
diff --git a/ci-scripts/Jenkinsfile-gitlab b/ci-scripts/Jenkinsfile-gitlab
index c3b997a4e89e015722df42a63979073cae3f3351..7e9e3800db52200f5d8196e9b3a187c2f39282a4 100644
--- a/ci-scripts/Jenkinsfile-gitlab
+++ b/ci-scripts/Jenkinsfile-gitlab
@@ -30,7 +30,6 @@ def sendSocialMediaMessage(pipeChannel, pipeColor, pipeMessage) {
     }
 }
 
-def doRedHatBuild = false
 def doFlexranCtrlTest = false
 
 // Location of the executor node
@@ -85,21 +84,6 @@ pipeline {
                         echo "Platform is ${env.TESTPLATFORM_OWNER}"
                     }
 
-                    if (params.RedHatRemoteServer == null) {
-                        allParametersPresent = false
-                    }
-                    if (params.RedHatRemoteCredentials == null) {
-                        allParametersPresent = false
-                    }
-                    if (params.RedHatWorkingPath == null) {
-                        allParametersPresent = false
-                    }
-                    if (allParametersPresent) {
-                        echo "Performing Red Hat Build"
-                        doRedHatBuild = true
-                    } else {
-                        doRedHatBuild = false
-                    }
                     if (params.FlexRanRtcGitLabRepository_Credentials != null) {
                         doFlexranCtrlTest = true
                     }
@@ -279,7 +263,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Build eNB-USRP") {
                             timeout (time: 20, unit: 'MINUTES') {
-                                sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
+                                sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
                             }
                         }
                     }
@@ -311,28 +295,6 @@ pipeline {
                         }
                     }
                 }
-                stage ("Build eNB-USRP on Red Hat") {
-                    when {
-                        expression {doRedHatBuild}
-                    }
-                    steps {
-                        gitlabCommitStatus(name: "Build eNB-USRP-RHE") {
-                            script {
-                                try {
-                                    withCredentials([
-                                        [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.RedHatRemoteCredentials}", usernameVariable: 'RH_Username', passwordVariable: 'RH_Password']
-                                    ]) {
-                                        timeout (time: 20, unit: 'MINUTES') {
-                                            sh "./ci-scripts/buildOnRH.sh --workspace $WORKSPACE --job-name ${JOB_NAME} --build-id ${BUILD_ID} --remote-host ${params.RedHatRemoteServer} --remote-path ${params.RedHatWorkingPath} --remote-user-name ${RH_Username} --remote-password ${RH_Password}"
-                                        }
-                                    }
-                                } catch (Exception e) {
-                                    echo "Red Hat build failed but we could keep running pipeline if all ubuntu-based build passed"
-                                }
-                            }
-                        }
-                    }
-                }
             }
             post {
                 failure {
diff --git a/ci-scripts/checkCodingFormattingRules.sh b/ci-scripts/checkCodingFormattingRules.sh
index fb159d4da07db4662a48f297c5646c807ee05084..d47b90a9dd297d9711ed33d057e7cd8fa50c8910 100755
--- a/ci-scripts/checkCodingFormattingRules.sh
+++ b/ci-scripts/checkCodingFormattingRules.sh
@@ -77,7 +77,7 @@ then
        IS_NFAPI=`echo $FILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"`
        IS_OAI_LICENCE_PRESENT=`egrep -c "OAI Public License" $FILE`
        IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence" $FILE`
-       IS_EXCEPTION=`echo $FILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h"`
+       IS_EXCEPTION=`echo $FILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h|openair3/GTPV1-U/nw-gtpv1u|openair2/UTIL/OPT/ws_"`
        if [ $IS_OAI_LICENCE_PRESENT -eq 0 ] && [ $IS_BSD_LICENCE_PRESENT -eq 0 ]
        then
            if [ $IS_NFAPI -eq 0 ] && [ $IS_EXCEPTION -eq 0 ]
@@ -194,12 +194,12 @@ do
             IS_NFAPI=`echo $FULLFILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"`
             IS_OAI_LICENCE_PRESENT=`egrep -c "OAI Public License" $FULLFILE`
             IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence" $FULLFILE`
-            IS_EXCEPTION=`echo $FILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h"`
+            IS_EXCEPTION=`echo $FULLFILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h|openair3/GTPV1-U/nw-gtpv1u|openair2/UTIL/OPT/ws_"`
             if [ $IS_OAI_LICENCE_PRESENT -eq 0 ] && [ $IS_BSD_LICENCE_PRESENT -eq 0 ]
             then
                 if [ $IS_NFAPI -eq 0 ] && [ $IS_EXCEPTION -eq 0 ]
                 then
-                    echo $FILE >> ./files-w-suspect-banner.txt
+                    echo $FULLFILE >> ./files-w-suspect-banner.txt
                 fi
             fi
         fi
diff --git a/ci-scripts/runTestOnVM.sh b/ci-scripts/runTestOnVM.sh
index b9b9a2bafab5d722aa7dc33be32e1777dd5ec76c..e6b93b5b4d35ee58cdc8f29be130667ffaf04b8d 100755
--- a/ci-scripts/runTestOnVM.sh
+++ b/ci-scripts/runTestOnVM.sh
@@ -2027,30 +2027,6 @@ function run_test_on_vm {
 
         done
 
-        full_l2_sim_destroy
-
-        echo "############################################################"
-        echo "Checking run status"
-        echo "############################################################"
-
-        if [ $PING_STATUS -ne 0 ]; then STATUS=-1; fi
-        if [ $IPERF_STATUS -ne 0 ]; then STATUS=-1; fi
-        if [ $MBMS_STATUS -eq 0 ]
-        then
-            echo "LTE MBMS RFSIM seems OK"
-        else
-            echo "LTE MBMS RFSIM seems to FAIL"
-            STATUS=-1
-        fi
-        if [ $STATUS -eq 0 ]
-        then
-            echo "LTE RFSIM seems OK"
-            echo "LTE: TEST_OK" > $ARCHIVES_LOC/test_final_status.log
-        else
-            echo "LTE RFSIM seems to FAIL"
-            echo "LTE: TEST_KO" > $ARCHIVES_LOC/test_final_status.log
-        fi
-
         ####################
         ## FeMBMS CASE noS1 ##
         ####################
@@ -2123,6 +2099,13 @@ function run_test_on_vm {
 
         if [ $PING_STATUS -ne 0 ]; then STATUS=-1; fi
         if [ $IPERF_STATUS -ne 0 ]; then STATUS=-1; fi
+        if [ $MBMS_STATUS -eq 0 ]
+        then
+            echo "LTE MBMS RFSIM seems OK"
+        else
+            echo "LTE MBMS RFSIM seems to FAIL"
+            STATUS=-1
+        fi
         if [ $FeMBMS_STATUS -eq 0 ]
         then
             echo "LTE FeMBMS RFSIM seems OK"
@@ -2153,7 +2136,7 @@ function run_test_on_vm {
         NR_STATUS=0
 
         ######### start of loop
-        while [ $try_cnt -lt 1 ]
+        while [ $try_cnt -lt 4 ]
         do
             SYNC_STATUS=0
             PING_STATUS=0
diff --git a/common/utils/T/defs.h b/common/utils/T/defs.h
index 69b379ce0b3c3963475622ec3ed6d66b472ed97b..a194e621db6fa0e336476431a55e23a8f570d752 100644
--- a/common/utils/T/defs.h
+++ b/common/utils/T/defs.h
@@ -1,5 +1,5 @@
-#ifndef _TRACER_DEFS_H_
-#define _TRACER_DEFS_H_
+#ifndef _COMMON_UTILS_T_DEFS_H_
+#define _COMMON_UTILS_T_DEFS_H_
 
 /* types of plots */
 #define PLOT_VS_TIME   0
@@ -27,4 +27,4 @@ void *forwarder(char *ip, int port);
 void forward(void *forwarder, char *buf, int size);
 void forward_start_client(void *forwarder, int socket);
 
-#endif /* _TRACER_DEFS_H_ */
+#endif /* _COMMON_UTILS_T_DEFS_H_ */
diff --git a/common/utils/T/tracer/defs.h b/common/utils/T/tracer/defs.h
index 443fabdde8423ed744d1739f54acc82cef1c5c50..394351eab0f5b658df53817b27d346837c2d65c3 100644
--- a/common/utils/T/tracer/defs.h
+++ b/common/utils/T/tracer/defs.h
@@ -1,5 +1,5 @@
-#ifndef _TRACER_DEFS_H_
-#define _TRACER_DEFS_H_
+#ifndef _COMMON_UTILS_T_TRACER_DEFS_H_
+#define _COMMON_UTILS_T_TRACER_DEFS_H_
 
 /* types of plots */
 #define PLOT_VS_TIME   0
@@ -21,4 +21,4 @@ void t_gui_start(void);
 void t_gui_set_input_signal(int eNB, int frame, int subframe, int antenna,
     int size, void *buf);
 
-#endif /* _TRACER_DEFS_H_ */
+#endif /* _COMMON_UTILS_T_TRACER_DEFS_H_ */
diff --git a/doc/TESTING_GNB_W_COTS_UE.md b/doc/TESTING_GNB_W_COTS_UE.md
index 198f6bb115c1265969f5fb2f7e797fbe2ede3d1b..17f37ad2d7875c980a4ef55bdbe490c474dc0408 100644
--- a/doc/TESTING_GNB_W_COTS_UE.md
+++ b/doc/TESTING_GNB_W_COTS_UE.md
@@ -12,6 +12,7 @@ STATUS 2020/09/10 : updated the status of interop (end to end UL/DL traffic)
 7.   [Log file monitoring](#log-file-monitoring)
 6.   [Required tools for debug](#required-tools-for-debug)
 7.   [Status of interoperability](#status-of-interoperability) 
+8.   [CI integration](#ci-integration)  
 
 ## Configuration Overview
 
@@ -70,7 +71,7 @@ cd cmake_targets/
 - **EPC**
 
 for reference:
-https://github.com/OPENAIRINTERFACE/openair-epc-fed/blob/master-documentation/docs/DEPLOY_HOME.md
+https://github.com/OPENAIRINTERFACE/openair-epc-fed/blob/master/docs/DEPLOY_HOME.md
 
 
 
@@ -204,7 +205,7 @@ The test takes typically a few seconds, max 10-15 seconds. If it takes more than
 - **EPC** (on EPC host):
 
 for reference:
-https://github.com/OPENAIRINTERFACE/openair-epc-fed/blob/master-documentation/docs/DEPLOY_HOME.md
+https://github.com/OPENAIRINTERFACE/openair-epc-fed/blob/master/docs/DEPLOY_HOME.md
 
 
 
@@ -384,3 +385,16 @@ The following parts have been validated with FR1 COTS UE:
     some packet losses might still occur even in ideal channel conditions  
 
 
+## CI integration  
+The automation scripts are available on ILIADE.  
+The end-to-end test is integrated in the CI flow in a semi-automated manner, comprising 3 steps:  
+- update a YAML file comprising the IT resources definition, branch and commit number the test has to run on   
+- run the python script that generates the test from the YAML file  
+```
+python3 obj_build_from_yaml.py py_params_template.yaml fr1.sh
+```
+- run the test (fr1.sh)
+
+At the date of writing, the test comprises the deployment of the components (epc, eNB, gNB, cots ue) and the execution of 2 pings procedures (20 pings in 20sec, then 5 pings in 1sec)  
+
+This automation is run for every integration branch to be merged into develop.
diff --git a/executables/stats.h b/executables/stats.h
index 6c847a2860662e1aec2afebb751a4a122a342b6e..9bd4c6f08099ff3f5c6694356c9424af66cf72d2 100644
--- a/executables/stats.h
+++ b/executables/stats.h
@@ -21,8 +21,8 @@
 
 /* Header file generated by fdesign on Thu Aug 28 12:13:51 2014 */
 
-#ifndef FD_stats_form_h_
-#define FD_stats_form_h_
+#ifndef _EXECUTABLES_STATS_H_
+#define _EXECUTABLES_STATS_H_
 
 #include <forms.h>
 
@@ -43,4 +43,4 @@ typedef struct {
 
 extern FD_stats_form *create_form_stats_form( void );
 
-#endif /* FD_stats_form_h_ */
+#endif /* _EXECUTABLES_STATS_H_ */
diff --git a/executables/threads_t.h b/executables/threads_t.h
index 0671f409883256b4db50e1c9c68778a1840ae5ef..c4b233ccc9d14112a4c4c03ce38932135ec596c9 100644
--- a/executables/threads_t.h
+++ b/executables/threads_t.h
@@ -1,5 +1,5 @@
-#ifndef _THREADS_T_H_
-#define _THREADS_T_H_
+#ifndef _EXECUTABLES_THREADS_T_H_
+#define _EXECUTABLES_THREADS_T_H_
 
 typedef struct threads_s {
   int main;
@@ -18,4 +18,4 @@ typedef struct threads_s {
   //int dlsch_td1_three;
 } threads_t;
 
-#endif /* _THREADS_T_H_ */
+#endif /* _EXECUTABLES_THREADS_T_H_ */
diff --git a/openair1/PHY/NR_TRANSPORT/pucch_rx.c b/openair1/PHY/NR_TRANSPORT/pucch_rx.c
index 71132b64c55a282221ad841d3bab04b3cedeb8ff..e99219d35cbd8c8760a0347fc58b5046990fc9c7 100644
--- a/openair1/PHY/NR_TRANSPORT/pucch_rx.c
+++ b/openair1/PHY/NR_TRANSPORT/pucch_rx.c
@@ -67,7 +67,7 @@ int nr_find_pucch(uint16_t rnti,
   AssertFatal(gNB!=NULL,"gNB is null\n");
   int index = -1;
 
-  for (int i=0; i<NUMBER_OF_NR_ULSCH_MAX; i++) {
+  for (int i=0; i<NUMBER_OF_NR_PUCCH_MAX; i++) {
     AssertFatal(gNB->pucch[i]!=NULL,"gNB->pucch[%d] is null\n",i);
     if ((gNB->pucch[i]->active >0) &&
         (gNB->pucch[i]->pucch_pdu.rnti==rnti) &&
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
index 548845eae5db766f19fa07cb1b1be6e3e92f524b..1c36c474d83a03e3b0e28cfd33ff9c016f431b83 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
@@ -442,6 +442,11 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
 
   pdcp_run(&ctxt);
   //rrc_rx_tx(&ctxt, CC_id);
+  /* send tick to RLC every ms */
+  if ((slot & ((1 << *scc->ssbSubcarrierSpacing) - 1)) == 0) {
+    void nr_rlc_tick(int frame, int subframe);
+    nr_rlc_tick(frame, slot >> *scc->ssbSubcarrierSpacing);
+  }
 
   dlsch_in_slot_bitmap = &RC.nrmac[module_idP]->UE_list.UE_sched_ctrl[UE_id].dlsch_in_slot_bitmap;  // static bitmap signaling which slot in a tdd period contains dlsch
   ulsch_in_slot_bitmap = &RC.nrmac[module_idP]->UE_list.UE_sched_ctrl[UE_id].ulsch_in_slot_bitmap;  // static bitmap signaling which slot in a tdd period contains ulsch
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
index 919cf1a46a01a758cb2f8bc147402904e1437cf1..5048dd245ef01daf12d5256257576139c7682d44 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
@@ -158,14 +158,6 @@ mac_rlc_status_resp_t mac_rlc_status_ind(
   mac_rlc_status_resp_t ret;
   nr_rlc_entity_t *rb;
 
-  /* TODO: handle time a bit more properly */
-  if (nr_rlc_current_time_last_frame != frameP ||
-      nr_rlc_current_time_last_subframe != subframeP) {
-    nr_rlc_current_time++;
-    nr_rlc_current_time_last_frame = frameP;
-    nr_rlc_current_time_last_subframe = subframeP;
-  }
-
   nr_rlc_manager_lock(nr_rlc_ue_manager);
   ue = nr_rlc_manager_get_ue(nr_rlc_ue_manager, rntiP);
 
@@ -921,3 +913,10 @@ rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t* const x)
 
   return RLC_OP_STATUS_OK;
 }
+
+void nr_rlc_tick(int frame, int subframe)
+{
+  if (frame != nr_rlc_current_time_last_frame ||
+      subframe != nr_rlc_current_time_last_subframe)
+    nr_rlc_current_time++;
+}
diff --git a/openair2/LAYER2/nr_rlc/tests/LOG/log.h b/openair2/LAYER2/nr_rlc/tests/LOG/log.h
index 5c9fcd643cfca036cc81eca221f4a5e818aee685..8ebc7e1909634fc37334f499671353d1169e9131 100644
--- a/openair2/LAYER2/nr_rlc/tests/LOG/log.h
+++ b/openair2/LAYER2/nr_rlc/tests/LOG/log.h
@@ -1,5 +1,5 @@
-#ifndef _LOG_H_
-#define _LOG_H_
+#ifndef _NR_RLC_TESTS_LOG_H_
+#define _NR_RLC_TESTS_LOG_H_
 
 #include <stdio.h>
 
@@ -7,4 +7,4 @@
 #define LOG_D(x, ...) printf(__VA_ARGS__)
 #define LOG_W(x, ...) printf(__VA_ARGS__)
 
-#endif /* _LOG_H_ */
+#endif /* _NR_RLC_TESTS_LOG_H_ */
diff --git a/openair2/LAYER2/rlc_v2/tests/LOG/log.h b/openair2/LAYER2/rlc_v2/tests/LOG/log.h
index 5c9fcd643cfca036cc81eca221f4a5e818aee685..89d85090b178f66a396853f86f6052a3e9b1099c 100644
--- a/openair2/LAYER2/rlc_v2/tests/LOG/log.h
+++ b/openair2/LAYER2/rlc_v2/tests/LOG/log.h
@@ -1,5 +1,5 @@
-#ifndef _LOG_H_
-#define _LOG_H_
+#ifndef _RLC_V2_TESTS_LOG_H_
+#define _RLC_V2_TESTS_LOG_H_
 
 #include <stdio.h>
 
@@ -7,4 +7,4 @@
 #define LOG_D(x, ...) printf(__VA_ARGS__)
 #define LOG_W(x, ...) printf(__VA_ARGS__)
 
-#endif /* _LOG_H_ */
+#endif /* _RLC_V2_TESTS_LOG_H_ */
diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c
index 15e6a50e453c0acfebad0f231898815c119b9874..4e61bd82bb0f411077e89b33aa8d66075219f25e 100644
--- a/openair2/RRC/LTE/rrc_eNB.c
+++ b/openair2/RRC/LTE/rrc_eNB.c
@@ -155,7 +155,6 @@ init_SI(
   LOG_D(RRC,"%s()\n\n\n\n",__FUNCTION__);
 
   if(configuration->radioresourceconfig[CC_id].mbms_dedicated_serving_cell == TRUE) {
-
     LOG_I(RRC, "Configuring MIB FeMBMS (N_RB_DL %d)\n",
           (int)configuration->N_RB_DL[CC_id]);
     RC.rrc[ctxt_pP->module_id]->carrier[CC_id].MIB_FeMBMS = (uint8_t *) malloc16(4);
@@ -500,13 +499,17 @@ init_SI(
                            RC.rrc[ctxt_pP->module_id]->carrier[CC_id].FeMBMS_flag,
                            (carrier->sib1_MBMS==NULL?(LTE_BCCH_DL_SCH_Message_MBMS_t *) NULL:(LTE_BCCH_DL_SCH_Message_MBMS_t *)carrier->sib1_MBMS),//(LTE_BCCH_DL_SCH_Message_MBMS_t *) NULL,
                            (LTE_SchedulingInfo_MBMS_r14_t *) NULL,
-                        (carrier->sib1_MBMS==NULL?(struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL:(struct LTE_NonMBSFN_SubframeConfig_r14 *)carrier->sib1_MBMS->nonMBSFN_SubframeConfig_r14),//(struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
-                        (carrier->sib1_MBMS==NULL?(LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL:(LTE_SystemInformationBlockType1_MBMS_r14_t *)carrier->sib1_MBMS->systemInformationBlockType13_r14),//(LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
-                        (carrier->sib1_MBMS==NULL?(LTE_MBSFN_AreaInfoList_r9_t *) NULL:(LTE_MBSFN_AreaInfoList_r9_t *)&carrier->sib1_MBMS->systemInformationBlockType13_r14->mbsfn_AreaInfoList_r9)//(LTE_MBSFN_AreaInfoList_r9_t *) NULL
-
-			,(LTE_MBSFNAreaConfiguration_r9_t*) NULL
-
-                         );
+                           (carrier->sib1_MBMS==NULL
+                            ? (struct LTE_NonMBSFN_SubframeConfig_r14 *)NULL
+                            : (struct LTE_NonMBSFN_SubframeConfig_r14 *)carrier->sib1_MBMS->nonMBSFN_SubframeConfig_r14),//(struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
+                           (carrier->sib1_MBMS==NULL
+                            ? (LTE_SystemInformationBlockType1_MBMS_r14_t *)NULL
+                            : (LTE_SystemInformationBlockType1_MBMS_r14_t *)carrier->sib1_MBMS->systemInformationBlockType13_r14),//(LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
+                           (carrier->sib1_MBMS==NULL
+                            ? (LTE_MBSFN_AreaInfoList_r9_t *)NULL
+                            : (LTE_MBSFN_AreaInfoList_r9_t *)&carrier->sib1_MBMS->systemInformationBlockType13_r14->mbsfn_AreaInfoList_r9),//(LTE_MBSFN_AreaInfoList_r9_t *) NULL,
+                           (LTE_MBSFNAreaConfiguration_r9_t *)NULL
+                          );
   }
 
   /* set flag to indicate that cell information is configured. This is required
@@ -590,7 +593,7 @@ init_MCCH(
                            (struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
                            (LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
                            (LTE_MBSFN_AreaInfoList_r9_t *) NULL,
-			   (LTE_MBSFNAreaConfiguration_r9_t*) NULL
+                           (LTE_MBSFNAreaConfiguration_r9_t *) NULL
                           );
   }
 
@@ -1040,59 +1043,59 @@ void release_UE_in_freeList(module_id_t mod_id) {
 
       for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {
         eNB_PHY = RC.eNB[mod_id][CC_id];
+        int id;
+        // clean ULSCH entries for rnti
+        id = find_ulsch(rnti,eNB_PHY,SEARCH_EXIST);
 
-	int id;
-
-	// clean ULSCH entries for rnti
-	id = find_ulsch(rnti,eNB_PHY,SEARCH_EXIST);
         if (id>=0) clean_eNb_ulsch(eNB_PHY->ulsch[id]);
 
-	// clean DLSCH entries for rnti
-	id = find_dlsch(rnti,eNB_PHY,SEARCH_EXIST);
+        // clean DLSCH entries for rnti
+        id = find_dlsch(rnti,eNB_PHY,SEARCH_EXIST);
+
         if (id>=0) clean_eNb_dlsch(eNB_PHY->dlsch[id][0]);
 
-	// clean UCI entries for rnti
+        // clean UCI entries for rnti
         for (i=0; i<NUMBER_OF_UCI_VARS_MAX; i++) {
           if(eNB_PHY->uci_vars[i].rnti == rnti) {
             LOG_I(MAC, "clean eNb uci_vars[%d] UE %x \n",i, rnti);
             memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI));
           }
         }
-		
-	/*
-        for (i=0; i<MAX_MOBILES_PER_ENB; i++) {
-          ulsch = eNB_PHY->ulsch[i];
-
-          if((ulsch != NULL) && (ulsch->rnti == rnti)) {
-            void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch);
-            LOG_I(RRC, "clean_eNb_ulsch ulsch[%d] UE %x\n", i, rnti);
-            clean_eNb_ulsch(ulsch);
-          }
 
-          dlsch = eNB_PHY->dlsch[i][0];
+        /*
+              for (i=0; i<MAX_MOBILES_PER_ENB; i++) {
+                ulsch = eNB_PHY->ulsch[i];
 
-          if((dlsch != NULL) && (dlsch->rnti == rnti)) {
-            void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch);
-            LOG_I(RRC, "clean_eNb_dlsch dlsch[%d] UE %x \n", i, rnti);
-            clean_eNb_dlsch(dlsch);
-          }
-        }
+                if((ulsch != NULL) && (ulsch->rnti == rnti)) {
+                  void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch);
+                  LOG_I(RRC, "clean_eNb_ulsch ulsch[%d] UE %x\n", i, rnti);
+                  clean_eNb_ulsch(ulsch);
+                }
 
-        ulsch = eNB_PHY->ulsch[i];
+                dlsch = eNB_PHY->dlsch[i][0];
 
-        if((ulsch != NULL) && (ulsch->rnti == rnti)) {
-          void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch);
-          LOG_I(RRC, "clean_eNb_ulsch ulsch[%d] UE %x\n", i, rnti);
-          clean_eNb_ulsch(ulsch);
-        }
+                if((dlsch != NULL) && (dlsch->rnti == rnti)) {
+                  void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch);
+                  LOG_I(RRC, "clean_eNb_dlsch dlsch[%d] UE %x \n", i, rnti);
+                  clean_eNb_dlsch(dlsch);
+                }
+              }
 
-        for (i=0; i<NUMBER_OF_UCI_VARS_MAX; i++) {
-          if(eNB_PHY->uci_vars[i].rnti == rnti) {
-            LOG_I(MAC, "clean eNb uci_vars[%d] UE %x \n",i, rnti);
-            memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI));
-          }
-        }
-	*/
+              ulsch = eNB_PHY->ulsch[i];
+
+              if((ulsch != NULL) && (ulsch->rnti == rnti)) {
+                void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch);
+                LOG_I(RRC, "clean_eNb_ulsch ulsch[%d] UE %x\n", i, rnti);
+                clean_eNb_ulsch(ulsch);
+              }
+
+              for (i=0; i<NUMBER_OF_UCI_VARS_MAX; i++) {
+                if(eNB_PHY->uci_vars[i].rnti == rnti) {
+                  LOG_I(MAC, "clean eNb uci_vars[%d] UE %x \n",i, rnti);
+                  memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI));
+                }
+              }
+        */
 
         if (flexran_agent_get_rrc_xface(mod_id)) {
           flexran_agent_get_rrc_xface(mod_id)->flexran_agent_notify_ue_state_change(
@@ -1496,7 +1499,7 @@ rrc_eNB_generate_RRCConnectionReestablishment(
                                  (struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
                                  (LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
                                  (LTE_MBSFN_AreaInfoList_r9_t *) NULL,
-			         (LTE_MBSFNAreaConfiguration_r9_t*) NULL
+                                 (LTE_MBSFNAreaConfiguration_r9_t *) NULL
                                 );
           break;
         }
@@ -2198,7 +2201,6 @@ rrc_eNB_generate_RRCConnectionRelease(
   uint8_t buffer[RRC_BUF_SIZE];
   uint16_t size = 0;
   int release_num;
-
   memset(buffer, 0, RRC_BUF_SIZE);
   T(T_ENB_RRC_CONNECTION_RELEASE, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
     T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
@@ -3601,20 +3603,19 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
                size,
                buffer,
                PDCP_TRANSMISSION_MODE_CONTROL);
-
   /* Refresh SRBs/DRBs */
   rrc_pdcp_config_asn1_req(ctxt_pP,
-                          *SRB_configList2, // NULL,
-                          *DRB_configList,
-                          NULL,
-                          0xff, // already configured during the securitymodecommand
-                          NULL,
-                          NULL,
-                          NULL
+                           *SRB_configList2, // NULL,
+                           *DRB_configList,
+                           NULL,
+                           0xff, // already configured during the securitymodecommand
+                           NULL,
+                           NULL,
+                           NULL
 #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
-                          , (LTE_PMCH_InfoList_r9_t *) NULL
+                           , (LTE_PMCH_InfoList_r9_t *) NULL
 #endif
-                          , NULL);
+                           , NULL);
 
   /* Refresh SRBs/DRBs */
   if (!NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type)) {
@@ -3627,7 +3628,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
                             0,
                             0
 #endif
-                            );
+                           );
   }
 
   free(Sparams);
@@ -4674,7 +4675,7 @@ rrc_eNB_process_MeasurementReport(
         for (int e_rab=0; e_rab < X2AP_ENDC_SGNB_ADDITION_REQ(msg).nb_e_rabs_tobeadded; e_rab++) {
           X2AP_ENDC_SGNB_ADDITION_REQ(msg).e_rabs_tobeadded[e_rab].e_rab_id = ue_context_pP->ue_context.e_rab[e_rab].param.e_rab_id;
           X2AP_ENDC_SGNB_ADDITION_REQ(msg).e_rabs_tobeadded[e_rab].gtp_teid = ue_context_pP->ue_context.e_rab[e_rab].param.gtp_teid;
-          X2AP_ENDC_SGNB_ADDITION_REQ(msg).e_rabs_tobeadded[e_rab].drb_ID = ue_context_pP->ue_context.DRB_configList->list.array[e_rab]->drb_Identity; 
+          X2AP_ENDC_SGNB_ADDITION_REQ(msg).e_rabs_tobeadded[e_rab].drb_ID = ue_context_pP->ue_context.DRB_configList->list.array[e_rab]->drb_Identity;
           memcpy(&X2AP_ENDC_SGNB_ADDITION_REQ(msg).e_rabs_tobeadded[e_rab].sgw_addr,
                  &ue_context_pP->ue_context.e_rab[e_rab].param.sgw_addr,
                  sizeof(transport_layer_addr_t));
@@ -5797,7 +5798,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
     (struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
     (LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
     (LTE_MBSFN_AreaInfoList_r9_t *) NULL,
-    (LTE_MBSFNAreaConfiguration_r9_t*) NULL
+    (LTE_MBSFNAreaConfiguration_r9_t *) NULL
   );
   // Configure target eNB SRB2
   /// SRB2
@@ -6349,20 +6350,19 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
     ue_context_pP->ue_context.rnti,
     rrc_eNB_mui,
     size);
-
   /* Refresh SRBs/DRBs */
   rrc_pdcp_config_asn1_req(ctxt_pP,
-                          *SRB_configList2, // NULL,
-                          *DRB_configList,
-                          NULL,
-                          0xff, // already configured during the securitymodecommand
-                          NULL,
-                          NULL,
-                          NULL
+                           *SRB_configList2, // NULL,
+                           *DRB_configList,
+                           NULL,
+                           0xff, // already configured during the securitymodecommand
+                           NULL,
+                           NULL,
+                           NULL
 #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
-                          , (LTE_PMCH_InfoList_r9_t *) NULL
+                           , (LTE_PMCH_InfoList_r9_t *) NULL
 #endif
-                          , NULL);
+                           , NULL);
 
   /* Refresh SRBs/DRBs */
   if (!NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type)) {
@@ -6375,7 +6375,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
                             0,
                             0
 #endif
-                            );
+                           );
   }
 
   free(quantityConfig->quantityConfigEUTRA->filterCoefficientRSRQ);
@@ -6421,6 +6421,7 @@ rrc_eNB_configure_rbs_handover(struct rrc_eNB_ue_context_s *ue_context_p, protoc
                            NULL,
                            NULL,
                            (LTE_PMCH_InfoList_r9_t *) NULL, NULL);
+
   if (!NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type)) {
     rrc_rlc_config_asn1_req(ctxt_pP,
                             ue_context_p->ue_context.SRB_configList,
@@ -6478,7 +6479,7 @@ rrc_eNB_configure_rbs_handover(struct rrc_eNB_ue_context_s *ue_context_p, protoc
     (struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
     (LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
     (LTE_MBSFN_AreaInfoList_r9_t *) NULL,
-    (LTE_MBSFNAreaConfiguration_r9_t*) NULL
+    (LTE_MBSFNAreaConfiguration_r9_t *) NULL
   );
 }
 
@@ -6561,6 +6562,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
                            kUPenc,
                            (LTE_PMCH_InfoList_r9_t *) NULL,
                            NULL);
+
   /* Refresh SRBs/DRBs */
   if (!NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type)) {
     rrc_rlc_config_asn1_req(ctxt_pP,
@@ -6570,7 +6572,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
                             (LTE_PMCH_InfoList_r9_t *) NULL,
                             0,
                             0
-                            );
+                           );
   }
 
   /* Set the SRB active in UE context */
@@ -6695,7 +6697,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
                                    (struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
                                    (LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
                                    (LTE_MBSFN_AreaInfoList_r9_t *) NULL,
-   				   (LTE_MBSFNAreaConfiguration_r9_t*) NULL
+                                   (LTE_MBSFNAreaConfiguration_r9_t *) NULL
                                   );
           }
         } else {        // remove LCHAN from MAC/PHY
@@ -6755,7 +6757,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
                                    (struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
                                    (LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
                                    (LTE_MBSFN_AreaInfoList_r9_t *) NULL,
-   				   (LTE_MBSFNAreaConfiguration_r9_t*) NULL
+                                   (LTE_MBSFNAreaConfiguration_r9_t *) NULL
                                   );
           }
         } // end else of if (ue_context_pP->ue_context.DRB_active[drb_id] == 0)
@@ -6918,7 +6920,7 @@ rrc_eNB_generate_RRCConnectionSetup(
                                      (struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
                                      (LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
                                      (LTE_MBSFN_AreaInfoList_r9_t *) NULL,
-   				     (LTE_MBSFNAreaConfiguration_r9_t*) NULL
+                                     (LTE_MBSFNAreaConfiguration_r9_t *) NULL
                                     );
               break;
             }
@@ -7054,6 +7056,16 @@ char openair_rrc_eNB_configuration(
   return 0;
 }
 
+static
+void rrc_eNB_generate_RRCConnectionReestablishmentReject_unknown_UE(protocol_ctxt_t *const ctxt_pP,
+    const int CC_id) {
+  struct rrc_eNB_ue_context_s *ue_context_p = rrc_eNB_get_next_free_ue_context(ctxt_pP, ctxt_pP->rnti);
+  rrc_eNB_generate_RRCConnectionReestablishmentReject(ctxt_pP,
+      ue_context_p,
+      CC_id);
+  ue_context_p->ue_context.ul_failure_timer = 500;  // 500 milliseconds to send the message and remove temporary entry
+}
+
 /*------------------------------------------------------------------------------*/
 int
 rrc_eNB_decode_ccch(
@@ -7132,12 +7144,14 @@ rrc_eNB_decode_ccch(
           uint16_t                          c_rnti = 0;
 
           if (rrcConnectionReestablishmentRequest->ue_Identity.physCellId != RC.rrc[ctxt_pP->module_id]->carrier[CC_id].physCellId) {
+            /* UE was moving from previous cell so quickly that RRCConnectionReestablishment for previous cell was recieved in this cell */
             LOG_E(RRC,
                   PROTOCOL_RRC_CTXT_UE_FMT" LTE_RRCConnectionReestablishmentRequest ue_Identity.physCellId(%ld) is not equal to current physCellId(%d), let's reject the UE\n",
                   PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
                   rrcConnectionReestablishmentRequest->ue_Identity.physCellId,
                   RC.rrc[ctxt_pP->module_id]->carrier[CC_id].physCellId);
-            rrc_eNB_generate_RRCConnectionReestablishmentReject(ctxt_pP, ue_context_p, CC_id);
+            rrc_eNB_generate_RRCConnectionReestablishmentReject_unknown_UE(ctxt_pP,
+                CC_id);
             break;
           }
 
@@ -7150,10 +7164,12 @@ rrc_eNB_decode_ccch(
 
           if (rrcConnectionReestablishmentRequest->ue_Identity.c_RNTI.size == 0 ||
               rrcConnectionReestablishmentRequest->ue_Identity.c_RNTI.size > 2) {
+            /* c_RNTI range error should not happen */
             LOG_E(RRC,
                   PROTOCOL_RRC_CTXT_UE_FMT" LTE_RRCConnectionReestablishmentRequest c_RNTI range error, let's reject the UE\n",
                   PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
-            rrc_eNB_generate_RRCConnectionReestablishmentReject(ctxt_pP, ue_context_p, CC_id);
+            rrc_eNB_generate_RRCConnectionReestablishmentReject_unknown_UE(ctxt_pP,
+                CC_id);
             break;
           }
 
@@ -7165,7 +7181,8 @@ rrc_eNB_decode_ccch(
             LOG_E(RRC,
                   PROTOCOL_RRC_CTXT_UE_FMT" LTE_RRCConnectionReestablishmentRequest without UE context, let's reject the UE\n",
                   PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
-            rrc_eNB_generate_RRCConnectionReestablishmentReject(ctxt_pP, ue_context_p, CC_id);
+            rrc_eNB_generate_RRCConnectionReestablishmentReject_unknown_UE(ctxt_pP,
+                CC_id);
             break;
           }
 
@@ -7232,8 +7249,10 @@ rrc_eNB_decode_ccch(
 
           if(ue_context_p->ue_context.ue_reestablishment_timer > 0) {
             LOG_E(RRC,
-                  PROTOCOL_RRC_CTXT_UE_FMT" RRRCConnectionReconfigurationComplete(Previous) don't receive, delete the Previous UE\n",
-                  PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
+                  PROTOCOL_RRC_CTXT_UE_FMT" RRRCConnectionReconfigurationComplete(Previous) don't receive, delete the Previous UE,\nprevious Status %d, new Status RRC_RECONFIGURED\n",
+                  PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
+                  ue_context_p->ue_context.Status
+                 );
             ue_context_p->ue_context.Status = RRC_RECONFIGURED;
             protocol_ctxt_t  ctxt_old_p;
             PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt_old_p,
@@ -7818,8 +7837,7 @@ rrc_eNB_decode_dcch(
               LOG_I(RRC,
                     PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_HO_EXECUTION (xid %ld)\n",
                     PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
-            }
-            else if(ue_context_p->ue_context.Status == RRC_NR_NSA){
+            } else if(ue_context_p->ue_context.Status == RRC_NR_NSA) {
               //Looking for a condition to trigger S1AP E-RAB-Modification-indication, based on the reception of RRCConnectionReconfigurationComplete
               //including NR specific elements.
               if(ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.
@@ -7847,8 +7865,7 @@ rrc_eNB_decode_dcch(
                   }
                 }
               }
-            }
-            else {
+            } else {
               dedicated_DRB = 0;
               ue_context_p->ue_context.Status = RRC_RECONFIGURED;
               LOG_I(RRC,
@@ -7857,7 +7874,6 @@ rrc_eNB_decode_dcch(
             }
 
             ue_context_p->ue_context.reestablishment_xid = -1;
-
           } else {
             dedicated_DRB = 1;
             ue_context_p->ue_context.Status = RRC_RECONFIGURED;
@@ -8393,8 +8409,7 @@ rrc_eNB_decode_dcch(
       case LTE_UL_DCCH_MessageType__c1_PR_mbmsCountingResponse_r10:
         T(T_ENB_RRC_MBMS_COUNTING_RESPONSE_R10, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
           T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
-    	LOG_E(RRC, "THINH [LTE_UL_DCCH_MessageType__c1_PR_mbmsCountingResponse_r10]\n");
-
+        LOG_E(RRC, "THINH [LTE_UL_DCCH_MessageType__c1_PR_mbmsCountingResponse_r10]\n");
         break;
 
       case LTE_UL_DCCH_MessageType__c1_PR_interFreqRSTDMeasurementIndication_r10:
@@ -8422,46 +8437,46 @@ rrc_eNB_decode_dcch(
 
       case LTE_UL_DCCH_MessageType__messageClassExtension_PR_c2: //SidelinkUEInformation
         if(ul_dcch_msg->message.choice.messageClassExtension.choice.c2.present ==
-          LTE_UL_DCCH_MessageType__messageClassExtension__c2_PR_scgFailureInformationNR_r15){
+            LTE_UL_DCCH_MessageType__messageClassExtension__c2_PR_scgFailureInformationNR_r15) {
           if (ul_dcch_msg->message.choice.messageClassExtension.choice.c2.choice.scgFailureInformationNR_r15.
-            criticalExtensions.present == LTE_SCGFailureInformationNR_r15__criticalExtensions_PR_c1){
+              criticalExtensions.present == LTE_SCGFailureInformationNR_r15__criticalExtensions_PR_c1) {
             if (ul_dcch_msg->message.choice.messageClassExtension.choice.c2.choice.scgFailureInformationNR_r15.criticalExtensions.
-              choice.c1.present == LTE_SCGFailureInformationNR_r15__criticalExtensions__c1_PR_scgFailureInformationNR_r15){
+                choice.c1.present == LTE_SCGFailureInformationNR_r15__criticalExtensions__c1_PR_scgFailureInformationNR_r15) {
               if (ul_dcch_msg->message.choice.messageClassExtension.choice.c2.choice.scgFailureInformationNR_r15.criticalExtensions.
-                choice.c1.choice.scgFailureInformationNR_r15.failureReportSCG_NR_r15!=NULL) {
+                  choice.c1.choice.scgFailureInformationNR_r15.failureReportSCG_NR_r15!=NULL) {
                 LOG_E(RRC, "Received NR scgFailureInformation from UE, failure type: %ld \n",
-                  ul_dcch_msg->message.choice.messageClassExtension.choice.c2.choice.scgFailureInformationNR_r15.criticalExtensions.
-                  choice.c1.choice.scgFailureInformationNR_r15.failureReportSCG_NR_r15->failureType_r15);
+                      ul_dcch_msg->message.choice.messageClassExtension.choice.c2.choice.scgFailureInformationNR_r15.criticalExtensions.
+                      choice.c1.choice.scgFailureInformationNR_r15.failureReportSCG_NR_r15->failureType_r15);
                 xer_fprint(stdout, &asn_DEF_LTE_UL_DCCH_Message, (void *)ul_dcch_msg);
               }
             }
           }
-        }
-        else if(ul_dcch_msg->message.choice.messageClassExtension.choice.c2.present == LTE_UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12){
+        } else if(ul_dcch_msg->message.choice.messageClassExtension.choice.c2.present == LTE_UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12) {
           //case UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12: //SidelinkUEInformation
           LOG_I(RRC,"THINH [LTE_UL_DCCH_MessageType__messageClassExtension_PR_c2]\n");
           LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)Rx_sdu,sdu_sizeP,
-                    "[MSG] RRC SidelinkUEInformation \n");
+                      "[MSG] RRC SidelinkUEInformation \n");
           MSC_LOG_RX_MESSAGE(
-              MSC_RRC_ENB,
-              MSC_RRC_UE,
-              Rx_sdu,
-              sdu_sizeP,
-              MSC_AS_TIME_FMT" SidelinkUEInformation UE %x size %u",
-              MSC_AS_TIME_ARGS(ctxt_pP),
-              ue_context_p->ue_context.rnti,
-              sdu_sizeP);
-          LOG_I(RRC,
-            PROTOCOL_RRC_CTXT_UE_FMT" RLC RB %02d --- RLC_DATA_IND %d bytes "
-            "(SidelinkUEInformation) ---> RRC_eNB\n",
-            PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
-            DCCH,
+            MSC_RRC_ENB,
+            MSC_RRC_UE,
+            Rx_sdu,
+            sdu_sizeP,
+            MSC_AS_TIME_FMT" SidelinkUEInformation UE %x size %u",
+            MSC_AS_TIME_ARGS(ctxt_pP),
+            ue_context_p->ue_context.rnti,
             sdu_sizeP);
+          LOG_I(RRC,
+                PROTOCOL_RRC_CTXT_UE_FMT" RLC RB %02d --- RLC_DATA_IND %d bytes "
+                "(SidelinkUEInformation) ---> RRC_eNB\n",
+                PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
+                DCCH,
+                sdu_sizeP);
           rrc_eNB_process_SidelinkUEInformation(
             ctxt_pP,
             ue_context_p,
             &ul_dcch_msg->message.choice.messageClassExtension.choice.c2.choice.sidelinkUEInformation_r12);
-          }
+        }
+
         break;
 
       default:
@@ -8628,17 +8643,14 @@ void rrc_enb_init(void) {
 
 //-----------------------------------------------------------------------------
 void process_successful_rlc_sdu_indication(int instance,
-                                           int rnti,
-                                           int message_id)
-{
+    int rnti,
+    int message_id) {
   int release_num;
   int release_total;
   RRC_release_ctrl_t *release_ctrl;
-
   /* Check if the message sent was RRC Connection Release.
    * If yes then continue the release process.
    */
-
   pthread_mutex_lock(&rrc_release_freelist);
 
   if (rrc_release_info.num_UEs > 0) {
@@ -8680,14 +8692,11 @@ void process_successful_rlc_sdu_indication(int instance,
 }
 
 //-----------------------------------------------------------------------------
-void process_unsuccessful_rlc_sdu_indication(int instance, int rnti)
-{
+void process_unsuccessful_rlc_sdu_indication(int instance, int rnti) {
   int release_num;
   int release_total;
   RRC_release_ctrl_t *release_ctrl;
-
   /* radio link failure detected by RLC layer, remove UE properly */
-
   pthread_mutex_lock(&rrc_release_freelist);
 
   /* first, check if the rnti is in the list rrc_release_info.RRC_release_ctrl */
@@ -8755,8 +8764,7 @@ void process_rlc_sdu_indication(int instance,
                                 int rnti,
                                 int is_successful,
                                 int srb_id,
-                                int message_id)
-{
+                                int message_id) {
   if (is_successful)
     process_successful_rlc_sdu_indication(instance, rnti, message_id);
   else
@@ -9120,51 +9128,49 @@ void rrc_eNB_process_AdditionResponseInformation(const module_id_t enb_mod_idP,
     return;
   }
 
-    protocol_ctxt_t ctxt;
-    rrc_eNB_ue_context_t *ue_context;
-    unsigned char buffer[8192];
-    int size;
-
-    ue_context = rrc_eNB_get_ue_context(RC.rrc[enb_mod_idP], m->rnti);
-    if (ue_context) {
-      ue_context->ue_context.nb_of_modify_endc_e_rabs = m->nb_e_rabs_admitted_tobeadded;
-
-      int j=0;
-      while(j < m->nb_e_rabs_admitted_tobeadded){
-	for (int e_rab_idx=0; e_rab_idx<ue_context->ue_context.setup_e_rabs; e_rab_idx++){
-	  //Update ue_context information with gNB's address and new GTP tunnel ID
-	  if( ue_context->ue_context.e_rab[e_rab_idx].param.e_rab_id == m->e_rabs_admitted_tobeadded[j].e_rab_id){
-	    memcpy(ue_context->ue_context.gnb_gtp_endc_addrs[e_rab_idx].buffer,
-		   m->e_rabs_admitted_tobeadded[j].gnb_addr.buffer,
-		   m->e_rabs_admitted_tobeadded[j].gnb_addr.length);
-	    ue_context->ue_context.gnb_gtp_endc_addrs[e_rab_idx].length = m->e_rabs_admitted_tobeadded[j].gnb_addr.length;
-	    ue_context->ue_context.gnb_gtp_endc_teid[e_rab_idx] = m->e_rabs_admitted_tobeadded[j].gtp_teid;
-	    ue_context->ue_context.e_rab[e_rab_idx].status = E_RAB_STATUS_TOMODIFY;
-	    break;
-	  }
-	}
-	j++;
+  protocol_ctxt_t ctxt;
+  rrc_eNB_ue_context_t *ue_context;
+  unsigned char buffer[8192];
+  int size;
+  ue_context = rrc_eNB_get_ue_context(RC.rrc[enb_mod_idP], m->rnti);
+
+  if (ue_context) {
+    ue_context->ue_context.nb_of_modify_endc_e_rabs = m->nb_e_rabs_admitted_tobeadded;
+    int j=0;
+
+    while(j < m->nb_e_rabs_admitted_tobeadded) {
+      for (int e_rab_idx=0; e_rab_idx<ue_context->ue_context.setup_e_rabs; e_rab_idx++) {
+        //Update ue_context information with gNB's address and new GTP tunnel ID
+        if( ue_context->ue_context.e_rab[e_rab_idx].param.e_rab_id == m->e_rabs_admitted_tobeadded[j].e_rab_id) {
+          memcpy(ue_context->ue_context.gnb_gtp_endc_addrs[e_rab_idx].buffer,
+                 m->e_rabs_admitted_tobeadded[j].gnb_addr.buffer,
+                 m->e_rabs_admitted_tobeadded[j].gnb_addr.length);
+          ue_context->ue_context.gnb_gtp_endc_addrs[e_rab_idx].length = m->e_rabs_admitted_tobeadded[j].gnb_addr.length;
+          ue_context->ue_context.gnb_gtp_endc_teid[e_rab_idx] = m->e_rabs_admitted_tobeadded[j].gtp_teid;
+          ue_context->ue_context.e_rab[e_rab_idx].status = E_RAB_STATUS_TOMODIFY;
+          break;
+        }
       }
 
-      PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt,
-                                    0,
-                                    ENB_FLAG_YES,
-                                    m->rnti,
-                                    0, 0);
-
-      size = rrc_eNB_generate_RRCConnectionReconfiguration_endc(&ctxt, ue_context, buffer, 8192, scg_CellGroupConfig, nr1_conf);
-
-      rrc_data_req(&ctxt,
-                   DCCH,
-                   rrc_eNB_mui++,
-                   SDU_CONFIRM_NO,
-                   size,
-                   buffer,
-                   PDCP_TRANSMISSION_MODE_CONTROL);
-    } else {
-      LOG_E(F1AP, "no ue_context for RNTI %x, acknowledging release\n", m->rnti);
+      j++;
     }
 
+    PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt,
+                                  0,
+                                  ENB_FLAG_YES,
+                                  m->rnti,
+                                  0, 0);
+    size = rrc_eNB_generate_RRCConnectionReconfiguration_endc(&ctxt, ue_context, buffer, 8192, scg_CellGroupConfig, nr1_conf);
+    rrc_data_req(&ctxt,
+                 DCCH,
+                 rrc_eNB_mui++,
+                 SDU_CONFIRM_NO,
+                 size,
+                 buffer,
+                 PDCP_TRANSMISSION_MODE_CONTROL);
+  } else {
+    LOG_E(F1AP, "no ue_context for RNTI %x, acknowledging release\n", m->rnti);
+  }
 }
 
 //-----------------------------------------------------------------------------
@@ -9505,8 +9511,8 @@ void *rrc_enb_process_itti_msg(void *notUsed) {
       break;
 
     case M2AP_MCE_CONFIGURATION_UPDATE:
-       rrc_eNB_process_M2AP_MCE_CONFIGURATION_UPDATE(&ctxt,&M2AP_MCE_CONFIGURATION_UPDATE(msg_p));
-       break;
+      rrc_eNB_process_M2AP_MCE_CONFIGURATION_UPDATE(&ctxt,&M2AP_MCE_CONFIGURATION_UPDATE(msg_p));
+      break;
 
     case RLC_SDU_INDICATION:
       process_rlc_sdu_indication(instance,
@@ -9550,7 +9556,7 @@ rrc_enb_task(
       //if (go_nr) rrc_go_nr();
     }
   }
-  }
+}
 
 /*------------------------------------------------------------------------------*/
 void
diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h
index 8f2908e52aa182f11d8067d4c005addf4f01f778..18b60aa611721c54e5652f2602503e6c184f2964 100644
--- a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h
+++ b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h
@@ -16,13 +16,13 @@
 #include "NwEvt.h"
 #include "NwLog.h"
 
+#ifndef __NW_MINI_LOG_MGR_H__
+#define __NW_MINI_LOG_MGR_H__
+
 #ifndef NW_ASSERT
 #define NW_ASSERT assert
 #endif
 
-#ifndef __NW_MINI_LOG_MGR_H__
-#define __NW_MINI_LOG_MGR_H__
-
 extern uint32_t g_log_level;
 
 
diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h
index b17228c9cf725e313bea2af3a279bbc1d8ed9528..a1f16ff89b9010ddd59fa38d563599c76427989a 100644
--- a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h
+++ b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h
@@ -17,13 +17,13 @@
 #include "NwEvt.h"
 #include "NwLog.h"
 
+#ifndef __NW_MINI_TMR_MGR_H__
+#define __NW_MINI_TMR_MGR_H__
+
 #ifndef NW_ASSERT
 #define NW_ASSERT assert
 #endif
 
-#ifndef __NW_MINI_TMR_MGR_H__
-#define __NW_MINI_TMR_MGR_H__
-
 typedef struct {
   NwEventT      ev;
   void*         timeoutArg;
diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h
index 2e19ebbb8eec047ddc9ddea0d4722f2102e33256..568c5b07969d596460ead54753b4386201bcbd10 100644
--- a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h
+++ b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h
@@ -17,13 +17,13 @@
 #include "NwEvt.h"
 #include "NwLog.h"
 
+#ifndef __NW_MINI_UDP_ENTITY_H__
+#define __NW_MINI_UDP_ENTITY_H__
+
 #ifndef NW_ASSERT
 #define NW_ASSERT assert
 #endif
 
-#ifndef __NW_MINI_UDP_ENTITY_H__
-#define __NW_MINI_UDP_ENTITY_H__
-
 typedef struct {
   uint32_t        hSocket;
   NwEventT      ev;
diff --git a/targets/COMMON/threads_t.h b/targets/COMMON/threads_t.h
index 0671f409883256b4db50e1c9c68778a1840ae5ef..5fb1645444bce8fa6e998e9ee6bb777679ad65cc 100644
--- a/targets/COMMON/threads_t.h
+++ b/targets/COMMON/threads_t.h
@@ -1,5 +1,5 @@
-#ifndef _THREADS_T_H_
-#define _THREADS_T_H_
+#ifndef _TARGETS_COMMON_THREADS_T_H_
+#define _TARGETS_COMMON_THREADS_T_H_
 
 typedef struct threads_s {
   int main;
@@ -18,4 +18,4 @@ typedef struct threads_s {
   //int dlsch_td1_three;
 } threads_t;
 
-#endif /* _THREADS_T_H_ */
+#endif /* _TARGETS_COMMON_THREADS_T_H_ */
diff --git a/targets/RT/USER/stats.h b/targets/RT/USER/stats.h
index 264c8f7af028556a4aa5f3bbf293e45082e68db6..15ee4a808765c73b1c3cb2b77c6bf0671d5f842c 100644
--- a/targets/RT/USER/stats.h
+++ b/targets/RT/USER/stats.h
@@ -21,8 +21,8 @@
 
 /* Header file generated by fdesign on Thu Aug 28 12:13:51 2014 */
 
-#ifndef FD_stats_form_h_
-#define FD_stats_form_h_
+#ifndef _TARGETS_RT_USER_STATS_H_
+#define _TARGETS_RT_USER_STATS_H_
 
 #include <forms.h>
 
@@ -43,4 +43,4 @@ typedef struct {
 
 extern FD_stats_form * create_form_stats_form( void );
 
-#endif /* FD_stats_form_h_ */
+#endif /* _TARGETS_RT_USER_STATS_H_ */