Fix CU as E2 node
- when CU is used, UE ID data is filled as GNB_UE_ID_E2SM with CU UE ID value included
This commit is contained in:
@@ -158,6 +158,21 @@ gnb_e2sm_t fill_gnb_data(rrc_gNB_ue_context_t * ue_context_p)
|
|||||||
gnb.guami.amf_set_id = ue_context_p->ue_context.ue_guami.amf_set_id;
|
gnb.guami.amf_set_id = ue_context_p->ue_context.ue_guami.amf_set_id;
|
||||||
gnb.guami.amf_ptr = ue_context_p->ue_context.ue_guami.amf_pointer;
|
gnb.guami.amf_ptr = ue_context_p->ue_context.ue_guami.amf_pointer;
|
||||||
|
|
||||||
|
// gNB-CU UE F1AP ID List
|
||||||
|
// C-ifCUDUseparated
|
||||||
|
if (NODE_IS_CU(RC.nrrrc[0]->node_type))
|
||||||
|
{
|
||||||
|
gnb.gnb_cu_ue_f1ap_lst_len = 1;
|
||||||
|
gnb.gnb_cu_ue_f1ap_lst = calloc(gnb.gnb_cu_ue_f1ap_lst_len, sizeof(uint32_t));
|
||||||
|
assert(gnb.gnb_cu_ue_f1ap_lst != NULL);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < gnb.gnb_cu_ue_f1ap_lst_len; i++)
|
||||||
|
{
|
||||||
|
gnb.gnb_cu_ue_f1ap_lst[i] = ue_context_p->ue_context.rrc_ue_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return gnb;
|
return gnb;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,25 +195,6 @@ gnb_du_e2sm_t fill_gnb_du_data(const f1_ue_data_t * rrc_ue_id)
|
|||||||
return gnb_du;
|
return gnb_du;
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
|
||||||
gnb_cu_up_e2sm_t fill_gnb_cu_up_data(const uint32_t rrc_ue_id)
|
|
||||||
{
|
|
||||||
gnb_cu_up_e2sm_t gnb_cu_up = {0};
|
|
||||||
|
|
||||||
// 6.2.3.20
|
|
||||||
// gNB CU CP UE E1AP
|
|
||||||
// Mandatory
|
|
||||||
gnb_cu_up.gnb_cu_cp_ue_e1ap = rrc_ue_id;
|
|
||||||
|
|
||||||
// 6.2.3.25
|
|
||||||
// RAN UE ID
|
|
||||||
// Optional
|
|
||||||
gnb_cu_up.ran_ue_id = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
return gnb_cu_up;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
uint32_t last_dl_rlc_pdu_total_bytes[MAX_MOBILES_PER_GNB] = {0};
|
uint32_t last_dl_rlc_pdu_total_bytes[MAX_MOBILES_PER_GNB] = {0};
|
||||||
uint32_t last_ul_rlc_pdu_total_bytes[MAX_MOBILES_PER_GNB] = {0};
|
uint32_t last_ul_rlc_pdu_total_bytes[MAX_MOBILES_PER_GNB] = {0};
|
||||||
@@ -501,8 +497,9 @@ kpm_ind_msg_format_3_t fill_kpm_ind_msg_frm_3_in_cu(const matched_ues_rrc_t matc
|
|||||||
for (size_t i = 0; i<msg_frm_3.ue_meas_report_lst_len; i++)
|
for (size_t i = 0; i<msg_frm_3.ue_meas_report_lst_len; i++)
|
||||||
{
|
{
|
||||||
// Fill UE ID data
|
// Fill UE ID data
|
||||||
msg_frm_3.meas_report_per_ue[i].ue_meas_report_lst.type = GNB_CU_UP_UE_ID_E2SM;
|
rrc_gNB_ue_context_t *rrc_ue_context_list = rrc_gNB_get_ue_context(RC.nrrrc[0], matched_ues.rrc_ue_id_list[i].secondary_ue);
|
||||||
msg_frm_3.meas_report_per_ue[i].ue_meas_report_lst.gnb_cu_up = fill_gnb_cu_up_data(matched_ues.rrc_ue_id_list[i].secondary_ue);
|
msg_frm_3.meas_report_per_ue[i].ue_meas_report_lst.type = GNB_UE_ID_E2SM;
|
||||||
|
msg_frm_3.meas_report_per_ue[i].ue_meas_report_lst.gnb = fill_gnb_data(rrc_ue_context_list);
|
||||||
|
|
||||||
// Fill UE related info
|
// Fill UE related info
|
||||||
msg_frm_3.meas_report_per_ue[i].ind_msg_format_1 = fill_kpm_ind_msg_frm_1_in_cu(matched_ues.rrc_ue_id_list[i].secondary_ue, i, act_def_fr_1);
|
msg_frm_3.meas_report_per_ue[i].ind_msg_format_1 = fill_kpm_ind_msg_frm_1_in_cu(matched_ues.rrc_ue_id_list[i].secondary_ue, i, act_def_fr_1);
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ git submodule update
|
|||||||
```bash
|
```bash
|
||||||
git clone https://gitlab.eurecom.fr/mosaic5g/flexric flexric
|
git clone https://gitlab.eurecom.fr/mosaic5g/flexric flexric
|
||||||
cd flexric/
|
cd flexric/
|
||||||
git checkout 793daf62b6f7d5b56062ec9f3cf70e874b6538e3
|
git checkout 8ee3aca107a9da8ccf425e623bed18cd40a31fa1
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2.2.2 Build FlexRIC
|
### 2.2.2 Build FlexRIC
|
||||||
|
|||||||
+1
-1
Submodule openair2/E2AP/flexric updated: 793daf62b6...8ee3aca107
Reference in New Issue
Block a user