diff --git a/openair2/ENB_APP/MESSAGES/V2/header.proto b/openair2/ENB_APP/MESSAGES/V2/header.proto
new file mode 100644
index 0000000000000000000000000000000000000000..9193696491b332eb4055d9f6902d80c94400a942
--- /dev/null
+++ b/openair2/ENB_APP/MESSAGES/V2/header.proto
@@ -0,0 +1,19 @@
+package protocol;
+
+message prp_header {
+	optional uint32 version = 1;
+	optional uint32 type = 2;
+	optional uint32 length = 3;
+	optional uint32 xid = 4;
+}
+
+enum prp_type {
+     // Discovery and maintenance messages
+     PRPT_HELLO = 0;
+     PRPT_ECHO_REQUEST = 1;
+     PRPT_ECHO_REPLY = 2;
+
+     // Statistics and measurement messages
+     PRPT_STATS_REQUEST = 3;
+     PRPT_STATS_REPLY = 4;
+}
\ No newline at end of file
diff --git a/openair2/ENB_APP/MESSAGES/V2/progran.proto b/openair2/ENB_APP/MESSAGES/V2/progran.proto
new file mode 100644
index 0000000000000000000000000000000000000000..9e29f995324e3254a995c255335a275f020d7b0d
--- /dev/null
+++ b/openair2/ENB_APP/MESSAGES/V2/progran.proto
@@ -0,0 +1,69 @@
+package protocol;
+
+import "stats_messages.proto";
+
+//
+// Maintenance and discovery messages
+//
+
+// Empty message. Does not really have to be used.
+// Could use only the header with the type set to PRPT_HELLO
+message prp_hello {
+}
+
+message prp_echo_request {
+	extensions 100 to 199;
+}
+
+
+message prp_echo_reply {
+	extensions 100 to 199;
+}
+
+
+
+//
+// Statistics request and reply message
+//
+
+message prp_stats_request {
+	optional prp_stats_type type = 1;
+	oneof body {
+	      prp_complete_stats_request complete_stats_request = 2;
+	      prp_cell_stats_request cell_stats_request = 3;
+	      prp_ue_stats_request ue_stats_request = 4;
+	}
+}
+
+message prp_stats_reply {
+	optional prp_ue_stats_report ue_report = 1;
+	optional prp_cell_stats_report cell_report = 2;
+}
+
+
+// Extensions of the echo request and reply
+// messages for carrying a latency value in ms
+message prp_echo_request_latency {
+	extend prp_echo_request {
+	       optional uint32 latency = 100;
+	}
+}
+
+message prp_echo_reply_latency {
+	extend prp_echo_reply {
+	       optional uint32 latency = 100;
+	}
+}
+
+
+//message progran_body {
+//        oneof msg {
+//              prp_hello hello_msg = 1;
+//              prp_echo_request echo_request_msg = 2;
+//	      prp_echo_reply echo_reply_msg = 3;
+//	      prp_stats_request stats_request_msg = 4;
+//	      prp_stats_reply stats_reply_msg = 5;
+//       }
+//}
+
+
diff --git a/openair2/ENB_APP/MESSAGES/V2/stats_common.proto b/openair2/ENB_APP/MESSAGES/V2/stats_common.proto
new file mode 100644
index 0000000000000000000000000000000000000000..77df92a68b35c8955e55c7d5ea5647916ee731fb
--- /dev/null
+++ b/openair2/ENB_APP/MESSAGES/V2/stats_common.proto
@@ -0,0 +1,176 @@
+package protocol;
+
+//
+// UE related statistics
+//
+
+// RLC buffer status for a specific logical channel of a UE
+message prp_rlc_bsr {
+	optional uint32 lc_id = 1;
+	optional uint32 tx_queue_size = 2;
+	optional uint32 tx_queue_hol_delay = 3;
+	optional uint32 retransmission_queue_size = 4;
+	optional uint32 retransmission_queue_hol_delay = 5;
+	optional uint32 status_pdu_size = 6;
+}
+
+// Flags for MAC Control Elements
+enum prp_ce_type {
+     PRPCET_TA = 1;
+     PRPCET_DRX = 2;
+     PRPCET_CR = 4;
+     PRPCET_CA = 8;
+}
+
+// Types of DL CSI reports
+enum prp_csi_type {
+     PRCSIT_P10 = 0;
+     PRCSIT_P11 = 1;
+     PRCSIT_P20 = 2;
+     PRCSIT_P21 = 3;
+     PRCSIT_A12 = 4;
+     PRCSIT_A22 = 5;
+     PRCSIT_A20 = 6;
+     PRCSIT_A30 = 7;
+     PRCSIT_A31 = 8;
+}
+
+// CSI type P10
+message prp_csi_p10 {
+	optional uint32 wb_cqi = 1;
+}
+
+// CSI type P11
+message prp_csi_p11 {
+	repeated uint32 wb_cqi = 1;
+	optional uint32 wb_pmi = 2;
+}
+
+// CSI type P20
+message prp_csi_p20 {
+	optional uint32 wb_cqi = 1;
+	optional uint32 sb_cqi = 2;
+	optional uint32 bandwidth_part_index = 3;
+	optional uint32 sb_index = 4;
+}
+
+// CSI type P21
+message prp_csi_p21 {
+	repeated uint32 wb_cqi = 1;
+	optional uint32 wb_pmi = 2;
+	repeated uint32 sb_cqi = 3;
+	optional uint32 badwidth_part_index = 4;
+	optional uint32 sb_index = 5;
+}
+
+// CSI type A12
+message prp_csi_a12 {
+	repeated uint32 wb_cqi = 1;
+	repeated uint32 sb_pmi = 2;
+}
+
+// CSI type A22
+message prp_csi_a22 {
+	repeated uint32 wb_cqi = 1;
+	repeated uint32 sb_cqi = 2;
+	optional uint32 wb_pmi = 3;
+	optional uint32 sb_pmi = 4;
+	repeated uint32 sb_list = 5;
+}
+
+// CSI type A20
+message prp_csi_a20 {
+	optional uint32 wb_cqi = 1;
+	optional uint32 sb_cqi = 2;
+	repeated uint32 sb_list = 3;
+}
+
+// CSI type A30
+message prp_csi_a30 {
+	optional uint32 wb_cqi = 1;
+	repeated uint32 sb_cqi = 2;
+}
+
+// CSI type A31
+message prp_csi_a31 {
+	repeated uint32 wb_cqi = 1;
+	repeated prp_msb_cqi sb_cqi = 2;
+	optional uint32 wb_pmi = 3;
+}
+
+// The CQI for the M-preffered subband
+message prp_msb_cqi {
+	repeated uint32 sb_cqi = 1;
+}
+
+// The CSI report of the UE for a specific servCellIndex
+message prp_dl_csi {
+	optional uint32 serv_cell_index = 1;
+	optional uint32 ri = 2;
+	optional prp_csi_type type = 3;
+	oneof report {
+	      prp_csi_p10 p10csi = 4;
+	      prp_csi_p11 p11csi = 5;
+	      prp_csi_p20 p20csi = 6;
+	      prp_csi_p21 p21csi = 7;
+	      prp_csi_a12 a12csi = 8;
+	      prp_csi_a22 a22csi = 9;
+	      prp_csi_a20 a20csi = 10;
+	      prp_csi_a30 a30csi = 11;
+	      prp_csi_a31 a31csi = 12;
+	}
+}
+
+// The full DL CQI report for all CC of a UE
+message prp_dl_cqi_report {
+	optional uint32 sfn_sn = 1;
+	repeated prp_dl_csi csi_report = 2;
+}
+
+// Paging message info
+message prp_paging_info {
+	optional uint32 paging_index = 1;
+	optional uint32 paging_message_size = 2;
+	optional uint32 paging_subframe = 3;
+	optional uint32 carrier_index = 4;
+}
+
+// Report for the paging buffer status
+message prp_paging_buffer_report {
+	repeated prp_paging_info paging_info = 1;
+}
+
+// The type of UL CQI
+enum prp_ul_cqi_type {
+     PRUCT_SRS = 0;
+     PRUCT_PUSCH = 1;
+     PRUCT_PUCCH_1 = 2;
+     PRUCT_PUCCH_2 = 3;
+     PRUCT_PRACH = 4;
+}
+
+// UL CQI report for a specific UE for a given report type
+message prp_ul_cqi {
+	optional prp_ul_cqi_type type = 1;
+	repeated uint32 sinr = 2;
+	optional uint32 serv_cell_index = 3;
+}
+
+// Full UL CQI report for a specific UE
+message prp_ul_cqi_report {
+	optional uint32 sfn_sn = 1;
+	repeated prp_ul_cqi cqi_meas = 2;
+}
+
+
+//
+// Cell related statistics
+//
+
+// The UL noise and interference report for a UE
+message prp_noise_interference_report {
+	optional uint32 sfn_sf = 1;
+	optional uint32 rip = 2;
+	optional uint32 tnp = 3;
+}
+
diff --git a/openair2/ENB_APP/MESSAGES/V2/stats_messages.proto b/openair2/ENB_APP/MESSAGES/V2/stats_messages.proto
new file mode 100644
index 0000000000000000000000000000000000000000..5ec7ae690c32e0e54644eed7f60ec34a487b8cd3
--- /dev/null
+++ b/openair2/ENB_APP/MESSAGES/V2/stats_messages.proto
@@ -0,0 +1,86 @@
+package protocol;
+
+//import "header.proto";
+import "stats_common.proto";
+
+//
+// Bodies of statistics report requests
+//
+
+message prp_complete_stats_request {
+	optional prp_stats_report_freq report_frequency = 1;
+	optional uint32 sf = 2;
+	optional uint32 cell_report_flags = 3;
+	optional uint32 ue_report_flags = 4;
+}
+
+message prp_cell_stats_request {
+	repeated uint32 cell = 1;
+	optional uint32 flags = 2;
+}
+
+message prp_ue_stats_request {
+	repeated uint32 rnti = 1;
+	optional uint32 flags = 2;
+}
+
+//
+// Bodies of statistics reports
+//
+
+// The full statistics report for a specific cell
+message prp_cell_stats_report {
+	optional uint32 carrier_index = 1;
+	optional uint32 flags = 2;
+	optional prp_noise_interference_report noise_inter_report = 3;
+}
+
+// Statistics report for a specific UE
+message prp_ue_stats_report {
+	optional uint32 rnti = 1;
+	optional uint32 flags = 2;
+	repeated uint32 bsr = 3;
+	optional uint32 phr = 4;
+	repeated prp_rlc_bsr rlc_report = 5;
+	optional uint32 pending_mac_ces = 6;
+	optional prp_dl_cqi_report dl_cqi_report = 7;
+	optional prp_paging_buffer_report pbr = 8;
+	optional prp_ul_cqi_report ul_cqi_report = 9;
+}
+
+//
+// Types of statistics related enums
+//
+
+
+//Types of statistics requested by the controller
+enum prp_stats_type {
+     PRST_COMPLETE_STATS = 0;
+     PRST_CELL_STATS = 1;
+     PRST_UE_STATS = 2;
+}
+
+// Report frequency for the requested statistics
+enum prp_stats_report_freq {
+     PRSRF_ONCE = 0;
+     PRSRF_PERIODICAL = 1;
+     PRSRF_CONTINUOUS = 2;
+     PRSRF_OFF = 3;
+}
+
+// Flags for cell statistics
+enum prp_cell_stats_type {
+     PRCST_NOISE_INTERFERENCE = 1;
+}
+
+// Flags for UE-related statistics
+enum prp_ue_stats_type {
+     PRUST_BSR = 1;
+     PRUST_PRH = 2;
+     PRUST_RLC_BS = 4;
+     PRUST_MAC_CE_BS = 8;
+     PRUST_DL_CQI = 16;
+     PRUST_PBS = 32;
+     PRUST_UL_CQI = 64;
+     // To be extended with more types of stats
+}
\ No newline at end of file