From 1a80de79b92524de27c2b8c2ea7ddf90995a68ef Mon Sep 17 00:00:00 2001
From: thomasl <thomasl@eurecom.fr>
Date: Mon, 23 Mar 2015 16:30:11 +0000
Subject: [PATCH] trunk alignment with 0.3 branch

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6875 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 cmake_targets/CMakeLists.txt                  | 254 +++++++++++----
 .../autotests/run_compilation_autotests.bash  | 132 ++++----
 .../autotests/run_exec_autotests.bash         |   4 +-
 .../autotests/test.0101/CMakeLists.txt        | 180 ++++++-----
 .../autotests/test.0102/CMakeLists.txt        | 180 ++++++-----
 .../autotests/test.0103/CMakeLists.txt        | 176 ++++++----
 .../autotests/test.0106/CMakeLists.txt        |   2 +-
 .../autotests/test.0107/CMakeLists.txt        | 179 ++++++-----
 .../autotests/test.0108/CMakeLists.txt        |   2 +-
 .../autotests/test.0114/CMakeLists.txt        |   2 +-
 .../autotests/test.0115/CMakeLists.txt        | 179 ++++++-----
 .../autotests/test.0120/CMakeLists.txt        | 111 +++++++
 cmake_targets/build_oai.bash                  | 226 ++++---------
 .../epc_build_oai/CMakeLists.template         |   1 +
 cmake_targets/hss_build/CMakeLists.txt        | 300 ++++++++++++++++++
 cmake_targets/lte-r10-exmimo/CMakeLists.txt   |   3 -
 cmake_targets/lte-r10-usrp/CMakeLists.txt     |   4 -
 cmake_targets/lte-r8/CMakeLists.txt           |   4 -
 cmake_targets/oaisim-r8/CMakeLists.txt        |  15 -
 .../oaisim_build_oai/CMakeLists.template      |   5 +-
 .../oaisim_mme_build_oai/CMakeLists.template  |  87 +++++
 cmake_targets/{ => tools}/build_helper.bash   | 221 +++++--------
 cmake_targets/tools/exmimo2_2arxg.lime        |  10 +
 cmake_targets/tools/init_exmimo2.sh           |   4 +-
 cmake_targets/tools/run_enb_s1_exmimo         | 191 +++++++++++
 cmake_targets/tools/run_epc                   | 150 +++++++++
 cmake_targets/tools/run_hss                   | 115 +++++++
 27 files changed, 1898 insertions(+), 839 deletions(-)
 create mode 100644 cmake_targets/autotests/test.0120/CMakeLists.txt
 create mode 100755 cmake_targets/hss_build/CMakeLists.txt
 delete mode 100644 cmake_targets/lte-r10-exmimo/CMakeLists.txt
 delete mode 100644 cmake_targets/lte-r10-usrp/CMakeLists.txt
 delete mode 100644 cmake_targets/lte-r8/CMakeLists.txt
 delete mode 100644 cmake_targets/oaisim-r8/CMakeLists.txt
 create mode 100644 cmake_targets/oaisim_mme_build_oai/CMakeLists.template
 rename cmake_targets/{ => tools}/build_helper.bash (74%)
 create mode 100644 cmake_targets/tools/exmimo2_2arxg.lime
 create mode 100755 cmake_targets/tools/run_enb_s1_exmimo
 create mode 100755 cmake_targets/tools/run_epc
 create mode 100755 cmake_targets/tools/run_hss

diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index 2a60080b9a..a7c9c8c857 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -23,7 +23,7 @@
 # OpenAirInterface Dev  : openair4g-devel@eurecom.fr
 #
 # Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-# Author: laurent THOMAS
+# Author: laurent THOMAS, Lionel GAUTIER
 ###############################################################################
 
 cmake_minimum_required (VERSION 2.8)
@@ -45,6 +45,16 @@ project (OpenAirInterface)
 ###########################################
 # macros to define options as there is numerous options in oai
 ################################################
+macro(add_option name val helpstr)
+  if(DEFINED ${name})
+    set(value ${${name}})
+  else(DEFINED ${name})
+    set(value ${val})
+  endif()
+  set(${name} ${value} CACHE STRING "${helpstr}")
+  add_definitions("-D${name}=${value}")
+endmacro(add_option)
+
 macro(add_boolean_option name val helpstr)
   if(DEFINED ${name})
     set(value ${${name}})
@@ -204,7 +214,9 @@ add_list2_option(RRC_ASN1_VERSION "Rel10" "ASN.1 version of RRC interface" "Rel8
 
 if (${RRC_ASN1_VERSION} STREQUAL "Rel8")
   set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn)
-elseif (${RRC_ASN1_VERSION} STREQUAL "Rel10")
+elseif (${RRC_ASN1_VERSION} STREQUAL "CBA")
+  set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn)
+else()
   set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn)
 endif  (${RRC_ASN1_VERSION} STREQUAL "Rel8")
 
@@ -335,77 +347,160 @@ endif (${RF_BOARD} STREQUAL "EXMIMO")
  
 include_directories ("${OPENAIR_TARGETS}/ARCH/COMMON")
 
-####################
-# to be documented options
-###################
-add_boolean_option(ADDR_CONF False "specific to oaisim")
+
+##############################################################
+#    ???!!! TO BE DOCUMENTED OPTIONS !!!???
+##############################################################
 add_boolean_option(ASSERT True "???")
+add_boolean_option(ENABLE_SECURITY         True  "Enable LTE integrity and ciphering between RRC UE and eNB")
+add_boolean_option(ENABLE_USE_MME          True  "eNB connected to MME (INTERFACE S1-C), not standalone eNB")
+add_boolean_option(NO_RRM                  True  "DO WE HAVE A RADIO RESSOURCE MANAGER: NO")
+add_boolean_option(USER_MODE True "????")
+
+add_boolean_option(OAI_NW_DRIVER_TYPE_ETHERNET False "????")
 add_boolean_option(DISABLE_USE_NAS False "???")
-add_boolean_option(DRIVER2013 True "????")
-add_boolean_option(ENABLE_FXP True "????")
-add_boolean_option(ENABLE_NAS_UE_LOGGING True "????")
-add_boolean_option(ENABLE_NEW_MULTICAST False "specific to oaisim")
 add_boolean_option(ENABLE_PDCP_NETLINK_FIFO False "????")
-add_boolean_option(ENABLE_PGM_TRANSPORT False "specific to oaisim")
-add_boolean_option(ENABLE_RAL False "????")
-add_boolean_option(ENABLE_SECURITY True "???")
 add_boolean_option(ENABLE_STANDALONE_EPC True "Compile MME, SGW and PGW in a single executable")
-add_boolean_option(ENABLE_USE_CPU_EXECUTION_TIME True "Add data in vcd traces: disable it if perf issues")
 add_boolean_option(ENABLE_USE_GTPU_IN_KERNEL True "as per name")
-add_boolean_option(ENABLE_USE_MME True "???")
 add_boolean_option(ENABLE_USE_NETFILTER_FOR_SGI False "SGI option")
 add_boolean_option(ENABLE_USE_PCAP_FOR_SGI False "SGI option")
 add_boolean_option(ENABLE_USE_RAW_SOCKET_FOR_SGI False "As per name")
-add_boolean_option(ENABLE_VCD_FIFO True "Seems legacy: always true now")
-add_boolean_option(ENB_MODE True "???")
 add_boolean_option(EPC_BUILD False "???")
-add_boolean_option(HARD_RT False "???")
-add_boolean_option(JUMBO_FRAME True "???")
-add_boolean_option(LARGE_SCALE False "specific to oaisim: defines max eNB=2 and max UE=120")
-add_boolean_option(LINK_PDCP_TO_GTPV1U True "????")
-add_boolean_option(LINUX_LIST False "???")
-add_boolean_option(LINUX True "???")
-add_boolean_option(LOCALIZATION  False "???")
-add_boolean_option(LOG_NO_THREAD True "Disable thread for log, seems always set to true")
+add_boolean_option(LINK_PDCP_TO_GTPV1U False "????")
 add_boolean_option(LOWLATENCY  True "Use the Linux scheduler SCHED_DEADLINE: kernel >= 3.14")
-add_boolean_option(MAC_CONTEXT True "specific to oaisim")
-add_integer_option(MAX_NUM_CCs 1 "????")
-add_boolean_option(MIH_C_MEDIEVAL_EXTENSIONS True "????")
-add_boolean_option(MU_RECEIVER False "????")
 add_boolean_option(NAS_ADDRESS_FIX False "specific to oaisim: for nasmesh driver")
-add_boolean_option(NAS_MME False "NAS_UE and NAS_MME are incompatible options")
 add_boolean_option(NAS_NETLINK False "???? Must be True to compile nasmesh driver without rtai")
-add_boolean_option(NAS_UE True "NAS_UE and NAS_MME are incompatible options")
-add_boolean_option(NEW_FFT True "????")
-add_boolean_option(NO_RRM True "????")
-add_boolean_option(OAI_EMU False "specific to oaisim")
 add_boolean_option(OAISIM False "specific to oaisim")
-add_boolean_option(OAI_NW_DRIVER_TYPE_ETHERNET False "????")
 add_boolean_option(OAI_NW_DRIVER_USE_NETLINK True "????")
-add_boolean_option(OPENAIR1 True "????")
-add_boolean_option(OPENAIR2 True "????")
-add_boolean_option(OPENAIR_EMU False "specific to oaisim")
-add_boolean_option(OPENAIR_LTE True "Seems legacy: keep it to true")
-add_boolean_option(PBS_SIM False "????")
-add_boolean_option(PC_DSP True "????")
-add_boolean_option(PC_TARGET True "????")
-add_boolean_option(PERFECT_CE False "????")
-add_boolean_option(PHY_ABSTRACTION False "specific to oaisim")
-add_boolean_option(PHY_CONTEXT True "not clear: must remain False for dlsim")
-add_boolean_option(PHY_EMUL False "not clear: must remain False for dlsim")
-add_boolean_option(PHYSIM True "??? set in lte-softmodem, for L1 simulators dlsim, ulsim, ...?")
-add_boolean_option(PUCCH True "????")
-add_boolean_option(RANDOM_BF False "????")
-add_boolean_option(RLC_STOP_ON_LOST_PDU False "Fatal assert in this case")
-add_boolean_option(SECU False "???")
-add_boolean_option(SMBV False "Rohde&Schwarz SMBV100A vector signal generator")
-add_boolean_option(SPECTRA False "???")
-add_boolean_option(UE_BUILD True "????")
-add_boolean_option(USE_3GPP_ADDR_AS_LINK_ADDR False "As per attribute name")
+add_boolean_option(UE_BUILD False "????")
 add_boolean_option(USE_MME False "this flag is used only one time in lte-softmodem.c")
-add_boolean_option(USER_MODE True "????")
 add_list_string_option(PACKAGE_NAME "NotDefined" "As per attribute name")
 
