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