From 3b3b97180709a6893dd9501665c5a5016b122ad9 Mon Sep 17 00:00:00 2001
From: Konstantinos Alexandris <alexandr@eurecom.fr>
Date: Thu, 23 Aug 2018 16:15:14 +0200
Subject: [PATCH] minor fixes for x2 + modify conf files

The configuration file has now to contain ENB_IPV4_ADDRESS_FOR_X2C and
ENB_PORT_FOR_X2C in the NETWORK_INTERFACES section.

For example:

    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
    };
---
 .../enb.band7.tm1.100PRB.usrpb210.conf         |  4 +++-
 .../enb.band7.tm1.25PRB.usrpb210.conf          |  4 +++-
 .../enb.band7.tm1.50PRB.usrpb210.conf          |  4 +++-
 .../enb.band38.tm1.usrpb210.tdd.10MHz.conf     |  4 +++-
 .../enb.band38.tm1.usrpb210.tdd.20MHz.conf     |  4 +++-
 .../enb.band38.tm1.usrpb210.tdd.5MHz.conf      |  4 +++-
 .../enb.band7.tm1.usrpb210.fdd.10MHz.conf      |  4 +++-
 .../enb.band7.tm1.usrpb210.fdd.20MHz.conf      |  4 +++-
 .../enb.band7.tm1.usrpb210.fdd.5MHz.conf       |  4 +++-
 .../v2/config/rcc.band7.tm1.if4p5.10MHz.conf   |  4 +++-
 .../v2/config/rcc.band7.tm1.if4p5.20MHz.conf   |  4 +++-
 .../v2/config/rcc.band7.tm1.if4p5.5MHz.conf    |  4 +++-
 ...rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf |  4 +++-
 ...rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf |  4 +++-
 .../rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf |  4 +++-
 openair2/COMMON/x2ap_messages_types.h          |  3 +++
 openair2/ENB_APP/enb_config.c                  |  7 +++++++
 openair2/ENB_APP/enb_paramdef.h                | 18 +++---------------
 .../CONF/enb.centos.calisson.conf              |  3 +++
 .../CONF/enb.centos.memphis.conf               |  3 +++
 .../CONF/enb.centos.nord.conf                  |  3 +++
 .../CONF/enb.band38.tm1.100PRB.usrpx310.conf   |  3 +++
 .../CONF/enb.band38.tm1.usrpx310.conf          |  3 +++
 .../CONF/enb.band7.tm1.100PRB.usrpx310.conf    |  4 +++-
 .../enb.band7.tm1.25PRB.usrpb210.replay.conf   |  4 +++-
 .../CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf |  6 +++---
 .../CONF/enb.band7.tm1.50PRB.usrpb210.conf     |  4 +++-
 ....band7.tm1.50PRB.usrpb210_ue_expansion.conf |  4 +++-
 .../CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf    |  4 +++-
 .../CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf   |  4 +++-
 .../CONF/rcc.band7.tm1.50PRB.nfapi.conf        |  4 +++-
 .../CONF/rcc.band7.tm1.if4p5.50PRB.conf        |  4 +++-
 .../CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf     |  4 +++-
 33 files changed, 103 insertions(+), 42 deletions(-)

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 2bd28a60df..633b3c091a 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 102fc89a13..e0c5f757cf 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 fe6e2f0b59..af54f439f4 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/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf
index e2ea056ea1..08eb76e09d 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 b2ac3ccf42..eff42040ad 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 006d59d2a5..8eb66d4643 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 8c76d95d4c..dc3b3bc4f0 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 0d2bb27dcc..6af71831f5 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 c418f355f2..077b6e4ead 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 89e06d2b1e..e2f5981418 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 c8e6c861e0..9e08414ab3 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 cc00f4f3ea..2a598c31d3 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 6e1e776fed..4966108d03 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 7e7c3c185d..4f3b25349a 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 3098660c8d..54e5a327cd 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_types.h b/openair2/COMMON/x2ap_messages_types.h
index d3c324a35c..6c4031b981 100644
--- a/openair2/COMMON/x2ap_messages_types.h
+++ b/openair2/COMMON/x2ap_messages_types.h
@@ -87,6 +87,9 @@ typedef struct x2ap_register_enb_req_s {
   /* 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;
 
 //-------------------------------------------------------------------------------------------//
diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c
index 7591bc3d07..a275d0c766 100644
--- a/openair2/ENB_APP/enb_config.c
+++ b/openair2/ENB_APP/enb_config.c
@@ -2549,6 +2549,13 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i)
             // 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, "/");
 
diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h
index 71d7d634c0..c540e63db1 100755
--- a/openair2/ENB_APP/enb_paramdef.h
+++ b/openair2/ENB_APP/enb_paramdef.h
@@ -760,12 +760,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_INTERFACE_NAME_FOR_X2C		   5
-#define ENB_IPV4_ADDR_FOR_X2C_IDX		   6
-#define ENB_PORT_FOR_X2C			   7
-#define ENB_INTERFACE_NAME_FOR_X2U		   8
-#define ENB_IPV4_ADDR_FOR_X2U			   9
-#define ENB_PORT_FOR_X2U  			  10
+#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"
@@ -775,12 +771,8 @@ typedef enum {
 #define ENB_CONFIG_STRING_ENB_PORT_FOR_S1U              "ENB_PORT_FOR_S1U"
 
 /* X2 interface configuration parameters names */
-#define ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_X2C    "ENB_INTERFACE_NAME_FOR_X2C"
 #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"
-#define ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_X2U    "ENB_INTERFACE_NAME_FOR_X2U"
-#define ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_X2U         "ENB_IPV4_ADDRESS_FOR_X2U"
-#define ENB_CONFIG_STRING_ENB_PORT_FOR_X2U              "ENB_PORT_FOR_X2U"
 
 /*--------------------------------------------------------------------------------------------------------------------------------------------------*/
 /*                                            S1/X2 interface configuration parameters                                                                 */
@@ -792,12 +784,8 @@ typedef enum {
 {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_INTERFACE_NAME_FOR_X2C,           NULL,      0,         strptr:NULL,         defstrval:NULL,      TYPE_STRING,      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:2152L,     TYPE_UINT,        0},      \
-{ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_X2U,           NULL,      0,         strptr:NULL,         defstrval:NULL,      TYPE_STRING,      0},      \
-{ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_X2U,                NULL,      0,         strptr:NULL,         defstrval:NULL,      TYPE_STRING,      0},      \
-{ENB_CONFIG_STRING_ENB_PORT_FOR_X2U,                     NULL,      0,         uptr:NULL,           defintval:2152L,     TYPE_UINT,        0}       \
+{ENB_CONFIG_STRING_ENB_PORT_FOR_X2C,                     NULL,      0,         uptr:NULL,           defintval:0L,        TYPE_UINT,        0},      \
 }   
 
 
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 09406d98cf..7ec670d568 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 47c12a7926..e3a0ea3c56 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 4360884c1d..591257ff71 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 73da2a8b3f..bec9c2c6dd 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 bd0503a466..834b6cf044 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 9a2ca88257..6b3614f490 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 99df987b43..fb184549c5 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 7d73e55c6c..c6ace3b68f 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 69166672d7..c2f10e20ae 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 1197c4ad93..e46467598e 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 c4d23bac42..a6efe74283 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 71a163209d..fefb4b11de 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 a6da42c2f5..cd21fb935e 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 550de4e1a2..581012d7d3 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 2b5a0ca684..5f9f8c4d7b 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
     };
   }
 );
-- 
GitLab