+########################
+# Include order
+##########################
+add_boolean_option(ENB_MODE True "Swap the include directories between openair2 and openair-cn" )
+
+##########################
+# Emulation options
+##########################
+add_boolean_option(ENABLE_PGM_TRANSPORT    False "specific to oaisim, emulation through ethernet, reliable multicast")
+add_boolean_option(ADDR_CONF               False "specific to oaisim, IP autoconf of user-plane IP interface")
+add_boolean_option(OPENAIR_EMU             False "specific to oaisim")
+add_boolean_option(OAI_EMU             False "specific to oaisim")
+add_boolean_option(PHY_ABSTRACTION         False "specific to oaisim")
+
+##########################
+# SCHEDULING/REAL-TIME/PERF options
+##########################
+add_boolean_option(ENABLE_USE_CPU_EXECUTION_TIME True "Add data in vcd traces: disable it if perf issues")
+add_boolean_option(ENABLE_VCD_FIFO         True  "Seems legacy: always true now, time measurements of proc calls and var displays")
+add_boolean_option(HARD_RT                 False "???")
+add_boolean_option(LINUX                   False "used in weird memcpy() in pdcp.c ???")
+add_boolean_option(LINUX_LIST              False "used only in lists.c: either use OAI implementation of lists or Linux one (should be True, but it is False")
+add_boolean_option(LOG_NO_THREAD           True  "Disable thread for log, seems always set to true")
+add_boolean_option(OPENAIR_LTE             True "Seems legacy: keep it to true")
+
+##########################
+# PHY options
+##########################
+add_boolean_option(DRIVER2013              True "????")
+add_boolean_option(ENABLE_FXP              True "????")
+add_boolean_option(ENABLE_NEW_MULTICAST    False "specific to oaisim")
+add_boolean_option(LARGE_SCALE             False "specific to oaisim: defines max eNB=2 and max UE=120")
+add_boolean_option(LOCALIZATION            False "???")
+add_integer_option(MAX_NUM_CCs             1     "????")
+add_boolean_option(MU_RECEIVER             False "????")
+add_boolean_option(NEW_FFT                 True "????")
+add_boolean_option(OPENAIR1                True "????")
+add_boolean_option(PBS_SIM                 False "????")
+add_boolean_option(PC_DSP                  True "????")
+add_boolean_option(PC_TARGET               True "????")
+add_boolean_option(PERFECT_CE              False "????")
+add_boolean_option(PHYSIM                  True  "for L1 simulators (dlsim, ulsim, ...)")
+add_boolean_option(PHY_CONTEXT             True "not clear: must remain False for dlsim")
+add_boolean_option(PHY_EMUL                False "not clear: must remain False for dlsim")
+add_boolean_option(PUCCH                   True "????")
+add_boolean_option(RANDOM_BF               False "????")
+add_boolean_option(SMBV                    False "Rohde&Schwarz SMBV100A vector signal generator")
+
+##########################
+# 802.21 options
+##########################
+add_boolean_option(ENABLE_RAL              False "ENABLE 802.21 INTERFACE")
+add_boolean_option(USE_3GPP_ADDR_AS_LINK_ADDR False "As per attribute name")
+
+##########################
+# NAS LAYER OPTIONS
+##########################
+add_boolean_option(ENABLE_NAS_UE_LOGGING   True  "????")
+add_boolean_option(NAS_BUILT_IN_EPC        False "MME NAS layer not present in this executable")
+add_boolean_option(NAS_BUILT_IN_UE         True  "UE NAS layer present in this executable")
+add_boolean_option(NAS_UE                  True  "NAS UE INSTANCE (<> NAS_MME)")
+add_boolean_option(NAS_MME                 False "NAS_UE and NAS_MME are incompatible options")
+
+
+##########################
+# ACCESS STRATUM LAYER2 OPTIONS
+##########################
+add_boolean_option(MAC_CONTEXT             True  "specific to oaisim")
+add_boolean_option(JUMBO_FRAME             True  "ENABLE LARGE SDU in ACCESS STRATUM (larger than common MTU)")
+
+##########################
+# RLC LAYER OPTIONS
+##########################
+add_boolean_option(OPENAIR2                True  "Access Stratum layer 2 built in executable")
+add_boolean_option(TRACE_RLC_PAYLOAD       False "Fatal assert in this case")
+add_boolean_option(RLC_STOP_ON_LOST_PDU    False "Fatal assert in this case")
+
+add_boolean_option(TRACE_RLC_AM_BO         False "TRACE for RLC AM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_AM_FREE_SDU   False "TRACE for RLC AM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_AM_HOLE       False "TRACE for RLC AM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_AM_PDU        False "TRACE for RLC AM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_AM_RESEGMENT  False "TRACE for RLC AM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_AM_RX         False "TRACE for RLC AM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_AM_RX_DECODE  False "TRACE for RLC AM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_AM_TX         False "TRACE for RLC AM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_AM_TX_STATUS  False "TRACE for RLC AM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_AM_STATUS_CREATION   False "TRACE for RLC AM, TO BE CHANGED IN A MORE GENERAL FLAG")
+
+add_boolean_option(STOP_ON_IP_TRAFFIC_OVERLOAD      False "")
+add_boolean_option(TRACE_RLC_UM_DAR        False "TRACE for RLC UM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_UM_DISPLAY_ASCII_DATA  False "TRACE for RLC UM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_UM_PDU        False "TRACE for RLC UM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_UM_RX         False "TRACE for RLC UM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_UM_SEGMENT    False "TRACE for RLC UM, TO BE CHANGED IN A MORE GENERAL FLAG")
+add_boolean_option(TRACE_RLC_UM_TX_STATUS  False "TRACE for RLC UM, TO BE CHANGED IN A MORE GENERAL FLAG")
+
+
+##########################
+# PDCP LAYER OPTIONS
+##########################
+add_boolean_option(PDCP_USE_NETLINK            False "For eNB, PDCP communicate with a NETLINK socket if connected to network driver, else could use a RT-FIFO")
+add_boolean_option(PDCP_USE_NETLINK_QUEUES     False "When PDCP_USE_NETLINK is true, incoming IP packets are stored in queues")
+add_boolean_option(LINK_ENB_PDCP_TO_IP_DRIVER  False "For eNB, PDCP communicate with a IP driver")
+add_boolean_option(LINK_ENB_PDCP_TO_GTPV1U     True  "For eNB, PDCP communicate with GTP-U protocol (eNB<->S-GW)")
+
+##########################
+# RRC LAYER OPTIONS
+##########################
+add_boolean_option(RRC_DEFAULT_RAB_IS_AM       False  "Otherwise it is UM, configure params are actually set in rrc_eNB.c:rrc_eNB_generate_defaultRRCConnectionReconfiguration(...)")
+
+
+##########################
+# S1AP LAYER OPTIONS
+##########################
+add_boolean_option(S1AP_LIMIT_STREAM_ID_TO_1   True  "FIXME: Despite Eurecom has implemented the spec concerning management of stream ids, there are always issues with other EPCs than EURECOM")
+
+##########################
+# PROJECTS (IST, FRENCH COLL., etc)
+# SPECIFIC OPTIONS
+##########################
+add_boolean_option(SPECTRA False "???")
+add_boolean_option(MIH_C_MEDIEVAL_EXTENSIONS True "EXTENSIONS TO MIH 802.21 IN CONTEXT OF IST PROJECT CALLED MEDIEVAL")
+
+
+
 add_boolean_option(EMOS False "????")
 if(${EMOS})
   add_definitions("-D_FILE_OFFSET_BITS=64")
@@ -712,6 +807,7 @@ set(L2_SRC
   ${RRC_DIR}/rrc_UE.c
   ${RRC_DIR}/rrc_eNB.c
   ${RRC_DIR}/rrc_eNB_S1AP.c
+  ${RRC_DIR}/rrc_eNB_UE_context.c
   ${RRC_DIR}/rrc_common.c
   ${RRC_DIR}/L2_interface.c
   )
@@ -1291,7 +1387,6 @@ include_directories(${CRYPTO_INCLUDE_DIRS})
 if (${RF_BOARD} STREQUAL "USRP")
   find_package(Boost REQUIRED)
   include_directories(${LIBBOOST_INCLUDE_DIR})
-  target_link_libraries (lte-softmodem ${LIBBOOST_LIBRARIES})
 endif (${RF_BOARD} STREQUAL "USRP")
 
 pkg_search_module(OPENPGM openpgm-5.1)
@@ -1368,10 +1463,11 @@ target_link_libraries (lte-softmodem
   -Wl,--end-group )
 target_link_libraries (lte-softmodem ${LIBXML2_LIBRARIES})
 target_link_libraries (lte-softmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${option_USRP} ${XFORMS_LIBRARIES} )
+target_link_libraries (lte-softmodem ${LIBBOOST_LIBRARIES})
 
 # EPC is ??? nodes implementation in one process
 ################################
-add_executable(oai_epc
+add_executable(mme_gw
   ${OPENAIR_BIN_DIR}/messages_xml.h
   ${OPENAIRCN_DIR}/OAI_EPC/oai_epc_log.c 
   ${OPENAIRCN_DIR}/OAI_EPC/oai_epc.c
@@ -1379,13 +1475,35 @@ add_executable(oai_epc
   ${OPENAIRCN_DIR}/SCTP/sctp_primitives_server.c
   ${OPENAIRCN_DIR}/NAS/nas_main.c
   )
-target_link_libraries (oai_epc
+target_link_libraries (mme_gw
   -Wl,--start-group 
    NAS S1AP_LIB S1AP_EPC GTPV1U GTPV2C SCTP_SERVER UDP_SERVER SECU_CN SECU_OSA SGI S6A SGW MME_APP LFDS ${ITTI_LIB} CN_UTILS HASHTABLE
   -Wl,--end-group 
   pthread m sctp  rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES} fdproto fdcore
   )
 
+# Default parameters
+site_name(SITE_HSS_HOSTNAME)
+site_name(SITE_MME_HOSTNAME)
+add_option(MME_HOSTNAME      ${SITE_MME_HOSTNAME} "HSS Fully qualified domain name")
+add_option(HSS_HOSTNAME      ${SITE_HSS_HOSTNAME} "HSS Fully qualified domain name")
+add_option(HSS_IP            127.0.1.1            "HSS IP address, default is local")
+add_option(REALM             openair4G.eur     "Realm TODO: extract this default value from SITE_MME_FQDN")
+add_option(MME_FQDN          ${SITE_MME_HOSTNAME}.${REALM} "MME Fully qualified domain name")
+add_option(HSS_FQDN          ${SITE_HSS_HOSTNAME}.${REALM} "HSS Fully qualified domain name")
+add_option(TRANSPORT_option  No_SCTP     "No_TCP or No_SCTP")
+add_option(TRANSPORT_PREFER_TCP_option  Prefer_TCP "Prefer_TCP or null string ")
+
+configure_file(
+  ${OPENAIRCN_DIR}/UTILS/CONF/s6a.conf.in 
+  ${CMAKE_CURRENT_BINARY_DIR}/epc_s6a.conf)
+configure_file(
+  ${OPENAIR_TARGETS}/PROJECTS/GENERIC-LTE-EPC/CONF/epc.local.enb.conf.in 
+  ${CMAKE_CURRENT_BINARY_DIR}/epc.local.enb.conf)
+configure_file(
+  ${OPENAIR_TARGETS}/PROJECTS/GENERIC-LTE-EPC/CONF/epc.conf.in 
+  ${CMAKE_CURRENT_BINARY_DIR}/epc.conf)
+
 # oai_sgw is SGW  node implementation
 ################################
 add_executable(oai_sgw
@@ -1402,17 +1520,17 @@ target_link_libraries (oai_sgw
 
 # USIM process 
 #################
-add_executable(usim_data  
+add_executable(usim
   ${OPENAIRCN_DIR}/NAS/EURECOM-NAS/tools/usim_data.c
   )
-target_link_libraries (usim_data ${NAS_LIB} UTIL ${ITTI_LIB} LFDS pthread rt nettle crypto m)
+target_link_libraries (usim ${NAS_LIB} UTIL ${ITTI_LIB} LFDS pthread rt nettle crypto m)
 
 # ???
 #####################
-add_executable(ue_data  
+add_executable(nvram 
   ${OPENAIRCN_DIR}/NAS/EURECOM-NAS/tools/ue_data.c
   )
-target_link_libraries (ue_data ${NAS_LIB} UTIL ${ITTI_LIB} LFDS pthread rt nettle crypto m)
+target_link_libraries (nvram ${NAS_LIB} UTIL ${ITTI_LIB} LFDS pthread rt nettle crypto m)
 
 ###################################"
 # Addexecutables for tests
@@ -1472,8 +1590,6 @@ foreach(myExe s1ap
     secu_kenb
     aes128_ctr_encrypt 
     aes128_ctr_decrypt 
-    secu 
-    secu_knas_stream_int 
     secu_knas_encrypt_eea2 
     secu_knas secu_knas_encrypt_eea1 
     kdf 
@@ -1497,12 +1613,16 @@ endforeach(myExe)
 #  ???
 ###########################
 add_executable(oaisim_mme
+  ${OPENAIR_BIN_DIR}/messages_xml.h
   ${OPENAIRCN_DIR}/OAISIM_MME/oai_mme_log.c
   ${OPENAIRCN_DIR}/OAISIM_MME/oaisim_mme.c
+  ${OPENAIRCN_DIR}/NAS/nas_main.c
 )
 target_link_libraries (oaisim_mme
-  ${ITTI_LIB} ${NAS_LIB} S1AP_LIB S1AP_ENB
-  S11 S6A UTILS UDP MME_APP SECU_CN LFDS fdproto fdcore
+  -Wl,--start-group 
+   NAS S1AP_LIB S1AP_EPC GTPV1U GTPV2C SCTP_SERVER UDP_SERVER SECU_CN SECU_OSA SGI S6A S11 SGW MME_APP LFDS ${ITTI_LIB} CN_UTILS HASHTABLE
+  -Wl,--end-group 
+  pthread m sctp  rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES} fdproto fdcore
 )
 
 ##################################################
diff --git a/cmake_targets/autotests/run_compilation_autotests.bash b/cmake_targets/autotests/run_compilation_autotests.bash
index e717d5be81..28a97538a6 100755
--- a/cmake_targets/autotests/run_compilation_autotests.bash
+++ b/cmake_targets/autotests/run_compilation_autotests.bash
@@ -1,12 +1,28 @@
 #!/bin/bash
 
-if [ -s $OPENAIR_DIR/cmake_targets/build_helper.bash ] ; then
-   source $OPENAIR_DIR/cmake_targets/build_helper.bash
+if [ -s $OPENAIR_DIR/cmake_targets/tools/build_helper.bash ] ; then
+   source $OPENAIR_DIR/cmake_targets/tools/build_helper.bash
 else
    echo "Error: no file in the file tree: is OPENAIR_DIR variable set?"
    exit 1
 fi
 
+test_compile() {
+    mkdir -p $tdir/$1/build
+    cd $tdir/$1/build
+    {
+	cmake ..
+	rm -f $3
+	make -j4 $2
+    } > $tdir/log/$1.txt 2>&1
+    if [ -s $3 ] ; then
+     cp $3 $tdir/bin/$3.$1
+     echo_success "$1 test compiled"
+  else
+     echo_error "$1 test compilation failed"
+  fi
+}
+
 tdir=$OPENAIR_DIR/cmake_targets/autotests
 mkdir -p $tdir/bin $tdir/log
 
@@ -15,71 +31,49 @@ if [ "$updated" != "" ] ; then
 	echo_warning "some files are not in svn: $updated"
 fi
 
-compilations \
-    autotests/test.0101 oaisim \
-    oaisim  $tdir/bin/oaisim.r8 \
-    $tdir/log/test0101.txt \
-	"test 0101:oaisim Rel8 passed" \
-    "test 0101:oaisim Rel8 failed"
-
-compilations \
-    autotests/test.0102 oaisim \
-    oaisim  $tdir/bin/oaisim.r8.nas \
-    $tdir/log/test0102.oaisim.txt \
-	"test 0102:oaisim Rel8 nas passed" \
-    "test 0102:oaisim Rel8 nas failed"
-compilations \
-    autotests/test.0103 oaisim \
-    oaisim  $tdir/bin/oaisim.r8.rf \
-    $tdir/log/test0103.txt \
-	"test 0103:oaisim rel8 rf passed" \
-    "test 0103:oaisim rel8 rf failed"
-compilations \
-    autotests/test.0104 dlsim \
-    dlsim  $tdir/bin/dlsim \
-    $tdir/log/test0104.txt \
-	"test 0104:dlsim passed" \
-    "test 0104:dlsim failed"    
-compilations \
-    autotests/test.0104 ulsim \
-    ulsim  $tdir/bin/ulsim \
-    $tdir/log/test0105.txt \
-	"test 0105: ulsim passed" \
-    "test 0105: ulsim failed"
-compilations \
-    autotests/test.0106 oaisim \
-    oaisim  $tdir/bin/oaisim.r8.itti \
-    $tdir/log/test0106.txt \
-	"test 0103:oaisim rel8 itti passed" \
-    "test 0103:oaisim rel8 itti failed"
-compilations \
-    autotests/test.0107 oaisim \
-    oaisim  $tdir/bin/oaisim.r10 \
-    $tdir/log/test0107.txt \
-	"test 0103:oaisim rel10 passed" \
-    "test 0103:oaisim rel10 failed"
-compilations \
-    autotests/test.0108 oaisim \
-    oaisim  $tdir/bin/oaisim.r10.itti \
-   $tdir/log/test0108.txt \
-	"test 0108:oaisim rel10 itti passed" \
-    "test 0108:oaisim rel10 itti failed"
-compilations \
-    autotests/test.0114 oaisim \
-    oaisim  $tdir/bin/oaisim.r8.itti.ral \
-    $tdir/log/test0114.txt \
-	"test 0114:oaisim rel8 itti ral passed" \
-    "test 0114:oaisim rel8 itti ral failed"
-compilations \
-    autotests/test.0115 oaisim \
-    oaisim  $tdir/bin/oaisim.r10.itti.ral \
-    $tdir/log/test0115.txt \
-	"test 0114:oaisim rel10 itti ral passed" \
-    "test 0114:oaisim rel10 itti ral failed" 
-compilations \
-    autotests/test.0102 nasmesh \
-    CMakeFiles/nasmesh/nasmesh.ko $tdir/bin/nasmesh.ko \
-    $tdir/log/test0120.txt \
-	"test 0120: nasmesh.ko passed" \
-    "test 0120: nasmesk.ko failed"
+cd $tdir 
+
+test_compile \
+    test.0101 oaisim \
+    oaisim  $tdir/bin/oaisim.r8
+
+test_compile \
+    test.0102 oaisim \
+    oaisim  $tdir/bin/oaisim.r8.nas
+
+test_compile \
+    test.0103 lte-softmodem \
+    lte-softmodem  $tdir/bin/lte-softmodem.r8.rf
+
+test_compile \
+    test.0104 dlsim \
+    dlsim  $tdir/bin/dlsim
+
+test_compile \
+    test.0104 ulsim \
+    ulsim  $tdir/bin/ulsim
+
+test_compile \
+    test.0106 oaisim \
+    oaisim  $tdir/bin/oaisim.r8.itti
+
+test_compile \
+    test.0107 oaisim \
+    oaisim  $tdir/bin/oaisim.r10
+
+test_compile \
+    test.0108 oaisim \
+    oaisim  $tdir/bin/oaisim.r10.itti
+
+test_compile \
+    test.0114 oaisim \
+    oaisim  $tdir/bin/oaisim.r8.itti.ral
+
+test_compile \
+    test.0115 oaisim \
+    oaisim  $tdir/bin/oaisim.r10.itti.ral
+
+test_compile \
+    test.0120 nasmesh \
+    CMakeFiles/nasmesh/nasmesh.ko $tdir/bin/nasmesh.ko
 
diff --git a/cmake_targets/autotests/run_exec_autotests.bash b/cmake_targets/autotests/run_exec_autotests.bash
index 92f742d09c..5b2b523524 100755
--- a/cmake_targets/autotests/run_exec_autotests.bash
+++ b/cmake_targets/autotests/run_exec_autotests.bash
@@ -1,7 +1,7 @@
 #!/bin/bash
 
-if [ -s $OPENAIR_DIR/cmake_targets/build_helper.bash ] ; then
-   source $OPENAIR_DIR/cmake_targets/build_helper.bash
+if [ -s $OPENAIR_DIR/cmake_targets/tools/build_helper.bash ] ; then
+   source $OPENAIR_DIR/cmake_targets/tools/build_helper.bash
 else
    echo "Error: no file in the file tree: is OPENAIR_DIR variable set?"
    exit 1
diff --git a/cmake_targets/autotests/test.0101/CMakeLists.txt b/cmake_targets/autotests/test.0101/CMakeLists.txt
index a3dbc10482..50c56b2d70 100644
--- a/cmake_targets/autotests/test.0101/CMakeLists.txt
+++ b/cmake_targets/autotests/test.0101/CMakeLists.txt
@@ -1,75 +1,111 @@
 cmake_minimum_required(VERSION 2.8)
 
-set(ADDR_CONF False)
-set(ASSERT True)
-set(DEBUG_OMG False)
-set(DISABLE_XER_PRINT False)
-set(DRIVER2013 False)
-set(ENABLE_FXP True)
-set(ENABLE_ITTI False)
-set(ENABLE_NAS_UE_LOGGING False)
-set(ENABLE_NEW_MULTICAST True)
-set(ENABLE_PDCP_NETLINK_FIFO False)
-set(ENABLE_PGM_TRANSPORT True)
-set(ENABLE_RAL False)
-set(ENABLE_SECURITY False)
-set(ENABLE_USE_CPU_EXECUTION_TIME True)
-set(ENABLE_USE_MME False)
-set(ENABLE_VCD_FIFO True)
-set(HARD_RT False)
-set(JUMBO_FRAME True)
-set(LARGE_SCALE False)
-set(LINK_PDCP_TO_GTPV1U False)
-set(LINUX_LIST False)
-set(LINUX True)
-set(LOCALIZATION False)
-set(LOG_NO_THREAD True)
-set(LOWLATENCY False)
-set(MAC_CONTEXT 1)
-set(MAX_NUM_CCs 1)
-set(MIH_C_MEDIEVAL_EXTENSIONS True)
-set(MSG_PRINT False)
-set(MU_RECEIVER False)
-set(NAS_ADDRESS_FIX true)
-set(NAS_NETLINK True)
-set(NAS_UE True)
-set(NEW_FFT True)
-set(NO_RRM True)
-set(OAI_EMU True)
-set(OAI_EMU True)
-set(OAI_NW_DRIVER_TYPE_ETHERNET False)
-set(OPENAIR1 False)
-set(OPENAIR2 True)
-set(OPENAIR_EMU True)
-set(OPENAIR_LTE True)
-set (PACKAGE_NAME "oaisim")
-set(PACKAGE_NAME "oaisim")
-set(PBS_SIM False)
-set(PC_DSP False)
-set(PC_TARGET False)
-set(PDCP_MSG_PRINT False)
-set(PERFECT_CE False)
-set(PHY_ABSTRACTION True)
-set(PHY_ABSTRACTION True)
-set(PHY_EMUL False)
-set(PHYSIM False)
-set(PUCCH True)
-set(RANDOM_BF False)
-set(RF_BOARD "NoBoard")
-set(RLC_STOP_ON_LOST_PDU False)
-set(RRC_ASN1_VERSION False)
-set(RRC_ASN1_VERSION "Rel8")
-set(RRC_MSG_PRINT False)
-set(RTAI False)
-set(SECU False)
-set(SMBV False)
-set(SPECTRA False)
-set(TEST_OMG False)
-set(UE_BUILD False)
-set(USE_3GPP_ADDR_AS_LINK_ADDR False)
-set(USE_MME False)
-set(USER_MODE True)
-set(XER_PRINT True)
-set(XFORMS False)
-
+set ( ADDR_CONF False )
+set ( ASSERT True )
+set ( DEBUG_OMG False )
+set ( DISABLE_USE_NAS False )
+set ( DISABLE_XER_PRINT False )
+set ( DRIVER2013 False )
+set ( EMOS False )
+set ( ENABLE_FXP True )
+set ( ENABLE_ITTI False )
+set ( ENABLE_NAS_UE_LOGGING False )
+set ( ENABLE_NEW_MULTICAST True )
+set ( ENABLE_PDCP_NETLINK_FIFO False )
+set ( ENABLE_PGM_TRANSPORT True )
+set ( ENABLE_RAL False )
+set ( ENABLE_SECURITY False )
+set ( ENABLE_STANDALONE_EPC False )
+set ( ENABLE_USE_CPU_EXECUTION_TIME True )
+set ( ENABLE_USE_GTPU_IN_KERNEL False )
+set ( ENABLE_USE_MME False )
+set ( ENABLE_USE_NETFILTER_FOR_SGI False )
+set ( ENABLE_USE_PCAP_FOR_SGI False )
+set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False )
+set ( ENABLE_VCD_FIFO True )
+set ( ENB_MODE True )
+set ( EPC_BUILD False )
+set ( HARD_RT False )
+set ( JUMBO_FRAME True )
+set ( LARGE_SCALE False )
+set ( LINK_ENB_PDCP_TO_GTPV1U False )
+set ( LINK_ENB_PDCP_TO_IP_DRIVER False )
+set ( LINK_PDCP_TO_GTPV1U False )
+set ( LINUX_LIST False )
+set ( LINUX True )
+set ( LOCALIZATION False )
+set ( LOG_NO_THREAD True )
+set ( LOWLATENCY False )
+set ( MAC_CONTEXT 1 )
+set ( MAX_NUM_CCs 1 )
+set ( MIH_C_MEDIEVAL_EXTENSIONS True )
+set ( MSG_PRINT False )
+set ( MU_RECEIVER False )
+set ( NAS_ADDRESS_FIX False )
+set ( NAS_BUILT_IN_EPC False )
+set ( NAS_BUILT_IN_UE False )
+set ( NAS_MME False )
+set ( NAS_NETLINK False )
+set ( NAS_UE False )
+set ( NB_ANTENNAS_RX 2 )
+set ( NB_ANTENNAS_TX 2 )
+set ( NB_ANTENNAS_TXRX 2 )
+set ( NEW_FFT True )
+set ( NO_RRM True )
+set ( OAI_EMU True )
+set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
+set ( OAI_NW_DRIVER_USE_NETLINK False )
+set ( OAISIM True )
+set ( OPENAIR1 False )
+set ( OPENAIR2 True )
+set ( OPENAIR_EMU False )
+set ( OPENAIR_LTE True )
+set ( PBS_SIM False )
+set ( PC_DSP False )
+set ( PC_TARGET False )
+set ( PDCP_MSG_PRINT False )
+set ( PDCP_USE_NETLINK False )
+set ( PDCP_USE_NETLINK_QUEUES False )
+set ( PERFECT_CE False )
+set ( PHY_ABSTRACTION True )
+set ( PHY_CONTEXT 1 )
+set ( PHY_EMUL False )
+set ( PHYSIM False )
+set ( PUCCH True )
+set ( RANDOM_BF False )
+set ( RF_BOARD False )
+set ( RLC_STOP_ON_LOST_PDU False )
+set ( RRC_ASN1_VERSION Rel8 )
+set ( RRC_DEFAULT_RAB_IS_AM False )
+set ( RRC_MSG_PRINT False )
+set ( RTAI False )
+set ( S1AP_LIMIT_STREAM_ID_TO_1 False )
+set ( S1AP_VERSION R10 )
+set ( SMBV False )
+set ( SPECTRA False )
+set ( STOP_ON_IP_TRAFFIC_OVERLOAD False )
+set ( TEST_OMG False )
+set ( TRACE_RLC_AM_BO False )
+set ( TRACE_RLC_AM_FREE_SDU False )
+set ( TRACE_RLC_AM_HOLE False )
+set ( TRACE_RLC_AM_PDU True )
+set ( TRACE_RLC_AM_RESEGMENT False )
+set ( TRACE_RLC_AM_RX_DECODE False )
+set ( TRACE_RLC_AM_RX False )
+set ( TRACE_RLC_AM_STATUS_CREATION False )
+set ( TRACE_RLC_AM_TX False )
+set ( TRACE_RLC_AM_TX_STATUS False )
+set ( TRACE_RLC_PAYLOAD False )
+set ( TRACE_RLC_UM_DAR False )
+set ( TRACE_RLC_UM_DISPLAY_ASCII_DATA False )
+set ( TRACE_RLC_UM_PDU True )
+set ( TRACE_RLC_UM_RX False )
+set ( TRACE_RLC_UM_SEGMENT False )
+set ( TRACE_RLC_UM_TX_STATUS False )
+set ( UE_BUILD False )
+set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
+set ( USE_MME False )
+set ( USER_MODE True )
+set ( XER_PRINT True )
+set ( XFORMS False )
 include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/test.0102/CMakeLists.txt b/cmake_targets/autotests/test.0102/CMakeLists.txt
index e219ba896a..32e3f4a0b1 100644
--- a/cmake_targets/autotests/test.0102/CMakeLists.txt
+++ b/cmake_targets/autotests/test.0102/CMakeLists.txt
@@ -1,75 +1,111 @@
 cmake_minimum_required(VERSION 2.8)
 
-set(ADDR_CONF False)
-set(ASSERT True)
-set(DEBUG_OMG False)
-set(DISABLE_XER_PRINT False)
-set(DRIVER2013 False)
-set(ENABLE_FXP True)
-set(ENABLE_ITTI False)
-set(ENABLE_NAS_UE_LOGGING False)
-set(ENABLE_NEW_MULTICAST True)
-set(ENABLE_PDCP_NETLINK_FIFO True)
-set(ENABLE_PGM_TRANSPORT True)
-set(ENABLE_RAL False)
-set(ENABLE_SECURITY False)
-set(ENABLE_USE_CPU_EXECUTION_TIME True)
-set(ENABLE_USE_MME False)
-set(ENABLE_VCD_FIFO True)
-set(HARD_RT False)
-set(JUMBO_FRAME True)
-set(LARGE_SCALE False)
-set(LINK_PDCP_TO_GTPV1U False)
-set(LINUX_LIST False)
-set(LINUX True)
-set(LOCALIZATION False)
-set(LOG_NO_THREAD True)
-set(LOWLATENCY False)
-set(MAC_CONTEXT 1)
-set(MAX_NUM_CCs 1)
-set(MIH_C_MEDIEVAL_EXTENSIONS True)
-set(MSG_PRINT False)
-set(MU_RECEIVER False)
-set(NAS_ADDRESS_FIX true)
-set(NAS_NETLINK True)
-set(NAS_UE True)
-set(NEW_FFT True)
-set(NO_RRM True)
-set(OAI_EMU True)
-set(OAI_EMU True)
-set(OAI_NW_DRIVER_TYPE_ETHERNET False)
-set(OPENAIR1 False)
-set(OPENAIR2 True)
-set(OPENAIR_EMU True)
-set(OPENAIR_LTE True)
-set (PACKAGE_NAME "oaisim")
-set(PACKAGE_NAME "oaisim")
-set(PBS_SIM False)
-set(PC_DSP False)
-set(PC_TARGET False)
-set(PDCP_MSG_PRINT False)
-set(PERFECT_CE False)
-set(PHY_ABSTRACTION True)
-set(PHY_ABSTRACTION True)
-set(PHY_EMUL False)
-set(PHYSIM False)
-set(PUCCH True)
-set(RANDOM_BF False)
-set(RF_BOARD "NoBoard")
-set(RLC_STOP_ON_LOST_PDU False)
-set(RRC_ASN1_VERSION False)
-set(RRC_ASN1_VERSION "Rel8")
-set(RRC_MSG_PRINT False)
-set(RTAI False)
-set(SECU False)
-set(SMBV False)
-set(SPECTRA False)
-set(TEST_OMG False)
-set(UE_BUILD False)
-set(USE_3GPP_ADDR_AS_LINK_ADDR False)
-set(USE_MME False)
-set(USER_MODE True)
-set(XER_PRINT True)
-set(XFORMS False)
-
+set ( ADDR_CONF False )
+set ( ASSERT True )
+set ( DEBUG_OMG False )
+set ( DISABLE_USE_NAS False )
+set ( DISABLE_XER_PRINT False )
+set ( DRIVER2013 False )
+set ( EMOS False )
+set ( ENABLE_FXP True )
+set ( ENABLE_ITTI False )
+set ( ENABLE_NAS_UE_LOGGING False )
+set ( ENABLE_NEW_MULTICAST True )
+set ( ENABLE_PDCP_NETLINK_FIFO False )
+set ( ENABLE_PGM_TRANSPORT True )
+set ( ENABLE_RAL False )
+set ( ENABLE_SECURITY False )
+set ( ENABLE_STANDALONE_EPC False )
+set ( ENABLE_USE_CPU_EXECUTION_TIME True )
+set ( ENABLE_USE_GTPU_IN_KERNEL False )
+set ( ENABLE_USE_MME False )
+set ( ENABLE_USE_NETFILTER_FOR_SGI False )
+set ( ENABLE_USE_PCAP_FOR_SGI False )
+set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False )
+set ( ENABLE_VCD_FIFO True )
+set ( ENB_MODE True )
+set ( EPC_BUILD False )
+set ( HARD_RT False )
+set ( JUMBO_FRAME True )
+set ( LARGE_SCALE False )
+set ( LINK_ENB_PDCP_TO_GTPV1U False )
+set ( LINK_ENB_PDCP_TO_IP_DRIVER False )
+set ( LINK_PDCP_TO_GTPV1U False )
+set ( LINUX_LIST False )
+set ( LINUX True )
+set ( LOCALIZATION False )
+set ( LOG_NO_THREAD True )
+set ( LOWLATENCY False )
+set ( MAC_CONTEXT 1 )
+set ( MAX_NUM_CCs 1 )
+set ( MIH_C_MEDIEVAL_EXTENSIONS True )
+set ( MSG_PRINT False )
+set ( MU_RECEIVER False )
+set ( NAS_ADDRESS_FIX False )
+set ( NAS_BUILT_IN_EPC False )
+set ( NAS_BUILT_IN_UE False )
+set ( NAS_MME False )
+set ( NAS_NETLINK False )
+set ( NAS_UE False )
+set ( NB_ANTENNAS_RX 2 )
+set ( NB_ANTENNAS_TX 2 )
+set ( NB_ANTENNAS_TXRX 2 )
+set ( NEW_FFT True )
+set ( NO_RRM True )
+set ( OAI_EMU True )
+set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
+set ( OAI_NW_DRIVER_USE_NETLINK False )
+set ( OAISIM True )
+set ( OPENAIR1 False )
+set ( OPENAIR2 True )
+set ( OPENAIR_EMU False )
+set ( OPENAIR_LTE True )
+set ( PBS_SIM False )
+set ( PC_DSP False )
+set ( PC_TARGET False )
+set ( PDCP_MSG_PRINT False )
+set ( PDCP_USE_NETLINK_QUEUES False )
+set ( PDCP_USE_NETLINK True )
+set ( PERFECT_CE False )
+set ( PHY_ABSTRACTION True )
+set ( PHY_CONTEXT 1 )
+set ( PHY_EMUL False )
+set ( PHYSIM False )
+set ( PUCCH True )
+set ( RANDOM_BF False )
+set ( RF_BOARD False )
+set ( RLC_STOP_ON_LOST_PDU False )
+set ( RRC_ASN1_VERSION Rel8 )
+set ( RRC_DEFAULT_RAB_IS_AM False )
+set ( RRC_MSG_PRINT False )
+set ( RTAI False )
+set ( S1AP_LIMIT_STREAM_ID_TO_1 False )
+set ( S1AP_VERSION R10 )
+set ( SMBV False )
+set ( SPECTRA False )
+set ( STOP_ON_IP_TRAFFIC_OVERLOAD False )
+set ( TEST_OMG False )
+set ( TRACE_RLC_AM_BO False )
+set ( TRACE_RLC_AM_FREE_SDU False )
+set ( TRACE_RLC_AM_HOLE False )
+set ( TRACE_RLC_AM_PDU True )
+set ( TRACE_RLC_AM_RESEGMENT False )
+set ( TRACE_RLC_AM_RX_DECODE False )
+set ( TRACE_RLC_AM_RX False )
+set ( TRACE_RLC_AM_STATUS_CREATION False )
+set ( TRACE_RLC_AM_TX False )
+set ( TRACE_RLC_AM_TX_STATUS False )
+set ( TRACE_RLC_PAYLOAD False )
+set ( TRACE_RLC_UM_DAR False )
+set ( TRACE_RLC_UM_DISPLAY_ASCII_DATA False )
+set ( TRACE_RLC_UM_PDU True )
+set ( TRACE_RLC_UM_RX False )
+set ( TRACE_RLC_UM_SEGMENT False )
+set ( TRACE_RLC_UM_TX_STATUS False )
+set ( UE_BUILD False )
+set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
+set ( USE_MME False )
+set ( USER_MODE True )
+set ( XER_PRINT True )
+set ( XFORMS False )
 include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/test.0103/CMakeLists.txt b/cmake_targets/autotests/test.0103/CMakeLists.txt
index 7c06bb7422..2710d5f43a 100644
--- a/cmake_targets/autotests/test.0103/CMakeLists.txt
+++ b/cmake_targets/autotests/test.0103/CMakeLists.txt
@@ -1,72 +1,112 @@
 cmake_minimum_required(VERSION 2.8)
 
-set(ADDR_CONF False)
-set(ASSERT False)
-set(DEBUG_OMG False)
-set(DISABLE_XER_PRINT False)
-set(DRIVER2013 True)
-set(ENABLE_FXP True)
-set(ENABLE_ITTI False)
-set(ENABLE_NAS_UE_LOGGING False)
-set(ENABLE_NEW_MULTICAST False)
-set(ENABLE_PDCP_NETLINK_FIFO False)
-set(ENABLE_PGM_TRANSPORT False)
-set(ENABLE_RAL False)
-set(ENABLE_SECURITY False)
-set(ENABLE_USE_CPU_EXECUTION_TIME True)
-set(ENABLE_USE_MME False)
-set(ENABLE_VCD_FIFO True)
-set(HARD_RT False)
-set(JUMBO_FRAME True)
-set(LARGE_SCALE False)
-set(LINK_PDCP_TO_GTPV1U False)
-set(LINUX_LIST False)
-set(LINUX True)
-set(LOCALIZATION False)
-set(LOG_NO_THREAD True)
-set(LOWLATENCY True)
-set(MAC_CONTEXT 1)
-set(MAX_NUM_CCs 1)
-set(MIH_C_MEDIEVAL_EXTENSIONS False)
-set(MSG_PRINT False)
-set(MU_RECEIVER False)
-set(NAS_ADDRESS_FIX False)
-set(NAS_NETLINK False)
-set(NAS_UE False)
-set(NEW_FFT True)
-set(NO_RRM True)
-set(OAI_EMU False)
-set(OAI_NW_DRIVER_TYPE_ETHERNET False)
-set(OPENAIR1 True)
-set(OPENAIR2 True)
-set(OPENAIR_EMU False)
-set(OPENAIR_LTE True)
-set(PACKAGE_NAME "oaisim")
-set(PBS_SIM False)
-set(PC_DSP True)
-set(PC_TARGET True)
-set(PDCP_MSG_PRINT False)
-set(PERFECT_CE False)
-set(PHY_ABSTRACTION False)
-set(PHY_CONTEXT False)
-set(PHY_EMUL False)
-set(PHYSIM True)
-set(PUCCH True)
-set(RANDOM_BF False)
-set(RF_BOARD "EXMIMO")
-set(RLC_STOP_ON_LOST_PDU False)
-set(RRC_ASN1_VERSION Rel8)
-set(RRC_MSG_PRINT False)
-set(RTAI False)
-set(SECU False)
-set(SMBV False)
-set(SPECTRA False)
-set(TEST_OMG False)
-set(UE_BUILD False)
-set(USE_3GPP_ADDR_AS_LINK_ADDR False)
-set(USE_MME False)
-set(USER_MODE True)
-set(XER_PRINT True)
-set(XFORMS False)
+set ( ADDR_CONF False )
+set ( ASSERT True )
+set ( DEBUG_OMG False )
+set ( DISABLE_USE_NAS False )
+set ( DISABLE_XER_PRINT False )
+set ( DRIVER2013 True )
+set ( EMOS False )
+set ( ENABLE_FXP True )
+set ( ENABLE_ITTI False )
+set ( ENABLE_NAS_UE_LOGGING False )
+set ( ENABLE_NEW_MULTICAST False )
+set ( ENABLE_PDCP_NETLINK_FIFO False )
+set ( ENABLE_PGM_TRANSPORT False )
+set ( ENABLE_RAL False )
+set ( ENABLE_SECURITY False )
+set ( ENABLE_STANDALONE_EPC False )
+set ( ENABLE_USE_CPU_EXECUTION_TIME True )
+set ( ENABLE_USE_GTPU_IN_KERNEL False )
+set ( ENABLE_USE_MME False )
+set ( ENABLE_USE_NETFILTER_FOR_SGI False )
+set ( ENABLE_USE_PCAP_FOR_SGI False )
+set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False )
+set ( ENABLE_VCD_FIFO True )
+set ( ENB_MODE True )
+set ( EPC_BUILD False )
+set ( HARD_RT False )
+set ( JUMBO_FRAME True )
+set ( LARGE_SCALE False )
+set ( LINK_ENB_PDCP_TO_GTPV1U False )
+set ( LINK_ENB_PDCP_TO_IP_DRIVER False )
+set ( LINK_PDCP_TO_GTPV1U False )
+set ( LINUX False )
+set ( LINUX_LIST False )
+set ( LOCALIZATION False )
+set ( LOG_NO_THREAD True )
+set ( LOWLATENCY False )
+set ( MAC_CONTEXT 1 )
+set ( MAX_NUM_CCs 1 )
+set ( MIH_C_MEDIEVAL_EXTENSIONS True )
+set ( MSG_PRINT False )
+set ( MU_RECEIVER False )
+set ( NAS_ADDRESS_FIX False )
+set ( NAS_BUILT_IN_EPC False )
+set ( NAS_BUILT_IN_UE False )
+set ( NAS_MME False )
+set ( NAS_NETLINK False )
+set ( NAS_UE False )
+set ( NB_ANTENNAS_RX 2 )
+set ( NB_ANTENNAS_TX 2 )
+set ( NB_ANTENNAS_TXRX 2 )
+set ( NEW_FFT True )
+set ( NO_RRM True )
+set ( OAI_EMU False )
+set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
+set ( OAI_NW_DRIVER_USE_NETLINK False )
+set ( OAISIM False )
+set ( OPENAIR1 True )
+set ( OPENAIR2 True )
+set ( OPENAIR_EMU False )
+set ( OPENAIR_LTE True )
+set ( PBS_SIM False )
+set ( PC_DSP True )
+set ( PC_TARGET True )
+set ( PDCP_MSG_PRINT False )
+set ( PDCP_USE_NETLINK False )
+set ( PDCP_USE_NETLINK_QUEUES False )
+set ( PERFECT_CE False )
+set ( PHY_ABSTRACTION False )
+set ( PHY_CONTEXT 1 )
+set ( PHY_EMUL False )
+set ( PHYSIM True )
+set ( PUCCH True )
+set ( RANDOM_BF False )
+set ( RF_BOARD EXMIMO )
+set ( RLC_STOP_ON_LOST_PDU False )
+set ( RRC_ASN1_VERSION Rel8 )
+set ( RRC_DEFAULT_RAB_IS_AM False )
+set ( RRC_MSG_PRINT False )
+set ( RTAI False )
+set ( S1AP_LIMIT_STREAM_ID_TO_1 False )
+set ( S1AP_VERSION R10 )
+set ( SMBV False )
+set ( SPECTRA False )
+set ( STOP_ON_IP_TRAFFIC_OVERLOAD False )
+set ( TEST_OMG False )
+set ( TRACE_RLC_AM_BO False )
+set ( TRACE_RLC_AM_FREE_SDU False )
+set ( TRACE_RLC_AM_HOLE False )
+set ( TRACE_RLC_AM_PDU False )
+set ( TRACE_RLC_AM_RESEGMENT False )
+set ( TRACE_RLC_AM_RX_DECODE False )
+set ( TRACE_RLC_AM_RX False )
+set ( TRACE_RLC_AM_STATUS_CREATION False )
+set ( TRACE_RLC_AM_TX False )
+set ( TRACE_RLC_AM_TX_STATUS False )
+set ( TRACE_RLC_PAYLOAD False )
+set ( TRACE_RLC_UM_DAR False )
+set ( TRACE_RLC_UM_DISPLAY_ASCII_DATA False )
+set ( TRACE_RLC_UM_PDU False )
+set ( TRACE_RLC_UM_RX False )
+set ( TRACE_RLC_UM_SEGMENT False )
+set ( TRACE_RLC_UM_TX_STATUS False )
+set ( UE_BUILD False )
+set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
+set ( USE_MME False )
+set ( USER_MODE True )
+set ( XER_PRINT False )
+set ( XFORMS False )
 
 include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/test.0106/CMakeLists.txt b/cmake_targets/autotests/test.0106/CMakeLists.txt
index e9369d626f..c4ef942fc4 100644
--- a/cmake_targets/autotests/test.0106/CMakeLists.txt
+++ b/cmake_targets/autotests/test.0106/CMakeLists.txt
@@ -57,7 +57,7 @@ set(PUCCH True)
 set(RANDOM_BF False)
 set(RF_BOARD "NoBoard")
 set(RLC_STOP_ON_LOST_PDU False)
-set(RRC_ASN1_VERSION False)
+set(RRC_ASN1_VERSION Rel8)
 set(RRC_ASN1_VERSION "Rel8")
 set(RRC_MSG_PRINT False)
 set(RTAI False)
diff --git a/cmake_targets/autotests/test.0107/CMakeLists.txt b/cmake_targets/autotests/test.0107/CMakeLists.txt
index 3c82ec99c6..180bd867f4 100644
--- a/cmake_targets/autotests/test.0107/CMakeLists.txt
+++ b/cmake_targets/autotests/test.0107/CMakeLists.txt
@@ -1,75 +1,112 @@
 cmake_minimum_required(VERSION 2.8)
 
-set(ADDR_CONF False)
-set(ASSERT True)
-set(DEBUG_OMG False)
-set(DISABLE_XER_PRINT False)
-set(DRIVER2013 False)
-set(ENABLE_FXP True)
-set(ENABLE_ITTI False)
-set(ENABLE_NAS_UE_LOGGING False)
-set(ENABLE_NEW_MULTICAST True)
-set(ENABLE_PDCP_NETLINK_FIFO False)
-set(ENABLE_PGM_TRANSPORT True)
-set(ENABLE_RAL False)
-set(ENABLE_SECURITY False)
-set(ENABLE_USE_CPU_EXECUTION_TIME True)
-set(ENABLE_USE_MME False)
-set(ENABLE_VCD_FIFO True)
-set(HARD_RT False)
-set(JUMBO_FRAME True)
-set(LARGE_SCALE False)
-set(LINK_PDCP_TO_GTPV1U False)
-set(LINUX_LIST False)
-set(LINUX True)
-set(LOCALIZATION False)
-set(LOG_NO_THREAD True)
-set(LOWLATENCY False)
-set(MAC_CONTEXT 1)
-set(MAX_NUM_CCs 1)
-set(MIH_C_MEDIEVAL_EXTENSIONS True)
-set(MSG_PRINT False)
-set(MU_RECEIVER False)
-set(NAS_ADDRESS_FIX true)
-set(NAS_NETLINK True)
-set(NAS_UE True)
-set(NEW_FFT True)
-set(NO_RRM True)
-set(OAI_EMU True)
-set(OAI_EMU True)
-set(OAI_NW_DRIVER_TYPE_ETHERNET False)
-set(OPENAIR1 False)
-set(OPENAIR2 True)
-set(OPENAIR_EMU True)
-set(OPENAIR_LTE True)
-set (PACKAGE_NAME "oaisim")
-set(PACKAGE_NAME "oaisim")
-set(PBS_SIM False)
-set(PC_DSP False)
-set(PC_TARGET False)
-set(PDCP_MSG_PRINT False)
-set(PERFECT_CE False)
-set(PHY_ABSTRACTION True)
-set(PHY_ABSTRACTION True)
-set(PHY_EMUL False)
-set(PHYSIM False)
-set(PUCCH True)
-set(RANDOM_BF False)
-set(RF_BOARD "NoBoard")
-set(RLC_STOP_ON_LOST_PDU True)
-set(RRC_ASN1_VERSION False)
-set(RRC_ASN1_VERSION "Rel10")
-set(RRC_MSG_PRINT False)
-set(RTAI False)
-set(SECU False)
-set(SMBV False)
-set(SPECTRA False)
-set(TEST_OMG False)
-set(UE_BUILD False)
-set(USE_3GPP_ADDR_AS_LINK_ADDR False)
-set(USE_MME False)
-set(USER_MODE True)
-set(XER_PRINT True)
-set(XFORMS False)
+set ( ADDR_CONF False )
+set ( ASSERT True )
+set ( DEBUG_OMG False )
+set ( DISABLE_USE_NAS False )
+set ( DISABLE_XER_PRINT False )
+set ( DRIVER2013 False )
+set ( EMOS False )
+set ( ENABLE_FXP True )
+set ( ENABLE_ITTI False )
+set ( ENABLE_NAS_UE_LOGGING False )
+set ( ENABLE_NEW_MULTICAST True )
+set ( ENABLE_PDCP_NETLINK_FIFO False )
+set ( ENABLE_PGM_TRANSPORT True )
+set ( ENABLE_RAL False )
+set ( ENABLE_SECURITY False )
+set ( ENABLE_STANDALONE_EPC False )
+set ( ENABLE_USE_CPU_EXECUTION_TIME True )
+set ( ENABLE_USE_GTPU_IN_KERNEL False )
+set ( ENABLE_USE_MME False )
+set ( ENABLE_USE_NETFILTER_FOR_SGI False )
+set ( ENABLE_USE_PCAP_FOR_SGI False )
+set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False )
+set ( ENABLE_VCD_FIFO True )
+set ( ENB_MODE True )
+set ( EPC_BUILD False )
+set ( HARD_RT False )
+set ( JUMBO_FRAME True )
+set ( LARGE_SCALE False )
+set ( LINK_ENB_PDCP_TO_GTPV1U False )
+set ( LINK_ENB_PDCP_TO_IP_DRIVER False )
+set ( LINK_PDCP_TO_GTPV1U False )
+set ( LINUX_LIST False )
+set ( LINUX True )
+set ( LOCALIZATION False )
+set ( LOG_NO_THREAD True )
+set ( LOWLATENCY False )
+set ( MAC_CONTEXT 1 )
+set ( MAX_NUM_CCs 1 )
+set ( MIH_C_MEDIEVAL_EXTENSIONS True )
+set ( MSG_PRINT False )
+set ( MU_RECEIVER False )
+set ( NAS_ADDRESS_FIX False )
+set ( NAS_BUILT_IN_EPC False )
+set ( NAS_BUILT_IN_UE False )
+set ( NAS_MME False )
+set ( NAS_NETLINK False )
+set ( NAS_UE False )
+set ( NB_ANTENNAS_RX 2 )
+set ( NB_ANTENNAS_TX 2 )
+set ( NB_ANTENNAS_TXRX 2 )
+set ( NEW_FFT True )
+set ( NO_RRM True )
+set ( OAI_EMU True )
+set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
+set ( OAI_NW_DRIVER_USE_NETLINK False )
+set ( OAISIM True )
+set ( OPENAIR1 False )
+set ( OPENAIR2 True )
+set ( OPENAIR_EMU False )
+set ( OPENAIR_LTE True )
+set ( PBS_SIM False )
+set ( PC_DSP False )
+set ( PC_TARGET False )
+set ( PDCP_MSG_PRINT False )
+set ( PDCP_USE_NETLINK False )
+set ( PDCP_USE_NETLINK_QUEUES False )
+set ( PERFECT_CE False )
+set ( PHY_ABSTRACTION True )
+set ( PHY_CONTEXT 1 )
+set ( PHY_EMUL False )
+set ( PHYSIM False )
+set ( PUCCH True )
+set ( RANDOM_BF False )
+set ( RF_BOARD False )
+set ( RLC_STOP_ON_LOST_PDU True )
+set ( RRC_ASN1_VERSION Rel10 )
+set ( RRC_DEFAULT_RAB_IS_AM False )
+set ( RRC_MSG_PRINT False )
+set ( RTAI False )
+set ( S1AP_LIMIT_STREAM_ID_TO_1 False )
+set ( S1AP_VERSION R10 )
+set ( SMBV False )
+set ( SPECTRA False )
+set ( STOP_ON_IP_TRAFFIC_OVERLOAD False )
+set ( TEST_OMG False )
+set ( TRACE_RLC_AM_BO False )
+set ( TRACE_RLC_AM_FREE_SDU False )
+set ( TRACE_RLC_AM_HOLE False )
+set ( TRACE_RLC_AM_PDU True )
+set ( TRACE_RLC_AM_RESEGMENT False )
+set ( TRACE_RLC_AM_RX_DECODE False )
+set ( TRACE_RLC_AM_RX False )
+set ( TRACE_RLC_AM_STATUS_CREATION False )
+set ( TRACE_RLC_AM_TX False )
+set ( TRACE_RLC_AM_TX_STATUS False )
+set ( TRACE_RLC_PAYLOAD False )
+set ( TRACE_RLC_UM_DAR False )
+set ( TRACE_RLC_UM_DISPLAY_ASCII_DATA False )
+set ( TRACE_RLC_UM_PDU True )
+set ( TRACE_RLC_UM_RX False )
+set ( TRACE_RLC_UM_SEGMENT False )
+set ( TRACE_RLC_UM_TX_STATUS False )
+set ( UE_BUILD False )
+set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
+set ( USE_MME False )
+set ( USER_MODE True )
+set ( XER_PRINT True )
+set ( XFORMS False )
 
 include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/test.0108/CMakeLists.txt b/cmake_targets/autotests/test.0108/CMakeLists.txt
index d6ac75556e..0b16fc722a 100644
--- a/cmake_targets/autotests/test.0108/CMakeLists.txt
+++ b/cmake_targets/autotests/test.0108/CMakeLists.txt
@@ -57,7 +57,7 @@ set(PUCCH True)
 set(RANDOM_BF False)
 set(RF_BOARD "NoBoard")
 set(RLC_STOP_ON_LOST_PDU True)
-set(RRC_ASN1_VERSION False)
+set(RRC_ASN1_VERSION Rel10)
 set(RRC_ASN1_VERSION "Rel10")
 set(RRC_MSG_PRINT False)
 set(RTAI False)
diff --git a/cmake_targets/autotests/test.0114/CMakeLists.txt b/cmake_targets/autotests/test.0114/CMakeLists.txt
index 2bc90e5c2d..426c824bff 100644
--- a/cmake_targets/autotests/test.0114/CMakeLists.txt
+++ b/cmake_targets/autotests/test.0114/CMakeLists.txt
@@ -57,7 +57,7 @@ set(PUCCH True)
 set(RANDOM_BF False)
 set(RF_BOARD "NoBoard")
 set(RLC_STOP_ON_LOST_PDU True)
-set(RRC_ASN1_VERSION False)
+set(RRC_ASN1_VERSION Rel8)
 set(RRC_ASN1_VERSION "Rel8")
 set(RRC_MSG_PRINT False)
 set(RTAI False)
diff --git a/cmake_targets/autotests/test.0115/CMakeLists.txt b/cmake_targets/autotests/test.0115/CMakeLists.txt
index 285d13eceb..b6124779a5 100644
--- a/cmake_targets/autotests/test.0115/CMakeLists.txt
+++ b/cmake_targets/autotests/test.0115/CMakeLists.txt
@@ -1,75 +1,112 @@
 cmake_minimum_required(VERSION 2.8)
 
-set(ADDR_CONF False)
-set(ASSERT True)
-set(DEBUG_OMG False)
-set(DISABLE_XER_PRINT False)
-set(DRIVER2013 False)
-set(ENABLE_FXP True)
-set(ENABLE_ITTI True)
-set(ENABLE_NAS_UE_LOGGING False)
-set(ENABLE_NEW_MULTICAST True)
-set(ENABLE_PDCP_NETLINK_FIFO True)
-set(ENABLE_PGM_TRANSPORT True)
-set(ENABLE_RAL True)
-set(ENABLE_SECURITY False)
-set(ENABLE_USE_CPU_EXECUTION_TIME True)
-set(ENABLE_USE_MME False)
-set(ENABLE_VCD_FIFO True)
-set(HARD_RT False)
-set(JUMBO_FRAME True)
-set(LARGE_SCALE False)
-set(LINK_PDCP_TO_GTPV1U False)
-set(LINUX_LIST False)
-set(LINUX True)
-set(LOCALIZATION False)
-set(LOG_NO_THREAD True)
-set(LOWLATENCY False)
-set(MAC_CONTEXT 1)
-set(MAX_NUM_CCs 1)
-set(MIH_C_MEDIEVAL_EXTENSIONS True)
-set(MSG_PRINT False)
-set(MU_RECEIVER False)
-set(NAS_ADDRESS_FIX true)
-set(NAS_NETLINK True)
-set(NAS_UE True)
-set(NEW_FFT True)
-set(NO_RRM True)
-set(OAI_EMU True)
-set(OAI_EMU True)
-set(OAI_NW_DRIVER_TYPE_ETHERNET True)
-set(OPENAIR1 False)
-set(OPENAIR2 True)
-set(OPENAIR_EMU True)
-set(OPENAIR_LTE True)
-set (PACKAGE_NAME "oaisim")
-set(PACKAGE_NAME "oaisim")
-set(PBS_SIM False)
-set(PC_DSP False)
-set(PC_TARGET False)
-set(PDCP_MSG_PRINT False)
-set(PERFECT_CE False)
-set(PHY_ABSTRACTION True)
-set(PHY_ABSTRACTION True)
-set(PHY_EMUL False)
-set(PHYSIM False)
-set(PUCCH True)
-set(RANDOM_BF False)
-set(RF_BOARD "NoBoard")
-set(RLC_STOP_ON_LOST_PDU True)
-set(RRC_ASN1_VERSION False)
-set(RRC_ASN1_VERSION "Rel10")
-set(RRC_MSG_PRINT False)
-set(RTAI False)
-set(SECU False)
-set(SMBV False)
-set(SPECTRA False)
-set(TEST_OMG False)
-set(UE_BUILD False)
-set(USE_3GPP_ADDR_AS_LINK_ADDR False)
-set(USE_MME False)
-set(USER_MODE True)
-set(XER_PRINT False)
-set(XFORMS False)
+set ( ADDR_CONF False )
+set ( ASSERT True )
+set ( DEBUG_OMG False )
+set ( DISABLE_USE_NAS False )
+set ( DISABLE_XER_PRINT False )
+set ( DRIVER2013 False )
+set ( EMOS False )
+set ( ENABLE_FXP True )
+set ( ENABLE_ITTI True )
+set ( ENABLE_NAS_UE_LOGGING False )
+set ( ENABLE_NEW_MULTICAST True )
+set ( ENABLE_PDCP_NETLINK_FIFO False )
+set ( ENABLE_PGM_TRANSPORT True )
+set ( ENABLE_RAL True )
+set ( ENABLE_SECURITY False )
+set ( ENABLE_STANDALONE_EPC False )
+set ( ENABLE_USE_CPU_EXECUTION_TIME True )
+set ( ENABLE_USE_GTPU_IN_KERNEL False )
+set ( ENABLE_USE_MME False )
+set ( ENABLE_USE_NETFILTER_FOR_SGI False )
+set ( ENABLE_USE_PCAP_FOR_SGI False )
+set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False )
+set ( ENABLE_VCD_FIFO True )
+set ( ENB_MODE True )
+set ( EPC_BUILD False )
+set ( HARD_RT False )
+set ( JUMBO_FRAME True )
+set ( LARGE_SCALE False )
+set ( LINK_ENB_PDCP_TO_GTPV1U False )
+set ( LINK_ENB_PDCP_TO_IP_DRIVER False )
+set ( LINK_PDCP_TO_GTPV1U False )
+set ( LINUX_LIST False )
+set ( LINUX True )
+set ( LOCALIZATION False )
+set ( LOG_NO_THREAD True )
+set ( LOWLATENCY False )
+set ( MAC_CONTEXT 1 )
+set ( MAX_NUM_CCs 1 )
+set ( MIH_C_MEDIEVAL_EXTENSIONS True )
+set ( MSG_PRINT False )
+set ( MU_RECEIVER False )
+set ( NAS_ADDRESS_FIX False )
+set ( NAS_BUILT_IN_EPC False )
+set ( NAS_BUILT_IN_UE False )
+set ( NAS_MME False )
+set ( NAS_NETLINK False )
+set ( NAS_UE False )
+set ( NB_ANTENNAS_RX 2 )
+set ( NB_ANTENNAS_TX 2 )
+set ( NB_ANTENNAS_TXRX 2 )
+set ( NEW_FFT True )
+set ( NO_RRM True )
+set ( OAI_EMU True )
+set ( OAI_NW_DRIVER_TYPE_ETHERNET True )
+set ( OAI_NW_DRIVER_USE_NETLINK False )
+set ( OAISIM True )
+set ( OPENAIR1 False )
+set ( OPENAIR2 True )
+set ( OPENAIR_EMU False )
+set ( OPENAIR_LTE True )
+set ( PBS_SIM False )
+set ( PC_DSP False )
+set ( PC_TARGET False )
+set ( PDCP_MSG_PRINT False )
+set ( PDCP_USE_NETLINK_QUEUES False )
+set ( PDCP_USE_NETLINK True )
+set ( PERFECT_CE False )
+set ( PHY_ABSTRACTION True )
+set ( PHY_CONTEXT 1 )
+set ( PHY_EMUL False )
+set ( PHYSIM False )
+set ( PUCCH True )
+set ( RANDOM_BF False )
+set ( RF_BOARD False )
+set ( RLC_STOP_ON_LOST_PDU True )
+set ( RRC_ASN1_VERSION Rel10 )
+set ( RRC_DEFAULT_RAB_IS_AM False )
+set ( RRC_MSG_PRINT False )
+set ( RTAI False )
+set ( S1AP_LIMIT_STREAM_ID_TO_1 False )
+set ( S1AP_VERSION R10 )
+set ( SMBV False )
+set ( SPECTRA False )
+set ( STOP_ON_IP_TRAFFIC_OVERLOAD False )
+set ( TEST_OMG False )
+set ( TRACE_RLC_AM_BO False )
+set ( TRACE_RLC_AM_FREE_SDU False )
+set ( TRACE_RLC_AM_HOLE False )
+set ( TRACE_RLC_AM_PDU True )
+set ( TRACE_RLC_AM_RESEGMENT False )
+set ( TRACE_RLC_AM_RX_DECODE False )
+set ( TRACE_RLC_AM_RX False )
+set ( TRACE_RLC_AM_STATUS_CREATION False )
+set ( TRACE_RLC_AM_TX False )
+set ( TRACE_RLC_AM_TX_STATUS False )
+set ( TRACE_RLC_PAYLOAD False )
+set ( TRACE_RLC_UM_DAR False )
+set ( TRACE_RLC_UM_DISPLAY_ASCII_DATA False )
+set ( TRACE_RLC_UM_PDU True )
+set ( TRACE_RLC_UM_RX False )
+set ( TRACE_RLC_UM_SEGMENT False )
+set ( TRACE_RLC_UM_TX_STATUS False )
+set ( UE_BUILD False )
+set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
+set ( USE_MME False )
+set ( USER_MODE True )
+set ( XER_PRINT False )
+set ( XFORMS False )
 
 include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/test.0120/CMakeLists.txt b/cmake_targets/autotests/test.0120/CMakeLists.txt
new file mode 100644
index 0000000000..32e3f4a0b1
--- /dev/null
+++ b/cmake_targets/autotests/test.0120/CMakeLists.txt
@@ -0,0 +1,111 @@
+cmake_minimum_required(VERSION 2.8)
+
+set ( ADDR_CONF False )
+set ( ASSERT True )
+set ( DEBUG_OMG False )
+set ( DISABLE_USE_NAS False )
+set ( DISABLE_XER_PRINT False )
+set ( DRIVER2013 False )
+set ( EMOS False )
+set ( ENABLE_FXP True )
+set ( ENABLE_ITTI False )
+set ( ENABLE_NAS_UE_LOGGING False )
+set ( ENABLE_NEW_MULTICAST True )
+set ( ENABLE_PDCP_NETLINK_FIFO False )
+set ( ENABLE_PGM_TRANSPORT True )
+set ( ENABLE_RAL False )
+set ( ENABLE_SECURITY False )
+set ( ENABLE_STANDALONE_EPC False )
+set ( ENABLE_USE_CPU_EXECUTION_TIME True )
+set ( ENABLE_USE_GTPU_IN_KERNEL False )
+set ( ENABLE_USE_MME False )
+set ( ENABLE_USE_NETFILTER_FOR_SGI False )
+set ( ENABLE_USE_PCAP_FOR_SGI False )
+set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False )
+set ( ENABLE_VCD_FIFO True )
+set ( ENB_MODE True )
+set ( EPC_BUILD False )
+set ( HARD_RT False )
+set ( JUMBO_FRAME True )
+set ( LARGE_SCALE False )
+set ( LINK_ENB_PDCP_TO_GTPV1U False )
+set ( LINK_ENB_PDCP_TO_IP_DRIVER False )
+set ( LINK_PDCP_TO_GTPV1U False )
+set ( LINUX_LIST False )
+set ( LINUX True )
+set ( LOCALIZATION False )
+set ( LOG_NO_THREAD True )
+set ( LOWLATENCY False )
+set ( MAC_CONTEXT 1 )
+set ( MAX_NUM_CCs 1 )
+set ( MIH_C_MEDIEVAL_EXTENSIONS True )
+set ( MSG_PRINT False )
+set ( MU_RECEIVER False )
+set ( NAS_ADDRESS_FIX False )
+set ( NAS_BUILT_IN_EPC False )
+set ( NAS_BUILT_IN_UE False )
+set ( NAS_MME False )
+set ( NAS_NETLINK False )
+set ( NAS_UE False )
+set ( NB_ANTENNAS_RX 2 )
+set ( NB_ANTENNAS_TX 2 )
+set ( NB_ANTENNAS_TXRX 2 )
+set ( NEW_FFT True )
+set ( NO_RRM True )
+set ( OAI_EMU True )
+set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
+set ( OAI_NW_DRIVER_USE_NETLINK False )
+set ( OAISIM True )
+set ( OPENAIR1 False )
+set ( OPENAIR2 True )
+set ( OPENAIR_EMU False )
+set ( OPENAIR_LTE True )
+set ( PBS_SIM False )
+set ( PC_DSP False )
+set ( PC_TARGET False )
+set ( PDCP_MSG_PRINT False )
+set ( PDCP_USE_NETLINK_QUEUES False )
+set ( PDCP_USE_NETLINK True )
+set ( PERFECT_CE False )
+set ( PHY_ABSTRACTION True )
+set ( PHY_CONTEXT 1 )
+set ( PHY_EMUL False )
+set ( PHYSIM False )
+set ( PUCCH True )
+set ( RANDOM_BF False )
+set ( RF_BOARD False )
+set ( RLC_STOP_ON_LOST_PDU False )
+set ( RRC_ASN1_VERSION Rel8 )
+set ( RRC_DEFAULT_RAB_IS_AM False )
+set ( RRC_MSG_PRINT False )
+set ( RTAI False )
+set ( S1AP_LIMIT_STREAM_ID_TO_1 False )
+set ( S1AP_VERSION R10 )
+set ( SMBV False )
+set ( SPECTRA False )
+set ( STOP_ON_IP_TRAFFIC_OVERLOAD False )
+set ( TEST_OMG False )
+set ( TRACE_RLC_AM_BO False )
+set ( TRACE_RLC_AM_FREE_SDU False )
+set ( TRACE_RLC_AM_HOLE False )
+set ( TRACE_RLC_AM_PDU True )
+set ( TRACE_RLC_AM_RESEGMENT False )
+set ( TRACE_RLC_AM_RX_DECODE False )
+set ( TRACE_RLC_AM_RX False )
+set ( TRACE_RLC_AM_STATUS_CREATION False )
+set ( TRACE_RLC_AM_TX False )
+set ( TRACE_RLC_AM_TX_STATUS False )
+set ( TRACE_RLC_PAYLOAD False )
+set ( TRACE_RLC_UM_DAR False )
+set ( TRACE_RLC_UM_DISPLAY_ASCII_DATA False )
+set ( TRACE_RLC_UM_PDU True )
+set ( TRACE_RLC_UM_RX False )
+set ( TRACE_RLC_UM_SEGMENT False )
+set ( TRACE_RLC_UM_TX_STATUS False )
+set ( UE_BUILD False )
+set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
+set ( USE_MME False )
+set ( USER_MODE True )
+set ( XER_PRINT True )
+set ( XFORMS False )
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/build_oai.bash b/cmake_targets/build_oai.bash
index efbae8aee2..d377b0a5bd 100755
--- a/cmake_targets/build_oai.bash
+++ b/cmake_targets/build_oai.bash
@@ -37,7 +37,7 @@
 ################################
 ORIGIN_PATH=$PWD
 THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
-source $THIS_SCRIPT_PATH/build_helper.bash
+source $THIS_SCRIPT_PATH/tools/build_helper.bash
 
 #EMULATION_DEV_INTERFACE="eth0"
 #EMULATION_MULTICAST_GROUP=1
@@ -60,14 +60,14 @@ do
 	    clean_kernel
 	    echo_info "Erased iptables config and removed modules from kernel"
             shift;;
-	-C | --config-file)
-            CONFIG_FILE=$2
-	    echo_info "Will install the config file $CONFIG_FILE"
-            shift 2;;
 	-I | --install-external-packages)
             INSTALL_EXTERNAL=1
             echo_info "Will install external packages"
             shift;;
