diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index 1c8f3d221e9debd0bd0232c9f8ce082d6a096c8c..feee27bce79619853328c6b3d45457632e9936c5 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -275,6 +275,7 @@ endif (${RTAI})
 # New C code source file, cmake must be re-run (instead of re-running make only)
 #############
 set(asn1c_call "${OPENAIR_CMAKE}/tools/generate_asn1")
+set(fix_asn1c_call "${OPENAIR_CMAKE}/tools/fix_asn1")
 set(asn1_generated_dir ${OPENAIR_BIN_DIR})
 
 set(protoc_call "${OPENAIR_CMAKE}/tools/generate_protobuf")
@@ -296,7 +297,19 @@ set (RRC_FULL_DIR ${asn1_generated_dir}/${RRC_ASN1_VERSION})
 if(NOT EXISTS ${asn1c_call})
   message( FATAL_ERROR "The script ${asn1c_call} must be present" )
 endif(NOT EXISTS ${asn1c_call})
-execute_process(COMMAND ${asn1c_call}  ${RRC_FULL_DIR} ${RRC_GRAMMAR})
+execute_process(COMMAND ${asn1c_call}  ${RRC_FULL_DIR} ${RRC_GRAMMAR}
+                RESULT_VARIABLE ret)
+if (NOT ${ret} STREQUAL 0)
+  message(FATAL_ERROR "${asn1c_call}: error")
+endif (NOT ${ret} STREQUAL 0)
+if(NOT EXISTS ${fix_asn1c_call})
+  message( FATAL_ERROR "The script ${fix_asn1c_call} must be present" )
+endif(NOT EXISTS ${fix_asn1c_call})
+execute_process(COMMAND ${fix_asn1c_call} ${RRC_FULL_DIR} RRC ${RRC_ASN1_VERSION}
+                RESULT_VARIABLE ret)
+if (NOT ${ret} STREQUAL 0)
+  message(FATAL_ERROR "${fix_asn1c_call}: error")
+endif (NOT ${ret} STREQUAL 0)
 file(GLOB rrc_source ${RRC_FULL_DIR}/*.c)
 set(rrc_source  ${rrc_source} ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1_msg.c)
 file(GLOB rrc_h ${RRC_FULL_DIR}/*.h)
@@ -310,6 +323,7 @@ include_directories ("${RRC_FULL_DIR}")
 add_custom_command (
   OUTPUT ${RRC_FULL_DIR}/asn1_constants.h
   COMMAND ${asn1c_call}  ${RRC_FULL_DIR} ${RRC_GRAMMAR}
+  COMMAND ${fix_asn1c_call}  ${RRC_FULL_DIR} RRC ${RRC_ASN1_VERSION}
   DEPENDS ${RRC_GRAMMAR}
   )
 
@@ -338,7 +352,21 @@ set(S1AP_ASN_FILES
   )
 set(S1AP_C_DIR ${asn1_generated_dir}/${ASN1RELDIR})
 #message("calling ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}")
-execute_process(COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES})
+execute_process(COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}
+                RESULT_VARIABLE ret)
+if (NOT ${ret} STREQUAL 0)
+  message(FATAL_ERROR "${asn1c_call}: error")
+endif (NOT ${ret} STREQUAL 0)
+execute_process(COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1AP_ASN_DIR}/S1AP-PDU-Contents.asn -o${S1AP_C_DIR}
+                RESULT_VARIABLE ret)
+if (NOT ${ret} STREQUAL 0)
+  message(FATAL_ERROR "asn1tostruct.py: error")
+endif (NOT ${ret} STREQUAL 0)
+execute_process(COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_VERSION}
+                RESULT_VARIABLE ret)
+if (NOT ${ret} STREQUAL 0)
+  message(FATAL_ERROR "${fix_asn1c_call}: error")
+endif (NOT ${ret} STREQUAL 0)
 file(GLOB S1AP_source ${S1AP_C_DIR}/*.c)
 
 set(S1AP_OAI_generated
@@ -355,6 +383,7 @@ add_custom_command (
   OUTPUT ${S1AP_OAI_generated}
   COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}
   COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1AP_ASN_DIR}/S1AP-PDU-Contents.asn -o${S1AP_C_DIR}
+  COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_VERSION}
   DEPENDS ${S1AP_ASN_FILES}
   )
 add_library(S1AP_LIB
@@ -406,7 +435,21 @@ set(X2AP_ASN_FILES
 
 set(X2AP_C_DIR ${asn1_generated_dir}/${ASN1RELDIR})
 #message("calling ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}")
-execute_process(COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES})
+execute_process(COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}
+                RESULT_VARIABLE ret)
+if (NOT ${ret} STREQUAL 0)
+  message(FATAL_ERROR "${asn1c_call}: error")
+endif (NOT ${ret} STREQUAL 0)
+execute_process(COMMAND python ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR}
+                RESULT_VARIABLE ret)
+if (NOT ${ret} STREQUAL 0)
+  message(FATAL_ERROR "asn1tostruct.py: error")
+endif (NOT ${ret} STREQUAL 0)
+execute_process(COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_VERSION}
+                RESULT_VARIABLE ret)
+if (NOT ${ret} STREQUAL 0)
+  message(FATAL_ERROR "${fix_asn1c_call}: error")
+endif (NOT ${ret} STREQUAL 0)
 file(GLOB X2AP_source ${X2AP_C_DIR}/*.c)
 
 set(X2AP_OAI_generated
@@ -423,6 +466,7 @@ add_custom_command (
   OUTPUT ${X2AP_OAI_generated}
   COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}
   COMMAND python ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR}
+  COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_VERSION}
   DEPENDS ${X2AP_ASN_FILES}
   )
 
diff --git a/cmake_targets/autotests/run_compilation_autotests.bash b/cmake_targets/autotests/run_compilation_autotests.bash
index afe7aa4873ccd3c626a449ef11e9289f5b17ba9e..a7b056dc811d32b2d7be1b09258ff1b60ba2d71b 100755
--- a/cmake_targets/autotests/run_compilation_autotests.bash
+++ b/cmake_targets/autotests/run_compilation_autotests.bash
@@ -20,7 +20,7 @@ test_compile() {
     compile_prog=$2
     exec_prog=$3
     build_dir=$tdir/$1/build
-    log_file=$tdir/log/test.$1.txt
+    log_file=$tdir/log/test.$1.$2.$5.txt
     target=$5
     echo "Compiling test case $test_name. Log file = $log_file"
     rm -fr $build_dir
@@ -34,10 +34,10 @@ test_compile() {
     if [ -s $exec_prog ] ; then
         cp $exec_prog $tdir/bin/`basename $exec_prog`.$target.$test_name
         echo_success "$test_name $exec_prog $target compiled"
-        xUnit_success "compilation" $test_name "PASS" 1
+        xUnit_success "compilation" $test_name "PASS" 1 "$results_file"
     else
         echo_error "$test_name $exec_prog $target compilation failed"
-        xUnit_fail "compilation" $test_name "FAIL" 1
+        xUnit_fail "compilation" $test_name "FAIL" 1 "$results_file"
     fi
 }
 
diff --git a/cmake_targets/autotests/run_exec_autotests.bash b/cmake_targets/autotests/run_exec_autotests.bash
index a98a071bae39a3e1d539e2f5897dd7eb4a36fefc..1029acc1e6d7a1637d71ef2c1412a0cf6c81d3b3 100755
--- a/cmake_targets/autotests/run_exec_autotests.bash
+++ b/cmake_targets/autotests/run_exec_autotests.bash
@@ -388,6 +388,7 @@ until [ -z "$1" ]
        -g | --run-group)
             RUN_GROUP=1
             test_case_group=$2
+            test_case_group=`sed "s/\+/\*/g" <<<  "${test_case_group}"` # Replace + with * for bash string substituion
             echo_info "Will execute test cases only in group $test_case_group"
             shift 2;;
         -p)
