Commit 1fc631e2 authored by Robert Schmidt's avatar Robert Schmidt

RAN API RRC part: Change interface to RNTI, change flexran_get_aperiodic_cqi_rep_mode()

* the RAN API RRC part now takes rnti and does not look it up in the MAC every
  time again
* the function flexran_get_aperiodic_cqi_rep_mode() has been changed to return
  a proper protobuf variable, not OAI typedef
parent fdd47e57
...@@ -911,7 +911,7 @@ int flexran_agent_mac_sf_trigger(mid_t mod_id, const void *params, Protocol__Fle ...@@ -911,7 +911,7 @@ int flexran_agent_mac_sf_trigger(mid_t mod_id, const void *params, Protocol__Fle
if(dl_info[i] == NULL) if(dl_info[i] == NULL)
goto error; goto error;
protocol__flex_dl_info__init(dl_info[i]); protocol__flex_dl_info__init(dl_info[i]);
dl_info[i]->rnti = flexran_get_ue_crnti(mod_id, UE_id); dl_info[i]->rnti = flexran_get_mac_ue_crnti(mod_id, UE_id);
dl_info[i]->has_rnti = 1; dl_info[i]->has_rnti = 1;
/*Fill in the right id of this round's HARQ process for this UE*/ /*Fill in the right id of this round's HARQ process for this UE*/
// uint8_t harq_id; // uint8_t harq_id;
...@@ -959,7 +959,7 @@ int flexran_agent_mac_sf_trigger(mid_t mod_id, const void *params, Protocol__Fle ...@@ -959,7 +959,7 @@ int flexran_agent_mac_sf_trigger(mid_t mod_id, const void *params, Protocol__Fle
if(ul_info[i] == NULL) if(ul_info[i] == NULL)
goto error; goto error;
protocol__flex_ul_info__init(ul_info[i]); protocol__flex_ul_info__init(ul_info[i]);
ul_info[i]->rnti = flexran_get_ue_crnti(mod_id, i); ul_info[i]->rnti = flexran_get_mac_ue_crnti(mod_id, i);
ul_info[i]->has_rnti = 1; ul_info[i]->has_rnti = 1;
/* Fill in the Tx power control command for this UE (if available), /* Fill in the Tx power control command for this UE (if available),
* primary carrier */ * primary carrier */
...@@ -1375,7 +1375,7 @@ void flexran_agent_fill_mac_cell_config(mid_t mod_id, uint8_t cc_id, ...@@ -1375,7 +1375,7 @@ void flexran_agent_fill_mac_cell_config(mid_t mod_id, uint8_t cc_id,
void flexran_agent_fill_mac_lc_ue_config(mid_t mod_id, mid_t ue_id, void flexran_agent_fill_mac_lc_ue_config(mid_t mod_id, mid_t ue_id,
Protocol__FlexLcUeConfig *lc_ue_conf) Protocol__FlexLcUeConfig *lc_ue_conf)
{ {
lc_ue_conf->rnti = flexran_get_ue_crnti(mod_id, ue_id); lc_ue_conf->rnti = flexran_get_mac_ue_crnti(mod_id, ue_id);
lc_ue_conf->has_rnti = 1; lc_ue_conf->has_rnti = 1;
lc_ue_conf->n_lc_config = flexran_get_num_ue_lcs(mod_id, ue_id); lc_ue_conf->n_lc_config = flexran_get_num_ue_lcs(mod_id, ue_id);
......
...@@ -137,6 +137,9 @@ enum flex_aperiodic_cqi_report_mode { ...@@ -137,6 +137,9 @@ enum flex_aperiodic_cqi_report_mode {
FLACRM_RM30 = 3; FLACRM_RM30 = 3;
FLACRM_RM31 = 4; FLACRM_RM31 = 4;
FLACRM_NONE = 5; FLACRM_NONE = 5;
FLACRM_RM32_v1250 = 6;
FLACRM_RM10_v1310 = 7;
FLACRM_RM11_v1310 = 8;
} }
enum flex_tdd_ack_nack_feedback_mode { enum flex_tdd_ack_nack_feedback_mode {
...@@ -177,4 +180,4 @@ enum flex_ue_state_change_type { ...@@ -177,4 +180,4 @@ enum flex_ue_state_change_type {
FLUESC_ACTIVATED = 1; FLUESC_ACTIVATED = 1;
FLUESC_DEACTIVATED = 2; FLUESC_DEACTIVATED = 2;
FLUESC_MOVED = 3; FLUESC_MOVED = 3;
} }
\ No newline at end of file
This diff is collapsed.
...@@ -249,7 +249,7 @@ int flexran_agent_handle_stats(mid_t mod_id, const void *params, Protocol__Flexr ...@@ -249,7 +249,7 @@ int flexran_agent_handle_stats(mid_t mod_id, const void *params, Protocol__Flexr
goto error; goto error;
} }
for (i = 0; i < report_config.nr_ue; i++) { for (i = 0; i < report_config.nr_ue; i++) {
report_config.ue_report_type[i].ue_rnti = flexran_get_ue_crnti(enb_id, i); //eNB_UE_list->eNB_UE_stats[UE_PCCID(enb_id,i)][i].crnti; report_config.ue_report_type[i].ue_rnti = flexran_get_mac_ue_crnti(enb_id, i);
report_config.ue_report_type[i].ue_report_flags = ue_flags; report_config.ue_report_type[i].ue_report_flags = ue_flags;
} }
//Set the number of CCs and create a list with the cell stats configs //Set the number of CCs and create a list with the cell stats configs
......
This diff is collapsed.
...@@ -77,8 +77,8 @@ int flexran_get_mac_num_ues(mid_t mod_id); ...@@ -77,8 +77,8 @@ int flexran_get_mac_num_ues(mid_t mod_id);
* dedicated bearers yet */ * dedicated bearers yet */
int flexran_get_num_ue_lcs(mid_t mod_id, mid_t ue_id); int flexran_get_num_ue_lcs(mid_t mod_id, mid_t ue_id);
/* Get the rnti of a UE with id ue_id */ /* Get the rnti of a UE with id ue_id from MAC */
rnti_t flexran_get_ue_crnti(mid_t mod_id, mid_t ue_id); rnti_t flexran_get_mac_ue_crnti(mid_t mod_id, mid_t ue_id);
/* Get the RLC buffer status report in bytes of a ue for a designated /* Get the RLC buffer status report in bytes of a ue for a designated
* logical channel id */ * logical channel id */
...@@ -318,13 +318,13 @@ int flexran_get_rrc_rnti_list(mid_t mod_id, rnti_t *list, int max_list); ...@@ -318,13 +318,13 @@ int flexran_get_rrc_rnti_list(mid_t mod_id, rnti_t *list, int max_list);
/* Get timer in subframes. Controls the synchronization /* Get timer in subframes. Controls the synchronization
status of the UE, not the actual timing status of the UE, not the actual timing
advance procedure. See TS 36.321 */ advance procedure. See TS 36.321 */
TimeAlignmentTimer_t flexran_get_time_alignment_timer(mid_t mod_id, mid_t ue_id); TimeAlignmentTimer_t flexran_get_time_alignment_timer(mid_t mod_id, rnti_t rnti);
/* Get measurement gap configuration. See TS 36.133 */ /* Get measurement gap configuration. See TS 36.133 */
Protocol__FlexMeasGapConfigPattern flexran_get_meas_gap_config(mid_t mod_id, mid_t ue_id); Protocol__FlexMeasGapConfigPattern flexran_get_meas_gap_config(mid_t mod_id, rnti_t rnti);
/* Get measurement gap configuration offset if applicable */ /* Get measurement gap configuration offset if applicable */
long flexran_get_meas_gap_config_offset(mid_t mod_id, mid_t ue_id); long flexran_get_meas_gap_config_offset(mid_t mod_id, rnti_t rnti);
/* DL aggregated bit-rate of non-gbr bearer /* DL aggregated bit-rate of non-gbr bearer
per UE. See TS 36.413 */ per UE. See TS 36.413 */
...@@ -335,62 +335,62 @@ uint64_t flexran_get_ue_aggregated_max_bitrate_dl(mid_t mod_id, mid_t ue_id); ...@@ -335,62 +335,62 @@ uint64_t flexran_get_ue_aggregated_max_bitrate_dl(mid_t mod_id, mid_t ue_id);
uint64_t flexran_get_ue_aggregated_max_bitrate_ul(mid_t mod_id, mid_t ue_id); uint64_t flexran_get_ue_aggregated_max_bitrate_ul(mid_t mod_id, mid_t ue_id);
/* Only half-duplex support. FDD operation. Boolean value */ /* Only half-duplex support. FDD operation. Boolean value */
int flexran_get_half_duplex(mid_t mod_id, mid_t ue_id); int flexran_get_half_duplex(mid_t mod_id, rnti_t rnti);
/* Support of intra-subframe hopping. Boolean value */ /* Support of intra-subframe hopping. Boolean value */
int flexran_get_intra_sf_hopping(mid_t mod_id, mid_t ue_id); int flexran_get_intra_sf_hopping(mid_t mod_id, rnti_t rnti);
/* UE support for type 2 hopping with n_sb>1 */ /* UE support for type 2 hopping with n_sb>1 */
int flexran_get_type2_sb_1(mid_t mod_id, mid_t ue_id); int flexran_get_type2_sb_1(mid_t mod_id, rnti_t rnti);
/* Get the UE category */ /* Get the UE category */
long flexran_get_ue_category(mid_t mod_id, mid_t ue_id); long flexran_get_ue_category(mid_t mod_id, rnti_t rnti);
/* UE support for resource allocation type 1 */ /* UE support for resource allocation type 1 */
int flexran_get_res_alloc_type1(mid_t mod_id, mid_t ue_id); int flexran_get_res_alloc_type1(mid_t mod_id, rnti_t rnti);
/* Get UE transmission mode */ /* Get UE transmission mode */
long flexran_get_ue_transmission_mode(mid_t mod_id, mid_t ue_id); long flexran_get_ue_transmission_mode(mid_t mod_id, rnti_t rnti);
/* Boolean value. See TS 36.321 */ /* Boolean value. See TS 36.321 */
BOOLEAN_t flexran_get_tti_bundling(mid_t mod_id, mid_t ue_id); BOOLEAN_t flexran_get_tti_bundling(mid_t mod_id, rnti_t rnti);
/* The max HARQ retransmission for UL. /* The max HARQ retransmission for UL.
See TS 36.321 */ See TS 36.321 */
long flexran_get_maxHARQ_TX(mid_t mod_id, mid_t ue_id); long flexran_get_maxHARQ_TX(mid_t mod_id, rnti_t rnti);
/* See TS 36.213 */ /* See TS 36.213 */
long flexran_get_beta_offset_ack_index(mid_t mod_id, mid_t ue_id); long flexran_get_beta_offset_ack_index(mid_t mod_id, rnti_t rnti);
/* See TS 36.213 */ /* See TS 36.213 */
long flexran_get_beta_offset_ri_index(mid_t mod_id, mid_t ue_id); long flexran_get_beta_offset_ri_index(mid_t mod_id, rnti_t rnti);
/* See TS 36.213 */ /* See TS 36.213 */
long flexran_get_beta_offset_cqi_index(mid_t mod_id, mid_t ue_id); long flexran_get_beta_offset_cqi_index(mid_t mod_id, rnti_t rnti);
/* Boolean. See TS36.213, Section 10.1 */ /* Boolean. See TS36.213, Section 10.1 */
BOOLEAN_t flexran_get_simultaneous_ack_nack_cqi(mid_t mod_id, mid_t ue_id); BOOLEAN_t flexran_get_simultaneous_ack_nack_cqi(mid_t mod_id, rnti_t rnti);
/* Boolean. See TS 36.213, Section 8.2 */ /* Boolean. See TS 36.213, Section 8.2 */
BOOLEAN_t flexran_get_ack_nack_simultaneous_trans(mid_t mod_id, mid_t ue_id, uint8_t cc_id); BOOLEAN_t flexran_get_ack_nack_simultaneous_trans(mid_t mod_id, uint8_t cc_id);
/* Get aperiodic CQI report mode */ /* Get aperiodic CQI report mode */
CQI_ReportModeAperiodic_t flexran_get_aperiodic_cqi_rep_mode(mid_t mod_id,mid_t ue_id); Protocol__FlexAperiodicCqiReportMode flexran_get_aperiodic_cqi_rep_mode(mid_t mod_id, rnti_t rnti);
/* Get ACK/NACK feedback mode. TDD only */ /* Get ACK/NACK feedback mode. TDD only */
long flexran_get_tdd_ack_nack_feedback_mode(mid_t mod_id, mid_t ue_id); long flexran_get_tdd_ack_nack_feedback_mode(mid_t mod_id, rnti_t rnti);
/* See TS36.213, section 10.1 */ /* See TS36.213, section 10.1 */
long flexran_get_ack_nack_repetition_factor(mid_t mod_id, mid_t ue_id); long flexran_get_ack_nack_repetition_factor(mid_t mod_id, rnti_t rnti);
/* Boolean. Extended buffer status report size */ /* Boolean. Extended buffer status report size */
long flexran_get_extended_bsr_size(mid_t mod_id, mid_t ue_id); long flexran_get_extended_bsr_size(mid_t mod_id, rnti_t rnti);
/* Get number of UE transmission antennas */ /* Get number of UE transmission antennas */
int flexran_get_ue_transmission_antenna(mid_t mod_id, mid_t ue_id); int flexran_get_ue_transmission_antenna(mid_t mod_id, rnti_t rnti);
/* Get the IMSI of UE */ /* Get the IMSI of UE */
uint64_t flexran_get_ue_imsi(mid_t mod_id, mid_t ue_id); uint64_t flexran_get_ue_imsi(mid_t mod_id, rnti_t rnti);
/* Get logical channel group of a channel with id lc_id */ /* Get logical channel group of a channel with id lc_id */
long flexran_get_lcg(mid_t mod_id, mid_t ue_id, mid_t lc_id); long flexran_get_lcg(mid_t mod_id, mid_t ue_id, mid_t lc_id);
...@@ -429,7 +429,7 @@ void flexran_agent_set_operating_bandwidth(mid_t mod_id, uint8_t cc_id, uint8_t ...@@ -429,7 +429,7 @@ void flexran_agent_set_operating_bandwidth(mid_t mod_id, uint8_t cc_id, uint8_t
void flexran_agent_set_operating_frame_type(mid_t mod_id, uint8_t cc_id, lte_frame_type_t frame_type); void flexran_agent_set_operating_frame_type(mid_t mod_id, uint8_t cc_id, lte_frame_type_t frame_type);
/*RRC status flexRAN*/ /*RRC status flexRAN*/
uint8_t flexran_get_rrc_status(mid_t mod_id, mid_t ue_id); uint8_t flexran_get_rrc_status(mid_t mod_id, rnti_t rnti);
/***************************** PDCP ***********************/ /***************************** PDCP ***********************/
...@@ -491,33 +491,33 @@ uint32_t flexran_get_pdcp_rx_oo(const mid_t mod_id, const mid_t ue_id, const lc ...@@ -491,33 +491,33 @@ uint32_t flexran_get_pdcp_rx_oo(const mid_t mod_id, const mid_t ue_id, const lc
/*********************RRC**********************/ /*********************RRC**********************/
/*Get primary cell measuremeant id flexRAN*/ /*Get primary cell measuremeant id flexRAN*/
MeasId_t flexran_get_rrc_pcell_measid(mid_t mod_id, mid_t ue_id); MeasId_t flexran_get_rrc_pcell_measid(mid_t mod_id, rnti_t rnti);
/*Get primary cell RSRP measurement flexRAN*/ /*Get primary cell RSRP measurement flexRAN*/
float flexran_get_rrc_pcell_rsrp(mid_t mod_id, mid_t ue_id); float flexran_get_rrc_pcell_rsrp(mid_t mod_id, rnti_t rnti);
/*Get primary cell RSRQ measurement flexRAN*/ /*Get primary cell RSRQ measurement flexRAN*/
float flexran_get_rrc_pcell_rsrq(mid_t mod_id, mid_t ue_id); float flexran_get_rrc_pcell_rsrq(mid_t mod_id, rnti_t rnti);
/* Get RRC neighbouring measurement */ /* Get RRC neighbouring measurement */
int flexran_get_rrc_num_ncell(mid_t mod_id, mid_t ue_id); int flexran_get_rrc_num_ncell(mid_t mod_id, rnti_t rnti);
/*Get physical cell id*/ /* Get physical cell id */
PhysCellId_t flexran_get_rrc_neigh_phy_cell_id(mid_t mod_id, mid_t ue_id, int cell_id); long flexran_get_rrc_neigh_phy_cell_id(mid_t mod_id, rnti_t rnti, long cell_id);
/*Get RSRP of neighbouring Cell*/ /* Get RSRP of neighbouring Cell */
float flexran_get_rrc_neigh_rsrp(mid_t mod_id, mid_t ue_id, int cell_id); float flexran_get_rrc_neigh_rsrp(mid_t mod_id, rnti_t rnti, long cell_id);
/*Get RSRQ of neighbouring Cell*/ /* Get RSRQ of neighbouring Cell */
float flexran_get_rrc_neigh_rsrq(mid_t mod_id, mid_t ue_id, int cell_id); float flexran_get_rrc_neigh_rsrq(mid_t mod_id, rnti_t rnti, long cell_id);
/*Get MCC PLMN identity neighbouring Cell*/ /*Get MCC PLMN identity neighbouring Cell*/
/* currently not implemented /* currently not implemented
int flexran_get_rrc_neigh_plmn_mcc(mid_t mod_id, mid_t ue_id, int cell_id); */ int flexran_get_rrc_neigh_plmn_mcc(mid_t mod_id, rnti_t rnti, int cell_id); */
/*Get MNC PLMN identity neighbouring Cell*/ /*Get MNC PLMN identity neighbouring Cell*/
/* currently not implemented /* currently not implemented
int flexran_get_rrc_neigh_plmn_mnc(mid_t mod_id, mid_t ue_id, int cell_id); */ int flexran_get_rrc_neigh_plmn_mnc(mid_t mod_id, rnti_t rnti, int cell_id); */
/********************* general information *****************/ /********************* general information *****************/
/* get an ID for this BS (or part of a BS) */ /* get an ID for this BS (or part of a BS) */
......
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