+	--install-optional-packages)
+            INSTALL_OPTIONAL=1
+            echo_info "Will install optional packages"
+            shift;;
 	-g | --run-with-gdb)
             GDB=1
             echo_info "Will Compile with gdb symbols"
@@ -141,7 +141,7 @@ echo_info "2. Setting the OAI PATHS ..."
 set_openair_env 
 cecho "OPENAIR_HOME    = $OPENAIR_HOME" $green
 
-dbin=$OPENAIR_HOME/cmake_targets/bin
+dbin=$OPENAIR_HOME/targets/bin
 dlog=$OPENAIR_HOME/cmake_targets/log
 mkdir -p $dbin $dlog
 
@@ -149,13 +149,18 @@ if [ "$INSTALL_EXTERNAL" = "1" ] ; then
    echo_info "Installing packages"
    check_install_oai_software
    echo_info "Making X.509 certificates"
-   make_certs
+   make_certs eur
    if [ "$HW" == "USRP" ] ; then
      echo_info "installing packages for USRP support"
      check_install_usrp_uhd_driver
    fi
 fi
 
+if [ "$INSTALL_OPTIONAL" = "1" ] ; then
+   echo_info "Installing optional packages"
+   check_install_additional_tools
+fi
+
 echo_info "3. building the compilation directives ..."
 
 DIR=$OPENAIR_HOME/cmake_targets
