diff --git a/openair2/ENB_APP/MESSAGES/V2/config_common.proto b/openair2/ENB_APP/MESSAGES/V2/config_common.proto
index 4958cdb27bfcd96f11baf2a99ee0b401f8aa550a..c87e589d89bc4defab2788e8632e32975cd6bdba 100644
--- a/openair2/ENB_APP/MESSAGES/V2/config_common.proto
+++ b/openair2/ENB_APP/MESSAGES/V2/config_common.proto
@@ -336,3 +336,35 @@ message flex_a5_event {
   optional int64 time_to_trigger = 4;
   optional int64 max_report_cells = 5;
 }
+
+//
+// S1AP cell configuration
+//
+message flex_gummei {
+        optional flex_plmn plmn = 1;
+        optional uint32 mme_group_id = 2;
+        optional uint32 mme_code = 3;
+}
+
+message flex_s1ap_mme {
+        optional string s1_ip = 1;                        // S1-MME IP of MME
+        optional string name = 2;                         // S1-MME name of MME
+        optional flex_mme_state state = 3;                // State of the MME
+        repeated flex_gummei served_gummeis = 4;          // GUMMEIs served by the MME
+        repeated flex_plmn requested_plmns = 5;           // PLMNs communicated to MME
+        optional uint32 rel_capacity = 6;                 // Relative MME capacity, TS23.401
+}
+
+message flex_s1ap_ue {
+        optional string mme_s1_ip = 1;                  // IP of MME to which UE is connected
+        optional uint32 enb_ue_s1ap_id = 2;             // S1AP ID on eNodeB side for UE
+        optional uint32 mme_ue_s1ap_id = 3;             // S1AP ID on MME side for UE
+        optional flex_plmn selected_plmn = 4;           // UE-selected PLMN in RRC Conn Setup Cplt
+}
+
+enum flex_mme_state {
+        FLMMES_DISCONNECTED = 0;
+        FLMMES_WAITING = 1;
+        FLMMES_CONNECTED = 2;
+        FLMMES_OVERLOAD = 3;
+}
diff --git a/openair2/ENB_APP/MESSAGES/V2/config_messages.proto b/openair2/ENB_APP/MESSAGES/V2/config_messages.proto
index 6d24e5a0ac3a7ed56b28c5179f7abfead69d0eba..4d8c628c4f44902168756111d15374ef1672d1c2 100644
--- a/openair2/ENB_APP/MESSAGES/V2/config_messages.proto
+++ b/openair2/ENB_APP/MESSAGES/V2/config_messages.proto
@@ -100,6 +100,7 @@ message flex_ue_config {
 	optional uint32 ul_slice_id = 32;
   // Configuration about RRC measurements
   optional flex_measurement_info info = 33;
+  optional uint32 enb_ue_s1ap_id = 34;            // S1AP ID on eNodeB side
 }
 
 message flex_lc_ue_config {
@@ -107,6 +108,11 @@ message flex_lc_ue_config {
 	repeated flex_lc_config lc_config = 2;	// A list of LC configurations for the given UE
 }
 
-
-
-
+message flex_s1ap_config {
+        optional uint32 pending = 1;              // number of pending (to be connected) MMEs
+        optional uint32 connected = 2;            // number of connected MMEs
+        optional string enb_s1_ip = 3;            // S1-MME IP of eNodeB
+        optional string enb_name = 4;             // S1-MME name of eNodeB
+        repeated flex_s1ap_mme mme = 5;
+        repeated flex_s1ap_ue ue = 6;
+}
diff --git a/openair2/ENB_APP/MESSAGES/V2/flexran.proto b/openair2/ENB_APP/MESSAGES/V2/flexran.proto
index 1d87a52b97568079b3105f317ebe29c6cff83662..24a219a564833a29a5f1976e264d9e9188f2c79b 100644
--- a/openair2/ENB_APP/MESSAGES/V2/flexran.proto
+++ b/openair2/ENB_APP/MESSAGES/V2/flexran.proto
@@ -156,6 +156,7 @@ message flex_enb_config_reply {
 	optional flex_header header = 1;
 	repeated flex_cell_config cell_config = 3;
         optional uint32 device_spec = 4;
+        optional flex_s1ap_config s1ap = 5;
 }
 
 message flex_ue_config_request {