diff --git a/ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf b/ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
index 4380bd30be7686e518b5d79ad7191d6e7df76da8..37656de75527716462e60a62de7cf0cf32c2cbaa 100644
--- a/ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
+++ b/ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
@@ -183,12 +183,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.111/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.111/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.111/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf b/ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
index dded9cfdeb8d204a24bb294c74946d763276abd2..01c1ca1428c5025cb37221914f84079403dfcc06 100644
--- a/ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
+++ b/ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
@@ -183,12 +183,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.111/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.111/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.111/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf b/ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
index 7c4292eb61bdd92bd51ff7bad73910797477ad98..eb5822cb22fcb6f98a48cd3a1fbf406869e1be80 100644
--- a/ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
+++ b/ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
@@ -183,12 +183,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.111/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.111/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.111/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index 5efb13594f5f0bea5dba30a590d1b3e5d9235391..fdb36a8e1da2d71a7298288d661d1016e0010d70 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -474,6 +474,16 @@ add_library(X2AP_LIB
 include_directories ("${X2AP_C_DIR}")
 include_directories ("${X2AP_DIR}")
 
+#add_library(X2AP_ENB
+ # ${X2AP_DIR}/x2ap_eNB.c
+ # ${X2AP_DIR}/x2ap_eNB_decoder.c
+ # ${X2AP_DIR}/x2ap_eNB_encoder.c
+ # ${X2AP_DIR}/x2ap_eNB_handler.c
+ # ${X2AP_DIR}/x2ap_eNB_itti_messaging.c
+ # ${X2AP_DIR}/x2ap_eNB_management_procedures.c
+ # ${X2AP_DIR}/x2ap_eNB_generate_messages.c
+ # )
+
 # Hardware dependant options
 ###################################
 add_list1_option(NB_ANTENNAS_RX "2" "Number of antennas in reception" "1" "2" "4")
@@ -1937,7 +1947,7 @@ add_executable(lte-softmodem
 
 target_link_libraries (lte-softmodem
   -Wl,--start-group
-  RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB SCHED_RU_LIB PHY_COMMON PHY PHY_RU LFDS L2
+  RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB SCHED_RU_LIB PHY_COMMON PHY PHY_RU LFDS L2
   ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7
   NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
   -Wl,--end-group z dl)
@@ -2013,7 +2023,7 @@ add_executable(lte-uesoftmodem
 
 target_link_libraries (lte-uesoftmodem
   -Wl,--start-group
-  RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS L2_UE SIMU
+  RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS L2_UE SIMU
   ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7 ${ATLAS_LIBRARIES}
   NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
   -Wl,--end-group z dl)
diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf
index e2ea056ea17c1ab0a31c597d057eaf01bb9426a9..08eb76e09de3551c53e440f8a80d4bdfde30fc66 100644
--- a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf
@@ -146,12 +146,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth6";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.82/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth6";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.82/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.82/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     log_config :
diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf
index b2ac3ccf4224581389dc09d43d992ea4039bf502..eff42040ad87163f5d6f562377e41394450c18aa 100644
--- a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf
@@ -146,12 +146,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth6";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.82/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth6";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.82/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.82/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     log_config :
diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf
index 006d59d2a54ca908d9b2dde9fb9141b9cf086bb5..8eb66d46438e24e943db10c19a62837a42e550a1 100644
--- a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf
@@ -146,12 +146,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth6";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.82/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth6";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.82/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.82/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     log_config :
diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf
index 8c76d95d4c86d978198e922168888d368838b6fa..dc3b3bc4f03a5b93efb03eee80f96c1440950ab0 100644
--- a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf
@@ -146,12 +146,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.19/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.19/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.19/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     log_config :
diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf
index 0d2bb27dcc7c18c3b8446699a87357a529567611..6af71831f5416490f0df81a67b6a70f6192c263e 100644
--- a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf
@@ -146,12 +146,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.19/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.19/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.19/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     log_config :
diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf
index c418f355f20903326675577272da21d6dc8230e1..077b6e4ead5def0feab001a00900221b93437f40 100644
--- a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf
@@ -146,12 +146,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.19/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.19/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.19/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     log_config :
diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf
index 89e06d2b1e4511f212507069db0d074b87adeb9f..e2f5981418f4487e92bd9c9d03796b4d3dbe8b05 100644
--- a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf
+++ b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf
@@ -146,12 +146,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.18/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.18/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.18/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     rrh_gw_config = (
diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf
index c8e6c861e0fddc61ec4a0cb7c9ce169bb36eaf20..9e08414ab3de7152cb674eac96eb7ee8310cd455 100644
--- a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf
+++ b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf
@@ -146,12 +146,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.18/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.18/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.18/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     rrh_gw_config = (
diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf
index cc00f4f3ea584d662e58bfdeb7f95ea3073bc9ac..2a598c31d317478bfe78751745adce6ee8f9cf4f 100644
--- a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf
+++ b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf
@@ -146,12 +146,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.18/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.18/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.18/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     rrh_gw_config = (
diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf
index 6e1e776fed0da4bf219f6525b82db0accd8be758..4966108d034d82e20e0df8d72c619bdb63b03ea3 100644
--- a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf
+++ b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf
@@ -148,12 +148,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth3";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.215/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth3";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.215/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.215/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     rrh_gw_config = (
diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf
index 7e7c3c185d41be1f6b7ed09fca0cec75d7fd3e85..4f3b25349a64ad0368875ba70d6e150ec0f3e5b7 100644
--- a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf
+++ b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf
@@ -148,12 +148,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth3";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.215/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth3";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.215/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.215/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     rrh_gw_config = (
diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf
index 3098660c8de40e967d5e4adf7dc870b31d3ee1c3..54e5a327cd61e7cc5568f9e6267787a231020826 100644
--- a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf
+++ b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf
@@ -148,12 +148,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth3";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.215/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth3";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.215/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.215/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     rrh_gw_config = (
diff --git a/openair2/COMMON/x2ap_messages_def.h b/openair2/COMMON/x2ap_messages_def.h
index 4690bba42e5b91f4721d727b38d41da928e0c55a..36842c13d0cef7a55aa36739a0d3dcddd2fad348 100644
--- a/openair2/COMMON/x2ap_messages_def.h
+++ b/openair2/COMMON/x2ap_messages_def.h
@@ -19,3 +19,24 @@
  *      contact@openairinterface.org
  */
 
+/* eNB application layer -> X2AP messages */
+/* ITTI LOG messages */
+/* ENCODER */
+MESSAGE_DEF(X2AP_RESET_REQUST_LOG             , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_reset_request_log)
+MESSAGE_DEF(X2AP_RESOURCE_STATUS_RESPONSE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_resource_status_response_log)
+MESSAGE_DEF(X2AP_RESOURCE_STATUS_FAILURE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_resource_status_failure_log)
+
+/* Messages for X2AP logging */
+MESSAGE_DEF(X2AP_SETUP_REQUEST_LOG           , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_setup_request_log)
+
+
+/* eNB application layer -> X2AP messages */
+MESSAGE_DEF(X2AP_REGISTER_ENB_REQ          , MESSAGE_PRIORITY_MED, x2ap_register_enb_req_t          , x2ap_register_enb_req)
+
+/* X2AP -> eNB application layer messages */
+MESSAGE_DEF(X2AP_REGISTER_ENB_CNF          , MESSAGE_PRIORITY_MED, x2ap_register_enb_cnf_t          , x2ap_register_enb_cnf)
+MESSAGE_DEF(X2AP_DEREGISTERED_ENB_IND      , MESSAGE_PRIORITY_MED, x2ap_deregistered_enb_ind_t      , x2ap_deregistered_enb_ind)
+
+/* handover messages X2AP <-> RRC */
+MESSAGE_DEF(X2AP_HANDOVER_REQ              , MESSAGE_PRIORITY_MED, x2ap_handover_req_t              , x2ap_handover_req)
+MESSAGE_DEF(X2AP_HANDOVER_REQ_ACK          , MESSAGE_PRIORITY_MED, x2ap_handover_req_ack_t          , x2ap_handover_req_ack)
diff --git a/openair2/COMMON/x2ap_messages_types.h b/openair2/COMMON/x2ap_messages_types.h
index 4690bba42e5b91f4721d727b38d41da928e0c55a..6c4031b981df42869d76abbe210bb88289a27115 100644
--- a/openair2/COMMON/x2ap_messages_types.h
+++ b/openair2/COMMON/x2ap_messages_types.h
@@ -19,3 +19,158 @@
  *      contact@openairinterface.org
  */
 
+#ifndef X2AP_MESSAGES_TYPES_H_
+#define X2AP_MESSAGES_TYPES_H_
+
+#include "PhysCellId.h"
+
+//-------------------------------------------------------------------------------------------//
+// Defines to access message fields.
+
+#define X2AP_REGISTER_ENB_REQ(mSGpTR)           (mSGpTR)->ittiMsg.x2ap_register_enb_req
+#define X2AP_HANDOVER_REQ(mSGpTR)               (mSGpTR)->ittiMsg.x2ap_handover_req
+#define X2AP_HANDOVER_REQ_ACK(mSGpTR)           (mSGpTR)->ittiMsg.x2ap_handover_req_ack
+#define X2AP_REGISTER_ENB_CNF(mSGpTR)           (mSGpTR)->ittiMsg.x2ap_register_enb_cnf
+#define X2AP_DEREGISTERED_ENB_IND(mSGpTR)       (mSGpTR)->ittiMsg.x2ap_deregistered_enb_ind
+
+
+#define X2AP_MAX_NB_ENB_IP_ADDRESS 2
+
+// eNB application layer -> X2AP messages
+typedef struct x2ap_register_enb_req_s {
+  /* Unique eNB_id to identify the eNB within EPC.
+   * For macro eNB ids this field should be 20 bits long.
+   * For home eNB ids this field should be 28 bits long.
+   */
+  uint32_t eNB_id;
+  /* The type of the cell */
+  enum cell_type_e cell_type;
+
+  /* Optional name for the cell
+   * NOTE: the name can be NULL (i.e no name) and will be cropped to 150
+   * characters.
+   */
+  char *eNB_name;
+
+  /* Tracking area code */
+  uint16_t tac;
+
+  /* Mobile Country Code
+   * Mobile Network Code
+   */
+  uint16_t mcc;
+  uint16_t mnc;
+  uint8_t  mnc_digit_length;
+
+  /*
+   * EARFCN
+   */
+  uint16_t fdd_uL_EARFCN;
+  uint16_t fdd_dL_EARFCN;
+  uint16_t tdd_EARFCN;
+
+
+  uint16_t fdd_uL_Transmission_Bandwidth;
+  uint16_t fdd_dL_Transmission_Bandwidth;
+  uint16_t tdd_Transmission_Bandwidth;
+
+
+  /* The local eNB IP address to bind */
+  net_ip_address_t enb_x2_ip_address;
+
+  /* Nb of MME to connect to */
+  uint8_t          nb_x2;
+
+  /* List of target eNB to connect to for X2*/
+  net_ip_address_t target_enb_x2_ip_address[X2AP_MAX_NB_ENB_IP_ADDRESS];
+
+  /* Number of SCTP streams used for associations */
+  uint16_t sctp_in_streams;
+  uint16_t sctp_out_streams;
+
+  /* eNB port for X2C*/
+  uint32_t enb_port_for_X2C;
+} x2ap_register_enb_req_t;
+
+//-------------------------------------------------------------------------------------------//
+// X2AP -> eNB application layer messages
+typedef struct x2ap_register_enb_cnf_s {
+  /* Nb of connected eNBs*/
+  uint8_t          nb_x2;
+} x2ap_register_enb_cnf_t;
+
+typedef struct x2ap_deregistered_enb_ind_s {
+  /* Nb of connected eNBs */
+  uint8_t          nb_x2;
+} x2ap_deregistered_enb_ind_t;
+
+//-------------------------------------------------------------------------------------------//
+// X2AP <-> RRC
+typedef struct x2ap_gummei_s {
+  uint16_t mcc;
+  uint16_t mnc;
+  uint8_t  mnc_len;
+  uint8_t  mme_code;
+  uint16_t mme_group_id;
+} x2ap_gummei_t;
+
+typedef struct x2ap_lastvisitedcell_info_s {
+  uint16_t mcc;
+  uint16_t mnc;
+  uint8_t  mnc_len;
+  PhysCellId_t target_physCellId;
+  cell_type_t cell_type;
+  uint64_t time_UE_StayedInCell;
+}x2ap_lastvisitedcell_info_t;
+
+//used for src
+typedef struct x2ap_handover_req_s {
+  int source_rnti;                       /* TODO: to be fixed/remove */
+  int source_x2id;                       /* TODO: to be fixed/remove */
+
+  unsigned  old_eNB_ue_s1ap_id:24;
+
+  PhysCellId_t target_physCellId;
+
+  x2ap_gummei_t ue_gummei;
+
+  /*UE-ContextInformation */
+
+  /* MME UE id  */
+  uint32_t mme_ue_s1ap_id;
+
+  security_capabilities_t security_capabilities;
+
+  uint8_t      kenb[32]; // keNB or keNB*
+
+  /*next_hop_chaining_coun */
+  long int     kenb_ncc;
+
+  /* UE aggregate maximum bitrate */
+  ambr_t ue_ambr;
+
+  uint8_t nb_e_rabs_tobesetup;
+
+ /* list of e_rab setup-ed by RRC layers */
+  e_rab_setup_t e_rabs_tobesetup[S1AP_MAX_E_RAB];
+
+  /* ue_context_pP->ue_context.e_rab[i].param.sgw_addr; */
+
+  x2ap_lastvisitedcell_info_t lastvisitedcell_info;
+
+  /* TODO: this parameter has to be removed */
+  int target_mod_id;
+} x2ap_handover_req_t;
+
+typedef struct x2ap_handover_req_ack_s {
+  int source_rnti;                       /* TODO: to be fixed/remove */
+  int source_x2id;                       /* TODO: to be fixed/remove */
+  /* TODO: this parameter has to be removed */
+  int target_mod_id;
+  uint8_t rrc_buffer[1024 /* arbitrary, big enough */];
+  int rrc_buffer_size;
+
+  uint32_t mme_ue_s1ap_id;
+} x2ap_handover_req_ack_t;
+
+#endif /* X2AP_MESSAGES_TYPES_H_ */
diff --git a/openair2/ENB_APP/enb_app.c b/openair2/ENB_APP/enb_app.c
index 40c6aeac447c98206d23b82da6fcb64579cbd0d2..2857c5e3d42c3d990421068c9944f19426af0845 100644
--- a/openair2/ENB_APP/enb_app.c
+++ b/openair2/ENB_APP/enb_app.c
@@ -46,6 +46,10 @@
 #   include "gtpv1u_eNB_task.h"
 # endif
 
+//#   include "x2ap_eNB.h"
+#   include "x2ap_messages_types.h"
+#   define X2AP_ENB_REGISTER_RETRY_DELAY   10
+
 #include "openair1/PHY/INIT/phy_init.h"
 extern unsigned char NB_eNB_INST;
 #endif
@@ -135,6 +139,30 @@ static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end)//,
 # endif
 #endif
 
+/*------------------------------------------------------------------------------*/
+static uint32_t eNB_app_register_x2(uint32_t enb_id_start, uint32_t enb_id_end)
+{
+  uint32_t         enb_id;
+  MessageDef      *msg_p;
+  uint32_t         register_enb_x2_pending = 0;
+
+  for (enb_id = enb_id_start; (enb_id < enb_id_end) ; enb_id++) {
+
+    {
+
+      msg_p = itti_alloc_new_message (TASK_ENB_APP, X2AP_REGISTER_ENB_REQ);
+
+      RCconfig_X2(msg_p, enb_id);
+
+	//itti_send_msg_to_task (TASK_X2AP, ENB_MODULE_ID_TO_INSTANCE(enb_id), msg_p);
+
+      register_enb_x2_pending++;
+    }
+  }
+
+  return register_enb_x2_pending;
+}
+
 /*------------------------------------------------------------------------------*/
 void *eNB_app_task(void *args_p)
 {
@@ -147,6 +175,9 @@ void *eNB_app_task(void *args_p)
   uint32_t                        registered_enb;
   long                            enb_register_retry_timer_id;
 # endif
+  uint32_t                        x2_register_enb_pending;
+  //uint32_t                        x2_registered_enb;
+  //long                            x2_enb_register_retry_timer_id;
   uint32_t                        enb_id;
   MessageDef                     *msg_p           = NULL;
   instance_t                      instance;
@@ -192,6 +223,10 @@ void *eNB_app_task(void *args_p)
   itti_send_msg_to_task(TASK_L2L1, INSTANCE_DEFAULT, msg_p);
 # endif
 
+  /* Try to register each eNB with each other */
+ // x2_registered_enb = 0;
+  x2_register_enb_pending = eNB_app_register_x2 (enb_id_start, enb_id_end);
+
   do {
     // Wait for a message
     itti_receive_msg (TASK_ENB_APP, &msg_p);
diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c
index 737397d8d497f1b99252427ccb84c6a42d1a02f1..a275d0c7660a968505a76367d77bbac2c93b6d28 100644
--- a/openair2/ENB_APP/enb_config.c
+++ b/openair2/ENB_APP/enb_config.c
@@ -2419,6 +2419,158 @@ int RCconfig_S1(MessageDef *msg_p, uint32_t i) {
 return 0;
 }
 
+int RCconfig_X2(MessageDef *msg_p, uint32_t i)
+{
+  int   j, k, l;
+
+  int   enb_id;
+
+  char *address = NULL;
+  char *cidr    = NULL;
+
+  paramdef_t ENBSParams[] = ENBSPARAMS_DESC;
+  paramdef_t ENBParams[]  = ENBPARAMS_DESC;
+  paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST,NULL,0};
+
+  /* get global parameters, defined outside any section in the config file */
+  config_get( ENBSParams,sizeof(ENBSParams)/sizeof(paramdef_t),NULL);
+/*#if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME)
+    if (strcasecmp( *(ENBSParams[ENB_ASN1_VERBOSITY_IDX].strptr), ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) {
+      asn_debug      = 0;
+      asn1_xer_print = 0;
+    } else if (strcasecmp( *(ENBSParams[ENB_ASN1_VERBOSITY_IDX].strptr), ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) {
+      asn_debug      = 1;
+      asn1_xer_print = 1;
+    } else if (strcasecmp(*(ENBSParams[ENB_ASN1_VERBOSITY_IDX].strptr) , ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) {
+      asn_debug      = 1;
+      asn1_xer_print = 2;
+    } else {
+      asn_debug      = 0;
+      asn1_xer_print = 0;
+    }
+#endif */
+
+  AssertFatal(i < ENBSParams[ENB_ACTIVE_ENBS_IDX].numelt,
+              "Failed to parse config file %s, %uth attribute %s \n",
+              RC.config_file_name, i, ENB_CONFIG_STRING_ACTIVE_ENBS);
+
+  if (ENBSParams[ENB_ACTIVE_ENBS_IDX].numelt > 0) {
+    // Output a list of all eNBs.
+    config_getlist( &ENBParamList,ENBParams,sizeof(ENBParams)/sizeof(paramdef_t),NULL);
+    if (ENBParamList.numelt > 0) {
+      for (k = 0; k < ENBParamList.numelt; k++) {
+        if (ENBParamList.paramarray[k][ENB_ENB_ID_IDX].uptr == NULL) {
+          // Calculate a default eNB ID
+# if defined(ENABLE_USE_MME)
+          uint32_t hash;
+
+          hash = s1ap_generate_eNB_id ();
+          enb_id = k + (hash & 0xFFFF8);
+# else
+          enb_id = k;
+# endif
+        } else {
+          enb_id = *(ENBParamList.paramarray[k][ENB_ENB_ID_IDX].uptr);
+        }
+
+        // search if in active list
+        for (j = 0; j < ENBSParams[ENB_ACTIVE_ENBS_IDX].numelt; j++) {
+          if (strcmp(ENBSParams[ENB_ACTIVE_ENBS_IDX].strlistptr[j], *(ENBParamList.paramarray[k][ENB_ENB_NAME_IDX].strptr)) == 0) {
+
+            paramdef_t X2Params[]  = X2PARAMS_DESC;
+            paramlist_def_t X2ParamList = {ENB_CONFIG_STRING_TARGET_ENB_X2_IP_ADDRESS,NULL,0};
+
+            paramdef_t SCTPParams[]  = SCTPPARAMS_DESC;
+            paramdef_t NETParams[]  =  NETPARAMS_DESC;
+            char aprefix[MAX_OPTNAME_SIZE*2 + 8];
+
+            /* Some default/random parameters */
+
+            X2AP_REGISTER_ENB_REQ (msg_p).eNB_id = enb_id;
+
+            if (strcmp(*(ENBParamList.paramarray[k][ENB_CELL_TYPE_IDX].strptr), "CELL_MACRO_ENB") == 0) {
+              X2AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_MACRO_ENB;
+            } else  if (strcmp(*(ENBParamList.paramarray[k][ENB_CELL_TYPE_IDX].strptr), "CELL_HOME_ENB") == 0) {
+              X2AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_HOME_ENB;
+            } else {
+              AssertFatal (0,
+                  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n",
+                  RC.config_file_name, i, *(ENBParamList.paramarray[k][ENB_CELL_TYPE_IDX].strptr));
+            }
+
+            X2AP_REGISTER_ENB_REQ (msg_p).eNB_name         = strdup(*(ENBParamList.paramarray[k][ENB_ENB_NAME_IDX].strptr));
+            X2AP_REGISTER_ENB_REQ (msg_p).tac              = (uint16_t)atoi(*(ENBParamList.paramarray[k][ENB_TRACKING_AREA_CODE_IDX].strptr));
+            X2AP_REGISTER_ENB_REQ (msg_p).mcc              = (uint16_t)atoi(*(ENBParamList.paramarray[k][ENB_MOBILE_COUNTRY_CODE_IDX].strptr));
+            X2AP_REGISTER_ENB_REQ (msg_p).mnc              = (uint16_t)atoi(*(ENBParamList.paramarray[k][ENB_MOBILE_NETWORK_CODE_IDX].strptr));
+            X2AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length = strlen(*(ENBParamList.paramarray[k][ENB_MOBILE_NETWORK_CODE_IDX].strptr));
+
+            AssertFatal((X2AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 2) ||
+                        (X2AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 3),
+                        "BAD MNC DIGIT LENGTH %d",
+                        X2AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length);
+
+            sprintf(aprefix,"%s.[%i]",ENB_CONFIG_STRING_ENB_LIST,k);
+            config_getlist( &X2ParamList,X2Params,sizeof(X2Params)/sizeof(paramdef_t),aprefix);
+
+            if(X2ParamList.numelt>X2AP_MAX_NB_ENB_IP_ADDRESS){
+		 LOG_E(RRC,"value of X2ParamList.numelt %d must be lower than X2AP_MAX_NB_ENB_IP_ADDRESS %d value: reconsider to increase X2AP_MAX_NB_ENB_IP_ADDRESS\n",X2ParamList.numelt,X2AP_MAX_NB_ENB_IP_ADDRESS);
+		 exit(1);
+	    }
+
+            X2AP_REGISTER_ENB_REQ (msg_p).nb_x2 = 0;
+            for (l = 0; l < X2ParamList.numelt; l++) {
+              X2AP_REGISTER_ENB_REQ (msg_p).nb_x2 += 1;
+
+              strcpy(X2AP_REGISTER_ENB_REQ (msg_p).target_enb_x2_ip_address[l].ipv4_address,*(X2ParamList.paramarray[l][ENB_X2_IPV4_ADDRESS_IDX].strptr));
+              strcpy(X2AP_REGISTER_ENB_REQ (msg_p).target_enb_x2_ip_address[l].ipv6_address,*(X2ParamList.paramarray[l][ENB_X2_IPV6_ADDRESS_IDX].strptr));
+
+              if (strcmp(*(X2ParamList.paramarray[l][ENB_X2_IP_ADDRESS_PREFERENCE_IDX].strptr), "ipv4") == 0) {
+                X2AP_REGISTER_ENB_REQ (msg_p).target_enb_x2_ip_address[l].ipv4 = 1;
+              } else if (strcmp(*(X2ParamList.paramarray[l][ENB_X2_IP_ADDRESS_PREFERENCE_IDX].strptr), "ipv6") == 0) {
+                X2AP_REGISTER_ENB_REQ (msg_p).target_enb_x2_ip_address[l].ipv6 = 1;
+              } else if (strcmp(*(X2ParamList.paramarray[l][ENB_X2_IP_ADDRESS_PREFERENCE_IDX].strptr), "no") == 0) {
+                X2AP_REGISTER_ENB_REQ (msg_p).target_enb_x2_ip_address[l].ipv4 = 1;
+                X2AP_REGISTER_ENB_REQ (msg_p).target_enb_x2_ip_address[l].ipv6 = 1;
+              }
+            }
+
+            // SCTP SETTING
+            X2AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = SCTP_OUT_STREAMS;
+            X2AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams  = SCTP_IN_STREAMS;
+# if defined(ENABLE_USE_MME)
+            sprintf(aprefix,"%s.[%i].%s",ENB_CONFIG_STRING_ENB_LIST,k,ENB_CONFIG_STRING_SCTP_CONFIG);
+            config_get( SCTPParams,sizeof(SCTPParams)/sizeof(paramdef_t),aprefix);
+            X2AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = (uint16_t)*(SCTPParams[ENB_SCTP_INSTREAMS_IDX].uptr);
+            X2AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = (uint16_t)*(SCTPParams[ENB_SCTP_OUTSTREAMS_IDX].uptr);
+#endif
+
+            sprintf(aprefix,"%s.[%i].%s",ENB_CONFIG_STRING_ENB_LIST,k,ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG);
+
+            // NETWORK_INTERFACES
+            config_get( NETParams,sizeof(NETParams)/sizeof(paramdef_t),aprefix);
+
+            X2AP_REGISTER_ENB_REQ (msg_p).enb_port_for_X2C = (uint32_t)*(NETParams[ENB_PORT_FOR_X2C_IDX].uptr);
+
+            if ((NETParams[ENB_IPV4_ADDR_FOR_X2C_IDX].strptr == NULL) || (X2AP_REGISTER_ENB_REQ (msg_p).enb_port_for_X2C == 0)) {
+              LOG_E(RRC,"Add eNB IPv4 address and/or port for X2C in the CONF file!\n");
+              exit(1);
+            }
+
+            cidr = *(NETParams[ENB_IPV4_ADDR_FOR_X2C_IDX].strptr);
+            address = strtok(cidr, "/");
+
+            X2AP_REGISTER_ENB_REQ (msg_p).enb_x2_ip_address.ipv6 = 0;
+            X2AP_REGISTER_ENB_REQ (msg_p).enb_x2_ip_address.ipv4 = 1;
+
+            strcpy(X2AP_REGISTER_ENB_REQ (msg_p).enb_x2_ip_address.ipv4_address, address);
+          }
+        }
+      }
+    }
+  }
+return 0;
+}
+
 void RCConfig(void) {
 
   paramlist_def_t MACRLCParamList = {CONFIG_STRING_MACRLC_LIST,NULL,0};
diff --git a/openair2/ENB_APP/enb_config.h b/openair2/ENB_APP/enb_config.h
index 96156a4bc454232699f4db39ada3845e0d3aaa59..c6359f156347533af24dee549e64b798cb13092f 100644
--- a/openair2/ENB_APP/enb_config.h
+++ b/openair2/ENB_APP/enb_config.h
@@ -106,6 +106,7 @@ void                          ru_config_display(void);
 
 int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc);
 int RCconfig_S1(MessageDef *msg_p, uint32_t i);
+int RCconfig_X2(MessageDef *msg_p, uint32_t i);
 
 #endif /* ENB_CONFIG_H_ */
 /** @} */
diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h
index 32f7f28a3730b6c53d8b0aa5f3da1cf0d28bb6bf..75b682ef84c40eec009a974acfb5dbb933584ba8 100755
--- a/openair2/ENB_APP/enb_paramdef.h
+++ b/openair2/ENB_APP/enb_paramdef.h
@@ -710,6 +710,31 @@ typedef enum {
 #define ENB_MME_IP_ADDRESS_ACTIVE_IDX     2
 #define ENB_MME_IP_ADDRESS_PREFERENCE_IDX 3
 /*---------------------------------------------------------------------------------------------------------------------------------------*/
+
+/* X2 configuration parameters section name */
+#define ENB_CONFIG_STRING_TARGET_ENB_X2_IP_ADDRESS                "target_enb_x2_ip_address"
+
+/* X2 configuration parameters names   */
+
+
+#define ENB_CONFIG_STRING_TARGET_ENB_X2_IPV4_ADDRESS              "ipv4"
+#define ENB_CONFIG_STRING_TARGET_ENB_X2_IPV6_ADDRESS              "ipv6"
+#define ENB_CONFIG_STRING_TARGET_ENB_X2_IP_ADDRESS_PREFERENCE     "preference"
+
+
+/*-------------------------------------------------------------------------------------------------------------------------------------*/
+/*                                            X2 configuration parameters                                                             */
+/*   optname                                          helpstr   paramflags    XXXptr       defXXXval         type           numelt     */
+/*-------------------------------------------------------------------------------------------------------------------------------------*/
+#define X2PARAMS_DESC {  \
+{ENB_CONFIG_STRING_TARGET_ENB_X2_IPV4_ADDRESS,                   NULL,      0,         uptr:NULL,   defstrval:NULL,   TYPE_STRING,   0},          \
+{ENB_CONFIG_STRING_TARGET_ENB_X2_IPV6_ADDRESS,                   NULL,      0,         uptr:NULL,   defstrval:NULL,   TYPE_STRING,   0},          \
+{ENB_CONFIG_STRING_TARGET_ENB_X2_IP_ADDRESS_PREFERENCE,          NULL,      0,         uptr:NULL,   defstrval:NULL,   TYPE_STRING,   0},          \
+}
+
+#define ENB_X2_IPV4_ADDRESS_IDX          0
+#define ENB_X2_IPV6_ADDRESS_IDX          1
+#define ENB_X2_IP_ADDRESS_PREFERENCE_IDX 2
 /*---------------------------------------------------------------------------------------------------------------------------------------*/
 /* SCTP configuration parameters section name */
 #define ENB_CONFIG_STRING_SCTP_CONFIG                    "SCTP"
@@ -741,6 +766,8 @@ typedef enum {
 #define ENB_INTERFACE_NAME_FOR_S1U_IDX             2
 #define ENB_IPV4_ADDR_FOR_S1U_IDX                  3
 #define ENB_PORT_FOR_S1U_IDX                       4
+#define ENB_IPV4_ADDR_FOR_X2C_IDX		   5
+#define ENB_PORT_FOR_X2C_IDX			   6
 
 /* S1 interface configuration parameters names   */
 #define ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1_MME "ENB_INTERFACE_NAME_FOR_S1_MME"
@@ -749,8 +776,12 @@ typedef enum {
 #define ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U         "ENB_IPV4_ADDRESS_FOR_S1U"
 #define ENB_CONFIG_STRING_ENB_PORT_FOR_S1U              "ENB_PORT_FOR_S1U"
 
+/* X2 interface configuration parameters names */
+#define ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_X2C         "ENB_IPV4_ADDRESS_FOR_X2C"
+#define ENB_CONFIG_STRING_ENB_PORT_FOR_X2C              "ENB_PORT_FOR_X2C"
+
 /*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-/*                                            S1 interface configuration parameters                                                                 */
+/*                                            S1/X2 interface configuration parameters                                                                 */
 /*   optname                                            helpstr   paramflags    XXXptr              defXXXval             type           numelt     */
 /*--------------------------------------------------------------------------------------------------------------------------------------------------*/
 #define NETPARAMS_DESC {  \
@@ -758,7 +789,9 @@ typedef enum {
 {ENB_CONFIG_STRING_ENB_IPV4_ADDRESS_FOR_S1_MME,          NULL,      0,         strptr:NULL,         defstrval:NULL,      TYPE_STRING,      0},      \
 {ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U,           NULL,      0,         strptr:NULL,         defstrval:NULL,      TYPE_STRING,      0},      \
 {ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U,                NULL,      0,         strptr:NULL,         defstrval:NULL,      TYPE_STRING,      0},      \
-{ENB_CONFIG_STRING_ENB_PORT_FOR_S1U,                     NULL,      0,         uptr:NULL,           defintval:2152L,     TYPE_UINT,        0}       \
+{ENB_CONFIG_STRING_ENB_PORT_FOR_S1U,                     NULL,      0,         uptr:NULL,           defintval:2152L,     TYPE_UINT,        0},      \
+{ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_X2C,                NULL,      0,         strptr:NULL,         defstrval:NULL,      TYPE_STRING,      0},      \
+{ENB_CONFIG_STRING_ENB_PORT_FOR_X2C,                     NULL,      0,         uptr:NULL,           defintval:0L,        TYPE_UINT,        0},      \
 }   
 
 
diff --git a/openair2/X2AP/x2ap_common.c b/openair2/X2AP/x2ap_common.c
index 2ac875155d6294cf1bd815f960164ae4cdc59c58..cc2954f77bcfb212874add515e90f82d76fdb483 100644
--- a/openair2/X2AP/x2ap_common.c
+++ b/openair2/X2AP/x2ap_common.c
@@ -66,7 +66,7 @@ ssize_t x2ap_generate_initiating_message(
   pdu.present = X2AP_X2AP_PDU_PR_initiatingMessage;
   pdu.choice.initiatingMessage.procedureCode = procedureCode;
   pdu.choice.initiatingMessage.criticality   = criticality;
-  ANY_fromType_aper(&pdu.choice.initiatingMessage.value, td, sptr);
+  ANY_fromType_aper((ANY_t *)&pdu.choice.initiatingMessage.value, td, sptr);
 
   if (asn1_xer_print) {
     xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu);
@@ -98,7 +98,7 @@ ssize_t x2ap_generate_successfull_outcome(
   pdu.present = X2AP_X2AP_PDU_PR_successfulOutcome;
   pdu.choice.successfulOutcome.procedureCode = procedureCode;
   pdu.choice.successfulOutcome.criticality   = criticality;
-  ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr);
+  ANY_fromType_aper((ANY_t *)&pdu.choice.successfulOutcome.value, td, sptr);
 
   if (asn1_xer_print) {
     xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu);
@@ -130,7 +130,7 @@ ssize_t x2ap_generate_unsuccessfull_outcome(
   pdu.present = X2AP_X2AP_PDU_PR_unsuccessfulOutcome;
   pdu.choice.successfulOutcome.procedureCode = procedureCode;
   pdu.choice.successfulOutcome.criticality   = criticality;
-  ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr);
+  ANY_fromType_aper((ANY_t *)&pdu.choice.successfulOutcome.value, td, sptr);
 
   if (asn1_xer_print) {
     xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu);
diff --git a/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf b/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf
index 09406d98cf534b27fd1abe11b54562c086be25b7..7ec670d5686e889e589444f2ec7d9b62831c602c 100755
--- a/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf
+++ b/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf
@@ -47,6 +47,9 @@ eNBs =
 
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.13.10/24";
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.13.10/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
   }
diff --git a/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf b/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf
index 47c12a79266b8ff907c3d26e75fe9a12ce7d5005..e3a0ea3c56f8d9513c47116c84de41a5746a9c10 100755
--- a/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf
+++ b/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf
@@ -59,6 +59,9 @@ eNBs =
 
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.13.10/24";
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.13.10/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 # available options for level:   error, warn, notice, info, debug, trace
 # available options for verbosity: none, low, medium, high, full
diff --git a/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf b/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf
index 4360884c1db1bcb6f1ca30a5b275e1e1938deedc..591257ff713003544f33bb4f6c7a388267509b51 100755
--- a/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf
+++ b/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf
@@ -46,6 +46,9 @@ eNBs =
 
         ENB_INTERFACE_NAME_FOR_S1U               = "eth1";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.13.10/24";
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.13.10/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
   }
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf
index 73da2a8b3f37c65507ef1994f930021d7bacfd29..bec9c2c6ddc9c573a4a9a329d6f7a69c0a523588 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf
@@ -151,6 +151,9 @@ eNBs =
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.111/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.111/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     log_config :
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf
index bd0503a4669b698fc568a782272a99571c76b6e8..834b6cf044177eb27d4569c12b96ada46e68aa0c 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf
@@ -151,6 +151,9 @@ eNBs =
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.111/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.111/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
     log_config :
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
index 9a2ca88257352d763a3d67cf9cfed17a4d7e8b5b..6b3614f490bb35c4317c9a7d07c82fd3d965f429 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
@@ -149,12 +149,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth6";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.111/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth6";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.111/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.111/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.replay.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.replay.conf
index 99df987b43797da367931ff5f08f2583bb1523e0..fb184549c54eb67ce7e63ca62a85c9cc09778b5c 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.replay.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.replay.conf
@@ -183,12 +183,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "lo";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.13.10/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "lo";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.13.10/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.13.10/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf
index 7d73e55c6c8e494e556bfb508eb6c9cd28ad81ef..c6ace3b68fa396c9b87c5a357c0b250d20e108c7 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf
@@ -183,14 +183,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "lo";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "127.0.0.2/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "127.0.0.4/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
-        
-        
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "127.0.0.2/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
index 69166672d79298d91ff605d5fa2fbf21b5cc6515..c2f10e20aebd768bfdb47271763d0c4f226ae8ba 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
@@ -183,12 +183,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.111/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.111/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.111/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210_ue_expansion.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210_ue_expansion.conf
index 1197c4ad937638de4825c6ac99237438bb7f18e6..e46467598ee5f1a207562226e81864271fab827f 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210_ue_expansion.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210_ue_expansion.conf
@@ -150,12 +150,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.19/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.19/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.19/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf
index c4d23bac42b3a9bb8f0be3ad40f14b64a0834be5..a6efe742834a27904e4b39d4a998b96b6a0209cb 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf
@@ -152,12 +152,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "lo";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "127.0.0.2/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "lo";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "127.0.0.5/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "127.0.0.2/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf
index 71a163209ded9e16fd01ac56ad8b0d73491dc11f..fefb4b11def94013d1efc34ba79c617f0e03aead 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf
@@ -153,12 +153,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "vboxnet0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.56.1/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "vboxnet0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.56.1/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.56.1/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
 
   }
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf
index a6da42c2f563cbed744420b8f4832c81da5079c0..cd21fb935e44f8529457a66448dcac1159976c44 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf
@@ -183,12 +183,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "lo";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "127.0.0.2/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "lo";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "127.0.0.5/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "127.0.0.2/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
index 550de4e1a2c5a56b846a8d5bf296a08f2ddaabad..581012d7d315f1f8ba9c3e02b2edaa75006e7bc5 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
@@ -152,12 +152,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.19/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "127.0.0.5/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.19/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf
index 2b5a0ca68469eae11ba2587f9aae402a8dba7fc5..5f9f8c4d7b6a1321ef12112f59c76612f26230a5 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf
@@ -151,12 +151,14 @@ eNBs =
 
     NETWORK_INTERFACES :
     {
-
         ENB_INTERFACE_NAME_FOR_S1_MME            = "lo";
         ENB_IPV4_ADDRESS_FOR_S1_MME              = "127.0.0.2/24";
         ENB_INTERFACE_NAME_FOR_S1U               = "lo";
         ENB_IPV4_ADDRESS_FOR_S1U                 = "127.0.0.5/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
+
+        ENB_IPV4_ADDRESS_FOR_X2C                 = "127.0.0.2/24";
+        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
     };
   }
 );