@@ -164,6 +169,7 @@ DIR=$OPENAIR_HOME/cmake_targets
 #####################################"
 
 # For eNB, UE, ...
+############
 mkdir -p $DIR/lte_build_oai/build
 cmake_file=$DIR/lte_build_oai/CMakeLists.txt
 echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
@@ -177,6 +183,7 @@ cd  $DIR/lte_build_oai/build
 cmake ..
 
 # For EPC
+############
 cmake_file=$DIR/epc_build_oai/CMakeLists.txt
 cp $DIR/epc_build_oai/CMakeLists.template $cmake_file
 echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >>  $cmake_file
@@ -186,6 +193,7 @@ cd $DIR/epc_build_oai/build
 cmake ..
 
 # For oaisim
+############
 cmake_file=$DIR/oaisim_build_oai/CMakeLists.txt
 cp $DIR/oaisim_build_oai/CMakeLists.template $cmake_file
 echo "set(XFORMS $XFORMS )" >>  $cmake_file
@@ -196,7 +204,20 @@ mkdir -p $DIR/oaisim_build_oai/build
 cd $DIR/oaisim_build_oai/build
 cmake ..
 
+# For oaisim_mme
+############
+cmake_file=$DIR/oaisim_mme_build_oai/CMakeLists.txt
+cp $DIR/oaisim_mme_build_oai/CMakeLists.template $cmake_file
+echo "set(XFORMS $XFORMS )" >>  $cmake_file
+echo "set(RRC_ASN1_VERSION \"${REL}\")" >>  $cmake_file
+echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >>  $cmake_file
+echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
+mkdir -p $DIR/oaisim_build_oai/build
+cd $DIR/oaisim_build_oai/build
+cmake ..
+
 # For unitary test simulators