@@ -423,9 +424,17 @@ rm -fr $tmpfile
 xml_conf="$OPENAIR_DIR/cmake_targets/autotests/test_case_list.xml"
 
 test_case_list=`xmlstarlet sel -T -t -m /testCaseList/testCase -s A:N:- "@id" -v "@id" -n $xml_conf`
+test_case_excl_list=`xmlstarlet sel -t -v "/testCaseList/TestCaseExclusionList" $xml_conf`
+echo "Test Case Exclusion List = $test_case_excl_list "
+
+test_case_excl_list=`sed "s/\+/\*/g" <<< "$test_case_excl_list" ` # Replace + with * for bash string substituion
+
+read -a test_case_excl_array <<< "$test_case_excl_list"
 
 echo "test_case_list = $test_case_list"
 
+echo "Test Case Exclusion List = $test_case_excl_list \n"
+
 readarray -t test_case_array <<<"$test_case_list"
 
 read -a test_case_group_array <<< "$test_case_group"
@@ -447,6 +456,15 @@ for search_expr in "${test_case_array[@]}"
        flag_run_test_case=1
     fi
 
+    for search_excl in "${test_case_excl_array[@]}"
+       do  
+          if [[ $search_expr == $search_excl ]];then
+             flag_run_test_case=0
+             echo_info "Test case $search_expr match found in test case excl group. Will skip the test case for execution..."
+             break
+          fi
+       done
+
 
     #We skip this test case if it is not in the group list
     if [ "$flag_run_test_case" -ne "1" ]; then
