diff --git a/openair3/NAS/NR_UE/nr_nas_msg.c b/openair3/NAS/NR_UE/nr_nas_msg.c index d1e1a4d448..28ba7d6ffe 100644 --- a/openair3/NAS/NR_UE/nr_nas_msg.c +++ b/openair3/NAS/NR_UE/nr_nas_msg.c @@ -1050,7 +1050,7 @@ static void process_pdu_session_addr(pdu_session_establishment_accept_msg_t *msg { uint8_t *addr = msg->pdu_addr_ie.pdu_addr_oct; - switch (msg->pdu_type) { + switch (msg->pdu_addr_ie.pdu_type) { case PDU_SESSION_TYPE_IPV4: { char ip[20]; capture_ipv4_addr(&addr[0], ip, sizeof(ip)); @@ -1130,7 +1130,12 @@ static void handle_pdu_session_accept(uint8_t *pdu_buffer, uint32_t msg_length) LOG_E(NAS, "decode_pdu_session_establishment_accept_msg failure\n"); // process PDU Session - process_pdu_session_addr(&msg); + + if (msg.pdu_addr_ie.pdu_length) + process_pdu_session_addr(&msg); + else + LOG_W(NAS, "Optional PDU Address IE was not provided\n"); + set_qfi_pduid(msg.qos_rules.rule->qfi, sm_header.pdu_session_id); }