+###################
 cd $OPENAIR_DIR/cmake_targets/lte-simulators
 [ "$CLEAN" = "1" ] && rm -rf build
 mkdir -p build
@@ -210,6 +231,10 @@ if [ "$eNB" = "1" -o "UE" = "1" ] ; then
     compilations \
 	lte_build_oai lte-softmodem \
 	lte-softmodem lte-softmodem.$REL 
+    # nasmesh driver compilation
+    compilations \
+	oaisim_build_oai nasmesh \
+	CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
 fi
 
 if [ "$UE" = 1 ] ; then
@@ -219,11 +244,11 @@ if [ "$UE" = 1 ] ; then
 	lte_build_oai ue_ip \
 	CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko
     compilations \
-	lte_build_oai usim_data \
-	usim_data $dbin/usim_data
+	lte_build_oai usim \
+	usim $dbin/usim
     compilations \
-	lte_build_oai ue_data \
-	ue_data $dbin/ue_data
+	lte_build_oai nvram \
+	nvram $dbin/nvram
 fi
 
 if [ "$SIMUS_PHY" = "1" ] ; then
@@ -238,10 +263,11 @@ if [ "$SIMUS_PHY" = "1" ] ; then
 fi
 
 # Core simulators 
+#############
 if [ "$SIMUS_CORE" = "1" ] ; then
    # lte unitary simulators compilation
    echo_info "Compiling unitary tests simulators"
-   simlist="secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu secu_knas_stream_int secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
+   simlist="secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
    for f in $simlist ; do
        compilations \
 	   lte-simulators test_$f \
@@ -250,6 +276,7 @@ if [ "$SIMUS_CORE" = "1" ] ; then
 fi
 
 # EXMIMO drivers & firmware loader
+###############
 if [ "$HW" = "EXMIMO" ] ; then
     echo_info "Compiling Express MIMO 2 board drivers"
     compilations \
@@ -266,16 +293,12 @@ if [ "$oaisim" = "1" ] ; then
 	oaisim_build_oai oaisim \
 	oaisim $dbin/oaisim.$REL
     compilations \
-	oaisim_build_oai oaisim_mme \
+	oaisim_mme_build_oai oaisim_mme \
 	oaisim_mme $dbin/oaisim_mme.$REL
     #oai_nw_drv
     compilations \
 	oaisim_build_oai oai_nw_drv \
 	CMakeFiles/oai_nw_drv/oai_nw_drv.ko $dbin/oai_nw_drv.ko
-    # nasmesh driver compilation
-    compilations \
-	oaisim_build_oai nasmesh \
-	CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
 fi
 
 # EPC compilation
@@ -284,11 +307,12 @@ if [ "$EPC" = "1" ] ; then
     echo_info "Compiling EPC"
 
     compilations \
-	epc_build_oai oai_epc \
-	oai_epc $dbin/oai_epc.$REL
-    compilations \
-	epc_build_oai oai_sgw \
-	oai_sgw $dbin/oai_sgw.$REL
+	epc_build_oai mme_gw \
+	mme_gw $dbin/mme_gw.$REL
+# Only integrated mme+sgw+pgw is operational today
+#    compilations \
+#	epc_build_oai oai_sgw \
+#	oai_sgw $dbin/oai_sgw.$REL
     compilations \
 	epc_build_oai xt_GTPUAH_lib \
 	libxt_GTPUAH_lib.so $dbin
@@ -306,27 +330,29 @@ if [ "$EPC" = "1" ] ; then
 fi
 
 if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then
+
     echo_info "Copying iptables libraries into system directory: /lib/xtables"
     $SUDO ln -s $dbin/libxt_GTPURH_lib.so /lib/xtables/libxt_GTPURH.so
     $SUDO ln -s $dbin/libxt_GTPUAH_lib.so /lib/xtables/libxt_GTPUAH.so
 
-fi
-
-# Install config file
-###################
-if [ "$CONFIG_FILE" != "" ] ; then
-
-    dconf=$DIR/conf
+    dconf=$OPENAIR_TARGETS/bin
     mkdir -p $dconf
     cp $ORIGIN_PATH/$CONFIG_FILE $dconf || echo_fatal "config file $ORIGIN_PATH/$CONFIG_FILE not found"
 
     # generate USIM data
     install_nas_tools $dbin $dconf
 
+    # Do EPC
+    cp $DIR/epc_build_oai/epc.*.conf $dconf
+    $SUDO cp  $DIR/epc_build_oai/epc_s6a.conf  /usr/local/etc/freeDiameter
+
     # Do HSS 
     # bash doesn't like space char around = char
-    sed -e 's/ *= */=/' $OPENAIRCN_DIR/OPENAIRHSS/conf/hss.local.conf > $dconf/hss.local.conf
-    source $dconf/hss.local.conf
+    cp $DIR/hss_build/hss.conf $dbin
+    $SUDO cp  $DIR/hss_build/hss_fd.conf $DIR/hss_build/acl.conf /usr/local/etc/freeDiameter
+    
+    sed -e 's/ *= */=/' $OPENAIRCN_DIR/OPENAIRHSS/conf/hss.conf > $dconf/hss.conf.nospace
+    source $dconf/hss.conf.nospace
     create_hss_database root linux "$MYSQL_user" "$MYSQL_pass" "$MYSQL_db"
 
 fi 
@@ -336,143 +362,7 @@ fi
 if [ "$OAI_TEST" = "1" ]; then 
     echo_info "10. Running OAI pre commit tests (pre-ci) ..."
     $OPENAIR_DIR/cmake_targets/autotests/run_compilation_autotests.bash
+    $OPENAIR_DIR/cmake_targets/autotests/run_exec_autotests.bash
 else 
     echo_info "10. Bypassing the Tests ..."
 fi 
-
-exit 0
-
-
-
-###########################################
-# configure and compile
-##########################################
-
-
-    HSS_REALM=$(echo $Identity | sed 's/.*\.//')
-    HSS_HOSTNAME=${Identity%.$HSS_REALM}
-    NEW_HOSTNAME=`hostname -s`
-    if [ "x$HSS_HOSTNAME" != "x$NEW_HOSTNAME" ]; then
-       echo_warning "Changing identity of HSS from <$HSS_HOSTNAME.$HSS_REALM> to <$NEW_HOSTNAME.$HSS_REALM>"
-       sed -ibak "s/$HSS_HOSTNAME/$NEW_HOSTNAME/"  $OPENAIRCN_DIR/OPENAIRHSS/conf/hss_fd.conf 
-    fi
-    check_hss_s6a_certificate $HSS_REALM
-    
-######################################
-# fill the HSS DB
-######################################
-     echo_info "6. create HSS database (for EURECOM SIM CARDS)"
-     hss_db_created=1
-     create_hss_database $OAI_DB_ADMIN_USER_NAME $OAI_DB_ADMIN_USER_PASSWORD $MYSQL_user $MYSQL_pass $MYSQL_db
-     if [ $? -eq 1 ]; then
-         echo_fatal "hss DB not created"
-     fi
-}
-
-
-
-############################################
-# run 
-############################################
-
-if [ $RUN -ne 0 ]; then 
-    echo_info "11. Running ..."
-    cd $OPENAIR_TARGETS/bin
-    case "$BUILD_LTE" in
-        'ENB')
-            if [ $TARGET == "SOFTMODEM" ]; then 
-                if [ $HW == "EXMIMO" ]; then 
-                    $SUDO $OPENAIR_TARGETS/RT/USER/init_exmimo2.sh
-                fi
-                echo "############# running ltesoftmodem #############"
-                if [ $RUN_GDB -eq 0 ]; then 
-                    $SUDO $OPENAIR_TARGETS/bin/lte-softmodem  `echo $EXE_ARGUMENTS`
-                else
-                    $SUDO setenv MALLOC_CHECK_ 2
-                    $SUDO touch ~/.gdb_lte_softmodem
-                    $SUDO echo "file $OPENAIR_TARGETS/bin/lte-softmodem" > ~/.gdb_lte_softmodem
-                    $SUDO echo "set args $EXE_ARGUMENTS" >> ~/.gdb_lte_softmodem
-                    $SUDO echo "run" >> ~/.gdb_lte_softmodem
-                    $SUDO gdb -nh -x ~/.gdb_lte_softmodem 2>&1 
-                fi
-                
-            elif [ $TARGET == "OAISIM" ]; then
-            
-                if [ $ENB_S1 -eq 0 ]; then
-		    install_nasmesh
-                else
-                    # prepare NAS for UE
-                    if [ ! -f .ue.nvram ]; then
-                        echo_success "generate .ue_emm.nvram .ue.nvram"
-                        $OPENAIRCN_DIR/NAS/EURECOM-NAS/bin/ue_data --gen
-                    fi
-
-                    if [ ! -f .usim.nvram ]; then
-                        echo_success "generate .usim.nvram"
-                        $OPENAIRCN_DIR/NAS/EURECOM-NAS/bin/usim_data --gen
-                    fi
-                    $OPENAIRCN_DIR/NAS/EURECOM-NAS/bin/ue_data --print
-                    $OPENAIRCN_DIR/NAS/EURECOM-NAS/bin/usim_data --print
-
-                    insmod  $OPENAIR2_DIR/NETWORK_DRIVER/UE_IP/ue_ip.ko
-                    
-                fi
-                
-                if [ $RUN_GDB -eq 0 ]; then 
-                    $SUDO exec $OPENAIR_TARGETS/bin/oaisim  `echo $EXE_ARGUMENTS`
-                else
-                    $SUDO setenv MALLOC_CHECK_ 2
-                    $SUDO touch ~/.gdb_oaisim
-                    $SUDO echo "file $OPENAIR_TARGETS/bin/lte-oaisim" > ~/.gdb_oaisim
-                    $SUDO echo "set args $EXE_ARGUMENTS" >> ~/.gdb_oaisim
-                    $SUDO echo "run" >> ~/.gdb_oaisim
-                    $SUDO gdb -nh -x ~/.gdb_oaisim 2>&1 
-                fi
-            fi
-            ;;
-        
-        
-        'EPC')
-            echo "############# running EPC #############"
-            test_is_host_reachable $HSS_HOSTNAME.$REALM HSS
-            if [ $RUN_GDB -eq 0 ]; then
-                $SUDO $OPENAIR_TARGETS/bin/oai_epc  `echo $EXE_ARGUMENTS`
-            else
-                touch ~/.gdb_epc
-                chmod 777 ~/.gdb_epc
-                echo "file $OPENAIR_TARGETS/bin/oai_epc" > ~/.gdb_epc
-                echo "set args $EXE_ARGUMENTS" >> ~/.gdb_epc
-                echo "run" >> ~/.gdb_epc
-                $SUDO gdb -nh -x ~/.gdb_epc 2>&1 
-            fi
-            ;;
-        
-        
-        'HSS')
-            echo "############# running HSS #############"
-            cd $OPENAIRCN_DIR/OPENAIRHSS/objs
-            if [ $RUN_GDB -eq 0 ]; then
-                $SUDO exec ./openair-hss -c ./conf/hss.conf
-            else
-                touch ~/.gdb_hss
-                chmod 777 ~/.gdb_hss
-                echo "file ./openair-hss" > ~/.gdb_hss
-                echo "set args -c ./conf/hss.conf" >> ~/.gdb_hss
-                echo "run" >> ~/.gdb_hss
-                $SUDO gdb -nh -x ~/.gdb_hss 2>&1 
-            fi
-             ;;
-         
-         
-        'NONE')
-             ;;
-         
-         
-        *)
-             echo_error "Unknown option $BUILD_LTE: do not execute"
-             ;;
-    esac
-else
-    echo_info "11. No run requested, end of script"
-    exit 0
-fi
diff --git a/cmake_targets/epc_build_oai/CMakeLists.template b/cmake_targets/epc_build_oai/CMakeLists.template
index 0e84606f16..6f6316bfec 100644
--- a/cmake_targets/epc_build_oai/CMakeLists.template
+++ b/cmake_targets/epc_build_oai/CMakeLists.template
@@ -38,6 +38,7 @@ set (  MIH_C_MEDIEVAL_EXTENSIONS False )
 set (  MSG_PRINT False )
 set (  MU_RECEIVER False )
 set (  NAS_ADDRESS_FIX False )
