Commit a0289d74 authored by Xenofon Foukas's avatar Xenofon Foukas

Added support for eNB, cell, UE and logical channel configuration messages to the progRAN protocol

parent bb874258
No related merge requests found
...@@ -713,6 +713,8 @@ if (ENB_AGENT_SB_IF) ...@@ -713,6 +713,8 @@ if (ENB_AGENT_SB_IF)
${PRPT_MSG_DIR}/time_common.proto ${PRPT_MSG_DIR}/time_common.proto
${PRPT_MSG_DIR}/controller_commands.proto ${PRPT_MSG_DIR}/controller_commands.proto
${PRPT_MSG_DIR}/mac_primitives.proto ${PRPT_MSG_DIR}/mac_primitives.proto
${PRPT_MSG_DIR}/config_messages.proto
${PRPT_MSG_DIR}/config_common.proto
) )
set(PRPT_C_DIR ${protobuf_generated_dir}/${PRPTDIR}) set(PRPT_C_DIR ${protobuf_generated_dir}/${PRPTDIR})
...@@ -727,6 +729,8 @@ if (ENB_AGENT_SB_IF) ...@@ -727,6 +729,8 @@ if (ENB_AGENT_SB_IF)
${PRPT_C_DIR}/time_common.pb-c.c ${PRPT_C_DIR}/time_common.pb-c.c
${PRPT_C_DIR}/controller_commands.pb-c.c ${PRPT_C_DIR}/controller_commands.pb-c.c
${PRPT_C_DIR}/mac_primitives.pb-c.c ${PRPT_C_DIR}/mac_primitives.pb-c.c
${PRPT_C_DIR}/config_messages.pb-c.c
${PRPT_C_DIR}/config_common.pb-c.c
) )
file(GLOB prpt_h ${PRPT_C_DIR}/*.h) file(GLOB prpt_h ${PRPT_C_DIR}/*.h)
......
//'syntax = "proto2";'
package protocol;
//
// Cell config related structures and enums
//
message prp_si_config {
optional uint32 sfn = 1;
optional uint32 sib1_length = 2; // The length of SIB1 in bytes
optional uint32 si_window_length = 3; // The scheduling window for all SIs in SF
repeated prp_si_message si_message = 4; // List of SI messages to be sent.
// The index identifies the type of an SI message
// 0 - SIB1
// 1..31 - SIx
// 32..63 - PCCH
}
message prp_si_message {
optional uint32 periodicity = 1; // Periodicity of SI msg in radio frames
optional uint32 length = 2; // The length of the SI message in bytes
}
enum prp_hopping_mode {
PRHM_INTER = 0;
PRHM_INTERINTRA = 1;
}
enum prp_phich_resource {
PRPR_ONE_SIXTH = 0;
PRPR_HALF = 1;
PRPR_ONE = 2;
PRPR_TWO = 3;
}
enum prp_phich_duration {
PRPD_NORMAL = 0;
PRPD_EXTENDED = 1;
}
enum prp_ul_cyclic_prefix_length {
PRUCPL_NORMAL = 0;
PRUCPL_EXTENDED = 1;
}
enum prp_dl_cyclic_prefix_length {
PRDCPL_NORMAL = 0;
PRDCPL_EXTENDED = 1;
}
enum prp_duplex_mode {
PRDM_TDD = 0;
PRDM_FDD = 1;
}
enum prp_qam {
PREQ_MOD_16QAM = 0;
PREQ_MOD_64QAM = 1;
}
//
// UE config related structures and enums
//
message prp_drx_config {
optional uint32 on_duration_timer = 1; // Timer in SF. See TS 36.321
optional uint32 drx_inactivity_timer = 2; // Timer in SF. See TS 36.321
optional uint32 drx_retransmission_timer = 3; // Timer in SF. See TS 36.321
optional uint32 long_drx_cycle = 4; // In SF. See TS 36.321
optional uint32 long_drx_cycle_start_offset = 5;// See TS 36.321
optional uint32 short_drx_cycle = 6; // In SF
optional uint32 drx_short_cycle_timer = 7; // Timer in subframes. See TS 36.321
}
message prp_sps_config {
optional uint32 semi_persistent_sched_interval_UL = 1; // SPS UL scheduling interval in SF
optional uint32 semi_persistent_sched_interval_DL = 2; // SPS DL scheduling interval in SF
optional uint32 num_of_conf_sps_proc = 3; // Number of SPS HARQ processes. See TS 36.321
repeated uint32 n1_PUCCH_AN_persistent_element = 4;// See TS36.213. Ignored when config is used
// as part of PRPT_SET_UE_CONFIG
optional uint32 implicit_release_after = 5; // number of empty transmissions before release of SPS
}
message prp_sr_config {
optional uint32 sr_action = 1; // Indicates if SR config should be changed or released
// One of the PRSRA_* enum values
optional uint32 sched_interval = 2; // SR scheduling interval in SF
optional uint32 dsr_trans_max = 3; // See TS 36.213
}
message prp_cqi_config {
optional uint32 cqi_action = 1; // Indicats if CQI changed or released.
// One of the PRSRA_* enum values
optional uint32 cqi_sched_interval = 2; // CQI scheduling interval in SF
optional uint32 ri_sched_interval = 3; // RI scheduling interval in SF
}
message prp_ue_capabilities {
optional uint32 half_duplex = 1; // Boolean value. Only half duplex support. FDD operation
optional uint32 intra_SF_hopping = 2; // Support for intra-subframe hopping. Boolean value
optional uint32 type2_sb_1 = 3; // Support for type 2 hopping with n_sb > 1
optional uint32 ue_category = 4;
optional uint32 res_alloc_type1 = 5; // Boolean value. UE support for resource allocation type 1
}
message prp_scell_config {
optional uint32 carrier_index = 1; // Id of the carrier component
optional uint32 scell_index = 2; // Index of this Scell (RRC SCellIndex)
optional uint32 use_ccs = 3; // Boolean value. Indicates if cross-carrier scheduling
// is used by this SCell
optional uint32 sched_cell_index = 4; // Index of the cell responsible for scheduling
// this SCell if cross-carrier scheduling is enabled
optional uint32 pdsch_start = 5; // Starting OFDM symbol of PDSCH data region for this SCell
}
enum prp_meas_gap_config_pattern {
PRMGCP_GP1 = 0;
PRMGCP_GP2 = 1;
PRMGCP_OFF = 2;
}
enum prp_setup_release_action {
PRSRA_SETUP = 0;
PRSRA_RELEASE = 1;
}
enum prp_ue_transmission_antenna {
PRUTA_NONE = 0;
PRUTA_OPEN_LOOP = 1;
PRUTA_CLOSED_LOOP = 2;
}
enum prp_aperiodic_cqi_report_mode {
PRACRM_RM12 = 0;
PRACRM_RM20 = 1;
PRACRM_RM22 = 2;
PRACRM_RM30 = 3;
PRACRM_RM31 = 4;
PRACRM_NONE = 5;
}
enum prp_tdd_ack_nack_feedback_mode {
PRTANFM_BUNDLING = 0;
PRTANFM_MULTIPLEXING = 1;
}
//
// Logical channel config related structures and enums
//
message prp_lc_config {
optional uint32 lcid = 1; // The logical channel id
optional uint32 lcg = 2; // The logical channel group (0..3) the LC is mapped to
optional uint32 direction = 3; // The LC direction. One of the PRLCD_* enum values
optional uint32 qos_bearer_type = 4;// GBR or NGBR bearer. One of the PRQBT_* enum values
optional uint32 qci = 5; // The QCI defined in TS 23.203, coded as defined in TS 36.413
// One less than the actual QCI value
optional uint64 e_RAB_max_bitrate_UL = 6; // In bps (GBR only)
optional uint64 e_RAB_max_bitrate_DL = 7; // In bps (GBR only)
optional uint64 e_RAB_guaranteed_bitrate_UL = 8; // In bps (GBR only)
optional uint64 e_RAB_guranteed_bitrate_DL = 9; // In bps (GBR only)
}
enum prp_lc_direction {
PRLCD_UL = 0;
PRLCD_DL = 1;
PRLCD_BOTH = 2;
}
enum prp_qos_bearer_type {
PRQBT_NON_GBR = 0;
PRQBT_GBR = 1;
}
//'syntax = "proto2";'
package protocol;
import "config_common.proto";
message prp_cell_config {
optional uint32 phy_cell_id = 1; // The PCI of this cell
optional uint32 cell_id = 2; // The PLMN cell id of this cell
optional uint32 pusch_hopping_offset = 3; // PUSCH resources in RBs for hopping
optional uint32 hopping_mode = 4; // One of the PRHM_* enum values
optional uint32 n_sb = 5; // The number of subbands
optional uint32 phich_resource = 6; // The number of REGs used for PHICH
// One of the PRPR_* enum values
optional uint32 phich_duration = 7; // One of the PRPD_* enum values
optional uint32 init_nr_PDCCH_OFDM_sym = 8; // See TS 36.211, section 6.9
optional prp_si_config si_config = 9; // The SI configuration
optional uint32 dl_bandwidth = 10; // The DL transmission bandwidth in RBs
optional uint32 ul_bandwidth = 11; // The UL transmission bandwidth in RBs
optional uint32 ul_cyclic_prefix_length = 13; // One of the PRUCPL_* enum values
optional uint32 dl_cyclic_prefix_length = 14; // One of the PRDCPL_* enum values
optional uint32 antenna_ports_count = 15; // Number of cell specific antenna ports
optional uint32 duplex_mode = 16; // One of the PRDM_* enum values
optional uint32 subframe_assignment = 17; // DL/UL subframe assignment. TDD only
optional uint32 special_subframe_patterns = 18; // TDD only. See TS 36.211, table 4.2.1
repeated uint32 mbsfn_subframe_config_rfperiod = 19; // The MBSFN radio frame period (Optional)
repeated uint32 mbsfn_subframe_config_rfoffset = 20; // The radio frame offset (Optional)
repeated uint32 mbsfn_subframe_config_sfalloc = 21; // Bitmap indicating the MBSFN subframes (Optional)
optional uint32 prach_config_index = 22; // See TS 36.211, section 5.7.1
optional uint32 prach_freq_offset = 23; // See TS 36.211, section 5.7.1
optional uint32 ra_response_window_size = 24; // The duration of the RA response window in SF
optional uint32 mac_contention_resolution_timer = 25; // Timer for RA
optional uint32 max_HARQ_Msg3Tx = 26; // See TS 36.321
optional uint32 n1PUCCH_AN = 27; // See TS 36.213, section 10.1
optional uint32 deltaPUCCH_shift = 28; // See TS 36.211, section 5.4
optional uint32 nRB_cqi = 29; // See TS 36.211, section 5.4
optional uint32 srs_subframe_config = 30; // See TS 36.211, table 5.5.3.3-1 and 2
optional uint32 srs_bw_config = 31; // See TS 36.211, section 5.5.3.2
optional uint32 srs_mac_up_pts = 32; // Boolean value. See TS 36.211, section 5.5.3.2. TDD only
optional uint32 enable_64QAM = 33; // One of the PREQ_* enum values
optional uint32 carrier_index = 34; // Carrier component index
}
message prp_ue_config {
optional uint32 rnti = 1;
optional prp_drx_config drx_config = 2; // The DRX configuration (Optional)
optional uint32 time_alignment_timer = 3; // Timer in SF. Control the synchronization
// status of the UE, not the actual advance procedure
// See TS 36.321
optional uint32 meas_gap_config_pattern = 4; // Measurement gap configuration.
// One of the PRMGCP_* enum values
// See TS 36.133
optional uint32 meas_gap_config_sf_offset = 5; // Measurement gap offset if applicable
optional prp_sps_config sps_config = 6; // The SPS configuration (Optional)
optional prp_sr_config sr_config = 7; // The SR configuration (Optional)
optional prp_cqi_config cqi_config = 8; // The CQI configuration (Optional)
optional uint32 transmission_mode = 9; // The UE transmission mode
optional uint64 ue_aggregated_max_bitrate_UL = 10; // Aggregated bit-rate of non-gbr bearer
// per UE. See TS 36.413
optional uint64 ue_aggregated_max_bitrate_DL = 11; // Aggregated bit-rate of non-gbr bearer
// per UE. See TS 36.413
optional prp_ue_capabilities capabilities = 12;
optional uint32 ue_transmission_antenna = 13; // One of the PRUTA_* enum values
optional uint32 tti_bundling = 14; // Boolean value. See TS 36.321
optional uint32 max_HARQ_tx = 15; // The max HARQ retransmission for UL
optional uint32 beta_offset_ACK_index = 16; // See TS 36.213
optional uint32 beta_offset_RI_index = 17; // See TS 36.213
optional uint32 beta_offset_CQI_index = 18; // See TS 36.213
optional uint32 ack_nack_simultaneous_trans = 19;// Boolean. See TS 36.213
optional uint32 simultaneous_ack_nack_cqi = 20; // Boolean. See TS 36.213
optional uint32 aperiodic_cqi_rep_mode = 21; // One of the PRACRM_* enum values
optional uint32 tdd_ack_nack_feedback = 22; // One of the PRTANFM_* enum values
optional uint32 ack_nack_repetition_factor = 23;// See TS 36.213, section 10.1
optional uint32 extended_bsr_size = 24; // Boolean for extended BSR size
optional uint32 ca_support = 25; // Boolean. Support for carrier aggregation
optional uint32 cross_carrier_sched_support = 26; // Boolean value
optional uint32 pcell_carrier_index = 27; // Index of primary cell
repeated prp_scell_config scell_config = 28; // Secondary cells configuration
optional uint32 scell_deactivation_timer = 29;// Deactivation timer for secondary cell
}
message prp_lc_ue_config {
optional uint32 rnti = 1;
repeated prp_lc_config lc_config = 2; // A list of LC configurations for the given UE
}
...@@ -19,10 +19,18 @@ enum prp_type { ...@@ -19,10 +19,18 @@ enum prp_type {
// Time indication messages // Time indication messages
PRPT_SF_TRIGGER = 5; PRPT_SF_TRIGGER = 5;
//Asynchronous messages // Asynchronous messages
PRPT_UL_SR_INFO = 6; PRPT_UL_SR_INFO = 6;
// eNB configuration messages
PRPT_GET_ENB_CONFIG_REQUEST = 7;
PRPT_GET_ENB_CONFIG_REPLY = 8;
PRPT_GET_UE_CONFIG_REQUEST = 9;
PRPT_GET_UE_CONFIG_REPLY = 10;
PRPT_GET_LC_CONFIG_REQUEST = 11;
PRPT_GET_LC_CONFIG_REPLY = 12;
//Controller command messages //Controller command messages
PRPT_DL_MAC_CONFIG = 7; PRPT_DL_MAC_CONFIG = 13;
} }
...@@ -4,6 +4,7 @@ package protocol; ...@@ -4,6 +4,7 @@ package protocol;
import "stats_messages.proto"; import "stats_messages.proto";
import "header.proto"; import "header.proto";
import "time_common.proto"; import "time_common.proto";
import "config_messages.proto";
import "controller_commands.proto"; import "controller_commands.proto";
message progran_message { message progran_message {
...@@ -16,7 +17,13 @@ message progran_message { ...@@ -16,7 +17,13 @@ message progran_message {
prp_stats_reply stats_reply_msg = 5; prp_stats_reply stats_reply_msg = 5;
prp_sf_trigger sf_trigger_msg = 6; prp_sf_trigger sf_trigger_msg = 6;
prp_ul_sr_info ul_sr_info_msg = 7; prp_ul_sr_info ul_sr_info_msg = 7;
prp_dl_mac_config dl_mac_config_msg = 8; prp_enb_config_request enb_config_request = 8;
prp_enb_config_reply enb_config_reply = 9;
prp_ue_config_request ue_config_request = 10;
prp_ue_config_reply ue_config_reply = 11;
prp_lc_config_request lc_config_request = 12;
prp_lc_config_reply lc_config_reply = 13;
prp_dl_mac_config dl_mac_config_msg = 14;
} }
} }
...@@ -108,6 +115,37 @@ message prp_ul_sr_info { ...@@ -108,6 +115,37 @@ message prp_ul_sr_info {
repeated uint32 rnti = 3; repeated uint32 rnti = 3;
} }
//
// eNB configuration messages
//
message prp_enb_config_request {
optional prp_header header = 1;
}
message prp_enb_config_reply {
optional prp_header header = 1;
optional uint32 eNB_id = 2; // Unique id to distinguish the eNB
repeated prp_cell_config cell_config = 3;
}
message prp_ue_config_request {
optional prp_header header = 1;
}
message prp_ue_config_reply {
optional prp_header header = 1;
repeated prp_ue_config ue_config = 2;
}
message prp_lc_config_request {
optional prp_header header = 1;
}
message prp_lc_config_reply {
optional prp_header header = 1;
repeated prp_lc_ue_config lc_ue_config = 2;
}
// //
// Controller command messages // Controller command messages
// //
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment