From 4e30f11e3a09a5b010f7def53914f786e0fe8db8 Mon Sep 17 00:00:00 2001 From: rmagueta Date: Wed, 8 Sep 2021 08:38:52 +0100 Subject: [PATCH] Temporary fix for SRB2 integrity algorithm --- openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c index 59809273fd..27402a1408 100644 --- a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c +++ b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c @@ -754,12 +754,21 @@ static void add_srb(int is_gnb, int rnti, struct NR_SRB_ToAddMod *s) LOG_D(PDCP, "%s:%d:%s: warning SRB %d already exist for ue %d, do nothing\n", __FILE__, __LINE__, __FUNCTION__, srb_id, rnti); } else { - pdcp_srb = new_nr_pdcp_entity(NR_PDCP_SRB, is_gnb, srb_id, - 0, 0, 0, 0, // sdap parameters - deliver_sdu_srb, ue, deliver_pdu_srb, ue, - 12, t_Reordering, -1, - 0, 0, - NULL, NULL); + if(ue->srb[0] != NULL) { + pdcp_srb = new_nr_pdcp_entity(NR_PDCP_SRB, is_gnb, srb_id, + 0, 0, 0, 0, // sdap parameters + deliver_sdu_srb, ue, deliver_pdu_srb, ue, + 12, t_Reordering, -1, + ue->srb[0]->ciphering_algorithm, ue->srb[0]->integrity_algorithm, + ue->srb[0]->ciphering_key, ue->srb[0]->integrity_key); + } else { + pdcp_srb = new_nr_pdcp_entity(NR_PDCP_SRB, is_gnb, srb_id, + 0, 0, 0, 0, // sdap parameters + deliver_sdu_srb, ue, deliver_pdu_srb, ue, + 12, t_Reordering, -1, + 0, 0, + NULL, NULL); + } nr_pdcp_ue_add_srb_pdcp_entity(ue, srb_id, pdcp_srb); LOG_D(PDCP, "%s:%d:%s: added srb %d to ue rnti %x\n", __FILE__, __LINE__, __FUNCTION__, srb_id, rnti);