+set (  NAS_BUILT_IN_EPC True )
 set (  NAS_MME True )
 set (  NAS_NETLINK False )
 set (  NAS_UE False )
diff --git a/cmake_targets/hss_build/CMakeLists.txt b/cmake_targets/hss_build/CMakeLists.txt
new file mode 100755
index 0000000000..287c3a2ab5
--- /dev/null
+++ b/cmake_targets/hss_build/CMakeLists.txt
@@ -0,0 +1,300 @@
+################################################################################
+#   OpenAirInterface
+#   Copyright(c) 1999 - 2014 Eurecom
+#
+#   OpenAirInterface is free software: you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation, either version 3 of the License, or
+#   (at your option) any later version.
+#
+#   OpenAirInterface is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with OpenAirInterface.The full GNU General Public License is
+#  included in this distribution in the file called "COPYING". If not,
+#  see <http://www.gnu.org/licenses/>.
+#
+# Contact Information
+# OpenAirInterface Admin: openair_admin@eurecom.fr
+# OpenAirInterface Tech : openair_tech@eurecom.fr
+# OpenAirInterface Dev  : openair4g-devel@eurecom.fr
+#
+# Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
+# Author: Lionel GAUTHIER
+###############################################################################
+cmake_minimum_required(VERSION 2.8)
+set(CMAKE_VERBOSE_MAKEFILE ON)
+
+
+project(HSS)
+
+
+ENABLE_LANGUAGE(C)
+#Sends the -std=c99 flag to the gcc compiler
+#add_definitions(-std=c99)
+
+ADD_DEFINITIONS(-D_GNU_SOURCE)
+
+set(OPENAIR_DIR           $ENV{OPENAIR_DIR})
+set(OPENAIR1_DIR          ${OPENAIR_DIR}/openair1)
+set(OPENAIR2_DIR          ${OPENAIR_DIR}/openair2)
+set(OPENAIR3_DIR          ${OPENAIR_DIR}/openair3)
+set(OPENAIRCN_DIR         ${OPENAIR_DIR}/openair-cn)
+set(OPENAIR_TARGETS       ${OPENAIR_DIR}/targets)
+set(OPENAIR_CMAKE_SCRIPTS ${OPENAIR_DIR}/cmake_targets/tools)
+set(OPENAIRHSS_DIR        ${OPENAIRCN_DIR}/OPENAIRHSS)
+set(OPENAIR_BIN_DIR       ${OPENAIR_TARGETS}/bin)
+
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${OPENAIR_TARGETS}/CMAKE/MODULES/")
+include(cmake_useful)
+
+macro(add_option name val helpstr)
+  if(DEFINED ${name})
+    set(value ${${name}})
+  else(DEFINED ${name})
+    set(value ${val})
+  endif()
+  set(${name} ${value} CACHE STRING "${helpstr}")
+  add_definitions("-D${name}=${value}")
+endmacro(add_option)
+
+
+
+# compilation flags
+# added CMAKER conditional compilation to not bother legacy building system
+#############################################
+if(NOT CMAKE_BUILD_TYPE)
+set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
+endif()
+set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo MinSizeRel)
+
+#
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2 -std=gnu99 -Wall -Wstrict-prototypes -fno-strict-aliasing -rdynamic -funroll-loops -Wno-packed-bitfield-compat -DCMAKER")
+set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb -DMALLOC_CHECK_=3")
+set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -ggdb -DMALLOC_CHECK_=3 -O2")
+
+
+INCLUDE(FindMySQL)
+IF( NOT MySQL_FOUND )
+  MESSAGE( SEND_ERROR "MySQL Client is required" )
+ENDIF( NOT MySQL_FOUND )
+
+INCLUDE(FindNettle)
+IF( NOT NETTLE_FOUND )
+  MESSAGE( SEND_ERROR "Nettle is required" )
+ENDIF( NOT NETTLE_FOUND )
+
+
+
+INCLUDE(FindFreeDiameter)
+IF( NOT FREEDIAMETER_FOUND )
+  MESSAGE( SEND_ERROR "FreeDiameter is required (use OAI installer)" )
+ENDIF( NOT FREEDIAMETER_FOUND )
+IF( NOT FREEDIAMETER_HSS_S6A_ENABLED )
+  MESSAGE( SEND_ERROR "FreeDiameter is not enabled for OPENAIRHSS" )
+ENDIF( NOT FREEDIAMETER_HSS_S6A_ENABLED )
+add_definitions("-DFREEDIAMETER_VERSION=${FREEDIAMETER_VERSION}")
+
+find_package(BISON REQUIRED)
+find_package(FLEX REQUIRED)
+
+set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+find_package(Threads REQUIRED)
+
+#find_package(Subversion)
+#if(SUBVERSION_FOUND)
+#  Subversion_WC_INFO(${OPENAIR_DIR} openair)
+#  set (PACKAGE_VERSION "${openair_WC_REVISION} - ${openair_WC_LAST_CHANGED_DATE}")
+#  Subversion_WC_LOG(${OPENAIR_DIR} openair)
+#  message("Last changed log is ${openair_LAST_CHANGED_LOG}")
+#  add_definitions("-DPACKAGE_VERSION=\"${PACKAGE_VERSION}\"")
+#else()
+set (PACKAGE_VERSION "No svn information")
+#endif()
+
+add_definitions("-DPACKAGE_NAME=\"OPENAIRHSS\"")
+
+
+################################################################################
+# ACCESS RESTRICTION LIB
+################################################################################
+set(ar_SRC
+    ${OPENAIRHSS_DIR}/access_restriction/access_restriction.c
+)
+set(ar_HDR
+    ${OPENAIRHSS_DIR}/access_restriction/access_restriction.h
+    ${OPENAIRHSS_DIR}/utils/conversion.h
+)
+
+add_library(hss_access_restriction ${ar_SRC} ${ar_HDR})
+target_include_directories(hss_access_restriction PRIVATE ${OPENAIRHSS_DIR}/utils)
+
+
+################################################################################
+# AUC LIB
+################################################################################
+set(auc_SRC
+    ${OPENAIRHSS_DIR}/auc/fx.c
+    ${OPENAIRHSS_DIR}/auc/kdf.c
+    ${OPENAIRHSS_DIR}/auc/random.c
+    ${OPENAIRHSS_DIR}/auc/rijndael.c
+    ${OPENAIRHSS_DIR}/auc/sequence_number.c
+)
+set(auc_HDR
+    ${OPENAIRHSS_DIR}/auc/auc.h
+)
+
+add_library(hss_auc ${auc_SRC} ${auc_HDR})
+
+
+################################################################################
+# DB LIB
+################################################################################
+set(db_SRC
+    ${OPENAIRHSS_DIR}/db/db_connector.c
+    ${OPENAIRHSS_DIR}/db/db_epc_equipment.c
+    ${OPENAIRHSS_DIR}/db/db_subscription_data.c
+)
+set(db_HDR
+    ${OPENAIRHSS_DIR}/db/db_proto.h
+    ${OPENAIRHSS_DIR}/utils/hss_config.h
+)
+
+add_library(hss_db ${db_SRC} ${db_HDR})
+target_include_directories(hss_db PRIVATE ${OPENAIRHSS_DIR}/utils)
+
+
+################################################################################
+# S6A LIB
+################################################################################
+set(s6a_SRC
+    ${OPENAIRHSS_DIR}/s6a/s6a_auth_info.c
+    ${OPENAIRHSS_DIR}/s6a/s6a_common.c
+    ${OPENAIRHSS_DIR}/s6a/s6a_error.c
+    ${OPENAIRHSS_DIR}/s6a/s6a_fd.c
+    ${OPENAIRHSS_DIR}/s6a/s6a_in_addr.c
+    ${OPENAIRHSS_DIR}/s6a/s6a_peers.c
+    ${OPENAIRHSS_DIR}/s6a/s6a_purge_ue.c
+    ${OPENAIRHSS_DIR}/s6a/s6a_subscription_data.c
+    ${OPENAIRHSS_DIR}/s6a/s6a_supported_features.c
+    ${OPENAIRHSS_DIR}/s6a/s6a_up_loc.c
+)
+set(s6a_HDR
+    ${OPENAIRHSS_DIR}/s6a/s6a_proto.h
+    ${OPENAIRHSS_DIR}/db/db_proto.h
+    ${OPENAIRHSS_DIR}/utils/hss_config.h
+    ${OPENAIRHSS_DIR}/auc/auc.h
+    ${OPENAIRHSS_DIR}/access_restriction/access_restriction.h
+)
+
+add_library(hss_s6a ${s6a_SRC} ${s6a_HDR})
+target_include_directories(hss_s6a PRIVATE ${OPENAIRHSS_DIR}/utils)
+target_include_directories(hss_s6a PRIVATE ${OPENAIRHSS_DIR}/db)
+target_include_directories(hss_s6a PRIVATE ${OPENAIRHSS_DIR}/auc)
+target_include_directories(hss_s6a PRIVATE ${OPENAIRHSS_DIR}/access_restriction)
+target_include_directories(hss_s6a PRIVATE ${FREEDIAMETER_INCLUDE_DIR})
+
+################################################################################
+# UTILS LIB
+################################################################################
+# Create target for the parser
+ ADD_CUSTOM_TARGET(HSSParser echo "Creating hss_parser.c")
+
+set(UTILS_GENERATED_DIR ${OPENAIR_BIN_DIR})
+
+# Create custom command for flex/lex (note the outputs)
+ ADD_CUSTOM_COMMAND(
+   SOURCE ${OPENAIRHSS_DIR}/utils/hss_scanner.l  
+   COMMAND ${FLEX_EXECUTABLE} 
+   ARGS -o${UTILS_GENERATED_DIR}/hss_scanner.c ${OPENAIRHSS_DIR}/utils/hss_scanner.l
+   TARGET HSSParser
+   OUTPUTS ${UTILS_GENERATED_DIR}/hss_scanner.c)
+
+# Create custom command for bison/yacc (note the DEPENDS)
+ ADD_CUSTOM_COMMAND(
+   SOURCE ${OPENAIRHSS_DIR}/utils/hss_parser.y
+   COMMAND ${BISON_EXECUTABLE} 
+   ARGS -y ${OPENAIRHSS_DIR}/utils/hss_parser.y
+        -o ${UTILS_GENERATED_DIR}/hss_parser.c
+   TARGET HSSParser
+   DEPENDS ${UTILS_GENERATED_DIR}/hss_scanner.c
+   OUTPUTS ${UTILS_GENERATED_DIR}/hss_parser.c)
+
+set(utils_SRC
+    ${UTILS_GENERATED_DIR}/hss_scanner.c
+    ${UTILS_GENERATED_DIR}/hss_parser.c
+    ${OPENAIRHSS_DIR}/utils/conversion.c
+    ${OPENAIRHSS_DIR}/utils/hss_config.c
+)
+set(utils_HDR
+    ${UTILS_GENERATED_DIR}/hss_parser.h
+    ${UTILS_GENERATED_DIR}/hss_scanner.h
+    ${OPENAIRHSS_DIR}/utils/conversion.h
+    ${OPENAIRHSS_DIR}/utils/hss_config.h
+    ${OPENAIRHSS_DIR}/utils/queue.h
+)
+# Since parser.c does not exists yet when cmake is run, mark
+# it as generated
+SET_SOURCE_FILES_PROPERTIES(${UTILS_GENERATED_DIR}/hss_parser.c GENERATED)
+SET_SOURCE_FILES_PROPERTIES(${UTILS_GENERATED_DIR}/hss_scanner.c GENERATED)
+SET_SOURCE_FILES_PROPERTIES(${UTILS_GENERATED_DIR}/hss_parser.h GENERATED)
+SET_SOURCE_FILES_PROPERTIES(${UTILS_GENERATED_DIR}/hss_scanner.h GENERATED)
+SET_SOURCE_FILES_PROPERTIES(${OPENAIRHSS_DIR}/utils/hss_config.c DEPENDS ${UTILS_GENERATED_DIR}/hss_parser.c)
+add_library(hss_utils ${utils_SRC} ${utils_HDR})
+
+################################################################################
+# EXECUTABLE openair-hss
+################################################################################
+include_directories( ${UTILS_GENERATED_DIR} ${OPENAIRHSS_DIR}/utils ${OPENAIRHSS_DIR}/s6a ${OPENAIRHSS_DIR}/db ${OPENAIRHSS_DIR}/auc ${OPENAIRHSS_DIR}/access_restriction)
+ADD_EXECUTABLE(openair-hss  ${OPENAIRHSS_DIR}/hss_main.c)
+target_link_libraries (openair-hss 
+                       -Wl,-whole-archive 
+                       hss_access_restriction  
+                       hss_auc
+                       hss_db
+                       hss_s6a 
+                       hss_utils
+                       -Wl,-no-whole-archive
+                       ${MySQL_LIBRARY} 
+                       ${NETTLE_LIBRARIES} 
+                       ${FREEDIAMETER_LIBRARIES} 
+                       ${CMAKE_THREAD_LIBS_INIT} )
+
+# Default parameters
+site_name(SITE_HSS_FQDN)
+add_option(HSS_FQDN          ${SITE_HSS_FQDN} "HSS Fully qualified domain name")
+add_option(REALM             openair4G.eur    "HSS realm TODO: extract this default value from SITE_HSS_FQDN")
+add_option(MYSQL_server      "127.0.0.1"      "Database server IP address")
+add_option(MYSQL_admin       root             "Database admin login")
+add_option(MYSQL_admin_pass  linux            "Database admin password")
+add_option(MYSQL_user        hssadmin         "Database username login")
+add_option(MYSQL_pass        admin            "Database username password")
+add_option(MYSQL_db          oai_db           "Database name")
+add_option(TRANSPORT_option  No_SCTP          "No_TCP or No_SCTP, FreeDiameter config option")
+add_option(TRANSPORT_PREFER_TCP_option  Prefer_TCP "Prefer_TCP or null string, FreeDiameter config option")
+add_option(AppServThreads    2                "FreeDiameter AppServThreads config option")
+add_option(OPERATOR_key      "11111111111111111111111111111111" "LTE operator clear text key (hex bytes)")
+add_option(REMOTE_PEER_WHITELIST "*.${REALM}" "Remote peer whitlist (separeted by spaces), for freediameter acl.conf config file")
+IF( FD_SERVER_IP_BIND_LIST )
+    set(ListenOn          "ListenOn=\"${FD_SERVER_IP_BIND_LIST}\"" "//FreeDiameter server IP bind addresses list")
+ELSE( FD_SERVER_IP_BIND_LIST )
+    set(ListenOn          "#ListenOn=\"\"" "//FreeDiameter server IP bind addresses list")
+ENDIF( FD_SERVER_IP_BIND_LIST )
+
+configure_file(
+  ${OPENAIRHSS_DIR}/conf/hss_fd.conf.in  
+  ${CMAKE_CURRENT_BINARY_DIR}/hss_fd.conf)
+configure_file(
+  ${OPENAIRHSS_DIR}/conf/hss.conf.in  
+  ${CMAKE_CURRENT_BINARY_DIR}/hss.conf)
+configure_file(
+  ${OPENAIRHSS_DIR}/conf/acl.conf.in  
+  ${CMAKE_CURRENT_BINARY_DIR}/acl.conf)
+                
+install (TARGETS openair-hss 
+  DESTINATION ${OPENAIR_TARGETS}/bin)
+
diff --git a/cmake_targets/lte-r10-exmimo/CMakeLists.txt b/cmake_targets/lte-r10-exmimo/CMakeLists.txt
deleted file mode 100644
index 3ec92a170e..0000000000
--- a/cmake_targets/lte-r10-exmimo/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-set(PACKAGE_NAME "lte-softmodem")
-include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
diff --git a/cmake_targets/lte-r10-usrp/CMakeLists.txt b/cmake_targets/lte-r10-usrp/CMakeLists.txt
deleted file mode 100644
index 2d2c6c9421..0000000000
--- a/cmake_targets/lte-r10-usrp/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-set(PACKAGE_NAME "lte-softmodem")
-set(RF_BOARD "USRP")
-include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
diff --git a/cmake_targets/lte-r8/CMakeLists.txt b/cmake_targets/lte-r8/CMakeLists.txt
deleted file mode 100644
index 1a7c33c91f..0000000000
--- a/cmake_targets/lte-r8/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-set(PACKAGE_NAME "lte-softmodem")
-set(RRC_ASN1_VERSION "Rel8")
-include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
diff --git a/cmake_targets/oaisim-r8/CMakeLists.txt b/cmake_targets/oaisim-r8/CMakeLists.txt
deleted file mode 100644
index 6f8f0393e2..0000000000
--- a/cmake_targets/oaisim-r8/CMakeLists.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-set (PACKAGE_NAME "oaisim")
-set(MAC_CONTEXT True)
-set(PHY_ABSTRACTION True)
-set(OPENAIR_EMU True)
-set(OAI_EMU True)
-set(NAS_ADDRESS_FIX true)
-set(RRC_ASN1_VERSION "Rel8")
-set(XER_PRINT True)
-
-
-set(RF_BOARD None)
-set(XFORMS False)
-
-include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
diff --git a/cmake_targets/oaisim_build_oai/CMakeLists.template b/cmake_targets/oaisim_build_oai/CMakeLists.template
index a348e31e20..40482459dc 100644
--- a/cmake_targets/oaisim_build_oai/CMakeLists.template
+++ b/cmake_targets/oaisim_build_oai/CMakeLists.template
@@ -15,8 +15,10 @@ set (  ENABLE_PDCP_NETLINK_FIFO False )
 set (  ENABLE_PGM_TRANSPORT True )
 set (  ENABLE_RAL False )
 set (  ENABLE_SECURITY True )
