diff --git a/openair2/ENB_APP/flexran_agent_ran_api.c b/openair2/ENB_APP/flexran_agent_ran_api.c index 7fb0d767e1..f8789e3d71 100644 --- a/openair2/ENB_APP/flexran_agent_ran_api.c +++ b/openair2/ENB_APP/flexran_agent_ran_api.c @@ -114,6 +114,20 @@ int flexran_get_num_ues(mid_t mod_id) return RC.mac[mod_id]->UE_list.num_UEs; } +int flexran_get_num_ue_lcs(mid_t mod_id, mid_t ue_id) +{ + if (!mac_is_present(mod_id)) return 0; + // Not sure whether this is needed: if (!rrc_is_present(mod_id)) return 0; + const rnti_t rnti = flexran_get_ue_crnti(mod_id, ue_id); + const int s = mac_eNB_get_rrc_status(mod_id, rnti); + if (s < RRC_CONNECTED) + return 0; + else if (s == RRC_CONNECTED) + return 1; + else + return 3; +} + rnti_t flexran_get_ue_crnti(mid_t mod_id, mid_t ue_id) { if (!mac_is_present(mod_id)) return 0; diff --git a/openair2/ENB_APP/flexran_agent_ran_api.h b/openair2/ENB_APP/flexran_agent_ran_api.h index c98113a392..b0e3f941a7 100644 --- a/openair2/ENB_APP/flexran_agent_ran_api.h +++ b/openair2/ENB_APP/flexran_agent_ran_api.h @@ -73,6 +73,10 @@ uint16_t flexran_get_future_sfn_sf(mid_t mod_id, int ahead_of_time); /* Return the number of attached UEs */ int flexran_get_num_ues(mid_t mod_id); +/* Get the number of logical channels per UE. This function does not consider + * dedicated bearers yet */ +int flexran_get_num_ue_lcs(mid_t mod_id, mid_t ue_id); + /* Get the rnti of a UE with id ue_id */ rnti_t flexran_get_ue_crnti(mid_t mod_id, mid_t ue_id);