From 1d93e7a7bca2c288654e8e5c610ee0d6944d5ff2 Mon Sep 17 00:00:00 2001 From: Matej Gradisar Date: Fri, 23 Dec 2022 11:47:22 +0000 Subject: [PATCH] New AMF ID in SMF session context for 'inter-AMF change or mobility' --- src/smf/nsmf-handler.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/smf/nsmf-handler.c b/src/smf/nsmf-handler.c index 2306ea2d3..298c7f9f3 100644 --- a/src/smf/nsmf-handler.c +++ b/src/smf/nsmf-handler.c @@ -618,6 +618,20 @@ bool smf_nsmf_handle_update_sm_context( stream, OGS_SBI_HTTP_STATUS_NOT_FOUND, "No PolicyAssociationId", NULL, NULL, NULL); } + } else if (SmContextUpdateData->serving_nf_id) { + if (sess->serving_nf_id) { + ogs_free(sess->serving_nf_id); + } + ogs_debug("Old serving_nf_id: %s, new serving_nf_id: %s", + sess->serving_nf_id, SmContextUpdateData->serving_nf_id); + sess->serving_nf_id = ogs_strdup(SmContextUpdateData->serving_nf_id); + ogs_assert(sess->serving_nf_id); + + memset(&sendmsg, 0, sizeof(sendmsg)); + response = ogs_sbi_build_response( + &sendmsg, OGS_SBI_HTTP_STATUS_NO_CONTENT); + ogs_assert(response); + ogs_assert(true == ogs_sbi_server_send_response(stream, response)); } else { ogs_error("[%s:%d] No UpdateData", smf_ue->supi, sess->psi); smf_sbi_send_sm_context_update_error(stream,