+set (  ENABLE_STANDALONE_EPC False)
 set (  ENABLE_USE_CPU_EXECUTION_TIME True )
 set (  ENABLE_USE_MME True )
+set (  ENABLE_USE_RAW_SOCKET_FOR_SGI True)
 set (  ENABLE_VCD_FIFO True )
 set (  EXMIMO_IOT True )
 set (  HARD_RT False )
@@ -52,11 +54,12 @@ set (  OPENAIR_EMU False )
 set (  OPENAIR_LTE True )
 set (  PACKAGE_NAME "oaisim" )
 set (  PBS_SIM False )
+set (  PDCP_USE_NETLINK True )
 set (  PC_DSP True )
 set (  PC_TARGET True )
 set (  PDCP_MSG_PRINT False )
 set (  PERFECT_CE False )
-set (  PHY_ABSTRACTION False )
+set (  PHY_ABSTRACTION True )
 set (  PHY_CONTEXT False )
 set (  PHY_EMUL False )
 set (  PHYSIM True )
diff --git a/cmake_targets/oaisim_mme_build_oai/CMakeLists.template b/cmake_targets/oaisim_mme_build_oai/CMakeLists.template
new file mode 100644
index 0000000000..9eb0a81ff9
--- /dev/null
+++ b/cmake_targets/oaisim_mme_build_oai/CMakeLists.template
@@ -0,0 +1,87 @@
+cmake_minimum_required(VERSION 2.8)
+
+set (  CMAKE_BUILD_TYPE "RelWithDebInfo" )
+set (  ADDR_CONF False )
+set (  ASSERT False )
+set (  DEBUG_OMG False )
+set (  DISABLE_XER_PRINT False )
+set (  DRIVER2013 False )
+set (  EMOS False )
+set (  ENABLE_FXP False )
+set (  ENABLE_ITTI True )
+set (  ENABLE_NAS_UE_LOGGING False )
+set (  ENABLE_NEW_MULTICAST False )
+set (  ENABLE_PDCP_NETLINK_FIFO False )
+set (  ENABLE_PGM_TRANSPORT False )
+set (  ENABLE_RAL False )
+set (  ENABLE_SECURITY False )
+set (  ENABLE_STANDALONE_EPC False )
+set (  ENABLE_USE_CPU_EXECUTION_TIME False )
+set (  ENABLE_USE_GTPU_IN_KERNEL True )
+set (  ENABLE_USE_MME False )
+set (  ENABLE_USE_RAW_SOCKET_FOR_SGI True)
+set (  ENABLE_VCD_FIFO False )
+set (  ENB_MODE False )
+set (  EPC_BUILD True )
+set (  EXMIMO_IOT False )
+set (  HARD_RT False )
+set (  JUMBO_FRAME False )
+set (  LARGE_SCALE False )
+set (  LINK_PDCP_TO_GTPV1U False )
+set (  LINUX_LIST False )
+set (  LINUX False )
+set (  LOCALIZATION False )
+set (  LOG_NO_THREAD False )
+set (  LOWLATENCY False )
+set (  MAC_CONTEXT 1 )
+set (  MAX_NUM_CCs 1 )
+set (  MIH_C_MEDIEVAL_EXTENSIONS False )
+set (  MSG_PRINT False )
+set (  MU_RECEIVER False )
+set (  NAS_ADDRESS_FIX False )
+set (  NAS_BUILT_IN_EPC True )
+set (  NAS_MME True )
+set (  NAS_NETLINK False )
+set (  NAS_UE False )
+set (  NB_ANTENNAS_RX "2" )
+set (  NB_ANTENNAS_TX "2" )
+set (  NB_ANTENNAS_TXRX "2" )
+set (  NEW_FFT False )
+set (  NO_RRM False )
+set (  OAI_EMU False )
+set (  OAISIM False )
+set (  OAI_NW_DRIVER_TYPE_ETHERNET False )
+set (  OAI_NW_DRIVER_USE_NETLINK False )
+set (  OPENAIR1 False )
+set (  OPENAIR2 False )
+set (  OPENAIR_EMU False )
+set (  OPENAIR_LTE False )
+set (  PACKAGE_NAME "EPC" )
+set (  PBS_SIM False )
+set (  PC_DSP False )
+set (  PC_TARGET False )
+set (  PDCP_MSG_PRINT False )
+set (  PERFECT_CE False )
+set (  PHY_ABSTRACTION False )
+set (  PHY_CONTEXT False )
+set (  PHY_EMUL False )
+set (  PHYSIM False )
+set (  PUCCH False )
+set (  RANDOM_BF False )
+set (  RF_BOARD "False" )
+set (  RRC_ASN1_VERSION "Rel10" )
+set (  RLC_STOP_ON_LOST_PDU False )
+set (  RRC_MSG_PRINT False )
+set (  RTAI False )
+set (  SECU False )
+set (  SMBV False )
+set (  SPECTRA False )
+set (  TEST_OMG False )
+set (  UE_BUILD False )
+set (  UPDATE_RELEASE_9 True)
+set (  UPDATE_RELEASE_10 True)
+set (  USE_3GPP_ADDR_AS_LINK_ADDR False )
+set (  USE_MME "R10" )
+set (  USER_MODE True )
+set (  XER_PRINT False )
+set (  XFORMS False )
diff --git a/cmake_targets/build_helper.bash b/cmake_targets/tools/build_helper.bash
similarity index 74%
rename from cmake_targets/build_helper.bash
rename to cmake_targets/tools/build_helper.bash
index 9e07245835..ed511d8b1d 100755
--- a/cmake_targets/build_helper.bash
+++ b/cmake_targets/tools/build_helper.bash
@@ -76,11 +76,11 @@ Options
    Erase all files made by previous compilation, installation" 
 --clean-kernel
    Erase previously installed features in kernel: iptables, drivers, ...
--C | --config-file
-   The configuration file to install
 -I | --install-external-packages 
    Installs required packages such as LibXML, asn1.1 compiler, freediameter, ...
    This option will require root password
+--install-optional-packages
+   Install useful but not mandatory packages such as valgrind
 -g | --run-with-gdb
    Add debugging symbols to compilation directives
 --eNB
@@ -140,7 +140,8 @@ clean_kernel() {
 
 clean_all_files() {
  dir=$OPENAIR_DIR/cmake
- rm -rf $dir/log $dir/bin $dir/autotests/bin $dir/autotests/log $dir/autotests/*/buid $dir/build_*/build
+ rm -rf $dir/log $OPENAIR_TARGETS/bin $dir/autotests/bin $dir/autotests/log $dir/autotests/*/buid $dir/build_*/build
+ rm -rf $dir/oaisim_build_oai/CMakeLists.txt $dir/epc_build_oai/CMakeLists.txt $dir/hss_build/BUILD
 }
 
 ###################################
@@ -154,122 +155,56 @@ compilations() {
     make -j4 $2
   } > $dlog/$2.$REL.txt 2>&1
   if [ -s $3 ] ; then
-     cp $3 $dbin/$2.$REL
+     cp $3 $dbin
      echo_success "$2 compiled"
   else
      echo_error "$2 compilation failed"
   fi
 }
 
