[UDM] Handle SDM unsubscribe

This commit is contained in:
mitmitmitm 2022-11-29 08:10:50 +01:00 committed by Sukchan Lee
parent dbd0e654c8
commit 89c3f3e1c0
3 changed files with 46 additions and 0 deletions

View File

@ -561,3 +561,30 @@ bool udm_nudm_sdm_handle_subscription_create(
return true;
}
bool udm_nudm_sdm_handle_subscription_delete(
udm_ue_t *udm_ue, ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg)
{
ogs_sbi_message_t sendmsg;
ogs_sbi_response_t *response = NULL;
ogs_sbi_server_t *server = NULL;
ogs_assert(udm_ue);
ogs_assert(stream);
ogs_assert(recvmsg);
if (udm_ue->data_change_callback_uri) {
ogs_free(udm_ue->data_change_callback_uri);
udm_ue->data_change_callback_uri = NULL;
}
server = ogs_sbi_server_from_stream(stream);
ogs_assert(server);
memset(&sendmsg, 0, sizeof(sendmsg));
response = ogs_sbi_build_response(&sendmsg, OGS_SBI_HTTP_STATUS_NO_CONTENT);
ogs_assert(response);
ogs_sbi_server_send_response(stream, response);
return true;
}

View File

@ -40,6 +40,8 @@ bool udm_nudm_sdm_handle_subscription_provisioned(
udm_ue_t *udm_ue, ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg);
bool udm_nudm_sdm_handle_subscription_create(
udm_ue_t *udm_ue, ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg);
bool udm_nudm_sdm_handle_subscription_delete(
udm_ue_t *udm_ue, ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg);
#ifdef __cplusplus
}

View File

@ -180,6 +180,23 @@ void udm_ue_state_operational(ogs_fsm_t *s, udm_event_t *e)
"Invalid resource name", message->h.method));
END
break;
CASE(OGS_SBI_HTTP_METHOD_DELETE)
SWITCH(message->h.resource.component[1])
CASE(OGS_SBI_RESOURCE_NAME_SDM_SUBSCRIPTIONS)
udm_nudm_sdm_handle_subscription_delete(
udm_ue, stream, message);
break;
DEFAULT
ogs_error("[%s] Invalid resource name [%s]",
udm_ue->suci, message->h.resource.component[1]);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, message,
"Invalid resource name", message->h.method));
END
break;
DEFAULT
ogs_error("[%s] Invalid HTTP method [%s]",
udm_ue->supi, message->h.method);