[UDM/UDR] Follow up on #3690

This commit is contained in:
Sukchan Lee
2025-02-11 07:04:42 +09:00
parent 600a7629ad
commit 8715915469
5 changed files with 16 additions and 9 deletions

View File

@@ -983,10 +983,13 @@ int ogs_sbi_parse_request(
}
}
} else if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_FIELDS)) {
char *v = ogs_hash_this_val(hi);
char *_v = ogs_hash_this_val(hi), *v = NULL;
char *token = NULL;
char *saveptr = NULL;
v = ogs_strdup(_v);
ogs_assert(v);
token = ogs_strtok_r(v, ",", &saveptr);
while (token != NULL) {
if (message->param.num_of_fields < OGS_SBI_MAX_NUM_OF_FIELDS) {
@@ -1001,6 +1004,8 @@ int ogs_sbi_parse_request(
break;
}
}
ogs_free(v);
} else if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_IPV4ADDR)) {
message->param.ipv4addr = ogs_hash_this_val(hi);
} else if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_IPV6PREFIX)) {

View File

@@ -588,7 +588,8 @@ bool udm_nudm_uecm_handle_smf_registration(
OpenAPI_smf_registration_copy(sess->smf_registration, SmfRegistration);
r = udm_sess_sbi_discover_and_send(OGS_SBI_SERVICE_TYPE_NUDR_DR, NULL,
udm_nudr_dr_build_update_smf_context, sess, stream, NULL);
udm_nudr_dr_build_update_smf_context, sess, stream,
UDM_SBI_NO_STATE, NULL);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -609,7 +610,8 @@ bool udm_nudm_uecm_handle_smf_deregistration(
ogs_assert(udm_ue);
r = udm_sess_sbi_discover_and_send(OGS_SBI_SERVICE_TYPE_NUDR_DR, NULL,
udm_nudr_dr_build_delete_smf_context, sess, stream, NULL);
udm_nudr_dr_build_delete_smf_context, sess, stream,
UDM_SBI_NO_STATE, NULL);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);

View File

@@ -170,7 +170,7 @@ int udm_sess_sbi_discover_and_send(
ogs_sbi_service_type_e service_type,
ogs_sbi_discovery_option_t *discovery_option,
ogs_sbi_request_t *(*build)(udm_sess_t *sess, void *data),
udm_sess_t *sess, ogs_sbi_stream_t *stream, void *data)
udm_sess_t *sess, ogs_sbi_stream_t *stream, int state, void *data)
{
int r;
@@ -178,7 +178,7 @@ int udm_sess_sbi_discover_and_send(
r = udm_sbi_discover_and_send(
sess->id, &sess->sbi, service_type, discovery_option,
(ogs_sbi_build_f)build, sess, stream, UDM_SBI_NO_STATE, data);
(ogs_sbi_build_f)build, sess, stream, state, data);
if (r != OGS_OK) {
ogs_error("udm_sess_sbi_discover_and_send() failed");
ogs_assert(true ==

View File

@@ -44,7 +44,7 @@ int udm_sess_sbi_discover_and_send(
ogs_sbi_service_type_e service_type,
ogs_sbi_discovery_option_t *discovery_option,
ogs_sbi_request_t *(*build)(udm_sess_t *sess, void *data),
udm_sess_t *sess, ogs_sbi_stream_t *stream, void *data);
udm_sess_t *sess, ogs_sbi_stream_t *stream, int state, void *data);
#ifdef __cplusplus
}

View File

@@ -486,6 +486,9 @@ bool udr_nudr_dr_handle_subscription_provisioned(
memset(&AccessAndMobilitySubscriptionData, 0,
sizeof(AccessAndMobilitySubscriptionData));
memset(&SubscribedUeAmbr, 0, sizeof(SubscribedUeAmbr));
memset(&NSSAI, 0, sizeof(NSSAI));
/* Apply filtering based on fields query parameter */
if (recvmsg->param.num_of_fields) {
for (i = 0; i < recvmsg->param.num_of_fields; i++) {
@@ -524,8 +527,6 @@ bool udr_nudr_dr_handle_subscription_provisioned(
AccessAndMobilitySubscriptionData.gpsis = GpsiList;
}
memset(&SubscribedUeAmbr, 0, sizeof(SubscribedUeAmbr));
if (processUeAmbr) {
SubscribedUeAmbr.uplink = ogs_sbi_bitrate_to_string(
subscription_data.ambr.uplink, OGS_SBI_BITRATE_KBPS);
@@ -537,7 +538,6 @@ bool udr_nudr_dr_handle_subscription_provisioned(
}
if (processNssai) {
memset(&NSSAI, 0, sizeof(NSSAI));
DefaultSingleNssaiList = OpenAPI_list_create();
for (i = 0; i < subscription_data.num_of_slice; i++) {
slice_data = &subscription_data.slice[i];