-run_tests() {
-   $1 > $2 2>&1
-   grep 
-}
-
-test_compile() {
-    mkdir -p $tdir/$1/build
-    cd $tdir/$1/build
-    {
-	cmake ..
-	rm -f $3
-	make -j4 $2
-    } > $tdir/log/$1.txt
-    if [ -s $3 ] ; then
-     cp $3 $tdir/bin/$3.$1
-     echo_success "$1 test compiled"
-  else
-     echo_error "$1 test compilation failed"
-  fi
-}
-
-run_compilation_autotests() {
-    tdir=$OPENAIR_DIR/cmake_targets/autotests
-    mkdir -p $tdir/bin $tdir/log
-    updated=$(svn st -q $OPENAIR_DIR)
-    if [ "$updated" != "" ] ; then
-	echo_warning "some files are not in svn: $updated"
-    fi
-    test_compile \
-        test.0101 oaisim \
-        oaisim  $tdir/bin/oaisim.r8
-
-    test_compile \
-        test.0102 oaisim \
-        oaisim  $tdir/bin/oaisim.r8.nas
-
-    test_compile \
-        test.0103 oaisim \
-        oaisim  $tdir/bin/oaisim.r8.rf
-
-    test_compile \
-        test.0104 dlsim \
-        dlsim  $tdir/bin/dlsim
-
-    test_compile \
-        test.0104 ulsim \
-        ulsim  $tdir/bin/ulsim
-
-    test_compile \
-        test.0106 oaisim \
-        oaisim  $tdir/bin/oaisim.r8.itti
-
-    test_compile \
-        test.0107 oaisim \
-        oaisim  $tdir/bin/oaisim.r10
-
-    test_compile \
-        test.0108 oaisim \
-        oaisim  $tdir/bin/oaisim.r10.itti
-
-    test_compile \
-        test.0114 oaisim \
-        oaisim  $tdir/bin/oaisim.r8.itti.ral
-
-    test_compile \
-        test.0115 oaisim \
-        oaisim  $tdir/bin/oaisim.r10.itti.ral
-
-    test_compile \
-        test.0102 nasmesh \
-        CMakeFiles/nasmesh/nasmesh.ko $tdir/bin/nasmesh.ko
-
-}
 
 ##########################################
 # X.509 certificates
 ##########################################
 
 make_one_cert() {
-    $SUDO openssl genrsa -out $1.key.pem 1024
-    $SUDO openssl req -new -batch -out $1.csr.pem -key $1.key.pem -subj /CN=$1.eur/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM
-    $SUDO openssl ca -cert cacert.pem -keyfile cakey.pem -in $1.csr.pem -out $1.cert.pem -outdir . -batch
+    fqdn=$1
+    name=$2
+    $SUDO openssl genrsa -out $name.key.pem 1024
+    $SUDO openssl req -new -batch -out $name.csr.pem -key $name.key.pem -subj /CN=$name.$fqdn/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM
+    $SUDO openssl ca -cert cacert.pem -keyfile cakey.pem -in $name.csr.pem -out $name.cert.pem -outdir . -batch
 }
 
 make_certs(){
-
+    
+    fqdn=$1
+    certs_dir=/usr/local/etc/freeDiameter
     # certificates are stored in diameter config directory
-    if [ ! -d /usr/local/etc/freeDiameter ];  then
-        echo "Creating non existing directory: /usr/local/etc/freeDiameter/"
-        $SUDO mkdir -p /usr/local/etc/freeDiameter/ || echo_error "can't create: /usr/local/etc/freeDiameter/"
+    if [ ! -d $certs_dir ];  then
+        echo "Creating non existing directory: $certs_dir"
+        $SUDO mkdir -p $certs_dir || echo_error "can't create: $certs_dir"
     fi
 
-    cd /usr/local/etc/freeDiameter
+    cd $certs_dir
     echo "creating the CA certificate"
     echo_warning "erase all existing certificates as long as the CA is regenerated"
-    $SUDO rm -f /usr/local/etc/freeDiameter/*.pem
+    $SUDO rm -f $certs_dir/*.pem
+    $SUDO mkdir -p  $certs_dir/demoCA/
+    $SUDO sh -c "echo 01 > $certs_dir/demoCA/index.txt"
 
     # CA self certificate
-    $SUDO openssl req  -new -batch -x509 -days 3650 -nodes -newkey rsa:1024 -out cacert.pem -keyout cakey.pem -subj /CN=eur/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM
+    $SUDO openssl req  -new -batch -x509 -days 3650 -nodes -newkey rsa:1024 -out cacert.pem -keyout cakey.pem -subj /CN=$fqdn/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM
     
     # generate hss certificate and sign it
-    make_one_cert hss
-    make_one_cert mme
+    make_one_cert eur hss
+    make_one_cert eur mme
 
     # legacy config is using a certificate named 'user'
-    make_one_cert user
+    make_one_cert eur user
 
 }
 
+
 ############################################
 # External packages installers
 ############################################
@@ -316,18 +251,40 @@ install_freediameter_from_source() {
     cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ../ 
     echo "Compiling freeDiameter"
     make -j4
-    make test 
+    #make test 
     $SUDO make install 
     rm -rf /tmp/1.1.5.tar.gz /tmp/freeDiameter-1.1.5
 }
 
 check_install_usrp_uhd_driver(){
-    if [ ! -f /etc/apt/sources.list.d/ettus.list ] ; then 
-        $SUDO bash -c 'echo "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/`lsb_release -cs` `lsb_release -cs` main" >> /etc/apt/sources.list.d/ettus.list'
+        v=$(lsb_release -cs)
+        $SUDO apt-add-repository "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/$v $v main"
         $SUDO apt-get update
-     fi
-        $SUDO apt-get -y install  python libboost-all-dev libusb-1.0-0-dev
-        $SUDO apt-get -y install -t `lsb_release -cs` uhd
+        $SUDO apt-get -y install  python python-tk libboost-all-dev libusb-1.0-0-dev
+        $SUDO apt-get -y install -t `lsb_release -cs` uhd --force-yes
+}
+
+check_install_additional_tools (){
+    $SUDO apt-get update
+    $SUDO apt-get install -y \
+	check \
+	dialog \
+	dkms \
+	gawk \
+	libboost-all-dev \
+	libpthread-stubs0-dev \
+	openvpn \
+	phpmyadmin \
+	pkg-config \
+	python-dev  \
+	python-pexpect \
+	sshfs \
+	swig  \
+	tshark \
+	uml-utilities \
+	unzip  \
+	valgrind  \
+	vlan
 }
 
 check_install_oai_software() {
@@ -338,17 +295,11 @@ check_install_oai_software() {
 	automake  \
 	bison  \
 	build-essential \
-	check \
 	cmake \
 	cmake-curses-gui  \
-	dialog \
-	dkms \
 	doxygen \
 	ethtool \
 	flex  \
-	g++ \
-	gawk \
-	gcc \
 	gccxml \
 	gdb  \
 	graphviz \
@@ -362,19 +313,17 @@ check_install_oai_software() {
 	libatlas-dev \
 	libblas3gf \
 	libblas-dev \
-	libboost-all-dev \
 	libconfig8-dev \
 	libforms-bin \
 	libforms-dev \
 	libgcrypt11-dev \
 	libgmp-dev \
 	libgtk-3-dev \
-	libidn11-dev  \
 	libidn2-0-dev  \
+        libidn11-dev \
 	libmysqlclient-dev  \
 	libpgm-5.1 \
 	libpgm-dev \
-	libpthread-stubs0-dev \
 	libsctp1  \
 	libsctp-dev  \
 	libssl-dev  \
@@ -384,26 +333,13 @@ check_install_oai_software() {
 	libxml2 \
 	libxml2-dev  \
 	linux-headers-`uname -r` \
-	make \
 	mysql-client  \
 	mysql-server \
 	openssh-client \
 	openssh-server \
 	openssl \
-	openvpn \
-	phpmyadmin \
-	pkg-config \
 	python  \
-	python-dev  \
-	python-pexpect \
-	sshfs \
-	subversion \
-	swig  \
-	tshark \
-	uml-utilities \
-	unzip  \
-	valgrind  \
-	vlan
+	subversion
     if [ `lsb_release -rs` = '12.04' ] ; then
         install_nettle_from_source
 	install_gnutls_from_source
@@ -418,10 +354,10 @@ install_asn1c_from_source(){
     mkdir -p /tmp/asn1c-r1516
     cd /tmp/asn1c-r1516
     rm -rf /tmp/asn1c-r1516/*
-    svn co https://github.com/vlm/asn1c/trunk  /tmp/asn1c-r1516 -r 1516
-    patch -p0 < $OPENAIRCN_DIR/S1AP/MESSAGES/ASN1/asn1cpatch.p0
+    svn co https://github.com/vlm/asn1c/trunk  /tmp/asn1c-r1516 -r 1516 > /tmp/log_compile_asn1c
+    patch -p0 < $OPENAIRCN_DIR/S1AP/MESSAGES/ASN1/asn1cpatch.p0 >> /tmp/log_compile_asn1c
     ./configure
-    make
+    make > /tmp/log_compile_asn1c 2>&1
     $SUDO make install
 }
 
@@ -429,45 +365,36 @@ install_asn1c_from_source(){
 # 2. compile 
 ################################################
 compile_hss() {
-    cd $OPENAIRCN_DIR/OPENAIRHSS
-    
+    cd $OPENAIR_DIR/cmake_targets/hss_build
+    rm -f $OPENAIR_TARGETS/bin/openair-hss openair-hss
     if [ "$CLEAN" = "1" ]; then
-        echo_info "build a clean HSS"
-        rm -rf obj* m4 .autom4* configure
+        echo "Cleaning HSS"
+        rm -rf BUILD 
     fi
-
-    echo_success "Invoking autogen"
-    ./autogen.sh || return 1
-    mkdir -p objs ; cd objs
-    echo_success "Invoking configure"
-    ../configure || return 1
-    if [ -f Makefile ];  then
-        echo_success "Compiling..."
-        make -j4
-	# seems a bug in hss compilation: run make twice to work around
-	make -j4
-        if [ $? -ne 0 ]; then
-            echo_error "Build failed, exiting"
-            return 1
-        else 
-            return 0
-        fi
+    mkdir -p BUILD
+    cd ./BUILD
+    cmake  $SOFTMODEM_DIRECTIVES ..
+    make -j $NUM_CPU openair-hss > $dlog/hss.txt 2>&1
+    if [ -s openair-hss ] ; then
+	cp openair-hss $OPENAIR_TARGETS/bin
+	echo_success "hss compiled"
     else
-        echo_error "Configure failed, aborting"
+	echo_error "hss compilation failed"
     fi
-    return 1
+    return $?
 }
 
+
 install_nas_tools() {
     cd $1
     if [ ! -f .ue.nvram ]; then
         echo_success "generate .ue_emm.nvram .ue.nvram"
-        ./ue_data --gen
+        ./nvram --gen
     fi
 
     if [ ! -f .usim.nvram ]; then
         echo_success "generate .usim.nvram"
-        ./usim_data --gen
+        ./usim --gen
     fi
 
 }
diff --git a/cmake_targets/tools/exmimo2_2arxg.lime b/cmake_targets/tools/exmimo2_2arxg.lime
new file mode 100644
index 0000000000..0c24ef9992
--- /dev/null
+++ b/cmake_targets/tools/exmimo2_2arxg.lime
@@ -0,0 +1,10 @@
+# this file contains the calibration values to compute the RSSI
+# we can use three different gain stages (high, low, med) as well as a gain factor for fine tuning
+# the three lines in this file gives the total rx gain in dB for the three gain stages if the rx gain is set to 30dB
+# this is for Express MIMO2 without any additional RF frontend
+# high gain
+103 107 106 104
+# med gain
+98 101 100 98
+# low gain (byp)
+94 97 96 94
diff --git a/cmake_targets/tools/init_exmimo2.sh b/cmake_targets/tools/init_exmimo2.sh
index 8a469d57e1..b7b52b4b36 100755
--- a/cmake_targets/tools/init_exmimo2.sh
+++ b/cmake_targets/tools/init_exmimo2.sh
@@ -24,7 +24,7 @@ load_module() {
   sudo insmod $1
 }
 
-load_module $OPENAIR_DIR/cmake_targets/bin/openair_rf.ko
+load_module $OPENAIR_DIR/targets/bin/openair_rf.ko
 sleep 1
 
 if [ ! -e /dev/openair0 ]; then 
@@ -36,7 +36,7 @@ DEVICE=`echo $PCI | awk -F\" '{print $(NF-1)}' | awk '{print $2}'`
 DEVICE_SWID=${DEVICE:2:2}
 if [ $DEVICE_SWID == '0a' ]; then
    echo "Using firware version 10"
-   $OPENAIR_DIR/cmake_targets/bin/updatefw -s 0x43fffff0 -b -f $OPENAIR_TARGETS/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v10
+   $OPENAIR_DIR/targets/bin/updatefw -s 0x43fffff0 -b -f $OPENAIR_TARGETS/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v10
 else
    echo 'No corresponding firmware found'
    return
diff --git a/cmake_targets/tools/run_enb_s1_exmimo b/cmake_targets/tools/run_enb_s1_exmimo
new file mode 100755
index 0000000000..19ad7eb3fc
--- /dev/null
+++ b/cmake_targets/tools/run_enb_s1_exmimo
@@ -0,0 +1,191 @@
+#!/bin/bash
+################################################################################
+#   OpenAirInterface
+#   Copyright(c) 1999 - 2014 Eurecom
+#
+#    OpenAirInterface is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) anylater version.
+#
+#
+#    OpenAirInterface is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with OpenAirInterface.The full GNU General Public License is
+#    included in this distribution in the file called "COPYING". If not,
+#    see <http://www.gnu.org/licenses/>.
+#
+#  Contact Information
+#  OpenAirInterface Admin: openair_admin@eurecom.fr
+#  OpenAirInterface Tech : openair_tech@eurecom.fr
+#  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
+#
+#  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
+#
+################################################################################
+# file run_enb_s1_exmimo
+# brief run script for eNB EXMIMO.
+# author  Lionel GAUTHIER
+# company Eurecom
+# email:  lionel.gauthier@eurecom.fr 
+
+
+################################
+# include helper functions
+################################
+THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
+source $THIS_SCRIPT_PATH/build_helper
+
+
+function help()
+{
+  echo_error " "
+  echo_error "Usage: run_enb_s1_exmimo [OPTION]..."
+  echo_error "Run the eNB executable, hardware target is EXMIMO."
+  echo_error " "
+  echo_error "Options:"
+  echo_error "Mandatory arguments to long options are mandatory for short options too."
+  echo_error "  -c, -C, --config-file      eNB config file (see $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF)"
+  echo_error "  -g, --gdb                  Run with GDB."
+  echo_error "  -h, --help                 Print this help."
+  echo_error "  -K, --itti-dump-file       ITTI dump file containing all ITTI events occuring during EPC runtime."
+  echo_error "  -H, --hss                  HSS hostname."
+  echo_error "  -M, --target-dl-mcs        Downlink target MCS."
+  echo_error "  -V, --vcd                  Dump timings of processing in a GTKWave compliant file format."
+  echo_error "  -S, --enable-missed-slot   Continue execution in case of missed slot."
+  echo_error "  -T, --target-ul-mcs        Uplink target MCS."
+  echo_error "  -x, --xforms               Run XFORMS scope windows."
+}
+
+
+
+function main()
+{
+  local declare -i run_gdb=0
+  local declare    exe_arguments=""
+  
+  until [ -z "$1" ]
+    do
+    case "$1" in
+      -c | -C | --config-file)
+        CONFIG_FILE=$2
+        # may be relative path 
+        if [ -f $(dirname $(readlink -f $0))/$CONFIG_FILE ]; then
+          CONFIG_FILE=$(dirname $(readlink -f $0))/$CONFIG_FILE
+          echo "setting config file to: $CONFIG_FILE"
+          CONFIG_FILE_ACCESS_OK=1
+        else
+          # may be absolute path 
+          if [ -f $CONFIG_FILE ]; then
+            echo "setting config file to: $CONFIG_FILE"
+          else
+            echo_fatal "config file $CONFIG_FILE not found"
+          fi
+        fi
+        exe_arguments="$exe_arguments -O $CONFIG_FILE"
+        shift 2;
+        ;;
+      -g | --gdb)
+        run_gdb=1
+        echo "setting GDB flag to: $GDB"
+        shift;
+        ;;
+      -h | --help)
+        help
+        shift;
+        exit 0
+        ;;
+      -K | --itti-dump-file)
+        ITTI_DUMP_FILE=$2
+        # can omit file name if last arg on the line
+        if [ "x$ITTI_DUMP_FILE" = "x" ]; then
+          ITTI_DUMP_FILE="/tmp/enb_s1_exmimo_itti.log"
+        fi
+        echo "setting ITTI dump file to: $ITTI_DUMP_FILE"
+        exe_arguments="$exe_arguments -K $ITTI_DUMP_FILE"
+        shift 2;
+        ;;      
+      -M | --target-dl-mcs)
+        echo "setting target dl MCS to $2"
+        exe_arguments="$exe_arguments -m $2"
+        shift 2;
+        ;;
+      -V | --vcd)
+        "setting gtk-wave output"
+        exe_arguments="$exe_arguments -V /tmp/oai_gtk_wave.vcd"
+        shift ;
+        ;;
+      -S | --enable-missed-slot)
+        echo "setting continue even if missed slot"
+        exe_arguments="$exe_arguments -S"
+        shift ;
+        ;;
+      -T | --target-ul-mcs)
+        echo "setting target ul MCS to $2"
+        exe_arguments="$exe_arguments -t $2"
+        shift 2;
+        ;;
+      -x | --xforms)
+        exe_arguments="$exe_arguments -d"
+        echo "setting xforms to: $XFORMS"
+        shift;
+        ;;
+      *)   
+        echo "Unknown option $1"
+        help
+        exit 0
+        ;;
+    esac
+  done
+
+  check_for_root_rights
+
+  set_openair_env 
+  cecho "OPENAIR_HOME    = $OPENAIR_HOME" $green
+  cecho "OPENAIR1_DIR    = $OPENAIR1_DIR" $green
+  cecho "OPENAIR2_DIR    = $OPENAIR2_DIR" $green
+  cecho "OPENAIR3_DIR    = $OPENAIR3_DIR" $green
+  cecho "OPENAIRCN_DIR   = $OPENAIRCN_DIR" $green
+  cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green
+
+
+  if [ ! -e $OPENAIR_TARGETS/bin/lte-softmodem ]; then
+    echo_fatal "Cannot find $OPENAIR_TARGETS/bin/lte-softmodem executable"
+  fi
+  if [ ! -e $OPENAIR_TARGETS/bin/updatefw ]; then
+    echo_fatal "Cannot find $OPENAIR_TARGETS/bin/updatefw executable"
+  fi
+  if [ ! -e $OPENAIR_TARGETS/bin/openair_rf.ko ]; then
+    echo_fatal "Cannot find $OPENAIR_TARGETS/bin/openair_rf.ko kernel module"
+  fi
+
+  for i in `seq 0 64`; do 
+    have_rtfX=`ls /dev/ |grep -c rtf$i`;
+    if [ "$have_rtfX" -eq 0 ] ; then 
+      $SUDO mknod -m 666 /dev/rtf$i c 150 $i; 
+    fi;
+  done
+
+  $THIS_SCRIPT_PATH/init_exmimo2.sh
+
+  if [ $run_gdb -eq 0 ]; then 
+    exec $OPENAIR_TARGETS/bin/lte-softmodem  `echo $exe_arguments` 2>&1 > /tmp/gdb_lte_softmodem.stdout.txt
+  else
+    touch      ~/.gdb_lte_softmodem
+    chmod 777  ~/.gdb_lte_softmodem
+    echo "file $OPENAIR_TARGETS/bin/lte-softmodem" > ~/.gdb_lte_softmodem
+    echo "set args $exe_arguments" >> ~/.gdb_lte_softmodem
+    echo "run"                        >> ~/.gdb_lte_softmodem
+    cat ~/.gdb_lte_softmodem
+    gdb -n -x ~/.gdb_lte_softmodem 2>&1 > /tmp/gdb_lte_softmodem.stdout.txt
+  fi
+}
+
+
+
+main "$@"
+
diff --git a/cmake_targets/tools/run_epc b/cmake_targets/tools/run_epc
new file mode 100755
index 0000000000..bba6b9060c
--- /dev/null
+++ b/cmake_targets/tools/run_epc
@@ -0,0 +1,150 @@
+#!/bin/bash
+################################################################################
+#   OpenAirInterface
+#   Copyright(c) 1999 - 2014 Eurecom
+#
+#    OpenAirInterface is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) anylater version.
+#
+#
+#    OpenAirInterface is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with OpenAirInterface.The full GNU General Public License is
+#    included in this distribution in the file called "COPYING". If not,
+#    see <http://www.gnu.org/licenses/>.
+#
+#  Contact Information
+#  OpenAirInterface Admin: openair_admin@eurecom.fr
+#  OpenAirInterface Tech : openair_tech@eurecom.fr
+#  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
+#
+#  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
+#
+################################################################################
+# file run_epc
+# brief run script for EPC (MME+SGW-LITE).
+# author  Lionel GAUTHIER
+# company Eurecom
+# email:  lionel.gauthier@eurecom.fr 
+
+
+################################
+# include helper functions
+################################
+THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
+source $THIS_SCRIPT_PATH/build_helper
+
+set_openair_env 
+
+
+function help()
+{
+    echo_error " "
+    echo_error "Usage: run_epc [OPTION]..."
+    echo_error "Run the EPC executable (MME+SGW-LITE)."
+    echo_error " "
+    echo_error "Options:"
+    echo_error "Mandatory arguments to long options are mandatory for short options too."
+    echo_error "  -g, --gdb                  Run with GDB."
+    echo_error "  -h, --help                 Print this help."
+    echo_error "  -K, --itti-dump-file       ITTI dump file containing all ITTI events occuring during EPC runtime."
+    echo_error "  -l, --local-enb            EPC run on the same eNB host."
+    echo_error "  -v, --verbosity-level      Verbosity level (0,1,2)."
+    echo_error "                                 0 -> ASN1 XER printf off"
+    echo_error "                                 1 -> ASN1 XER printf on and ASN1 debug off"
+    echo_error "                                 2 -> ASN1 XER printf on and ASN1 debug on"
+}
+
+
+
+function main()
+{
+  local -i run_gdb=0
+  local    exe_arguments=" "
+  local -i epc_local=0
+  local -r epc_default_config_file="$OPENAIR_TARGETS/bin/epc.conf"
+  local    epc_config_file=$epc_default_config_file
+
+  until [ -z "$1" ]
+    do
+    case "$1" in
+      -g | --gdb)
+        run_gdb=1
+        echo "setting GDB flag to: $GDB"
+        shift;
+        ;;
+      -h | --help)
+        help
+        exit 0
+        ;;
+      -K | --itti-dump-file)
+        local itti_dump_file=$2
+        # can omit file name if last arg on the line
+        if [ "x$itti_dump_file" = "x" ]; then
+          itti_dump_file="/tmp/epc_itti.log"
+        else
+          shift 1;
+        fi
+        echo "setting ITTI dump file to: $itti_dump_file"
+        exe_arguments="$exe_arguments -K $itti_dump_file"
+        shift 1;
+        ;;     
+      -l | ----local-enb)
+        epc_local=1
+        shift;
+        ;;
+      -v | --verbosity-level)
+        local verbosity_level=$2
+        echo "setting verbosity level to: $verbosity_level"
+        exe_arguments="-v $verbosity_level $exe_arguments"
+        shift 2;
+        ;;
+      *)   
+        echo "Unknown option $1"
+        help
+        exit 0
+        ;;
+    esac
+  done
+
+  check_for_root_rights
+  set_openair_env 
+  cecho "OPENAIR_HOME    = $OPENAIR_HOME" $green
+  cecho "OPENAIR1_DIR    = $OPENAIR1_DIR" $green
+  cecho "OPENAIR2_DIR    = $OPENAIR2_DIR" $green
+  cecho "OPENAIR3_DIR    = $OPENAIR3_DIR" $green
+  cecho "OPENAIRCN_DIR   = $OPENAIRCN_DIR" $green
+  cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green
+
+
+  if [ ! -e $OPENAIR_TARGETS/bin/mme_gw ]; then
+    echo_fatal "Cannot find $OPENAIR_TARGETS/bin/mme_gw executable, have a look at the output of build_epc executable"
+  fi
+
+  if [ $epc_local -eq 1 ]; then
+    epc_config_file="$OPENAIR_TARGETS/bin/epc.local.enb.conf"
+  fi
+
+  exe_arguments="-O $epc_config_file $exe_arguments"
+
+  if [ $run_gdb -eq 0 ]; then 
+    exec $OPENAIR_TARGETS/bin/mme_gw  `echo $exe_arguments` 2>&1 
+  else
+    touch      ~/.gdb_mme_gw
+    chmod 777  ~/.gdb_mme_gw
+    echo "file $OPENAIR_TARGETS/bin/mme_gw" > ~/.gdb_mme_gw
+    echo "set args $exe_arguments "        >> ~/.gdb_mme_gw
+    echo "run"                             >> ~/.gdb_mme_gw
+    cat ~/.gdb_mme_gw
+    gdb -n -x ~/.gdb_mme_gw 
+  fi
+}
+
+
+main "$@"
diff --git a/cmake_targets/tools/run_hss b/cmake_targets/tools/run_hss
new file mode 100755
index 0000000000..6faa6870cf
--- /dev/null
+++ b/cmake_targets/tools/run_hss
@@ -0,0 +1,115 @@
+#!/bin/bash
+################################################################################
+#   OpenAirInterface
+#   Copyright(c) 1999 - 2014 Eurecom
+#
+#    OpenAirInterface is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) anylater version.
+#
+#
+#    OpenAirInterface is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with OpenAirInterface.The full GNU General Public License is
+#    included in this distribution in the file called "COPYING". If not,
+#    see <http://www.gnu.org/licenses/>.
+#
+#  Contact Information
+#  OpenAirInterface Admin: openair_admin@eurecom.fr
+#  OpenAirInterface Tech : openair_tech@eurecom.fr
+#  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
+#
+#  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
+#
+################################################################################
+# file run_hss
+# brief run script for HSS (!EXPERIMENTAL!).
+# author  Lionel GAUTHIER
+# company Eurecom
+# email:  lionel.gauthier@eurecom.fr 
+
+
+################################
+# include helper functions
+################################
+THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
+source $THIS_SCRIPT_PATH/build_helper
+
+
+function help()
+{
+  echo_error " "
+  echo_error "Usage: run_hss [OPTION]..."
+  echo_error "Run the HSS executable (experimental)."
+  echo_error " "
+  echo_error "Options:"
+  echo_error "Mandatory arguments to long options are mandatory for short options too."
+  echo_error "  -g, --gdb                  Run with GDB."
+  echo_error "  -h, --help                 Print this help."
+}
+
+
+
+function main() 
+{
+  local -i run_gdb=0
+  local exe_arguments=" -c ./hss.conf"
+
+  until [ -z "$1" ]
+    do
+    case "$1" in
+      -g | --gdb)
+        run_gdb=1
+        echo "setting GDB flag to: $GDB"
+        shift;
+        ;;
+      -h | --help)
+        help
+        exit 0
+        ;;
+      *)   
+        echo "Unknown option $1"
+        help
+        exit 0
+        ;;
+    esac
+  done
+
+  check_for_root_rights
+
+  set_openair_env 
+  cecho "OPENAIR_HOME    = $OPENAIR_HOME" $green
+  cecho "OPENAIR1_DIR    = $OPENAIR1_DIR" $green
+  cecho "OPENAIR2_DIR    = $OPENAIR2_DIR" $green
+  cecho "OPENAIR3_DIR    = $OPENAIR3_DIR" $green
+  cecho "OPENAIRCN_DIR   = $OPENAIRCN_DIR" $green
+  cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green
+
+
+  if [ ! -e $OPENAIR_TARGETS/bin/openair-hss ]; then
+    echo_fatal "Cannot find $OPENAIR_TARGETS/bin/openair-hss executable"
+  fi
+
+  # for file config relative path
+  cd $OPENAIR_TARGETS/bin
+
+  if [ $run_gdb -eq 0 ]; then 
+    exec $OPENAIR_TARGETS/bin/openair-hss  `echo $exe_arguments` 2>&1 
+  else
+    touch      ~/.gdb_hss
+    chmod 777  ~/.gdb_hss
+    echo "file $OPENAIR_TARGETS/bin/openair-hss" > ~/.gdb_hss
+    echo "set args $exe_arguments   " >> ~/.gdb_hss
+    echo "run"                        >> ~/.gdb_hss
+    cat ~/.gdb_hss
+    gdb -n -x ~/.gdb_hss 2>&1
+  fi
+}
+
+
+main "$@"
-- 
GitLab