Commit b2181288 authored by Xenofon Foukas's avatar Xenofon Foukas

Moved agent and protocol to flexran naming convention

parent 9ed966cf
......@@ -840,55 +840,55 @@ include_directories("${OPENAIR_DIR}")
################
if (ENB_AGENT_SB_IF)
# set the version of protobuf messages, V3 not supported yet
add_list1_option(PRPT_VERSION V2 "PRPT MSG protobuf grammar version" V2 V3)
add_list1_option(FLPT_VERSION V2 "FLPT MSG protobuf grammar version" V2 V3)
if (${PRPT_VERSION} STREQUAL "V2")
set (PRPTDIR V2)
elseif (${PRPT_VERSION} STREQUAL "V3")
set (PRPTDIR V3)
endif(${PRPT_VERSION} STREQUAL "V2")
if (${FLPT_VERSION} STREQUAL "V2")
set (FLPTDIR V2)
elseif (${FLPT_VERSION} STREQUAL "V3")
set (FLPTDIR V3)
endif(${FLPT_VERSION} STREQUAL "V2")
set(PRPT_MSG_DIR ${OPENAIR2_DIR}/ENB_APP/MESSAGES/${PRPTDIR} )
set(PRPT_MSG_FILES
${PRPT_MSG_DIR}/header.proto
${PRPT_MSG_DIR}/progran.proto
${PRPT_MSG_DIR}/stats_common.proto
${PRPT_MSG_DIR}/stats_messages.proto
${PRPT_MSG_DIR}/time_common.proto
${PRPT_MSG_DIR}/controller_commands.proto
${PRPT_MSG_DIR}/mac_primitives.proto
${PRPT_MSG_DIR}/config_messages.proto
${PRPT_MSG_DIR}/config_common.proto
${PRPT_MSG_DIR}/control_delegation.proto
set(FLPT_MSG_DIR ${OPENAIR2_DIR}/ENB_APP/MESSAGES/${FLPTDIR} )
set(FLPT_MSG_FILES
${FLPT_MSG_DIR}/header.proto
${FLPT_MSG_DIR}/flexran.proto
${FLPT_MSG_DIR}/stats_common.proto
${FLPT_MSG_DIR}/stats_messages.proto
${FLPT_MSG_DIR}/time_common.proto
${FLPT_MSG_DIR}/controller_commands.proto
${FLPT_MSG_DIR}/mac_primitives.proto
${FLPT_MSG_DIR}/config_messages.proto
${FLPT_MSG_DIR}/config_common.proto
${FLPT_MSG_DIR}/control_delegation.proto
)
set(PRPT_C_DIR ${protobuf_generated_dir}/${PRPTDIR})
#message("calling protoc_call=${protoc_call} PRPT_C_DIR=${PRPT_C_DIR} PRPT_MSG_FILES=${PRPT_MSG_FILES}")
execute_process(COMMAND ${protoc_call} ${PRPT_C_DIR} ${PRPT_MSG_DIR} ${PRPT_MSG_FILES})
file(GLOB PRPT_source ${PRPT_C_DIR}/*.c)
set(PRPT_OAI_generated
${PRPT_C_DIR}/header.pb-c.c
${PRPT_C_DIR}/progran.pb-c.c
${PRPT_C_DIR}/stats_common.pb-c.c
${PRPT_C_DIR}/stats_messages.pb-c.c
${PRPT_C_DIR}/time_common.pb-c.c
${PRPT_C_DIR}/controller_commands.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
${PRPT_C_DIR}/control_delegation.pb-c.c
set(FLPT_C_DIR ${protobuf_generated_dir}/${FLPTDIR})
#message("calling protoc_call=${protoc_call} FLPT_C_DIR=${FLPT_C_DIR} FLPT_MSG_FILES=${FLPT_MSG_FILES}")
execute_process(COMMAND ${protoc_call} ${FLPT_C_DIR} ${FLPT_MSG_DIR} ${FLPT_MSG_FILES})
file(GLOB FLPT_source ${FLPT_C_DIR}/*.c)
set(FLPT_OAI_generated
${FLPT_C_DIR}/header.pb-c.c
${FLPT_C_DIR}/flexran.pb-c.c
${FLPT_C_DIR}/stats_common.pb-c.c
${FLPT_C_DIR}/stats_messages.pb-c.c
${FLPT_C_DIR}/time_common.pb-c.c
${FLPT_C_DIR}/controller_commands.pb-c.c
${FLPT_C_DIR}/mac_primitives.pb-c.c
${FLPT_C_DIR}/config_messages.pb-c.c
${FLPT_C_DIR}/config_common.pb-c.c
${FLPT_C_DIR}/control_delegation.pb-c.c
)
file(GLOB prpt_h ${PRPT_C_DIR}/*.h)
set(prpt_h ${prpt_h} )
file(GLOB flpt_h ${FLPT_C_DIR}/*.h)
set(flpt_h ${flpt_h} )
add_library(PRPT_MSG
${PRPT_OAI_generated}
${PRPT_source}
add_library(FLPT_MSG
${FLPT_OAI_generated}
${FLPT_source}
)
set(PRPT_MSG_LIB PRPT_MSG)
#message("prpt c dir is : ${PRPT_C_DIR}")
include_directories (${PRPT_C_DIR})
set(FLPT_MSG_LIB FLPT_MSG)
#message("prpt c dir is : ${FLPT_C_DIR}")
include_directories (${FLPT_C_DIR})
add_library(ASYNC_IF
${OPENAIR2_DIR}/UTIL/ASYNC_IF/socket_link.c
......@@ -1757,7 +1757,7 @@ add_executable(lte-softmodem
target_link_libraries (lte-softmodem -ldl
-Wl,--start-group
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${MIH_LIB} ${PRPT_MSG_LIB} ${ASYNC_IF_LIB} ${ENB_AGENT_LIB} LFDS7
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${ENB_AGENT_LIB} LFDS7
-Wl,--end-group )
target_link_libraries (lte-softmodem ${LIBXML2_LIBRARIES})
......@@ -1791,7 +1791,7 @@ add_executable(lte-softmodem-nos1
)
target_link_libraries (lte-softmodem-nos1
-Wl,--start-group
RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB} ${MIH_LIB} ${PRPT_MSG_LIB} ${ASYNC_IF_LIB} ${ENB_AGENT_LIB} LFDS7
RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB} ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${ENB_AGENT_LIB} LFDS7
-Wl,--end-group )
target_link_libraries (lte-softmodem-nos1 ${LIBXML2_LIBRARIES})
......@@ -1936,7 +1936,7 @@ add_executable(oaisim_nos1
target_include_directories(oaisim_nos1 PUBLIC ${OPENAIR_TARGETS}/SIMU/USER)
target_link_libraries (oaisim_nos1
-Wl,--start-group
RRC_LIB X2AP_LIB SECU_CN UTIL HASHTABLE SCHED_LIB PHY LFDS ${MSC_LIB} L2 ${RAL_LIB} SIMU SIMU_ETH SECU_OSA ${ITTI_LIB} ${MIH_LIB} ${PRPT_MSG_LIB} ${ASYNC_IF_LIB} ${ENB_AGENT_LIB} LFDS7
RRC_LIB X2AP_LIB SECU_CN UTIL HASHTABLE SCHED_LIB PHY LFDS ${MSC_LIB} L2 ${RAL_LIB} SIMU SIMU_ETH SECU_OSA ${ITTI_LIB} ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${ENB_AGENT_LIB} LFDS7
-Wl,--end-group )
target_link_libraries (oaisim_nos1 ${LIBXML2_LIBRARIES} ${LAPACK_LIBRARIES})
......
......@@ -5,64 +5,64 @@ package protocol;
// Cell config related structures and enums
//
message prp_si_config {
message flex_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.
repeated flex_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 {
message flex_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 flex_hopping_mode {
FLHM_INTER = 0;
FLHM_INTERINTRA = 1;
}
enum prp_phich_resource {
PRPR_ONE_SIXTH = 0;
PRPR_HALF = 1;
PRPR_ONE = 2;
PRPR_TWO = 3;
enum flex_phich_resource {
FLPR_ONE_SIXTH = 0;
FLPR_HALF = 1;
FLPR_ONE = 2;
FLPR_TWO = 3;
}
enum prp_phich_duration {
PRPD_NORMAL = 0;
PRPD_EXTENDED = 1;
enum flex_phich_duration {
FLPD_NORMAL = 0;
FLPD_EXTENDED = 1;
}
enum prp_ul_cyclic_prefix_length {
PRUCPL_NORMAL = 0;
PRUCPL_EXTENDED = 1;
enum flex_ul_cyclic_prefix_length {
FLUCPL_NORMAL = 0;
FLUCPL_EXTENDED = 1;
}
enum prp_dl_cyclic_prefix_length {
PRDCPL_NORMAL = 0;
PRDCPL_EXTENDED = 1;
enum flex_dl_cyclic_prefix_length {
FLDCPL_NORMAL = 0;
FLDCPL_EXTENDED = 1;
}
enum prp_duplex_mode {
PRDM_TDD = 0;
PRDM_FDD = 1;
enum flex_duplex_mode {
FLDM_TDD = 0;
FLDM_FDD = 1;
}
enum prp_qam {
PREQ_MOD_16QAM = 0;
PREQ_MOD_64QAM = 1;
enum flex_qam {
FLEQ_MOD_16QAM = 0;
FLEQ_MOD_64QAM = 1;
}
//
// UE config related structures and enums
//
message prp_drx_config {
message flex_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
......@@ -72,30 +72,30 @@ message prp_drx_config {
optional uint32 drx_short_cycle_timer = 7; // Timer in subframes. See TS 36.321
}
message prp_sps_config {
message flex_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
// as part of FLPT_SET_UE_CONFIG
optional uint32 implicit_release_after = 5; // number of empty transmissions before release of SPS
}
message prp_sr_config {
message flex_sr_config {
optional uint32 sr_action = 1; // Indicates if SR config should be changed or released
// One of the PRSRA_* enum values
// One of the FLSRA_* 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 {
message flex_cqi_config {
optional uint32 cqi_action = 1; // Indicats if CQI changed or released.
// One of the PRSRA_* enum values
// One of the FLSRA_* 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 {
message flex_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
......@@ -103,7 +103,7 @@ message prp_ue_capabilities {
optional uint32 res_alloc_type1 = 5; // Boolean value. UE support for resource allocation type 1
}
message prp_scell_config {
message flex_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
......@@ -113,46 +113,46 @@ message prp_scell_config {
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 flex_meas_gap_config_pattern {
FLMGCP_GP1 = 0;
FLMGCP_GP2 = 1;
FLMGCP_OFF = 2;
}
enum prp_setup_release_action {
PRSRA_SETUP = 0;
PRSRA_RELEASE = 1;
enum flex_setup_release_action {
FLSRA_SETUP = 0;
FLSRA_RELEASE = 1;
}
enum prp_ue_transmission_antenna {
PRUTA_NONE = 0;
PRUTA_OPEN_LOOP = 1;
PRUTA_CLOSED_LOOP = 2;
enum flex_ue_transmission_antenna {
FLUTA_NONE = 0;
FLUTA_OPEN_LOOP = 1;
FLUTA_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 flex_aperiodic_cqi_report_mode {
FLACRM_RM12 = 0;
FLACRM_RM20 = 1;
FLACRM_RM22 = 2;
FLACRM_RM30 = 3;
FLACRM_RM31 = 4;
FLACRM_NONE = 5;
}
enum prp_tdd_ack_nack_feedback_mode {
PRTANFM_BUNDLING = 0;
PRTANFM_MULTIPLEXING = 1;
enum flex_tdd_ack_nack_feedback_mode {
FLTANFM_BUNDLING = 0;
FLTANFM_MULTIPLEXING = 1;
}
//
// Logical channel config related structures and enums
//
message prp_lc_config {
message flex_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 direction = 3; // The LC direction. One of the FLLCD_* enum values
optional uint32 qos_bearer_type = 4;// GBR or NGBR bearer. One of the FLQBT_* 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)
......@@ -161,20 +161,20 @@ message prp_lc_config {
optional uint64 e_RAB_guaranteed_bitrate_DL = 9; // In bps (GBR only)
}
enum prp_lc_direction {
PRLCD_UL = 0;
PRLCD_DL = 1;
PRLCD_BOTH = 2;
enum flex_lc_direction {
FLLCD_UL = 0;
FLLCD_DL = 1;
FLLCD_BOTH = 2;
}
enum prp_qos_bearer_type {
PRQBT_NON_GBR = 0;
PRQBT_GBR = 1;
enum flex_qos_bearer_type {
FLQBT_NON_GBR = 0;
FLQBT_GBR = 1;
}
enum prp_ue_state_change_type {
PRUESC_UPDATED = 0;
PRUESC_ACTIVATED = 1;
PRUESC_DEACTIVATED = 2;
PRUESC_MOVED = 3;
enum flex_ue_state_change_type {
FLUESC_UPDATED = 0;
FLUESC_ACTIVATED = 1;
FLUESC_DEACTIVATED = 2;
FLUESC_MOVED = 3;
}
\ No newline at end of file
......@@ -3,23 +3,23 @@ package protocol;
import "config_common.proto";
message prp_cell_config {
message flex_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 hopping_mode = 4; // One of the FLHM_* 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
// One of the FLPR_* enum values
optional uint32 phich_duration = 7; // One of the FLPD_* 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 flex_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 ul_cyclic_prefix_length = 13; // One of the FLUCPL_* enum values
optional uint32 dl_cyclic_prefix_length = 14; // One of the FLDCPL_* 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 duplex_mode = 16; // One of the FLDM_* 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)
......@@ -36,30 +36,30 @@ message prp_cell_config {
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 enable_64QAM = 33; // One of the FLEQ_* enum values
optional uint32 carrier_index = 34; // Carrier component index
}
message prp_ue_config {
message flex_ue_config {
optional uint32 rnti = 1;
optional prp_drx_config drx_config = 2; // The DRX configuration (Optional)
optional flex_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
// One of the FLMGCP_* 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 flex_sps_config sps_config = 6; // The SPS configuration (Optional)
optional flex_sr_config sr_config = 7; // The SR configuration (Optional)
optional flex_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 flex_ue_capabilities capabilities = 12;
optional uint32 ue_transmission_antenna = 13; // One of the FLUTA_* 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
......@@ -67,20 +67,20 @@ message prp_ue_config {
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 aperiodic_cqi_rep_mode = 21; // One of the FLACRM_* enum values
optional uint32 tdd_ack_nack_feedback = 22; // One of the FLTANFM_* 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
repeated flex_scell_config scell_config = 28; // Secondary cells configuration
optional uint32 scell_deactivation_timer = 29;// Deactivation timer for secondary cell
}
message prp_lc_ue_config {
message flex_lc_ue_config {
optional uint32 rnti = 1;
repeated prp_lc_config lc_config = 2; // A list of LC configurations for the given UE
repeated flex_lc_config lc_config = 2; // A list of LC configurations for the given UE
}
......
//'syntax = "proto2";'
package protocol;
enum prp_control_delegation_type {
PRCDT_MAC_DL_UE_SCHEDULER = 1; // DL UE scheduler delegation
enum flex_control_delegation_type {
FLCDT_MAC_DL_UE_SCHEDULER = 1; // DL UE scheduler delegation
}
\ No newline at end of file
......@@ -6,11 +6,11 @@ import "mac_primitives.proto";
// Body of UE DL MAC scheduling configuration info
//
message prp_dl_data {
message flex_dl_data {
optional uint32 rnti = 1;
optional prp_dl_dci dl_dci = 2;
optional flex_dl_dci dl_dci = 2;
repeated uint32 ce_bitmap = 3; // list of 2 MAC CEs, one for each TB
repeated prp_rlc_pdu rlc_pdu = 4; // list of parameters for the creation of RLC PDUs. One for each lcid
repeated flex_rlc_pdu rlc_pdu = 4; // list of parameters for the creation of RLC PDUs. One for each lcid
optional uint32 serv_cell_index = 5;
optional uint32 act_deact_ce = 6; //Hex content of MAC CE for Activation/Deactivation in CA
}
......@@ -18,10 +18,10 @@ message prp_dl_data {
//
// Body of the RAR scheduler configuration
//
message prp_dl_rar {
message flex_dl_rar {
optional uint32 rnti = 1;
optional uint32 grant = 2; // The 20-bit UL grant. TS 36.213, sec 6.2
optional prp_dl_dci rar_dci = 3;
optional flex_dl_dci rar_dci = 3;
optional uint32 carrier_index = 4; // The carrier index for the RAR
}
......@@ -29,13 +29,13 @@ message prp_dl_rar {
// Body of the paging/broadcast configuration message
//
message prp_dl_broadcast {
optional uint32 type = 1; // The PRBT_* values
message flex_dl_broadcast {
optional uint32 type = 1; // The FLBT_* values
optional uint32 index = 2; // Index of the broadcast message:
// 0 - SIB1,
// 1..31 - Six,
// 32..63 - PCCH (PCCH index obtained from prp_paging_info)
optional prp_dl_dci broad_dci = 3;
// 32..63 - PCCH (PCCH index obtained from flex_paging_info)
optional flex_dl_dci broad_dci = 3;
optional uint32 carrier_index = 4; // Index of the carrier for broadcast
}
......@@ -43,7 +43,7 @@ message prp_dl_broadcast {
// Body of the OFDM symbol count message
//
message prp_pdcch_ofdm_sym_count {
message flex_pdcch_ofdm_sym_count {
optional uint32 carrier_index = 1;
optional uint32 num_pdcch_ofdm_symbols = 2;
}
......@@ -52,7 +52,7 @@ message prp_pdcch_ofdm_sym_count {
// Types of commands related enums
//
enum prp_broadcast_type {
PRBT_BCCH = 0;
PRBT_PCCH = 1;
enum flex_broadcast_type {
FLBT_BCCH = 0;
FLBT_PCCH = 1;
}
\ No newline at end of file
......@@ -8,30 +8,30 @@ import "config_messages.proto";
import "controller_commands.proto";
import "control_delegation.proto";
message progran_message {
optional progran_direction msg_dir = 100;
message flexran_message {
optional flexran_direction msg_dir = 100;
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;
prp_sf_trigger sf_trigger_msg = 6;
prp_ul_sr_info ul_sr_info_msg = 7;
prp_enb_config_request enb_config_request_msg = 8;
prp_enb_config_reply enb_config_reply_msg = 9;
prp_ue_config_request ue_config_request_msg = 10;
prp_ue_config_reply ue_config_reply_msg = 11;
prp_lc_config_request lc_config_request_msg = 12;
prp_lc_config_reply lc_config_reply_msg = 13;
prp_dl_mac_config dl_mac_config_msg = 14;
prp_ue_state_change ue_state_change_msg = 15;
prp_control_delegation control_delegation_msg = 16;
prp_agent_reconfiguration agent_reconfiguration_msg = 17;
flex_hello hello_msg = 1;
flex_echo_request echo_request_msg = 2;
flex_echo_reply echo_reply_msg = 3;
flex_stats_request stats_request_msg = 4;
flex_stats_reply stats_reply_msg = 5;
flex_sf_trigger sf_trigger_msg = 6;
flex_ul_sr_info ul_sr_info_msg = 7;
flex_enb_config_request enb_config_request_msg = 8;
flex_enb_config_reply enb_config_reply_msg = 9;
flex_ue_config_request ue_config_request_msg = 10;
flex_ue_config_reply ue_config_reply_msg = 11;
flex_lc_config_request lc_config_request_msg = 12;
flex_lc_config_reply lc_config_reply_msg = 13;
flex_dl_mac_config dl_mac_config_msg = 14;
flex_ue_state_change ue_state_change_msg = 15;
flex_control_delegation control_delegation_msg = 16;
flex_agent_reconfiguration agent_reconfiguration_msg = 17;
}
}
enum progran_direction {
enum flexran_direction {
//option allow_alias = true;
NOT_SET = 0;
INITIATING_MESSAGE = 1;
......@@ -39,7 +39,7 @@ enum progran_direction {
UNSUCCESSFUL_OUTCOME=3;
}
enum progran_err {
enum flexran_err {
option allow_alias = true;
// message errors
NO_ERR = 0;
......@@ -62,18 +62,18 @@ enum progran_err {
// Maintenance and discovery messages
//
message prp_hello {
optional prp_header header = 1;
message flex_hello {
optional flex_header header = 1;
}
message prp_echo_request {
optional prp_header header = 1;
message flex_echo_request {
optional flex_header header = 1;
extensions 100 to 199;
}
message prp_echo_reply {
optional prp_header header = 1;
message flex_echo_reply {
optional flex_header header = 1;
extensions 100 to 199;
}
......@@ -82,39 +82,39 @@ message prp_echo_reply {
// Statistics request and reply message
//
message prp_stats_request {
optional prp_header header = 1;
optional prp_stats_type type = 2;
message flex_stats_request {
optional flex_header header = 1;
optional flex_stats_type type = 2;
oneof body {
prp_complete_stats_request complete_stats_request = 3;
prp_cell_stats_request cell_stats_request = 4;
prp_ue_stats_request ue_stats_request = 5;
flex_complete_stats_request complete_stats_request = 3;
flex_cell_stats_request cell_stats_request = 4;
flex_ue_stats_request ue_stats_request = 5;
}
}
message prp_stats_reply {
optional prp_header header = 1;
repeated prp_ue_stats_report ue_report = 2;
repeated prp_cell_stats_report cell_report = 3;
message flex_stats_reply {
optional flex_header header = 1;
repeated flex_ue_stats_report ue_report = 2;
repeated flex_cell_stats_report cell_report = 3;
}
//
// Time indication messages
//
message prp_sf_trigger {
optional prp_header header = 1;
message flex_sf_trigger {
optional flex_header header = 1;
optional uint32 sfn_sf = 2;
repeated prp_dl_info dl_info = 3;
repeated prp_ul_info ul_info = 4;
repeated flex_dl_info dl_info = 3;
repeated flex_ul_info ul_info = 4;
}
//
// Asynchronous messages
//
message prp_ul_sr_info {
optional prp_header header = 1;
message flex_ul_sr_info {
optional flex_header header = 1;
optional uint32 sfn_sf = 2;
repeated uint32 rnti = 3;
}
......@@ -122,64 +122,64 @@ message prp_ul_sr_info {
//
// eNB configuration messages
//
message prp_enb_config_request {
optional prp_header header = 1;
message flex_enb_config_request {
optional flex_header header = 1;
}
message prp_enb_config_reply {
optional prp_header header = 1;
message flex_enb_config_reply {
optional flex_header header = 1;
optional uint32 eNB_id = 2; // Unique id to distinguish the eNB
repeated prp_cell_config cell_config = 3;
repeated flex_cell_config cell_config = 3;
}
message prp_ue_config_request {
optional prp_header header = 1;
message flex_ue_config_request {
optional flex_header header = 1;
}
message prp_ue_config_reply {
optional prp_header header = 1;
repeated prp_ue_config ue_config = 2;
message flex_ue_config_reply {
optional flex_header header = 1;
repeated flex_ue_config ue_config = 2;
}
message prp_lc_config_request {
optional prp_header header = 1;
message flex_lc_config_request {
optional flex_header header = 1;
}
message prp_lc_config_reply {
optional prp_header header = 1;
repeated prp_lc_ue_config lc_ue_config = 2;
message flex_lc_config_reply {
optional flex_header header = 1;
repeated flex_lc_ue_config lc_ue_config = 2;
}
//
// Controller command messages
//
message prp_dl_mac_config {
optional prp_header header = 1;
message flex_dl_mac_config {
optional flex_header header = 1;
optional uint32 sfn_sf = 2;
repeated prp_dl_data dl_ue_data = 3;
repeated prp_dl_rar dl_rar = 4;
repeated prp_dl_broadcast dl_broadcast = 5;
repeated prp_pdcch_ofdm_sym_count ofdm_sym = 6; // OFDM symbol count for each CC
repeated flex_dl_data dl_ue_data = 3;
repeated flex_dl_rar dl_rar = 4;
repeated flex_dl_broadcast dl_broadcast = 5;
repeated flex_pdcch_ofdm_sym_count ofdm_sym = 6; // OFDM symbol count for each CC
}
//
// UE state change message
//
message prp_ue_state_change {
optional prp_header header = 1;
optional uint32 type = 2; // One of the PRUESC_* values
optional prp_ue_config config = 3; // Body of the message (based on type)
message flex_ue_state_change {
optional flex_header header = 1;
optional uint32 type = 2; // One of the FLUESC_* values
optional flex_ue_config config = 3; // Body of the message (based on type)
}
//
// Control delegation message
//
message prp_control_delegation {
optional prp_header header = 1;
optional uint32 delegation_type = 2; // Bitmap of PRCDT_* flags
message flex_control_delegation {
optional flex_header header = 1;
optional uint32 delegation_type = 2; // Bitmap of FLCDT_* flags
optional bytes payload = 3; // Byte array of shared lib containing the delegated functions
optional string name = 4; // The delegated functions names ordered based on bitmap flags
}
......@@ -188,21 +188,21 @@ message prp_control_delegation {
// Agent reconfiguration message
//
message prp_agent_reconfiguration {
optional prp_header header = 1;
message flex_agent_reconfiguration {
optional flex_header header = 1;
optional string policy = 2; // The policy changes using YAML syntax in string format
}
// Extensions of the echo request and reply
// messages for carrying a latency value in ms
message prp_echo_request_latency {
extend prp_echo_request {
message flex_echo_request_latency {
extend flex_echo_request {
optional uint32 latency = 100;
}
}
message prp_echo_reply_latency {
extend prp_echo_reply {
message flex_echo_reply_latency {
extend flex_echo_reply {
optional uint32 latency = 100;
}
}
......
package protocol;
message prp_header {
message flex_header {
optional uint32 version = 1;
optional uint32 type = 2;
optional uint32 xid = 4;
}
enum prp_type {
enum flex_type {
// Discovery and maintenance messages
PRPT_HELLO = 0;
PRPT_ECHO_REQUEST = 1;
PRPT_ECHO_REPLY = 2;
FLPT_HELLO = 0;
FLPT_ECHO_REQUEST = 1;
FLPT_ECHO_REPLY = 2;
// Statistics and measurement messages
PRPT_STATS_REQUEST = 3;
PRPT_STATS_REPLY = 4;
FLPT_STATS_REQUEST = 3;
FLPT_STATS_REPLY = 4;
// Time indication messages
PRPT_SF_TRIGGER = 5;
FLPT_SF_TRIGGER = 5;
// Asynchronous messages
PRPT_UL_SR_INFO = 6;
FLPT_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;
FLPT_GET_ENB_CONFIG_REQUEST = 7;
FLPT_GET_ENB_CONFIG_REPLY = 8;
FLPT_GET_UE_CONFIG_REQUEST = 9;
FLPT_GET_UE_CONFIG_REPLY = 10;
FLPT_GET_LC_CONFIG_REQUEST = 11;
FLPT_GET_LC_CONFIG_REPLY = 12;
//Controller command messages
PRPT_DL_MAC_CONFIG = 13;
FLPT_DL_MAC_CONFIG = 13;
// UE state change messages
PRPT_UE_STATE_CHANGE = 14;
FLPT_UE_STATE_CHANGE = 14;
// Control delegation messages
PRPT_DELEGATE_CONTROL = 15;
PRPT_RECONFIGURE_AGENT = 16;
FLPT_DELEGATE_CONTROL = 15;
FLPT_RECONFIGURE_AGENT = 16;
}
......@@ -4,7 +4,7 @@ package protocol;
// Message containing the DL DCI info
//
message prp_dl_dci {
message flex_dl_dci {
optional uint32 rnti = 1;
optional uint32 res_alloc = 2; // Type of resource allocation
optional uint32 rb_bitmap = 3; // Bitmap for RB allocation
......@@ -17,17 +17,17 @@ message prp_dl_dci {
optional uint32 aggr_level = 10;
optional uint32 precoding_info = 11; // 2 antenna ports:0..6,
// 4 antenna ports:0..50
optional uint32 format = 12; // DCI format. A PRDCIF_* value
optional uint32 format = 12; // DCI format. A FLDCIF_* value
optional uint32 tpc = 13; // TS 36.213, sec 5.1.1.1
optional uint32 harq_process = 14; // HARQ process ID
optional uint32 dai = 15; // TDD only
optional uint32 vrb_format = 16; // One of the PRVRBF_* values
optional uint32 vrb_format = 16; // One of the FLVRBF_* values
optional uint32 tb_swap = 17; // Boolean. TB to codeword swap flag
optional uint32 sps_release = 18; // Flag value
optional uint32 pdcch_order = 19;
optional uint32 preamble_index = 20; // Only valid if pdcch_order = 1
optional uint32 prach_mask_index = 21; // Only valid if pdcch_order = 1
optional uint32 n_gap = 22; // One of the PRNGV_* values
optional uint32 n_gap = 22; // One of the FLNGV_* values
optional uint32 tbs_idx = 23; // The TBS index for Format 1A
optional uint32 dl_power_offset = 24; // For format 1D
optional uint32 pdcch_power_offset = 25; // DL PDCCH power boosting in dB
......@@ -39,11 +39,11 @@ message prp_dl_dci {
// Messages related to the creation of RLC PDUs
//
message prp_rlc_pdu {
repeated prp_rlc_pdu_tb rlc_pdu_tb = 1; // list of parameters for the creation of RLC PDUs. One for each TB
message flex_rlc_pdu {
repeated flex_rlc_pdu_tb rlc_pdu_tb = 1; // list of parameters for the creation of RLC PDUs. One for each TB
}
message prp_rlc_pdu_tb {
message flex_rlc_pdu_tb {
optional uint32 logical_channel_id = 1;
optional uint32 size = 2; // Maximum RLC PDU to be created in bytes
}
......@@ -52,25 +52,25 @@ message prp_rlc_pdu_tb {
// MAC content types related enums
//
enum prp_dci_format {
PRDCIF_1 = 0;
PRDCIF_1A = 1;
PRDCIF_1B = 2;
PRDCIF_1C = 3;
PRDCIF_1D = 4;
PRDCIF_2 = 5;
PRDCIF_2A = 6;
PRDCIF_2B = 7;
PRDCIF_3 = 8;
PRDCIF_3A = 9;
enum flex_dci_format {
FLDCIF_1 = 0;
FLDCIF_1A = 1;
FLDCIF_1B = 2;
FLDCIF_1C = 3;
FLDCIF_1D = 4;
FLDCIF_2 = 5;
FLDCIF_2A = 6;
FLDCIF_2B = 7;
FLDCIF_3 = 8;
FLDCIF_3A = 9;
}
enum prp_vrb_format {
PRVRBF_LOCALIZED = 0;
PRVRBF_DISTRIBUTED = 1;
enum flex_vrb_format {
FLVRBF_LOCALIZED = 0;
FLVRBF_DISTRIBUTED = 1;
}
enum prp_ngap_val {
PRNGV_1 = 0;
PRNGV_2 = 1;
enum flex_ngap_val {
FLNGV_1 = 0;
FLNGV_2 = 1;
}
\ No newline at end of file
......@@ -5,7 +5,7 @@ package protocol;
//
// RLC buffer status for a specific logical channel of a UE
message prp_rlc_bsr {
message flex_rlc_bsr {
optional uint32 lc_id = 1;
optional uint32 tx_queue_size = 2;
optional uint32 tx_queue_hol_delay = 3;
......@@ -15,39 +15,39 @@ message prp_rlc_bsr {
}
// Flags for MAC Control Elements
enum prp_ce_type {
PRPCET_TA = 1;
PRPCET_DRX = 2;
PRPCET_CR = 4;
PRPCET_CA = 8;
enum flex_ce_type {
FLPCET_TA = 1;
FLPCET_DRX = 2;
FLPCET_CR = 4;
FLPCET_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;
enum flex_csi_type {
FLCSIT_P10 = 0;
FLCSIT_P11 = 1;
FLCSIT_P20 = 2;
FLCSIT_P21 = 3;
FLCSIT_A12 = 4;
FLCSIT_A22 = 5;
FLCSIT_A20 = 6;
FLCSIT_A30 = 7;
FLCSIT_A31 = 8;
}
// CSI type P10
message prp_csi_p10 {
message flex_csi_p10 {
optional uint32 wb_cqi = 1;
}
// CSI type P11
message prp_csi_p11 {
message flex_csi_p11 {
repeated uint32 wb_cqi = 1;
optional uint32 wb_pmi = 2;
}
// CSI type P20
message prp_csi_p20 {
message flex_csi_p20 {
optional uint32 wb_cqi = 1;
optional uint32 sb_cqi = 2;
optional uint32 bandwidth_part_index = 3;
......@@ -55,7 +55,7 @@ message prp_csi_p20 {
}
// CSI type P21
message prp_csi_p21 {
message flex_csi_p21 {
repeated uint32 wb_cqi = 1;
optional uint32 wb_pmi = 2;
repeated uint32 sb_cqi = 3;
......@@ -64,13 +64,13 @@ message prp_csi_p21 {
}
// CSI type A12
message prp_csi_a12 {
message flex_csi_a12 {
repeated uint32 wb_cqi = 1;
repeated uint32 sb_pmi = 2;
}
// CSI type A22
message prp_csi_a22 {
message flex_csi_a22 {
repeated uint32 wb_cqi = 1;
repeated uint32 sb_cqi = 2;
optional uint32 wb_pmi = 3;
......@@ -79,56 +79,56 @@ message prp_csi_a22 {
}
// CSI type A20
message prp_csi_a20 {
message flex_csi_a20 {
optional uint32 wb_cqi = 1;
optional uint32 sb_cqi = 2;
repeated uint32 sb_list = 3;
}
// CSI type A30
message prp_csi_a30 {
message flex_csi_a30 {
optional uint32 wb_cqi = 1;
repeated uint32 sb_cqi = 2;
}
// CSI type A31
message prp_csi_a31 {
message flex_csi_a31 {
repeated uint32 wb_cqi = 1;
repeated prp_msb_cqi sb_cqi = 2;
repeated flex_msb_cqi sb_cqi = 2;
optional uint32 wb_pmi = 3;
}
// The CQI for the M-preffered subband
message prp_msb_cqi {
message flex_msb_cqi {
repeated uint32 sb_cqi = 1;
}
// The CSI report of the UE for a specific servCellIndex
message prp_dl_csi {
message flex_dl_csi {
optional uint32 serv_cell_index = 1;
optional uint32 ri = 2;
optional prp_csi_type type = 3;
optional flex_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;
flex_csi_p10 p10csi = 4;
flex_csi_p11 p11csi = 5;
flex_csi_p20 p20csi = 6;
flex_csi_p21 p21csi = 7;
flex_csi_a12 a12csi = 8;
flex_csi_a22 a22csi = 9;
flex_csi_a20 a20csi = 10;
flex_csi_a30 a30csi = 11;
flex_csi_a31 a31csi = 12;
}
}
// The full DL CQI report for all CC of a UE
message prp_dl_cqi_report {
message flex_dl_cqi_report {
optional uint32 sfn_sn = 1;
repeated prp_dl_csi csi_report = 2;
repeated flex_dl_csi csi_report = 2;
}
// Paging message info
message prp_paging_info {
message flex_paging_info {
optional uint32 paging_index = 1;
optional uint32 paging_message_size = 2;
optional uint32 paging_subframe = 3;
......@@ -136,34 +136,34 @@ message prp_paging_info {
}
// Report for the paging buffer status
message prp_paging_buffer_report {
repeated prp_paging_info paging_info = 1;
message flex_paging_buffer_report {
repeated flex_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;
enum flex_ul_cqi_type {
FLUCT_SRS = 0;
FLUCT_PUSCH = 1;
FLUCT_PUCCH_1 = 2;
FLUCT_PUCCH_2 = 3;
FLUCT_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;
message flex_ul_cqi {
optional flex_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 {
message flex_ul_cqi_report {
optional uint32 sfn_sn = 1;
repeated prp_ul_cqi cqi_meas = 2;
repeated prp_pucch_dbm pucch_dbm = 3;
repeated flex_ul_cqi cqi_meas = 2;
repeated flex_pucch_dbm pucch_dbm = 3;
}
message prp_pucch_dbm {
message flex_pucch_dbm {
optional int32 p0_pucch_dbm = 1;
optional uint32 serv_cell_index = 2;
}
......@@ -173,7 +173,7 @@ message prp_pucch_dbm {
//
// The UL noise and interference report for a UE
message prp_noise_interference_report {
message flex_noise_interference_report {
optional uint32 sfn_sf = 1;
optional uint32 rip = 2;
optional uint32 tnp = 3;
......
......@@ -7,19 +7,19 @@ import "stats_common.proto";
// Bodies of statistics report requests
//
message prp_complete_stats_request {
optional prp_stats_report_freq report_frequency = 1;
message flex_complete_stats_request {
optional flex_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 {
message flex_cell_stats_request {
repeated uint32 cell = 1;
optional uint32 flags = 2;
}
message prp_ue_stats_request {
message flex_ue_stats_request {
repeated uint32 rnti = 1;
optional uint32 flags = 2;
}
......@@ -29,23 +29,23 @@ message prp_ue_stats_request {
//
// The full statistics report for a specific cell
message prp_cell_stats_report {
message flex_cell_stats_report {
optional uint32 carrier_index = 1;
optional uint32 flags = 2;
optional prp_noise_interference_report noise_inter_report = 3;
optional flex_noise_interference_report noise_inter_report = 3;
}
// Statistics report for a specific UE
message prp_ue_stats_report {
message flex_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;
repeated flex_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;
optional flex_dl_cqi_report dl_cqi_report = 7;
optional flex_paging_buffer_report pbr = 8;
optional flex_ul_cqi_report ul_cqi_report = 9;
}
//
......@@ -54,33 +54,33 @@ message prp_ue_stats_report {
//Types of statistics requested by the controller
enum prp_stats_type {
PRST_COMPLETE_STATS = 0;
PRST_CELL_STATS = 1;
PRST_UE_STATS = 2;
enum flex_stats_type {
FLST_COMPLETE_STATS = 0;
FLST_CELL_STATS = 1;
FLST_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;
enum flex_stats_report_freq {
FLSRF_ONCE = 0;
FLSRF_PERIODICAL = 1;
FLSRF_CONTINUOUS = 2;
FLSRF_OFF = 3;
}
// Flags for cell statistics
enum prp_cell_stats_type {
PRCST_NOISE_INTERFERENCE = 1;
enum flex_cell_stats_type {
FLCST_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;
enum flex_ue_stats_type {
FLUST_BSR = 1;
FLUST_PRH = 2;
FLUST_RLC_BS = 4;
FLUST_MAC_CE_BS = 8;
FLUST_DL_CQI = 16;
FLUST_PBS = 32;
FLUST_UL_CQI = 64;
// To be extended with more types of stats
}
\ No newline at end of file
package protocol;
enum prp_harq_status {
PRHS_ACK = 0;
PRHS_NACK = 1;
PRHS_DTX = 2;
enum flex_harq_status {
FLHS_ACK = 0;
FLHS_NACK = 1;
FLHS_DTX = 2;
}
enum prp_reception_status {
PRRS_OK = 0;
PRRS_NOT_OK = 1;
PRRS_NOT_VALID = 2;
enum flex_reception_status {
FLRS_OK = 0;
FLRS_NOT_OK = 1;
FLRS_NOT_VALID = 2;
}
message prp_dl_info {
message flex_dl_info {
optional uint32 rnti = 1;
optional uint32 harq_process_id = 2;
repeated uint32 harq_status = 3;
optional uint32 serv_cell_index = 4;
}
message prp_ul_info {
message flex_ul_info {
optional uint32 rnti = 1;
repeated uint32 ul_reception = 2;
optional uint32 reception_status = 3;
......
......@@ -29,7 +29,7 @@
/*! \file enb_agent.h
* \brief top level enb agent receive thread and itti task
* \author Navid Nikaein and Xenofon Foukas
* \author Xenofon Foukas and Navid Nikaein
* \date 2016
* \version 0.1
*/
......@@ -57,7 +57,7 @@ char local_cache[40];
void *send_thread(void *args);
void *receive_thread(void *args);
pthread_t new_thread(void *(*f)(void *), void *b);
Protocol__ProgranMessage *enb_agent_timeout(void* args);
Protocol__FlexranMessage *enb_agent_timeout(void* args);
int agent_task_created = 0;
......@@ -68,7 +68,7 @@ int agent_task_created = 0;
void *enb_agent_task(void *args){
//enb_agent_instance_t *d = (enb_agent_instance_t *) args;
Protocol__ProgranMessage *msg;
Protocol__FlexranMessage *msg;
void *data;
int size;
err_code_t err_code;
......@@ -104,7 +104,7 @@ void *enb_agent_task(void *args){
data=enb_agent_pack_message(msg,&size);
elem = get_timer_entry(msg_p->ittiMsg.timer_has_expired.timer_id);
if (enb_agent_msg_send(elem->agent_id, ENB_AGENT_DEFAULT, data, size, priority)) {
err_code = PROTOCOL__PROGRAN_ERR__MSG_ENQUEUING;
err_code = PROTOCOL__FLEXRAN_ERR__MSG_ENQUEUING;
goto error;
}
......@@ -135,11 +135,11 @@ void *receive_thread(void *args) {
int priority;
err_code_t err_code;
Protocol__ProgranMessage *msg;
Protocol__FlexranMessage *msg;
while (1) {
//if (enb_agent_msg_recv(d->enb_id, ENB_AGENT_DEFAULT, &data, &size, &priority)) {
// err_code = PROTOCOL__PROGRAN_ERR__MSG_DEQUEUING;
// err_code = PROTOCOL__FLEXRAN_ERR__MSG_DEQUEUING;
// goto error;
//}
......@@ -157,7 +157,7 @@ void *receive_thread(void *args) {
data=enb_agent_pack_message(msg,&size);
if (enb_agent_msg_send(d->enb_id, ENB_AGENT_DEFAULT, data, size, priority)) {
err_code = PROTOCOL__PROGRAN_ERR__MSG_ENQUEUING;
err_code = PROTOCOL__FLEXRAN_ERR__MSG_ENQUEUING;
goto error;
}
......@@ -337,7 +337,7 @@ error:
Protocol__ProgranMessage *enb_agent_timeout(void* args){
Protocol__FlexranMessage *enb_agent_timeout(void* args){
// enb_agent_timer_args_t *timer_args = calloc(1, sizeof(*timer_args));
//memcpy (timer_args, args, sizeof(*timer_args));
......
This diff is collapsed.
......@@ -29,7 +29,7 @@
/*! \file enb_agent_common.h
* \brief common message primitves and utilities
* \author Navid Nikaein and Xenofon Foukas
* \author Xenofon Foukas, Mohamed Kassem and Navid Nikaein
* \date 2016
* \version 0.1
*/
......@@ -42,7 +42,7 @@
#include <time.h>
#include "header.pb-c.h"
#include "progran.pb-c.h"
#include "flexran.pb-c.h"
#include "stats_messages.pb-c.h"
#include "stats_common.pb-c.h"
......@@ -56,72 +56,72 @@
# include "intertask_interface.h"
# include "timer.h"
#define PROGRAN_VERSION 0
#define FLEXRAN_VERSION 0
typedef int (*enb_agent_message_decoded_callback)(
mid_t mod_id,
const void *params,
Protocol__ProgranMessage **msg
Protocol__FlexranMessage **msg
);
typedef int (*enb_agent_message_destruction_callback)(
Protocol__ProgranMessage *msg
Protocol__FlexranMessage *msg
);
/**********************************
* progRAN protocol messages helper
* FlexRAN protocol messages helper
* functions and generic handlers
**********************************/
int enb_agent_serialize_message(Protocol__ProgranMessage *msg, void **buf, int *size);
int enb_agent_deserialize_message(void *data, int size, Protocol__ProgranMessage **msg);
int enb_agent_serialize_message(Protocol__FlexranMessage *msg, void **buf, int *size);
int enb_agent_deserialize_message(void *data, int size, Protocol__FlexranMessage **msg);
void * enb_agent_pack_message(Protocol__ProgranMessage *msg,
void * enb_agent_pack_message(Protocol__FlexranMessage *msg,
uint32_t * size);
err_code_t enb_agent_destroy_progran_message(Protocol__ProgranMessage *msg);
err_code_t enb_agent_destroy_flexran_message(Protocol__FlexranMessage *msg);
int prp_create_header(xid_t xid, Protocol__PrpType type, Protocol__PrpHeader **header);
int flex_create_header(xid_t xid, Protocol__FlexType type, Protocol__FlexHeader **header);
int enb_agent_hello(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_destroy_hello(Protocol__ProgranMessage *msg);
int enb_agent_hello(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_destroy_hello(Protocol__FlexranMessage *msg);
int enb_agent_echo_request(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_destroy_echo_request(Protocol__ProgranMessage *msg);
int enb_agent_echo_request(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_destroy_echo_request(Protocol__FlexranMessage *msg);
int enb_agent_echo_reply(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_destroy_echo_reply(Protocol__ProgranMessage *msg);
int enb_agent_echo_reply(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_destroy_echo_reply(Protocol__FlexranMessage *msg);
int enb_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_destroy_enb_config_reply(Protocol__ProgranMessage *msg);
int enb_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_destroy_enb_config_reply(Protocol__FlexranMessage *msg);
int enb_agent_ue_config_reply(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_destroy_ue_config_reply(Protocol__ProgranMessage *msg);
int enb_agent_ue_config_reply(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_destroy_ue_config_reply(Protocol__FlexranMessage *msg);
int enb_agent_lc_config_reply(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_destroy_lc_config_reply(Protocol__ProgranMessage *msg);
int enb_agent_lc_config_reply(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_destroy_lc_config_reply(Protocol__FlexranMessage *msg);
int enb_agent_enb_config_request(mid_t mod_id, const void* params, Protocol__ProgranMessage **msg);
int enb_agent_destroy_enb_config_request(Protocol__ProgranMessage *msg);
int enb_agent_enb_config_request(mid_t mod_id, const void* params, Protocol__FlexranMessage **msg);
int enb_agent_destroy_enb_config_request(Protocol__FlexranMessage *msg);
int enb_agent_destroy_ue_config_request(Protocol__ProgranMessage *msg);
int enb_agent_destroy_ue_config_request(Protocol__FlexranMessage *msg);
int enb_agent_destroy_lc_config_request(Protocol__ProgranMessage *msg);
int enb_agent_destroy_lc_config_request(Protocol__FlexranMessage *msg);
int enb_agent_ue_state_change(mid_t mod_id, uint32_t rnti, uint8_t state_change);
int enb_agent_destroy_ue_state_change(Protocol__ProgranMessage *msg);
int enb_agent_destroy_ue_state_change(Protocol__FlexranMessage *msg);
int enb_agent_control_delegation(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_destroy_control_delegation(Protocol__ProgranMessage *msg);
int enb_agent_control_delegation(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_destroy_control_delegation(Protocol__FlexranMessage *msg);
int enb_agent_reconfiguration(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_destroy_agent_reconfiguration(Protocol__ProgranMessage *msg);
int enb_agent_reconfiguration(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_destroy_agent_reconfiguration(Protocol__FlexranMessage *msg);
Protocol__ProgranMessage* enb_agent_handle_message (mid_t mod_id,
Protocol__FlexranMessage* enb_agent_handle_message (mid_t mod_id,
uint8_t *data,
uint32_t size);
Protocol__ProgranMessage *enb_agent_handle_timed_task(void *args);
Protocol__FlexranMessage *enb_agent_handle_timed_task(void *args);
......@@ -145,7 +145,7 @@ unsigned int get_current_system_frame_num(mid_t mod_id);
unsigned int get_current_subframe(mid_t mod_id);
/*Return the frame and subframe number in compact 16-bit format.
Bits 0-3 subframe, rest for frame. Required by progRAN protocol*/
Bits 0-3 subframe, rest for frame. Required by FlexRAN protocol*/
uint16_t get_sfn_sf (mid_t mod_id);
uint16_t get_future_sfn_sf(mid_t mod_id, int ahead_of_time);
......@@ -287,7 +287,7 @@ int get_direction(mid_t ue_id, mid_t lc_id);
/* Type of the callback executed when the timer expired */
typedef Protocol__ProgranMessage *(*enb_agent_timer_callback_t)(void*);
typedef Protocol__FlexranMessage *(*enb_agent_timer_callback_t)(void*);
typedef enum {
/* oneshot timer: */
......@@ -319,7 +319,7 @@ typedef enum {
typedef struct enb_agent_timer_args_s{
mid_t mod_id;
Protocol__ProgranMessage *msg;
Protocol__FlexranMessage *msg;
} enb_agent_timer_args_t;
......@@ -371,7 +371,7 @@ err_code_t enb_agent_restart_timer(long *timer_id);
struct enb_agent_timer_element_s * get_timer_entry(long timer_id);
Protocol__ProgranMessage * enb_agent_process_timeout(long timer_id, void* timer_args);
Protocol__FlexranMessage * enb_agent_process_timeout(long timer_id, void* timer_args);
int enb_agent_compare_timer(struct enb_agent_timer_element_s *a, struct enb_agent_timer_element_s *b);
......
......@@ -29,7 +29,7 @@
/*! \file enb_agent_handler.c
* \brief enb agent tx and rx message handler
* \author Navid Nikaein and Xenofon Foukas
* \author Xenofon Foukas and Navid Nikaein
* \date 2016
* \version 0.1
*/
......@@ -42,23 +42,23 @@
#include "assertions.h"
enb_agent_message_decoded_callback agent_messages_callback[][3] = {
{enb_agent_hello, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_HELLO_MSG*/
{enb_agent_echo_reply, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_ECHO_REQUEST_MSG*/
{0, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_ECHO_REPLY_MSG*/ //Must add handler when receiving echo reply
{enb_agent_mac_handle_stats, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_STATS_REQUEST_MSG*/
{0, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_STATS_REPLY_MSG*/
{0, 0, 0}, /*PROTOCOK__PROGRAN_MESSAGE__MSG_SF_TRIGGER_MSG*/
{0, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_UL_SR_INFO_MSG*/
{enb_agent_enb_config_reply, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_ENB_CONFIG_REQUEST_MSG*/
{0, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_ENB_CONFIG_REPLY_MSG*/
{enb_agent_ue_config_reply, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_UE_CONFIG_REQUEST_MSG*/
{0, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_UE_CONFIG_REPLY_MSG*/
{enb_agent_lc_config_reply, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_LC_CONFIG_REQUEST_MSG*/
{0, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_LC_CONFIG_REPLY_MSG*/
{enb_agent_mac_handle_dl_mac_config, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_DL_MAC_CONFIG_MSG*/
{0, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_UE_STATE_CHANGE_MSG*/
{enb_agent_control_delegation, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_CONTROL_DELEGATION_MSG*/
{enb_agent_reconfiguration, 0, 0}, /*PROTOCOL__PROGRAN_MESSAGE__MSG_AGENT_RECONFIGURATION_MSG*/
{enb_agent_hello, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_HELLO_MSG*/
{enb_agent_echo_reply, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_ECHO_REQUEST_MSG*/
{0, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_ECHO_REPLY_MSG*/ //Must add handler when receiving echo reply
{enb_agent_mac_handle_stats, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_STATS_REQUEST_MSG*/
{0, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_STATS_REPLY_MSG*/
{0, 0, 0}, /*PROTOCOK__FLEXRAN_MESSAGE__MSG_SF_TRIGGER_MSG*/
{0, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_UL_SR_INFO_MSG*/
{enb_agent_enb_config_reply, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_ENB_CONFIG_REQUEST_MSG*/
{0, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_ENB_CONFIG_REPLY_MSG*/
{enb_agent_ue_config_reply, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_UE_CONFIG_REQUEST_MSG*/
{0, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_UE_CONFIG_REPLY_MSG*/
{enb_agent_lc_config_reply, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_LC_CONFIG_REQUEST_MSG*/
{0, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_LC_CONFIG_REPLY_MSG*/
{enb_agent_mac_handle_dl_mac_config, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_DL_MAC_CONFIG_MSG*/
{0, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_UE_STATE_CHANGE_MSG*/
{enb_agent_control_delegation, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_CONTROL_DELEGATION_MSG*/
{enb_agent_reconfiguration, 0, 0}, /*PROTOCOL__FLEXRAN_MESSAGE__MSG_AGENT_RECONFIGURATION_MSG*/
};
enb_agent_message_destruction_callback message_destruction_callback[] = {
......@@ -89,27 +89,27 @@ static const char *enb_agent_direction2String[] = {
};
Protocol__ProgranMessage* enb_agent_handle_message (mid_t mod_id,
Protocol__FlexranMessage* enb_agent_handle_message (mid_t mod_id,
uint8_t *data,
uint32_t size){
Protocol__ProgranMessage *decoded_message, *reply_message;
Protocol__FlexranMessage *decoded_message, *reply_message;
err_code_t err_code;
DevAssert(data != NULL);
if (enb_agent_deserialize_message(data, size, &decoded_message) < 0) {
err_code= PROTOCOL__PROGRAN_ERR__MSG_DECODING;
err_code= PROTOCOL__FLEXRAN_ERR__MSG_DECODING;
goto error;
}
if ((decoded_message->msg_case > sizeof(agent_messages_callback) / (3*sizeof(enb_agent_message_decoded_callback))) ||
(decoded_message->msg_dir > PROTOCOL__PROGRAN_DIRECTION__UNSUCCESSFUL_OUTCOME)){
err_code= PROTOCOL__PROGRAN_ERR__MSG_NOT_HANDLED;
(decoded_message->msg_dir > PROTOCOL__FLEXRAN_DIRECTION__UNSUCCESSFUL_OUTCOME)){
err_code= PROTOCOL__FLEXRAN_ERR__MSG_NOT_HANDLED;
goto error;
}
if (agent_messages_callback[decoded_message->msg_case-1][decoded_message->msg_dir-1] == NULL) {
err_code= PROTOCOL__PROGRAN_ERR__MSG_NOT_SUPPORTED;
err_code= PROTOCOL__FLEXRAN_ERR__MSG_NOT_SUPPORTED;
goto error;
}
......@@ -118,7 +118,7 @@ Protocol__ProgranMessage* enb_agent_handle_message (mid_t mod_id,
if ( err_code < 0 ){
goto error;
} else if (err_code == 1) { //If err_code > 1, we do not want to dispose the message yet
protocol__progran_message__free_unpacked(decoded_message, NULL);
protocol__flexran_message__free_unpacked(decoded_message, NULL);
}
return reply_message;
......@@ -130,14 +130,14 @@ error:
void * enb_agent_pack_message(Protocol__ProgranMessage *msg,
void * enb_agent_pack_message(Protocol__FlexranMessage *msg,
uint32_t * size){
void * buffer;
err_code_t err_code = PROTOCOL__PROGRAN_ERR__NO_ERR;
err_code_t err_code = PROTOCOL__FLEXRAN_ERR__NO_ERR;
if (enb_agent_serialize_message(msg, &buffer, size) < 0 ) {
err_code = PROTOCOL__PROGRAN_ERR__MSG_ENCODING;
err_code = PROTOCOL__FLEXRAN_ERR__MSG_ENCODING;
goto error;
}
......@@ -157,11 +157,11 @@ void * enb_agent_pack_message(Protocol__ProgranMessage *msg,
return NULL;
}
Protocol__ProgranMessage *enb_agent_handle_timed_task(void *args) {
Protocol__FlexranMessage *enb_agent_handle_timed_task(void *args) {
err_code_t err_code;
enb_agent_timer_args_t *timer_args = (enb_agent_timer_args_t *) args;
Protocol__ProgranMessage *timed_task, *reply_message;
Protocol__FlexranMessage *timed_task, *reply_message;
timed_task = timer_args->msg;
err_code = ((*agent_messages_callback[timed_task->msg_case-1][timed_task->msg_dir-1])(timer_args->mod_id, (void *) timed_task, &reply_message));
if ( err_code < 0 ){
......@@ -175,7 +175,7 @@ Protocol__ProgranMessage *enb_agent_handle_timed_task(void *args) {
return NULL;
}
Protocol__ProgranMessage* enb_agent_process_timeout(long timer_id, void* timer_args){
Protocol__FlexranMessage* enb_agent_process_timeout(long timer_id, void* timer_args){
struct enb_agent_timer_element_s *found = get_timer_entry(timer_id);
......@@ -192,6 +192,6 @@ Protocol__ProgranMessage* enb_agent_process_timeout(long timer_id, void* timer_a
return TIMER_ELEMENT_NOT_FOUND;
}
err_code_t enb_agent_destroy_progran_message(Protocol__ProgranMessage *msg) {
err_code_t enb_agent_destroy_flexran_message(Protocol__FlexranMessage *msg) {
return ((*message_destruction_callback[msg->msg_case-1])(msg));
}
This diff is collapsed.
......@@ -29,7 +29,7 @@
/*! \file enb_agent_mac.h
* \brief enb agent message handler APIs for MAC layer
* \author Navid Nikaein and Xenofon Foukas
* \author Xenofon Foukas, Mohamed Kassem and Navid Nikaein
* \date 2016
* \version 0.1
*/
......@@ -38,7 +38,7 @@
#define ENB_AGENT_MAC_H_
#include "header.pb-c.h"
#include "progran.pb-c.h"
#include "flexran.pb-c.h"
#include "stats_messages.pb-c.h"
#include "stats_common.pb-c.h"
......@@ -52,14 +52,14 @@ typedef struct {
uint16_t ue_rnti;
uint32_t ue_report_flags; /* Indicates the report elements
required for this UE id. See
ProgRAN specification 1.2.4.2 */
FlexRAN specification 1.2.4.2 */
} ue_report_type_t;
typedef struct {
uint16_t cc_id;
uint32_t cc_report_flags; /* Indicates the report elements
required for this CC index. See
ProgRAN specification 1.2.4.3 */
FlexRAN specification 1.2.4.3 */
} cc_report_type_t;
typedef struct {
......@@ -79,29 +79,29 @@ typedef struct stats_request_config_s{
/* Initialization function for the agent structures etc */
void enb_agent_init_mac_agent(mid_t mod_id);
int enb_agent_mac_handle_stats(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_mac_handle_stats(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_mac_stats_request(mid_t mod_id, xid_t xid, const stats_request_config_t *report_config, Protocol__ProgranMessage **msg);
int enb_agent_mac_stats_request(mid_t mod_id, xid_t xid, const stats_request_config_t *report_config, Protocol__FlexranMessage **msg);
int enb_agent_mac_destroy_stats_request(Protocol__ProgranMessage *msg);
int enb_agent_mac_destroy_stats_request(Protocol__FlexranMessage *msg);
int enb_agent_mac_stats_reply(mid_t mod_id, xid_t xid, const report_config_t *report_config, Protocol__ProgranMessage **msg);
int enb_agent_mac_stats_reply(mid_t mod_id, xid_t xid, const report_config_t *report_config, Protocol__FlexranMessage **msg);
int enb_agent_mac_destroy_stats_reply(Protocol__ProgranMessage *msg);
int enb_agent_mac_destroy_stats_reply(Protocol__FlexranMessage *msg);
int enb_agent_mac_sr_info(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_mac_sr_info(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_mac_destroy_sr_info(Protocol__ProgranMessage *msg);
int enb_agent_mac_destroy_sr_info(Protocol__FlexranMessage *msg);
int enb_agent_mac_sf_trigger(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_mac_sf_trigger(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
int enb_agent_mac_destroy_sf_trigger(Protocol__ProgranMessage *msg);
int enb_agent_mac_destroy_sf_trigger(Protocol__FlexranMessage *msg);
int enb_agent_mac_create_empty_dl_config(mid_t mod_id, Protocol__ProgranMessage **msg);
int enb_agent_mac_create_empty_dl_config(mid_t mod_id, Protocol__FlexranMessage **msg);
int enb_agent_mac_destroy_dl_config(Protocol__ProgranMessage *msg);
int enb_agent_mac_destroy_dl_config(Protocol__FlexranMessage *msg);
int enb_agent_mac_handle_dl_mac_config(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
int enb_agent_mac_handle_dl_mac_config(mid_t mod_id, const void *params, Protocol__FlexranMessage **msg);
/**********************************
......@@ -119,7 +119,7 @@ void enb_agent_send_sf_trigger(mid_t mod_id);
void enb_agent_send_update_mac_stats(mid_t mod_id);
/// Provide to the scheduler a pending dl_mac_config message
void enb_agent_get_pending_dl_mac_config(mid_t mod_id, Protocol__ProgranMessage **msg);
void enb_agent_get_pending_dl_mac_config(mid_t mod_id, Protocol__FlexranMessage **msg);
/*Register technology specific interface callbacks*/
int enb_agent_register_mac_xface(mid_t mod_id, AGENT_MAC_xface *xface);
......
......@@ -39,7 +39,7 @@
#define __ENB_AGENT_MAC_PRIMITIVES_H__
#include "enb_agent_defs.h"
#include "progran.pb-c.h"
#include "flexran.pb-c.h"
#include "header.pb-c.h"
#define RINGBUFFER_SIZE 100
......@@ -60,13 +60,13 @@ typedef struct {
/// Provide to the scheduler a pending dl_mac_config message
void (*enb_agent_get_pending_dl_mac_config)(mid_t mod_id,
Protocol__ProgranMessage **msg);
Protocol__FlexranMessage **msg);
/// Run the UE DL scheduler and fill the Protocol__ProgranMessage. Assumes that
/// dl_info is already initialized as prp_dl_mac_config and fills the
/// prp_dl_data part of it
/// Run the UE DL scheduler and fill the Protocol__FlexranMessage. Assumes that
/// dl_info is already initialized as flex_dl_mac_config and fills the
/// flex_dl_data part of it
void (*enb_agent_schedule_ue_spec)(mid_t mod_id, uint32_t frame, uint32_t subframe,
int *mbsfn_flag, Protocol__ProgranMessage **dl_info);
int *mbsfn_flag, Protocol__FlexranMessage **dl_info);
/// Notify the controller for a state change of a particular UE, by sending the proper
......
This diff is collapsed.
......@@ -53,8 +53,8 @@ typedef struct {
uint8_t is_initialized;
volatile uint8_t cont_update;
xid_t xid;
Protocol__ProgranMessage *stats_req;
Protocol__ProgranMessage *prev_stats_reply;
Protocol__FlexranMessage *stats_req;
Protocol__FlexranMessage *prev_stats_reply;
pthread_mutex_t *mutex;
} mac_stats_updates_context_t;
......@@ -75,30 +75,30 @@ err_code_t enb_agent_enable_cont_mac_stats_update(mid_t mod_id, xid_t xid,
err_code_t enb_agent_disable_cont_mac_stats_update(mid_t mod_id);
Protocol__ProgranMessage * enb_agent_generate_diff_mac_stats_report(Protocol__ProgranMessage *new_report,
Protocol__ProgranMessage *old_report);
Protocol__FlexranMessage * enb_agent_generate_diff_mac_stats_report(Protocol__FlexranMessage *new_report,
Protocol__FlexranMessage *old_report);
Protocol__PrpUeStatsReport * copy_ue_stats_report(Protocol__PrpUeStatsReport * original);
Protocol__FlexUeStatsReport * copy_ue_stats_report(Protocol__FlexUeStatsReport * original);
Protocol__PrpCellStatsReport * copy_cell_stats_report(Protocol__PrpCellStatsReport *original);
Protocol__FlexCellStatsReport * copy_cell_stats_report(Protocol__FlexCellStatsReport *original);
Protocol__PrpRlcBsr * copy_rlc_report(Protocol__PrpRlcBsr * original);
Protocol__FlexRlcBsr * copy_rlc_report(Protocol__FlexRlcBsr * original);
Protocol__PrpUlCqiReport * copy_ul_cqi_report(Protocol__PrpUlCqiReport * original);
Protocol__FlexUlCqiReport * copy_ul_cqi_report(Protocol__FlexUlCqiReport * original);
Protocol__PrpDlCqiReport * copy_dl_cqi_report(Protocol__PrpDlCqiReport * original);
Protocol__FlexDlCqiReport * copy_dl_cqi_report(Protocol__FlexDlCqiReport * original);
Protocol__PrpPagingBufferReport * copy_paging_buffer_report(Protocol__PrpPagingBufferReport *original);
Protocol__FlexPagingBufferReport * copy_paging_buffer_report(Protocol__FlexPagingBufferReport *original);
Protocol__PrpDlCsi * copy_csi_report(Protocol__PrpDlCsi * original);
Protocol__FlexDlCsi * copy_csi_report(Protocol__FlexDlCsi * original);
Protocol__PrpNoiseInterferenceReport * copy_noise_inter_report(Protocol__PrpNoiseInterferenceReport *original);
Protocol__FlexNoiseInterferenceReport * copy_noise_inter_report(Protocol__FlexNoiseInterferenceReport *original);
int compare_ue_stats_reports(Protocol__PrpUeStatsReport *rep1,
Protocol__PrpUeStatsReport *rep2);
int compare_ue_stats_reports(Protocol__FlexUeStatsReport *rep1,
Protocol__FlexUeStatsReport *rep2);
int compare_cell_stats_reports(Protocol__PrpCellStatsReport *rep1,
Protocol__PrpCellStatsReport *rep2);
int compare_cell_stats_reports(Protocol__FlexCellStatsReport *rep1,
Protocol__FlexCellStatsReport *rep2);
/* Functions for parsing the MAC agent policy reconfiguration command */
......
......@@ -48,7 +48,7 @@
#define RIGHT(x) (2 * (x) + 2)
#define PARENT(x) ((x - 1) / 2)
enb_agent_task_t *enb_agent_task_create(Protocol__ProgranMessage *msg,
enb_agent_task_t *enb_agent_task_create(Protocol__FlexranMessage *msg,
uint16_t frame_num, uint8_t subframe_num) {
enb_agent_task_t *task = NULL;
task = malloc(sizeof(enb_agent_task_t));
......
......@@ -41,7 +41,7 @@
#include <stdint.h>
#include <pthread.h>
#include "progran.pb-c.h"
#include "flexran.pb-c.h"
#include "enb_agent_common.h"
......@@ -59,8 +59,8 @@ typedef struct enb_agent_task_s {
uint16_t frame_num;
/* The subframe in which the task needs to be executed */
uint8_t subframe_num;
/* The task to be executed in the form of a Protocol__ProgranMessage */
Protocol__ProgranMessage *task;
/* The task to be executed in the form of a Protocol__FlexranMessage */
Protocol__FlexranMessage *task;
} enb_agent_task_t;
/**
......@@ -95,7 +95,7 @@ typedef enum {
/**
* Allocate memory for a task in the queue
*/
enb_agent_task_t *enb_agent_task_create(Protocol__ProgranMessage *msg,
enb_agent_task_t *enb_agent_task_create(Protocol__FlexranMessage *msg,
uint16_t frame_num, uint8_t subframe_num);
/**
......
......@@ -48,7 +48,7 @@
#include "LAYER2/MAC/defs.h"
#include "LAYER2/MAC/proto.h"
#include "LAYER2/MAC/extern.h"
#include "LAYER2/MAC/progran_dci_conversions.h"
#include "LAYER2/MAC/flexran_dci_conversions.h"
#include "UTIL/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h"
......@@ -60,7 +60,7 @@
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
#include "header.pb-c.h"
#include "progran.pb-c.h"
#include "flexran.pb-c.h"
#include "SIMULATION/TOOLS/defs.h" // for taus
......@@ -69,9 +69,9 @@ void apply_dl_scheduling_decisions(mid_t mod_id,
uint32_t frame,
uint32_t subframe,
int *mbsfn_flag,
const Protocol__ProgranMessage *dl_scheduling_info) {
const Protocol__FlexranMessage *dl_scheduling_info) {
Protocol__PrpDlMacConfig *mac_config = dl_scheduling_info->dl_mac_config_msg;
Protocol__FlexDlMacConfig *mac_config = dl_scheduling_info->dl_mac_config_msg;
// Check if there is anything to schedule for random access
if (mac_config->n_dl_rar > 0) {
......@@ -97,7 +97,7 @@ void apply_ue_spec_scheduling_decisions(mid_t mod_id,
uint32_t subframe,
int *mbsfn_flag,
uint32_t n_dl_ue_data,
const Protocol__PrpDlData **dl_ue_data) {
const Protocol__FlexDlData **dl_ue_data) {
uint8_t CC_id;
int UE_id;
......@@ -128,8 +128,8 @@ void apply_ue_spec_scheduling_decisions(mid_t mod_id,
int i;
Protocol__PrpDlData *dl_data;
Protocol__PrpDlDci *dl_dci;
Protocol__FlexDlData *dl_data;
Protocol__FlexDlDci *dl_dci;
uint32_t rlc_size, n_lc, lcid;
......@@ -161,7 +161,7 @@ void apply_ue_spec_scheduling_decisions(mid_t mod_id,
if (dl_data->n_ce_bitmap > 0) {
//Check if there is TA command and set the length appropriately
ta_len = (dl_data->ce_bitmap[0] & PROTOCOL__PRP_CE_TYPE__PRPCET_TA) ? 2 : 0;
ta_len = (dl_data->ce_bitmap[0] & PROTOCOL__FLEX_CE_TYPE__FLPCET_TA) ? 2 : 0;
}
if (ta_len > 0) {
......@@ -359,7 +359,7 @@ void apply_ue_spec_scheduling_decisions(mid_t mod_id,
}
void fill_oai_dci(mid_t mod_id, uint32_t CC_id, uint32_t rnti,
const Protocol__PrpDlDci *dl_dci) {
const Protocol__FlexDlDci *dl_dci) {
void *DLSCH_dci = NULL;
DCI_PDU *DCI_pdu;
......@@ -397,92 +397,92 @@ void fill_oai_dci(mid_t mod_id, uint32_t CC_id, uint32_t rnti,
switch (frame_parms[CC_id]->N_RB_DL) {
case 6:
if (frame_parms[CC_id]->frame_type == TDD) {
if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1) {
if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1) {
FILL_DCI_TDD_1(DCI1_1_5MHz_TDD_t, DLSCH_dci, dl_dci);
size_bytes = sizeof(DCI1_1_5MHz_TDD_t);
size_bits = sizeof_DCI1_1_5MHz_TDD_t;
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A) {
//TODO
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D) {
//TODO
}
} else {
if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1) {
if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1) {
FILL_DCI_FDD_1(DCI1_1_5MHz_FDD_t, DLSCH_dci, dl_dci);
size_bytes = sizeof(DCI1_1_5MHz_FDD_t);
size_bits = sizeof_DCI1_1_5MHz_FDD_t;
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A) {
//TODO
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D) {
//TODO
}
}
break;
case 25:
if (frame_parms[CC_id]->frame_type == TDD) {
if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1) {
if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1) {
FILL_DCI_TDD_1(DCI1_5MHz_TDD_t, DLSCH_dci, dl_dci);
size_bytes = sizeof(DCI1_5MHz_TDD_t);
size_bits = sizeof_DCI1_5MHz_TDD_t;
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A) {
//TODO
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D) {
//TODO
}
} else {
if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1) {
if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1) {
FILL_DCI_FDD_1(DCI1_5MHz_FDD_t, DLSCH_dci, dl_dci);
size_bytes = sizeof(DCI1_5MHz_FDD_t);
size_bits = sizeof_DCI1_5MHz_FDD_t;
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A) {
//TODO
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D) {
//TODO
}
}
break;
case 50:
if (frame_parms[CC_id]->frame_type == TDD) {
if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1) {
if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1) {
FILL_DCI_TDD_1(DCI1_10MHz_TDD_t, DLSCH_dci, dl_dci);
size_bytes = sizeof(DCI1_10MHz_TDD_t);
size_bits = sizeof_DCI1_10MHz_TDD_t;
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A) {
//TODO
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D) {
//TODO
}
} else {
if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1) {
if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1) {
FILL_DCI_FDD_1(DCI1_10MHz_FDD_t, DLSCH_dci, dl_dci);
size_bytes = sizeof(DCI1_10MHz_FDD_t);
size_bits = sizeof_DCI1_10MHz_FDD_t;
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A) {
//TODO
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D) {
//TODO
}
}
break;
case 100:
if (frame_parms[CC_id]->frame_type == TDD) {
if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1) {
if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1) {
FILL_DCI_TDD_1(DCI1_20MHz_TDD_t, DLSCH_dci, dl_dci);
size_bytes = sizeof(DCI1_20MHz_TDD_t);
size_bits = sizeof_DCI1_20MHz_TDD_t;
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A) {
//TODO
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D) {
//TODO
}
} else {
if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1) {
if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1) {
FILL_DCI_FDD_1(DCI1_20MHz_FDD_t, DLSCH_dci, dl_dci);
size_bytes = sizeof(DCI1_20MHz_FDD_t);
size_bits = sizeof_DCI1_20MHz_FDD_t;
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A) {
//TODO
} else if (dl_dci->format == PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D) {
} else if (dl_dci->format == PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D) {
//TODO
}
}
......@@ -491,31 +491,31 @@ void fill_oai_dci(mid_t mod_id, uint32_t CC_id, uint32_t rnti,
//Set format to the proper type
switch(dl_dci->format) {
case PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1:
case PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1:
format = format1;
break;
case PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1A:
case PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1A:
format = format1A;
break;
case PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1B:
case PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1B:
format = format1B;
break;
case PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1C:
case PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1C:
format = format1C;
break;
case PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D:
case PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D:
format = format1E_2A_M10PRB;
break;
case PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2:
case PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2:
format = format2;
break;
case PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A:
case PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A:
format = format2A;
break;
case PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2B:
case PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2B:
format = format2B;
break;
case PROTOCOL__PRP_DCI_FORMAT__PRDCIF_3:
case PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_3:
format = 3;
break;
default:
......
......@@ -63,7 +63,7 @@
#include "pdcp.h"
#include "header.pb-c.h"
#include "progran.pb-c.h"
#include "flexran.pb-c.h"
#include "enb_agent_mac.h"
#include "SIMULATION/TOOLS/defs.h" // for taus
......@@ -81,7 +81,7 @@ schedule_ue_spec_default(
uint32_t frame,
uint32_t subframe,
int *mbsfn_flag,
Protocol__ProgranMessage **dl_info
Protocol__FlexranMessage **dl_info
)
//------------------------------------------------------------------------------
{
......@@ -109,14 +109,14 @@ schedule_ue_spec_default(
static int32_t tpc_accumulated=0;
UE_sched_ctrl *ue_sched_ctl;
Protocol__PrpDlData *dl_data[NUM_MAX_UE];
Protocol__FlexDlData *dl_data[NUM_MAX_UE];
int num_ues_added = 0;
int channels_added = 0;
Protocol__PrpDlDci *dl_dci;
Protocol__PrpRlcPdu *rlc_pdus[11];
Protocol__FlexDlDci *dl_dci;
Protocol__FlexRlcPdu *rlc_pdus[11];
uint32_t *ce_bitmap;
Protocol__PrpRlcPdu **rlc_pdu;
Protocol__FlexRlcPdu **rlc_pdu;
int num_tb;
uint32_t ce_flags = 0;
......@@ -216,8 +216,8 @@ schedule_ue_spec_default(
channels_added = 0;
// After this point all the UEs will be scheduled
dl_data[num_ues_added] = (Protocol__PrpDlData *) malloc(sizeof(Protocol__PrpDlData));
protocol__prp_dl_data__init(dl_data[num_ues_added]);
dl_data[num_ues_added] = (Protocol__FlexDlData *) malloc(sizeof(Protocol__FlexDlData));
protocol__flex_dl_data__init(dl_data[num_ues_added]);
dl_data[num_ues_added]->has_rnti = 1;
dl_data[num_ues_added]->rnti = rnti;
dl_data[num_ues_added]->n_rlc_pdu = 0;
......@@ -258,8 +258,8 @@ schedule_ue_spec_default(
eNB_UE_stats->DL_cqi[0], mcs,
UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status);
dl_dci = (Protocol__PrpDlDci*) malloc(sizeof(Protocol__PrpDlDci));
protocol__prp_dl_dci__init(dl_dci);
dl_dci = (Protocol__FlexDlDci*) malloc(sizeof(Protocol__FlexDlDci));
protocol__flex_dl_dci__init(dl_dci);
dl_data[num_ues_added]->dl_dci = dl_dci;
......@@ -353,12 +353,12 @@ schedule_ue_spec_default(
dl_data[num_ues_added]->ce_bitmap = (uint32_t *) malloc(sizeof(uint32_t) * 2);
if (ta_len > 0) {
ce_flags |= PROTOCOL__PRP_CE_TYPE__PRPCET_TA;
ce_flags |= PROTOCOL__FLEX_CE_TYPE__FLPCET_TA;
}
/*TODO: Add other flags if DRX and other CE are required*/
// Add the control element flags to the progran message
// Add the control element flags to the flexran message
dl_data[num_ues_added]->ce_bitmap[0] = ce_flags;
dl_data[num_ues_added]->ce_bitmap[1] = ce_flags;
......@@ -394,18 +394,18 @@ schedule_ue_spec_default(
data_to_request++; //It is not correct but fixes some RLC bug for DCCH
}
LOG_D(MAC, "[TEST]Will request %d from DCCH\n", data_to_request);
rlc_pdus[channels_added] = (Protocol__PrpRlcPdu *) malloc(sizeof(Protocol__PrpRlcPdu));
protocol__prp_rlc_pdu__init(rlc_pdus[channels_added]);
rlc_pdus[channels_added] = (Protocol__FlexRlcPdu *) malloc(sizeof(Protocol__FlexRlcPdu));
protocol__flex_rlc_pdu__init(rlc_pdus[channels_added]);
rlc_pdus[channels_added]->n_rlc_pdu_tb = 2;
rlc_pdus[channels_added]->rlc_pdu_tb = (Protocol__PrpRlcPduTb **) malloc(sizeof(Protocol__PrpRlcPduTb *) * 2);
rlc_pdus[channels_added]->rlc_pdu_tb[0] = (Protocol__PrpRlcPduTb *) malloc(sizeof(Protocol__PrpRlcPduTb));
protocol__prp_rlc_pdu_tb__init(rlc_pdus[channels_added]->rlc_pdu_tb[0]);
rlc_pdus[channels_added]->rlc_pdu_tb = (Protocol__FlexRlcPduTb **) malloc(sizeof(Protocol__FlexRlcPduTb *) * 2);
rlc_pdus[channels_added]->rlc_pdu_tb[0] = (Protocol__FlexRlcPduTb *) malloc(sizeof(Protocol__FlexRlcPduTb));
protocol__flex_rlc_pdu_tb__init(rlc_pdus[channels_added]->rlc_pdu_tb[0]);
rlc_pdus[channels_added]->rlc_pdu_tb[0]->has_logical_channel_id = 1;
rlc_pdus[channels_added]->rlc_pdu_tb[0]->logical_channel_id = j;
rlc_pdus[channels_added]->rlc_pdu_tb[0]->has_size = 1;
rlc_pdus[channels_added]->rlc_pdu_tb[0]->size = data_to_request;
rlc_pdus[channels_added]->rlc_pdu_tb[1] = (Protocol__PrpRlcPduTb *) malloc(sizeof(Protocol__PrpRlcPduTb));
protocol__prp_rlc_pdu_tb__init(rlc_pdus[channels_added]->rlc_pdu_tb[1]);
rlc_pdus[channels_added]->rlc_pdu_tb[1] = (Protocol__FlexRlcPduTb *) malloc(sizeof(Protocol__FlexRlcPduTb));
protocol__flex_rlc_pdu_tb__init(rlc_pdus[channels_added]->rlc_pdu_tb[1]);
rlc_pdus[channels_added]->rlc_pdu_tb[1]->has_logical_channel_id = 1;
rlc_pdus[channels_added]->rlc_pdu_tb[1]->logical_channel_id = j;
rlc_pdus[channels_added]->rlc_pdu_tb[1]->has_size = 1;
......@@ -422,7 +422,7 @@ schedule_ue_spec_default(
} // End of iterating the logical channels
// Add rlc_pdus to the dl_data message
dl_data[num_ues_added]->rlc_pdu = (Protocol__PrpRlcPdu **) malloc(sizeof(Protocol__PrpRlcPdu *) *
dl_data[num_ues_added]->rlc_pdu = (Protocol__FlexRlcPdu **) malloc(sizeof(Protocol__FlexRlcPdu *) *
dl_data[num_ues_added]->n_rlc_pdu);
for (i = 0; i < dl_data[num_ues_added]->n_rlc_pdu; i++) {
dl_data[num_ues_added]->rlc_pdu[i] = rlc_pdus[i];
......@@ -595,9 +595,9 @@ schedule_ue_spec_default(
dl_dci->has_res_alloc = 1;
dl_dci->res_alloc = 0;
dl_dci->has_vrb_format = 1;
dl_dci->vrb_format = PROTOCOL__PRP_VRB_FORMAT__PRVRBF_LOCALIZED;
dl_dci->vrb_format = PROTOCOL__FLEX_VRB_FORMAT__FLVRBF_LOCALIZED;
dl_dci->has_format = 1;
dl_dci->format = PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1;
dl_dci->format = PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1;
dl_dci->has_rb_bitmap = 1;
dl_dci->rb_bitmap = allocate_prbs_sub(nb_rb, rballoc_sub);
dl_dci->has_rb_shift = 1;
......@@ -625,9 +625,9 @@ schedule_ue_spec_default(
dl_dci->has_res_alloc = 1;
dl_dci->res_alloc = 0;
dl_dci->has_vrb_format = 1;
dl_dci->vrb_format = PROTOCOL__PRP_VRB_FORMAT__PRVRBF_LOCALIZED;
dl_dci->vrb_format = PROTOCOL__FLEX_VRB_FORMAT__FLVRBF_LOCALIZED;
dl_dci->has_format = 1;
dl_dci->format = PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A;
dl_dci->format = PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A;
dl_dci->has_rb_bitmap = 1;
dl_dci->rb_bitmap = allocate_prbs_sub(nb_rb, rballoc_sub);
dl_dci->has_rb_shift = 1;
......@@ -659,9 +659,9 @@ schedule_ue_spec_default(
dl_dci->has_res_alloc = 1;
dl_dci->res_alloc = 0;
dl_dci->has_vrb_format = 1;
dl_dci->vrb_format = PROTOCOL__PRP_VRB_FORMAT__PRVRBF_LOCALIZED;
dl_dci->vrb_format = PROTOCOL__FLEX_VRB_FORMAT__FLVRBF_LOCALIZED;
dl_dci->has_format = 1;
dl_dci->format = PROTOCOL__PRP_DCI_FORMAT__PRDCIF_2A;
dl_dci->format = PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_2A;
dl_dci->has_rb_bitmap = 1;
dl_dci->rb_bitmap = allocate_prbs_sub(nb_rb, rballoc_sub);
dl_dci->has_rb_shift = 1;
......@@ -693,9 +693,9 @@ schedule_ue_spec_default(
dl_dci->has_res_alloc = 1;
dl_dci->res_alloc = 0;
dl_dci->has_vrb_format = 1;
dl_dci->vrb_format = PROTOCOL__PRP_VRB_FORMAT__PRVRBF_LOCALIZED;
dl_dci->vrb_format = PROTOCOL__FLEX_VRB_FORMAT__FLVRBF_LOCALIZED;
dl_dci->has_format = 1;
dl_dci->format = PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D;
dl_dci->format = PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D;
dl_dci->has_rb_bitmap = 1;
dl_dci->rb_bitmap = allocate_prbs_sub(nb_rb, rballoc_sub);
dl_dci->has_rb_shift = 1;
......@@ -733,9 +733,9 @@ schedule_ue_spec_default(
dl_dci->has_res_alloc = 1;
dl_dci->res_alloc = 0;
dl_dci->has_vrb_format = 1;
dl_dci->vrb_format = PROTOCOL__PRP_VRB_FORMAT__PRVRBF_LOCALIZED;
dl_dci->vrb_format = PROTOCOL__FLEX_VRB_FORMAT__FLVRBF_LOCALIZED;
dl_dci->has_format = 1;
dl_dci->format = PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D;
dl_dci->format = PROTOCOL__FLEX_DCI_FORMAT__FLDCIF_1D;
dl_dci->has_rb_bitmap = 1;
dl_dci->rb_bitmap = allocate_prbs_sub(nb_rb, rballoc_sub);
dl_dci->has_rb_shift = 1;
......@@ -770,9 +770,9 @@ schedule_ue_spec_default(
} // UE_id loop
} // CC_id loop
// Add all the dl_data elements to the progran message
// Add all the dl_data elements to the flexran message
(*dl_info)->dl_mac_config_msg->n_dl_ue_data = num_ues_added;
(*dl_info)->dl_mac_config_msg->dl_ue_data = (Protocol__PrpDlData **) malloc(sizeof(Protocol__PrpDlData *) * num_ues_added);
(*dl_info)->dl_mac_config_msg->dl_ue_data = (Protocol__FlexDlData **) malloc(sizeof(Protocol__FlexDlData *) * num_ues_added);
for (i = 0; i < num_ues_added; i++) {
(*dl_info)->dl_mac_config_msg->dl_ue_data[i] = dl_data[i];
}
......
......@@ -53,7 +53,7 @@ int queue_initialized = 0;
//uint32_t sched [] = {1, 2, 3};
void schedule_ue_spec_remote(mid_t mod_id, uint32_t frame, uint32_t subframe,
int *mbsfn_flag, Protocol__ProgranMessage **dl_info) {
int *mbsfn_flag, Protocol__FlexranMessage **dl_info) {
//if ((subframe == skip_subframe) && (frame % period == 0)) {
......
......@@ -40,7 +40,7 @@
#ifndef __LAYER2_MAC_ENB_AGENT_SCHEDULER_DLSCH_UE_REMOTE_H__
#define __LAYER2_MAC_ENB_AGENT_SCHEDULER_DLSCH_UE_REMOTE_H___
#include "progran.pb-c.h"
#include "flexran.pb-c.h"
#include "header.pb-c.h"
#include "ENB_APP/enb_agent_defs.h"
......@@ -54,7 +54,7 @@
#define SCHED_AHEAD_SUBFRAMES 20
typedef struct dl_mac_config_element_s {
Protocol__ProgranMessage *dl_info;
Protocol__FlexranMessage *dl_info;
TAILQ_ENTRY(dl_mac_config_element_s) configs;
} dl_mac_config_element_t;
......@@ -64,7 +64,7 @@ TAILQ_HEAD(DlMacConfigHead, dl_mac_config_element_s);
* Default scheduler used by the eNB agent
*/
void schedule_ue_spec_remote(mid_t mod_id, uint32_t frame, uint32_t subframe,
int *mbsfn_flag, Protocol__ProgranMessage **dl_info);
int *mbsfn_flag, Protocol__FlexranMessage **dl_info);
// Find the difference in subframes from the given subframe
......
......@@ -103,7 +103,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
void *DLSCH_dci=NULL;
int size_bits=0,size_bytes=0;
Protocol__ProgranMessage *msg;
Protocol__FlexranMessage *msg;
LOG_D(MAC,"[eNB %d] Frame %d, Subframe %d, entering MAC scheduler (UE_list->head %d)\n",module_idP, frameP, subframeP,UE_list->head);
......@@ -143,7 +143,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
if (mac_agent_registered[module_idP]) {
agent_mac_xface[module_idP]->enb_agent_notify_ue_state_change(module_idP,
rnti,
PROTOCOL__PRP_UE_STATE_CHANGE_TYPE__PRUESC_DEACTIVATED);
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED);
}
}
else {
......
......@@ -42,29 +42,29 @@
#include "enb_agent_defs.h"
#include "header.pb-c.h"
#include "progran.pb-c.h"
#include "flexran.pb-c.h"
/*
* Default scheduler used by the eNB agent
*/
void schedule_ue_spec_default(mid_t mod_id, uint32_t frame, uint32_t subframe,
int *mbsfn_flag, Protocol__ProgranMessage **dl_info);
int *mbsfn_flag, Protocol__FlexranMessage **dl_info);
/*
* Data plane function for applying the DL decisions of the scheduler
*/
void apply_dl_scheduling_decisions(mid_t mod_id, uint32_t frame, uint32_t subframe, int *mbsfn_flag,
const Protocol__ProgranMessage *dl_scheduling_info);
const Protocol__FlexranMessage *dl_scheduling_info);
/*
* Data plane function for applying the UE specific DL decisions of the scheduler
*/
void apply_ue_spec_scheduling_decisions(mid_t mod_id, uint32_t frame, uint32_t subframe, int *mbsfn_flag,
uint32_t n_dl_ue_data, const Protocol__PrpDlData **dl_ue_data);
uint32_t n_dl_ue_data, const Protocol__FlexDlData **dl_ue_data);
/*
* Data plane function for filling the DCI structure
*/
void fill_oai_dci(mid_t mod_id, uint32_t CC_id, uint32_t rnti, const Protocol__PrpDlDci *dl_dci);
void fill_oai_dci(mid_t mod_id, uint32_t CC_id, uint32_t rnti, const Protocol__FlexDlDci *dl_dci);
#endif
......@@ -28,32 +28,32 @@
*******************************************************************************/
/*! \file dci_conversions.h
* \brief Conversion helpers from progran messages to OAI formats DCI
* \brief Conversion helpers from flexran messages to OAI formats DCI
* \author Xenofon Foukas
* \date 2016
* \version 0.1
*/
#ifndef LAYER2_MAC_PROGRAN_DCI_CONVERISIONS_H__
#define LAYER2_MAC_DCI_PROGRAN_CONVERISIONS_H__
#define FILL_DCI_FDD_1(TYPE, DCI, PROGRAN_DCI) \
((TYPE*)DCI)->harq_pid = PROGRAN_DCI->harq_process; \
((TYPE*)DCI)->rv = PROGRAN_DCI->rv[0]; \
((TYPE*)DCI)->rballoc = PROGRAN_DCI->rb_bitmap; \
((TYPE*)DCI)->rah = PROGRAN_DCI->res_alloc; \
((TYPE*)DCI)->mcs = PROGRAN_DCI->mcs[0]; \
((TYPE*)DCI)->TPC = PROGRAN_DCI->tpc; \
((TYPE*)DCI)->ndi = PROGRAN_DCI->ndi[0];
#define FILL_DCI_TDD_1(TYPE, DCI, PROGRAN_DCI) \
((TYPE*)DCI)->harq_pid = PROGRAN_DCI->harq_process; \
((TYPE*)DCI)->rv = PROGRAN_DCI->rv[0]; \
((TYPE*)DCI)->dai = PROGRAN_DCI->dai; \
((TYPE*)DCI)->rballoc = PROGRAN_DCI->rb_bitmap; \
((TYPE*)DCI)->rah = PROGRAN_DCI->res_alloc; \
((TYPE*)DCI)->mcs = PROGRAN_DCI->mcs[0]; \
((TYPE*)DCI)->TPC = PROGRAN_DCI->tpc; \
((TYPE*)DCI)->ndi = PROGRAN_DCI->ndi[0];
#ifndef LAYER2_MAC_FLEXRAN_DCI_CONVERISIONS_H__
#define LAYER2_MAC_DCI_FLEXRAN_CONVERISIONS_H__
#define FILL_DCI_FDD_1(TYPE, DCI, FLEXRAN_DCI) \
((TYPE*)DCI)->harq_pid = FLEXRAN_DCI->harq_process; \
((TYPE*)DCI)->rv = FLEXRAN_DCI->rv[0]; \
((TYPE*)DCI)->rballoc = FLEXRAN_DCI->rb_bitmap; \
((TYPE*)DCI)->rah = FLEXRAN_DCI->res_alloc; \
((TYPE*)DCI)->mcs = FLEXRAN_DCI->mcs[0]; \
((TYPE*)DCI)->TPC = FLEXRAN_DCI->tpc; \
((TYPE*)DCI)->ndi = FLEXRAN_DCI->ndi[0];
#define FILL_DCI_TDD_1(TYPE, DCI, FLEXRAN_DCI) \
((TYPE*)DCI)->harq_pid = FLEXRAN_DCI->harq_process; \
((TYPE*)DCI)->rv = FLEXRAN_DCI->rv[0]; \
((TYPE*)DCI)->dai = FLEXRAN_DCI->dai; \
((TYPE*)DCI)->rballoc = FLEXRAN_DCI->rb_bitmap; \
((TYPE*)DCI)->rah = FLEXRAN_DCI->res_alloc; \
((TYPE*)DCI)->mcs = FLEXRAN_DCI->mcs[0]; \
((TYPE*)DCI)->TPC = FLEXRAN_DCI->tpc; \
((TYPE*)DCI)->ndi = FLEXRAN_DCI->ndi[0];
#endif
......@@ -4545,7 +4545,7 @@ rrc_eNB_decode_dcch(
if (mac_agent_registered[ctxt_pP->module_id]) {
agent_mac_xface[ctxt_pP->eNB_index]->enb_agent_notify_ue_state_change(ctxt_pP->module_id,
ue_context_p->ue_id_rnti,
PROTOCOL__PRP_UE_STATE_CHANGE_TYPE__PRUESC_UPDATED);
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_UPDATED);
}
}
#if defined(ENABLE_ITTI)
......@@ -4646,7 +4646,7 @@ rrc_eNB_decode_dcch(
if (mac_agent_registered[ctxt_pP->module_id]) {
agent_mac_xface[ctxt_pP->eNB_index]->enb_agent_notify_ue_state_change(ctxt_pP->module_id,
ue_context_p->ue_id_rnti,
PROTOCOL__PRP_UE_STATE_CHANGE_TYPE__PRUESC_ACTIVATED);
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_ACTIVATED);
}
}
}
......
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