From 7c4ec50e230d7329b5b4bc53b0413a6a5ffc972e Mon Sep 17 00:00:00 2001
From: Robert Schmidt <robert.schmidt@openairinterface.org>
Date: Wed, 8 Nov 2023 14:40:55 +0100
Subject: [PATCH] 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.
---
 openair2/RRC/NR/rrc_gNB_du.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/openair2/RRC/NR/rrc_gNB_du.c b/openair2/RRC/NR/rrc_gNB_du.c
index 5423e690e2..4c1da64ed2 100644
--- a/openair2/RRC/NR/rrc_gNB_du.c
+++ b/openair2/RRC/NR/rrc_gNB_du.c
@@ -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;
   return conf->num_plmn == 1 // F1 supports only one
     && conf->mcc[0] == info->plmn.mcc
-    && conf->mnc[0] == info->plmn.mnc
-    && rrc->nr_cellid == info->nr_cellid;
+    && conf->mnc[0] == info->plmn.mnc;
 }
 
 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;
   if (!rrc_gNB_plmn_matches(rrc, cell_info)) {
     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.mnc[0],
-          rrc->nr_cellid,
           cell_info->plmn.mcc,
-          cell_info->plmn.mnc,
-          cell_info->nr_cellid);
+          cell_info->plmn.mnc);
     f1ap_setup_failure_t fail = {.cause = F1AP_CauseRadioNetwork_plmn_not_served_by_the_gNB_CU};
     rrc->mac_rrc.f1_setup_failure(assoc_id, &fail);
     return;
-- 
2.26.2