RRC: add UE ID to QoS-related logs and fix LOG_W in Modify transaction

Signed-off-by: Guido Casati <guido.casati@openairinterface.org>
This commit is contained in:
Guido Casati
2026-04-26 23:36:08 +02:00
parent f02c84fcfc
commit 4a325ccf09
3 changed files with 18 additions and 12 deletions

View File

@@ -938,7 +938,10 @@ static rrc_action_t rrc_gNB_action_from_pdusession_status(gNB_RRC_UE_t *ue_p,
}
if (item->status == PDU_SESSION_STATUS_TOMODIFY) {
ASSERT_PDU_ACTION_SINGLE(action, RRC_PDUSESSION_MODIFY);
LOG_I(NR_RRC, "PDU Session Modify: status to TOMODIFY for PDU Session %d \n", item->param.pdusession_id);
LOG_I(NR_RRC,
"UE %d: PDU Session Modify: status to TOMODIFY for PDU Session %d\n",
ue_p->rrc_ue_id,
item->param.pdusession_id);
action = RRC_PDUSESSION_MODIFY;
} else if (item->status == PDU_SESSION_STATUS_NEW) {
ASSERT_PDU_ACTION_SINGLE(action, RRC_PDUSESSION_ESTABLISH);

View File

@@ -174,7 +174,7 @@ static nr_guami_t get_guami(const uint32_t amf_Id, const plmn_id_t plmn)
}
/** @brief Copy NGAP PDU Session Transfer item to RRC pdusession_t struct */
static void cp_pdusession_transfer_to_pdusession(pdusession_t *dst, const pdusession_transfer_t *src)
static void cp_pdusession_transfer_to_pdusession(pdusession_t *dst, const pdusession_transfer_t *src, int ue_id)
{
dst->pdu_session_type = src->pdu_session_type;
dst->n3_incoming = src->n3_incoming;
@@ -189,18 +189,23 @@ static void cp_pdusession_transfer_to_pdusession(pdusession_t *dst, const pduses
LOG_E(NR_RRC, "Failed to add QoS flow %d for PDU session %d\n", src->qos[i].qfi, dst->pdusession_id);
continue;
}
LOG_I(NR_RRC,
"UE %d: added QoS flow with QFI=%d, total number of QoS flows = %ld\n",
ue_id,
src->qos[i].qfi,
seq_arr_size(&dst->qos));
}
}
/** @brief Copy NGAP PDU Session Resource item to RRC pdusession_t struct to setup */
static void cp_pdusession_resource_item_to_pdusession(pdusession_t *dst, const pdusession_resource_item_t *src)
static void cp_pdusession_resource_item_to_pdusession(pdusession_t *dst, const pdusession_resource_item_t *src, int ue_id)
{
dst->pdusession_id = src->pdusession_id;
dst->nas_pdu = src->nas_pdu;
dst->nssai = src->nssai;
// Use the PDU session transfer function to handle QoS and other PDU session transfer-specific fields
cp_pdusession_transfer_to_pdusession(dst, &src->pdusessionTransfer);
cp_pdusession_transfer_to_pdusession(dst, &src->pdusessionTransfer, ue_id);
}
/**
@@ -527,7 +532,7 @@ int rrc_gNB_process_NGAP_INITIAL_CONTEXT_SETUP_REQ(MessageDef *msg_p, instance_t
/* This is a PDU session that is not yet active for this UE: add it to the list */
DevAssert(ps_count < req->nb_of_pdusessions);
cp_pdusession_resource_item_to_pdusession(&psessions[ps_count++], src);
cp_pdusession_resource_item_to_pdusession(&psessions[ps_count++], src, UE->rrc_ue_id);
}
UE->n_initial_pdu = 0;
@@ -916,7 +921,7 @@ void rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(MessageDef *msg_p, instance_t ins
pdusession_t to_setup[NR_MAX_NB_PDU_SESSIONS] = {0};
for (int i = 0; i < msg->nb_pdusessions_tosetup; ++i)
cp_pdusession_resource_item_to_pdusession(&to_setup[i], &msg->pdusession[i]);
cp_pdusession_resource_item_to_pdusession(&to_setup[i], &msg->pdusession[i], UE->rrc_ue_id);
/** Set AMBR if provided (optional) */
if (msg->has_ue_ambr) {
@@ -1350,7 +1355,7 @@ int rrc_gNB_send_NGAP_PDUSESSION_MODIFY_RESP(gNB_RRC_INST *rrc, gNB_RRC_UE_t *UE
FOR_EACH_SEQ_ARR(rrc_pdu_session_param_t *, session, &UE->pduSessions) {
if (xid != session->xid) {
LOG_W(NR_RRC,
LOG_D(NR_RRC,
"xid does not correspond (PDU Session %d, status %d, xid %d/%d) \n ",
session->param.pdusession_id,
session->status,
@@ -1543,7 +1548,7 @@ int rrc_gNB_process_Handover_Request(gNB_RRC_INST *rrc, ngap_handover_request_t
pdu->nssai = ho_pdu->nssai;
pdu->pdu_session_type = ho_pdu->pdu_session_type;
pdu->pdusession_id = ho_pdu->pdusession_id;
cp_pdusession_transfer_to_pdusession(pdu, &ho_pdu->pdusessionTransfer);
cp_pdusession_transfer_to_pdusession(pdu, &ho_pdu->pdusessionTransfer, UE->rrc_ue_id);
}
// Store UE aggregate maximum bitrate

View File

@@ -111,8 +111,6 @@ nr_rrc_qos_t *add_qos(seq_arr_t *qos, const pdusession_level_qos_parameter_t *in
// Double check successful add
nr_rrc_qos_t *added = find_qos(qos, in->qfi);
DevAssert(added);
LOG_I(NR_RRC, "Added QoS flow with qfi=%d, total number of QoS flows = %ld\n", in->qfi, seq_arr_size(qos));
return added;
}
@@ -152,7 +150,6 @@ bool rm_qos(seq_arr_t *flows, int qfi)
return false;
}
LOG_I(NR_RRC, "Removing QoS flow with QFI=%d\n", qfi);
seq_arr_erase_deep(flows, qos, free_qos);
return true;
}
@@ -588,7 +585,8 @@ int nr_rrc_find_suitable_drb_for_qos(gNB_RRC_UE_t *UE,
if (has_capacity && total_flows_on_drb < MAX_QOS_FLOWS_PER_DRB_TOTAL) {
LOG_I(NR_RRC,
"Found suitable DRB %d to multiplex 5QI %d (QFI %d) - current flows: GBR=%d, Non-GBR=%d\n",
"UE %d: found suitable DRB %d to multiplex 5QI %d (QFI %d) - current flows: GBR=%d, Non-GBR=%d\n",
UE->rrc_ue_id,
drb->drb_id,
five_qi,
qos_params->qfi,