Commit 7c4ec50e authored by Robert Schmidt's avatar Robert Schmidt

PLMN check F1 Setup: cellId does not necessarily match

Multiple DUs host cells, whose cell ID cannot match (to identify them
uniquely). Hence, don't check for equality with CU, because otherwise,
we can never connect multiple DUs.
parent c812cea1
...@@ -45,8 +45,7 @@ static bool rrc_gNB_plmn_matches(const gNB_RRC_INST *rrc, const f1ap_served_cell ...@@ -45,8 +45,7 @@ static bool rrc_gNB_plmn_matches(const gNB_RRC_INST *rrc, const f1ap_served_cell
const gNB_RrcConfigurationReq *conf = &rrc->configuration; const gNB_RrcConfigurationReq *conf = &rrc->configuration;
return conf->num_plmn == 1 // F1 supports only one return conf->num_plmn == 1 // F1 supports only one
&& conf->mcc[0] == info->plmn.mcc && conf->mcc[0] == info->plmn.mcc
&& conf->mnc[0] == info->plmn.mnc && conf->mnc[0] == info->plmn.mnc;
&& rrc->nr_cellid == info->nr_cellid;
} }
void rrc_gNB_process_f1_setup_req(f1ap_setup_req_t *req, sctp_assoc_t assoc_id) void rrc_gNB_process_f1_setup_req(f1ap_setup_req_t *req, sctp_assoc_t assoc_id)
...@@ -71,13 +70,11 @@ void rrc_gNB_process_f1_setup_req(f1ap_setup_req_t *req, sctp_assoc_t assoc_id) ...@@ -71,13 +70,11 @@ void rrc_gNB_process_f1_setup_req(f1ap_setup_req_t *req, sctp_assoc_t assoc_id)
f1ap_served_cell_info_t *cell_info = &req->cell[0].info; f1ap_served_cell_info_t *cell_info = &req->cell[0].info;
if (!rrc_gNB_plmn_matches(rrc, cell_info)) { if (!rrc_gNB_plmn_matches(rrc, cell_info)) {
LOG_E(NR_RRC, LOG_E(NR_RRC,
"PLMN mismatch: CU %d%d cellID %ld, DU %d%d cellID %ld\n", "PLMN mismatch: CU %d%d, DU %d%d\n",
rrc->configuration.mcc[0], rrc->configuration.mcc[0],
rrc->configuration.mnc[0], rrc->configuration.mnc[0],
rrc->nr_cellid,
cell_info->plmn.mcc, cell_info->plmn.mcc,
cell_info->plmn.mnc, cell_info->plmn.mnc);
cell_info->nr_cellid);
f1ap_setup_failure_t fail = {.cause = F1AP_CauseRadioNetwork_plmn_not_served_by_the_gNB_CU}; f1ap_setup_failure_t fail = {.cause = F1AP_CauseRadioNetwork_plmn_not_served_by_the_gNB_CU};
rrc->mac_rrc.f1_setup_failure(assoc_id, &fail); rrc->mac_rrc.f1_setup_failure(assoc_id, &fail);
return; return;
......
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