diff --git a/cmake_targets/tools/fix_asn1 b/cmake_targets/tools/fix_asn1
new file mode 100755
index 0000000000000000000000000000000000000000..dcc00d5e37240853d81231ad7e451fe6c249838f
--- /dev/null
+++ b/cmake_targets/tools/fix_asn1
@@ -0,0 +1,177 @@
+#!/bin/bash
+
+# in those arrays, each line is:
+#   <file> <sha1sum of file (without line 4 which changes depending on the location of the files)> <patch to apply to file>
+
+RRC_Rel10=(
+  "SystemInformation-r8-IEs.h" 603cd6615cff36ec7020692d72c0d6de7c4859cb "fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff"
+)
+
+X2AP_Rel11_2=(
+  "X2ap-CriticalityDiagnostics-IE-List.h" ae96308b37fcbcbf39da5012e42968135fc5f27b "fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff"
+  "NativeInteger.c"                       9f173e87daa1e7378618dbb060a10aae752d74be "fix_asn1.data/X2AP.rel11.2/NativeInteger.c.diff"
+  "constr_SET_OF.c"                       5c8765a1e0fc44a48e406d0aa7628004bf3aac2a "fix_asn1.data/X2AP.rel11.2/constr_SET_OF.c.diff"
+)
+
+S1AP_Rel10_5=(
+  "NativeInteger.c" 9f173e87daa1e7378618dbb060a10aae752d74be "fix_asn1.data/S1AP.rel10.5/NativeInteger.c.diff"
+  "constr_SET_OF.c" 5c8765a1e0fc44a48e406d0aa7628004bf3aac2a "fix_asn1.data/S1AP.rel10.5/constr_SET_OF.c.diff"
+)
+
+red_color="$(tput setaf 1)"
+green_color="$(tput setaf 2)"
+reset_color="$(tput sgr0)"
+
+function error()
+{
+  echo -e "$red_color"ERROR: "$@""$reset_color"
+  exit 1
+}
+
+function check_sha1()
+{
+  local file="$1"
+  local target_sha1="$2"
+
+  if [ ! -f "$file" ]
+  then
+    error "$file: no such file"
+  fi
+
+  # we don't use the line 4 of the file
+  # it contains the location of the ASN1 grammar
+  # and this location is not the same on every
+  # installation (this is for *.h files, for *.c
+  # files it's no big deal to skip that line)
+  local computed_sha1=$(sed 4d "$file" | sha1sum | cut -f 1 -d ' ')
+
+  if [ "$target_sha1" != "$computed_sha1" ]
+  then
+    error "$file: wrong SHA1"
+  fi
+}
+
+function patch_file()
+{
+  local patch="$1"
+  local file="$2"
+
+  echo -e "$green_color""patch file $file with $OPENAIR_DIR/cmake_targets/tools/$patch""$reset_color"
+
+  patch "$file" "$OPENAIR_DIR/cmake_targets/tools/$patch"
+  if [ $? -ne 0 ]
+  then
+    error "patching of $file with $OPENAIR_DIR/cmake_targets/tools/$patch failed"
+  fi
+}
+
+function apply_patches()
+{
+  local directory="$1"
+  local array=$2
+  local len=$3       # the length could be computed locally but the way to do it is not clear to me [CROUX]
+
+  local i
+  local file
+  local sha1
+  local patch
+  local item
+
+  for (( i = 0; i < $len; i += 3 ))
+  do
+    # special bash syntax to access the array
+    item=$array[$i];       file=${!item}
+    item=$array[$((i+1))]; sha1=${!item}
+    item=$array[$((i+2))]; patch=${!item}
+    check_sha1 "$directory/$file" "$sha1"
+    patch_file "$patch" "$directory/$file"
+  done
+}
+
+function patch_rrc()
+{
+  local directory="$1"
+  local version="$2"
+
+  case "$version" in
+    Rel10 )
+      echo "patching RRC files release 10"
+      apply_patches "$directory" RRC_Rel10 ${#RRC_Rel10[*]}
+      ;;
+    Rel8 )
+      echo "patching RRC files release 8 TODO?"
+      ;;
+    * )
+      error unknwon/unhandled RRC version \'"$version"\'
+      ;;
+  esac
+}
+
+function patch_x2ap()
+{
+  local directory="$1"
+  local version="$2"
+
+  case "$version" in
+    R11 )
+      echo "patching X2AP files release 11.2"
+      apply_patches "$directory" X2AP_Rel11_2 ${#X2AP_Rel11_2[*]}
+      ;;
+    * )
+      error unknwon/unhandled X2AP version \'"$version"\'
+      ;;
+  esac
+}
+
+function patch_s1ap()
+{
+  local directory="$1"
+  local version="$2"
+
+  case "$version" in
+    R10 )
+      echo "patching S1AP files release 10.5"
+      apply_patches "$directory" S1AP_Rel10_5 ${#S1AP_Rel10_5[*]}
+      ;;
+    * )
+      error unknwon/unhandled S1AP version \'"$version"\'
+      ;;
+  esac
+}
+
+function main()
+{
+  if [ $# -ne 3 ]
+  then
+    echo "ERROR: pass <output directory> <module> <version>"
+    exit 1
+  fi
+
+  if [ x"$OPENAIR_DIR" = x ]
+  then
+    error "the variable OPENAIR_DIR is not set"
+  fi
+
+  local directory="$1"
+  local module="$2"
+  local version="$3"
+
+  case "$module" in
+    RRC )
+      patch_rrc "$directory" "$version"
+      ;;
+    X2AP )
+      patch_x2ap "$directory" "$version"
+      ;;
+    S1AP )
+      patch_s1ap "$directory" "$version"
+      ;;
+    * )
+      error unknown module "$module"
+      ;;
+  esac
+
+  exit 0
+}
+
+main "$@"
diff --git a/cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff b/cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff
new file mode 100644
index 0000000000000000000000000000000000000000..525e35ac9e452891513ef8c78c720cff108a5d16
--- /dev/null
+++ b/cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff
@@ -0,0 +1,23 @@
+57,61d56
+< /* SystemInformation-r8-IEs */
+< typedef struct SystemInformation_r8_IEs {
+< 	struct SystemInformation_r8_IEs__sib_TypeAndInfo {
+< 		A_SEQUENCE_OF(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member {
+< 			SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR present;
+79c74,78
+< 			} choice;
+---
+> 			};
+> 
+> 		struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member {
+> 			SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR present;
+> 			union SystemInformation_r8_IEs__sib_TypeAndInfo__Member_u choice;
+83c82,87
+< 		} ) list;
+---
+> 		};
+> 
+> /* SystemInformation-r8-IEs */
+> typedef struct SystemInformation_r8_IEs {
+> 	struct SystemInformation_r8_IEs__sib_TypeAndInfo {
+> 		A_SEQUENCE_OF(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member) list;
diff --git a/cmake_targets/tools/fix_asn1.data/S1AP.rel10.5/NativeInteger.c.diff b/cmake_targets/tools/fix_asn1.data/S1AP.rel10.5/NativeInteger.c.diff
new file mode 100644
index 0000000000000000000000000000000000000000..3b51426ad3fa008bec5131cd68d2bb0ea99d7750
--- /dev/null
+++ b/cmake_targets/tools/fix_asn1.data/S1AP.rel10.5/NativeInteger.c.diff
@@ -0,0 +1,8 @@
+283c283
+< 	int dynamic = 0;
+---
+> 	//int dynamic = 0;
+290c290
+< 		dynamic = 1;
+---
+> 		//dynamic = 1;
diff --git a/cmake_targets/tools/fix_asn1.data/S1AP.rel10.5/constr_SET_OF.c.diff b/cmake_targets/tools/fix_asn1.data/S1AP.rel10.5/constr_SET_OF.c.diff
new file mode 100644
index 0000000000000000000000000000000000000000..3ceaf5e3e5ccef48746cf5abf2952aa0c6910224
--- /dev/null
+++ b/cmake_targets/tools/fix_asn1.data/S1AP.rel10.5/constr_SET_OF.c.diff
@@ -0,0 +1,4 @@
+1007c1007
+< 				(int)nelems, (int)ct ? ct->effective_bits : -1);
+---
+> 				(int)nelems, ct ? ct->effective_bits : -1);
diff --git a/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/NativeInteger.c.diff b/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/NativeInteger.c.diff
new file mode 100644
index 0000000000000000000000000000000000000000..3b51426ad3fa008bec5131cd68d2bb0ea99d7750
--- /dev/null
+++ b/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/NativeInteger.c.diff
@@ -0,0 +1,8 @@
+283c283
+< 	int dynamic = 0;
+---
+> 	//int dynamic = 0;
+290c290
+< 		dynamic = 1;
+---
+> 		//dynamic = 1;
diff --git a/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff b/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff
new file mode 100644
index 0000000000000000000000000000000000000000..6ea7b2454eb80b1cf1c34b9bd4c320b20b6f6dd8
--- /dev/null
+++ b/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff
@@ -0,0 +1,15 @@
+29,31c29
+< /* X2ap-CriticalityDiagnostics-IE-List */
+< typedef struct X2ap_CriticalityDiagnostics_IE_List {
+< 	A_SEQUENCE_OF(struct X2ap_CriticalityDiagnostics_IE_List__Member {
+---
+> struct X2ap_CriticalityDiagnostics_IE_List__Member {
+43c41,46
+< 	} ) list;
+---
+> 	};
+> 
+> /* X2ap-CriticalityDiagnostics-IE-List */
+> typedef struct X2ap_CriticalityDiagnostics_IE_List {
+> 	A_SEQUENCE_OF(struct X2ap_CriticalityDiagnostics_IE_List__Member
+> 	) list;
diff --git a/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/constr_SET_OF.c.diff b/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/constr_SET_OF.c.diff
new file mode 100644
index 0000000000000000000000000000000000000000..3ceaf5e3e5ccef48746cf5abf2952aa0c6910224
--- /dev/null
+++ b/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/constr_SET_OF.c.diff
@@ -0,0 +1,4 @@
+1007c1007
+< 				(int)nelems, (int)ct ? ct->effective_bits : -1);
+---
+> 				(int)nelems, ct ? ct->effective_bits : -1);
diff --git a/cmake_targets/tools/test_helper b/cmake_targets/tools/test_helper
index 49a991057373dde600a7d7e098de916cb1bd5270..cae0bacbe030578fbd3d4a98ea7cdbe792a64dbb 100644
--- a/cmake_targets/tools/test_helper
+++ b/cmake_targets/tools/test_helper
@@ -35,7 +35,7 @@ xUnit_fail() {
   currtime=$(date +%s.%N)
   time=$(echo "$currtime - $XUNIT_START" | bc -l)
   xml="<testcase classname='$class' name='$test_case' Run_result='$run_result' time='$time s' RESULT='$result'></testcase>"
-  echo  -e $xml >> $xmlfile_testcase
+  echo  -e "$xml" >> "$xmlfile_testcase"
   XUNIT_TESTCASES_XML="$XUNIT_TESTCASES_XML \n$xml"
   XUNIT_FAILED=$((XUNIT_FAILED+1))
 }
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
index 493ff11d33c6b4b9cd0d3473d5f73f178514e459..e6033d50579334141b3483605eb5c2578c9468e1 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
@@ -229,6 +229,12 @@ void rx_sdu(
 
     switch (rx_lcids[i]) {
     case CCCH :
+      if (rx_lengths[i] > CCCH_PAYLOAD_SIZE_MAX) {
+        LOG_E(MAC, "[eNB %d/%d] frame %d received CCCH of size %d (too big, maximum allowed is %d), dropping packet\n",
+              enb_mod_idP, CC_idP, frameP, rx_lengths[i], CCCH_PAYLOAD_SIZE_MAX);
+        break;
+      }
+
       LOG_I(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, Received CCCH:  %x.%x.%x.%x.%x.%x, Terminating RA procedure for UE rnti %x\n",
             enb_mod_idP,CC_idP,frameP,
             payload_ptr[0],payload_ptr[1],payload_ptr[2],payload_ptr[3],payload_ptr[4], payload_ptr[5], rntiP);
@@ -302,26 +308,23 @@ void rx_sdu(
 #endif
 
       if (UE_id != -1) {
-        //  This check is just to make sure we didn't get a bogus SDU length, to be removed ...
-        if (rx_lengths[i]<CCCH_PAYLOAD_SIZE_MAX) {
-          LOG_D(MAC,"[eNB %d] CC_id %d Frame %d : ULSCH -> UL-DCCH, received %d bytes form UE %d on LCID %d \n",
-                enb_mod_idP,CC_idP,frameP, rx_lengths[i], UE_id, rx_lcids[i]);
-
-          mac_rlc_data_ind(
-			   enb_mod_idP,
-			   rntiP,
-			   enb_mod_idP,
-			   frameP,
-			   ENB_FLAG_YES,
-			   MBMS_FLAG_NO,
-			   rx_lcids[i],
-			   (char *)payload_ptr,
-			   rx_lengths[i],
-			   1,
-			   NULL);//(unsigned int*)crc_status);
-          UE_list->eNB_UE_stats[CC_idP][UE_id].num_pdu_rx[rx_lcids[i]]+=1;
-          UE_list->eNB_UE_stats[CC_idP][UE_id].num_bytes_rx[rx_lcids[i]]+=rx_lengths[i];
-        }
+        LOG_D(MAC,"[eNB %d] CC_id %d Frame %d : ULSCH -> UL-DCCH, received %d bytes form UE %d on LCID %d \n",
+              enb_mod_idP,CC_idP,frameP, rx_lengths[i], UE_id, rx_lcids[i]);
+
+        mac_rlc_data_ind(
+			 enb_mod_idP,
+			 rntiP,
+			 enb_mod_idP,
+			 frameP,
+			 ENB_FLAG_YES,
+			 MBMS_FLAG_NO,
+			 rx_lcids[i],
+			 (char *)payload_ptr,
+			 rx_lengths[i],
+			 1,
+			 NULL);//(unsigned int*)crc_status);
+        UE_list->eNB_UE_stats[CC_idP][UE_id].num_pdu_rx[rx_lcids[i]]+=1;
+        UE_list->eNB_UE_stats[CC_idP][UE_id].num_bytes_rx[rx_lcids[i]]+=rx_lengths[i];
       } /* UE_id != -1 */
 
       //      }
diff --git a/targets/ARCH/COMMON/common_lib.c b/targets/ARCH/COMMON/common_lib.c
index e4ee06d0a480ac8d86123cd6fe536745a381b360..dea02f2bba2b50c7ac421480782a1f547cccb4c9 100644
--- a/targets/ARCH/COMMON/common_lib.c
+++ b/targets/ARCH/COMMON/common_lib.c
@@ -103,14 +103,18 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param
   if (flag == BBU_LOCAL_RADIO_HEAD) {
       lib_handle = dlopen(OAI_RF_LIBNAME, RTLD_LAZY);
       if (!lib_handle) {
-	printf( "Unable to locate %s: HW device set to NONE_DEV.\n", OAI_RF_LIBNAME);
-	return 0;
+	fprintf(stderr,"Unable to locate %s: HW device set to NONE_DEV.\n", OAI_RF_LIBNAME);
+	fprintf(stderr,"%s\n",dlerror());
+	return -1;
       } 
       
       dp = dlsym(lib_handle,"device_init");
       
       if (dp != NULL ) {
-	dp(device,openair0_cfg);
+	if (dp(device,openair0_cfg)!=0) {
+	  fprintf(stderr,"Error initializing device\n");
+	  return -1;
+	}
       } else {
 	fprintf(stderr, "%s %d:oai device intializing function not found %s\n", __FILE__, __LINE__, dlerror());
 	return -1;
@@ -119,7 +123,8 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param
       lib_handle = dlopen(OAI_TP_LIBNAME, RTLD_LAZY);
       if (!lib_handle) {
 	printf( "Unable to locate %s: transport protocol set to NONE_TP.\n", OAI_TP_LIBNAME);
-	return 0;
+	printf( "%s\n",dlerror());
+	return -1;
       } 
       
       tp = dlsym(lib_handle,"transport_init");
@@ -152,7 +157,7 @@ int openair0_device_load(openair0_device *device, openair0_config_t *openair0_cf
     }   
   }
   #endif
-  return 0;
+  return rc;
 }
 
 int openair0_transport_load(openair0_device *device, openair0_config_t *openair0_cfg, eth_params_t * eth_params) {
@@ -164,7 +169,7 @@ int openair0_transport_load(openair0_device *device, openair0_config_t *openair0
       return -1;		   
       }   
   }
-  return 0;
+  return rc;
 
 }
 
diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/Si5351C/CMakeLists.txt b/targets/ARCH/LMSSDR/USERSPACE/LIB/Si5351C/CMakeLists.txt
index 88a021ae001b40c2992653227425b50a70de9f0e..c331185e1738799cacd04857d5e7d34448f4022a 100644
--- a/targets/ARCH/LMSSDR/USERSPACE/LIB/Si5351C/CMakeLists.txt
+++ b/targets/ARCH/LMSSDR/USERSPACE/LIB/Si5351C/CMakeLists.txt
@@ -2,7 +2,7 @@ set(si5351_src_files
 	Si5351C.cpp
 )
 set(CMAKE_CXX_FLAGS
-  "${CMAKE_CXX_FLAGS} ${C_FLAGS_PROCESSOR} -std=c++11 "
+  "${CMAKE_CXX_FLAGS} ${C_FLAGS_PROCESSOR} -std=c++11 -fPIC"
 )
 
 
diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms7002m/CMakeLists.txt b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms7002m/CMakeLists.txt
index cea22ac8292c7cf8ca74e571df33cd774693667c..4613e9ce72b93fdf302268fdfc273de46b7cb780 100644
--- a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms7002m/CMakeLists.txt
+++ b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms7002m/CMakeLists.txt
@@ -9,7 +9,7 @@ if(${CMAKE_MAJOR_VERSION} GREATER 2)
 endif()
 ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
 if(CMAKE_COMPILER_IS_GNUCXX)
-    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -fPIC")
 endif()
 
 # set up include-directories
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf
index 3043256628a092f51a9ca5b6121b029a298eb362..1ea7b647404ebe08dd75b6b91016c80afade717b 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf
@@ -144,7 +144,6 @@ eNBs =
 
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0:4";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.170.1.2/24";
-        ENB_IPV4_ADDRESS_FOR_S1U                 = "192.170.0.2/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
     };
 
@@ -167,4 +166,4 @@ eNBs =
    };
 
   }
-);
+);
\ No newline at end of file