Simplify pdu session structs members naming to pdusession

Rename the struct members:
`pdusession_param` to `pdusession` in NGAP Initial Context Setup Request
`pdusession_setup_params` in `ngap_pdusession_setup_req_t`
`pdusession_modify_params` and `ngap_pdusession_modify_req_t`
This commit is contained in:
Guido Casati
2025-06-18 10:52:15 +02:00
parent 4ec498c996
commit a36de80e6f
3 changed files with 20 additions and 22 deletions
+3 -3
View File
@@ -589,7 +589,7 @@ typedef struct ngap_initial_context_setup_req_s {
/* Number of pdusession to be setup in the list */ /* Number of pdusession to be setup in the list */
uint8_t nb_of_pdusessions; uint8_t nb_of_pdusessions;
/* list of pdusession to be setup by RRC layers */ /* list of pdusession to be setup by RRC layers */
pdusession_t pdusession_param[NGAP_MAX_PDU_SESSION]; pdusession_t pdusession[NGAP_MAX_PDU_SESSION];
/* Mobility Restriction List */ /* Mobility Restriction List */
uint8_t mobility_restriction_flag; uint8_t mobility_restriction_flag;
@@ -638,7 +638,7 @@ typedef struct ngap_pdusession_setup_req_s {
uint8_t nb_pdusessions_tosetup; uint8_t nb_pdusessions_tosetup;
/* E RAB setup request */ /* E RAB setup request */
pdusession_t pdusession_setup_params[NGAP_MAX_PDU_SESSION]; pdusession_t pdusession[NGAP_MAX_PDU_SESSION];
/* UE Aggregated Max Bitrates */ /* UE Aggregated Max Bitrates */
ngap_ambr_t ueAggMaxBitRate; ngap_ambr_t ueAggMaxBitRate;
@@ -694,7 +694,7 @@ typedef struct ngap_pdusession_modify_req_s {
uint8_t nb_pdusessions_tomodify; uint8_t nb_pdusessions_tomodify;
/* pdu session modify request */ /* pdu session modify request */
pdusession_t pdusession_modify_params[NGAP_MAX_PDU_SESSION]; pdusession_t pdusession[NGAP_MAX_PDU_SESSION];
} ngap_pdusession_modify_req_t; } ngap_pdusession_modify_req_t;
typedef struct ngap_pdusession_modify_resp_s { typedef struct ngap_pdusession_modify_resp_s {
+6 -8
View File
@@ -479,7 +479,7 @@ static void send_ngap_initial_context_setup_resp_fail(instance_t instance,
resp->gNB_ue_ngap_id = msg->gNB_ue_ngap_id; resp->gNB_ue_ngap_id = msg->gNB_ue_ngap_id;
for (int i = 0; i < msg->nb_of_pdusessions; i++) { for (int i = 0; i < msg->nb_of_pdusessions; i++) {
fill_pdu_session_resource_failed_to_setup_item(&resp->pdusessions_failed[i], msg->pdusession_param[i].pdusession_id, cause); fill_pdu_session_resource_failed_to_setup_item(&resp->pdusessions_failed[i], msg->pdusession[i].pdusession_id, cause);
} }
resp->nb_of_pdusessions = 0; resp->nb_of_pdusessions = 0;
resp->nb_of_pdusessions_failed = msg->nb_of_pdusessions; resp->nb_of_pdusessions_failed = msg->nb_of_pdusessions;
@@ -521,7 +521,7 @@ int rrc_gNB_process_NGAP_INITIAL_CONTEXT_SETUP_REQ(MessageDef *msg_p, instance_t
UE->initial_pdus = calloc(UE->n_initial_pdu, sizeof(*UE->initial_pdus)); UE->initial_pdus = calloc(UE->n_initial_pdu, sizeof(*UE->initial_pdus));
AssertFatal(UE->initial_pdus != NULL, "out of memory\n"); AssertFatal(UE->initial_pdus != NULL, "out of memory\n");
for (int i = 0; i < UE->n_initial_pdu; ++i) for (int i = 0; i < UE->n_initial_pdu; ++i)
UE->initial_pdus[i] = req->pdusession_param[i]; UE->initial_pdus[i] = req->pdusession[i];
} }
/* security */ /* security */
@@ -855,9 +855,7 @@ static void send_ngap_pdu_session_setup_resp_fail(instance_t instance, ngap_pdus
resp->nb_of_pdusessions_failed = msg->nb_pdusessions_tosetup; resp->nb_of_pdusessions_failed = msg->nb_pdusessions_tosetup;
resp->nb_of_pdusessions = 0; resp->nb_of_pdusessions = 0;
for (int i = 0; i < resp->nb_of_pdusessions_failed; ++i) { for (int i = 0; i < resp->nb_of_pdusessions_failed; ++i) {
fill_pdu_session_resource_failed_to_setup_item(&resp->pdusessions_failed[i], fill_pdu_session_resource_failed_to_setup_item(&resp->pdusessions_failed[i], msg->pdusession[i].pdusession_id, cause);
msg->pdusession_setup_params[i].pdusession_id,
cause);
} }
itti_send_msg_to_task(TASK_NGAP, instance, msg_resp); itti_send_msg_to_task(TASK_NGAP, instance, msg_resp);
} }
@@ -903,7 +901,7 @@ void rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(MessageDef *msg_p, instance_t ins
// At least one because marking one as existing, and setting up another, that // At least one because marking one as existing, and setting up another, that
// might be more work than is worth it. See 8.2.1.4 in 38.413 // might be more work than is worth it. See 8.2.1.4 in 38.413
for (int i = 0; i < msg->nb_pdusessions_tosetup; ++i) { for (int i = 0; i < msg->nb_pdusessions_tosetup; ++i) {
const pdusession_t *p = &msg->pdusession_setup_params[i]; const pdusession_t *p = &msg->pdusession[i];
rrc_pdu_session_param_t *exist = find_pduSession(UE, p->pdusession_id, false /* don't create */); rrc_pdu_session_param_t *exist = find_pduSession(UE, p->pdusession_id, false /* don't create */);
if (exist) { if (exist) {
LOG_E(NR_RRC, "UE %d: already has existing PDU session %d rejecting PDU Session Resource Setup Request\n", UE->rrc_ue_id, p->pdusession_id); LOG_E(NR_RRC, "UE %d: already has existing PDU session %d rejecting PDU Session Resource Setup Request\n", UE->rrc_ue_id, p->pdusession_id);
@@ -936,7 +934,7 @@ void rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(MessageDef *msg_p, instance_t ins
return; return;
} }
if (!trigger_bearer_setup(rrc, UE, msg->nb_pdusessions_tosetup, msg->pdusession_setup_params, msg->ueAggMaxBitRate.br_dl)) { if (!trigger_bearer_setup(rrc, UE, msg->nb_pdusessions_tosetup, msg->pdusession, msg->ueAggMaxBitRate.br_dl)) {
// Reject PDU Session Resource setup if there's no CU-UP associated // Reject PDU Session Resource setup if there's no CU-UP associated
LOG_W(NR_RRC, "UE %d: reject PDU Session Setup in PDU Session Resource Setup Response\n", UE->rrc_ue_id); LOG_W(NR_RRC, "UE %d: reject PDU Session Setup in PDU Session Resource Setup Response\n", UE->rrc_ue_id);
ngap_cause_t cause = {.type = NGAP_CAUSE_RADIO_NETWORK, .value = NGAP_CAUSE_RADIO_NETWORK_RESOURCES_NOT_AVAILABLE_FOR_THE_SLICE}; ngap_cause_t cause = {.type = NGAP_CAUSE_RADIO_NETWORK, .value = NGAP_CAUSE_RADIO_NETWORK_RESOURCES_NOT_AVAILABLE_FOR_THE_SLICE};
@@ -1064,7 +1062,7 @@ int rrc_gNB_process_NGAP_PDUSESSION_MODIFY_REQ(MessageDef *msg_p, instance_t ins
bool all_failed = true; bool all_failed = true;
for (int i = 0; i < req->nb_pdusessions_tomodify; i++) { for (int i = 0; i < req->nb_pdusessions_tomodify; i++) {
rrc_pdu_session_param_t *sess; rrc_pdu_session_param_t *sess;
const pdusession_t *sessMod = req->pdusession_modify_params + i; const pdusession_t *sessMod = req->pdusession + i;
for (sess = UE->pduSession; sess < UE->pduSession + UE->nb_of_pdusessions; sess++) for (sess = UE->pduSession; sess < UE->pduSession + UE->nb_of_pdusessions; sess++)
if (sess->param.pdusession_id == sessMod->pdusession_id) if (sess->param.pdusession_id == sessMod->pdusession_id)
break; break;
+11 -11
View File
@@ -762,13 +762,13 @@ static int ngap_gNB_handle_initial_context_request(sctp_assoc_t assoc_id, uint32
for (i = 0; i < ie->value.choice.PDUSessionResourceSetupListCxtReq.list.count; i++) { for (i = 0; i < ie->value.choice.PDUSessionResourceSetupListCxtReq.list.count; i++) {
NGAP_PDUSessionResourceSetupItemCxtReq_t *item_p = ie->value.choice.PDUSessionResourceSetupListCxtReq.list.array[i]; NGAP_PDUSessionResourceSetupItemCxtReq_t *item_p = ie->value.choice.PDUSessionResourceSetupListCxtReq.list.array[i];
msg->pdusession_param[i].pdusession_id = item_p->pDUSessionID; msg->pdusession[i].pdusession_id = item_p->pDUSessionID;
msg->pdusession_param[i].nssai = decode_ngap_nssai(&item_p->s_NSSAI); msg->pdusession[i].nssai = decode_ngap_nssai(&item_p->s_NSSAI);
if (item_p->nAS_PDU) { if (item_p->nAS_PDU) {
msg->pdusession_param[i].nas_pdu = create_byte_array(item_p->nAS_PDU->size, item_p->nAS_PDU->buf); msg->pdusession[i].nas_pdu = create_byte_array(item_p->nAS_PDU->size, item_p->nAS_PDU->buf);
} }
OCTET_STRING_t *transfer = &item_p->pDUSessionResourceSetupRequestTransfer; OCTET_STRING_t *transfer = &item_p->pDUSessionResourceSetupRequestTransfer;
msg->pdusession_param[i].pdusessionTransfer = create_byte_array(transfer->size, transfer->buf); msg->pdusession[i].pdusessionTransfer = create_byte_array(transfer->size, transfer->buf);
} }
} }
@@ -936,14 +936,14 @@ static int ngap_gNB_handle_pdusession_setup_request(sctp_assoc_t assoc_id, uint3
for (int i = 0; i < ie->value.choice.PDUSessionResourceSetupListSUReq.list.count; i++) { for (int i = 0; i < ie->value.choice.PDUSessionResourceSetupListSUReq.list.count; i++) {
NGAP_PDUSessionResourceSetupItemSUReq_t *item_p = ie->value.choice.PDUSessionResourceSetupListSUReq.list.array[i]; NGAP_PDUSessionResourceSetupItemSUReq_t *item_p = ie->value.choice.PDUSessionResourceSetupListSUReq.list.array[i];
msg->pdusession_setup_params[i].pdusession_id = item_p->pDUSessionID; msg->pdusession[i].pdusession_id = item_p->pDUSessionID;
// S-NSSAI // S-NSSAI
msg->pdusession_setup_params[i].nssai = decode_ngap_nssai(&item_p->s_NSSAI); msg->pdusession[i].nssai = decode_ngap_nssai(&item_p->s_NSSAI);
OCTET_STRING_t *transfer = &item_p->pDUSessionResourceSetupRequestTransfer; OCTET_STRING_t *transfer = &item_p->pDUSessionResourceSetupRequestTransfer;
msg->pdusession_setup_params[i].nas_pdu = create_byte_array(item_p->pDUSessionNAS_PDU->size, item_p->pDUSessionNAS_PDU->buf); msg->pdusession[i].nas_pdu = create_byte_array(item_p->pDUSessionNAS_PDU->size, item_p->pDUSessionNAS_PDU->buf);
msg->pdusession_setup_params[i].pdusessionTransfer = create_byte_array(transfer->size, transfer->buf); msg->pdusession[i].pdusessionTransfer = create_byte_array(transfer->size, transfer->buf);
} }
itti_send_msg_to_task(TASK_RRC_GNB, ue_desc_p->gNB_instance->instance, message_p); itti_send_msg_to_task(TASK_RRC_GNB, ue_desc_p->gNB_instance->instance, message_p);
@@ -1116,13 +1116,13 @@ static int ngap_gNB_handle_pdusession_modify_request(sctp_assoc_t assoc_id, uint
for (int i = 0; i < ie->value.choice.PDUSessionResourceModifyListModReq.list.count; i++) { for (int i = 0; i < ie->value.choice.PDUSessionResourceModifyListModReq.list.count; i++) {
NGAP_PDUSessionResourceModifyItemModReq_t *item_p = ie->value.choice.PDUSessionResourceModifyListModReq.list.array[i]; NGAP_PDUSessionResourceModifyItemModReq_t *item_p = ie->value.choice.PDUSessionResourceModifyListModReq.list.array[i];
msg->pdusession_modify_params[i].pdusession_id = item_p->pDUSessionID; msg->pdusession[i].pdusession_id = item_p->pDUSessionID;
// check for the NAS PDU // check for the NAS PDU
if (item_p->nAS_PDU != NULL && item_p->nAS_PDU->size > 0) { if (item_p->nAS_PDU != NULL && item_p->nAS_PDU->size > 0) {
msg->pdusession_modify_params[i].nas_pdu = create_byte_array(item_p->nAS_PDU->size, item_p->nAS_PDU->buf); msg->pdusession[i].nas_pdu = create_byte_array(item_p->nAS_PDU->size, item_p->nAS_PDU->buf);
OCTET_STRING_t *transfer = &item_p->pDUSessionResourceModifyRequestTransfer; OCTET_STRING_t *transfer = &item_p->pDUSessionResourceModifyRequestTransfer;
msg->pdusession_modify_params[i].pdusessionTransfer = create_byte_array(transfer->size, transfer->buf); msg->pdusession[i].pdusessionTransfer = create_byte_array(transfer->size, transfer->buf);
} else { } else {
LOG_W(NGAP, "received pdu session modify with void content for UE %u, pdu session %lu\n", msg->gNB_ue_ngap_id, item_p->pDUSessionID); LOG_W(NGAP, "received pdu session modify with void content for UE %u, pdu session %lu\n", msg->gNB_ue_ngap_id, item_p->pDUSessionID);
continue; continue;