diff --git a/src/amf/gmm-sm.c b/src/amf/gmm-sm.c index 703e05990..e3781962e 100644 --- a/src/amf/gmm-sm.c +++ b/src/amf/gmm-sm.c @@ -246,13 +246,12 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) ogs_expect(r == OGS_OK); ogs_assert(r != OGS_ERROR); } else if (PCF_AM_POLICY_ASSOCIATED(amf_ue)) { - r = amf_ue_sbi_discover_and_send( - OGS_SBI_SERVICE_TYPE_NPCF_AM_POLICY_CONTROL, - NULL, - amf_npcf_am_policy_control_build_delete, - amf_ue, state, NULL); - ogs_expect(r == OGS_OK); - ogs_assert(r != OGS_ERROR); + r = amf_ue_sbi_discover_and_send( + OGS_SBI_SERVICE_TYPE_NPCF_AM_POLICY_CONTROL, NULL, + amf_npcf_am_policy_control_build_delete, + amf_ue, state, NULL); + ogs_expect(r == OGS_OK); + ogs_assert(r != OGS_ERROR); } break; @@ -267,6 +266,8 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) ogs_assert(sbi_message); state = e->h.sbi.state; + xact_count = amf_sess_xact_count(amf_ue); + SWITCH(sbi_message->h.service.name) CASE(OGS_SBI_SERVICE_NAME_NAUSF_AUTH) SWITCH(sbi_message->h.resource.component[0]) @@ -293,6 +294,57 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) ogs_error("[%s] Ignore SBI message", amf_ue->suci); break; CASE(OGS_SBI_HTTP_METHOD_DELETE) + /* + * gmm_state_de_registered() + * + * - AMF_UE_INITIATED_DE_REGISTERED + * 1. PDU session establishment request + * 2. PDUSessionResourceSetupRequest + + * PDU session establishment accept + * 3. PDUSessionResourceSetupResponse + * 4. Authentication Result Removal + * 5. AM_Policy_Association_Termination + * 6. Deregistration request + * 7. UEContextReleaseCommand + * 8. UEContextReleaseComplete + * + * - AMF_RELEASE_SM_CONTEXT_NO_STATE + * 1. PDU session release request + * 2. PDUSessionResourceReleaseCommand + + * PDU session release command + * 3. PDUSessionResourceReleaseREsponse + * 4. PDU session release complete + * 5. Authentication Result Removal + * 6. AM_Policy_Association_Termination + * 7. Deregistration request + * 8. UEContextReleaseCommand + * 9. UEContextReleaseComplete + * + * - AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED + * 1. Implicit Timer Expiration + * 2. UDM_SDM_Unsubscribe + * 3. UDM_UECM_Deregisration + * 4. PDU session release request + * 5. PDUSessionResourceReleaseCommand + + * PDU session release command + * 6. PDUSessionResourceReleaseResponse + * 7. Authentication Result Removal + * 8. AM_Policy_Association_Termination + * + * - AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED + * 1. UDM_UECM_DeregistrationNotification + * 2. Deregistration request + * 3. UDM_SDM_Unsubscribe + * 4. UDM_UECM_Deregisration + * 5. PDU session release request + * 6. PDUSessionResourceReleaseCommand + + * PDU session release command + * 7. PDUSessionResourceReleaseResponse + * 8. Authentication Result Removal + * 9. AM_Policy_Association_Termination + * 10.Deregistration accept + * 11.Signalling Connecion Release + */ CLEAR_5G_AKA_CONFIRMATION(amf_ue); if (state == AMF_RELEASE_SM_CONTEXT_NO_STATE || @@ -317,8 +369,6 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) state == AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED) { - xact_count = amf_sess_xact_count(amf_ue); - memset(¶m, 0, sizeof(param)); param.ue_location = true; param.ue_timezone = true; @@ -380,14 +430,18 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) SWITCH(sbi_message->h.method) CASE(OGS_SBI_HTTP_METHOD_DELETE) /* + * gmm_state_de_registered() + * * - AMF_UE_INITIATED_DE_REGISTERED * 1. PDU session establishment request * 2. PDUSessionResourceSetupRequest + * PDU session establishment accept * 3. PDUSessionResourceSetupResponse - * 4. Deregistration request - * 5. UEContextReleaseCommand - * 6. UEContextReleaseComplete + * 4. Authentication Result Removal + * 5. AM_Policy_Association_Termination + * 6. Deregistration request + * 7. UEContextReleaseCommand + * 8. UEContextReleaseComplete * * - AMF_RELEASE_SM_CONTEXT_NO_STATE * 1. PDU session release request @@ -395,12 +449,41 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) * PDU session release command * 3. PDUSessionResourceReleaseREsponse * 4. PDU session release complete - * 5. Deregistration request - * 6. UEContextReleaseCommand - * 7. UEContextReleaseComplete + * 5. Authentication Result Removal + * 6. AM_Policy_Association_Termination + * 7. Deregistration request + * 8. UEContextReleaseCommand + * 9. UEContextReleaseComplete + * + * - AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED + * 1. Implicit Timer Expiration + * 2. UDM_SDM_Unsubscribe + * 3. UDM_UECM_Deregisration + * 4. PDU session release request + * 5. PDUSessionResourceReleaseCommand + + * PDU session release command + * 6. PDUSessionResourceReleaseResponse + * 7. Authentication Result Removal + * 8. AM_Policy_Association_Termination + * + * - AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED + * 1. UDM_UECM_DeregistrationNotification + * 2. Deregistration request + * 3. UDM_SDM_Unsubscribe + * 4. UDM_UECM_Deregisration + * 5. PDU session release request + * 6. PDUSessionResourceReleaseCommand + + * PDU session release command + * 7. PDUSessionResourceReleaseResponse + * 8. Authentication Result Removal + * 9. AM_Policy_Association_Termination + * 10.Deregistration accept + * 11.Signalling Connecion Release */ if (state == AMF_RELEASE_SM_CONTEXT_NO_STATE || - state == AMF_UE_INITIATED_DE_REGISTERED) { + state == AMF_UE_INITIATED_DE_REGISTERED || + state == AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED || + state == AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED) { UDM_SDM_CLEAR(amf_ue); r = amf_ue_sbi_discover_and_send( @@ -444,33 +527,62 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) CASE(OGS_SBI_HTTP_METHOD_PATCH) SWITCH(sbi_message->h.resource.component[2]) CASE(OGS_SBI_RESOURCE_NAME_AMF_3GPP_ACCESS) - /* - * - AMF_UE_INITIATED_DE_REGISTERED - * 1. PDU session establishment request - * 2. PDUSessionResourceSetupRequest + - * PDU session establishment accept - * 3. PDUSessionResourceSetupResponse - * 4. Deregistration request - * 5. UEContextReleaseCommand - * 6. UEContextReleaseComplete - * - * - AMF_RELEASE_SM_CONTEXT_NO_STATE - * 1. PDU session release request - * 2. PDUSessionResourceReleaseCommand + - * PDU session release command - * 3. PDUSessionResourceReleaseREsponse - * 4. PDU session release complete - * 5. Deregistration request - * 6. UEContextReleaseCommand - * 7. UEContextReleaseComplete - */ + /* + * gmm_state_de_registered() + * + * - AMF_UE_INITIATED_DE_REGISTERED + * 1. PDU session establishment request + * 2. PDUSessionResourceSetupRequest + + * PDU session establishment accept + * 3. PDUSessionResourceSetupResponse + * 4. Authentication Result Removal + * 5. AM_Policy_Association_Termination + * 6. Deregistration request + * 7. UEContextReleaseCommand + * 8. UEContextReleaseComplete + * + * - AMF_RELEASE_SM_CONTEXT_NO_STATE + * 1. PDU session release request + * 2. PDUSessionResourceReleaseCommand + + * PDU session release command + * 3. PDUSessionResourceReleaseREsponse + * 4. PDU session release complete + * 5. Authentication Result Removal + * 6. AM_Policy_Association_Termination + * 7. Deregistration request + * 8. UEContextReleaseCommand + * 9. UEContextReleaseComplete + * + * - AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED + * 1. Implicit Timer Expiration + * 2. UDM_SDM_Unsubscribe + * 3. UDM_UECM_Deregisration + * 4. PDU session release request + * 5. PDUSessionResourceReleaseCommand + + * PDU session release command + * 6. PDUSessionResourceReleaseResponse + * 7. Authentication Result Removal + * 8. AM_Policy_Association_Termination + * + * - AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED + * 1. UDM_UECM_DeregistrationNotification + * 2. Deregistration request + * 3. UDM_SDM_Unsubscribe + * 4. UDM_UECM_Deregisration + * 5. PDU session release request + * 6. PDUSessionResourceReleaseCommand + + * PDU session release command + * 7. PDUSessionResourceReleaseResponse + * 8. Authentication Result Removal + * 9. AM_Policy_Association_Termination + * 10.Deregistration accept + * 11.Signalling Connecion Release + */ if (state == AMF_RELEASE_SM_CONTEXT_NO_STATE || state == AMF_UE_INITIATED_DE_REGISTERED) { - if (CHECK_5G_AKA_CONFIRMATION(amf_ue)) { r = amf_ue_sbi_discover_and_send( - OGS_SBI_SERVICE_TYPE_NAUSF_AUTH, - NULL, + OGS_SBI_SERVICE_TYPE_NAUSF_AUTH, NULL, amf_nausf_auth_build_authenticate_delete, amf_ue, state, NULL); ogs_expect(r == OGS_OK); @@ -488,6 +600,39 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) ogs_expect(r == OGS_OK); ogs_assert(r != OGS_ERROR); } + } else if (state == + AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED || + state == + AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED) { + if (CHECK_5G_AKA_CONFIRMATION(amf_ue)) { + r = amf_ue_sbi_discover_and_send( + OGS_SBI_SERVICE_TYPE_NAUSF_AUTH, NULL, + amf_nausf_auth_build_authenticate_delete, + amf_ue, state, NULL); + ogs_expect(r == OGS_OK); + ogs_assert(r != OGS_ERROR); + } else { + memset(¶m, 0, sizeof(param)); + param.ue_location = true; + param.ue_timezone = true; + + amf_sbi_send_release_all_sessions( + NULL, amf_ue, state, ¶m); + + if (!AMF_SESSION_RELEASE_PENDING(amf_ue) && + amf_sess_xact_count(amf_ue) == xact_count) { + + if (PCF_AM_POLICY_ASSOCIATED(amf_ue)) { + r = amf_ue_sbi_discover_and_send( + OGS_SBI_SERVICE_TYPE_NPCF_AM_POLICY_CONTROL, + NULL, + amf_npcf_am_policy_control_build_delete, + amf_ue, state, NULL); + ogs_expect(r == OGS_OK); + ogs_assert(r != OGS_ERROR); + } + } + } } else { ogs_fatal("Invalid state [%d]", state); ogs_assert_if_reached(); @@ -527,14 +672,18 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) CASE(OGS_SBI_HTTP_METHOD_DELETE) /* + * gmm_state_de_registered() + * * - AMF_UE_INITIATED_DE_REGISTERED * 1. PDU session establishment request * 2. PDUSessionResourceSetupRequest + * PDU session establishment accept * 3. PDUSessionResourceSetupResponse - * 4. Deregistration request - * 5. UEContextReleaseCommand - * 6. UEContextReleaseComplete + * 4. Authentication Result Removal + * 5. AM_Policy_Association_Termination + * 6. Deregistration request + * 7. UEContextReleaseCommand + * 8. UEContextReleaseComplete * * - AMF_RELEASE_SM_CONTEXT_NO_STATE * 1. PDU session release request @@ -542,9 +691,36 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) * PDU session release command * 3. PDUSessionResourceReleaseREsponse * 4. PDU session release complete - * 5. Deregistration request - * 6. UEContextReleaseCommand - * 7. UEContextReleaseComplete + * 5. Authentication Result Removal + * 6. AM_Policy_Association_Termination + * 7. Deregistration request + * 8. UEContextReleaseCommand + * 9. UEContextReleaseComplete + * + * - AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED + * 1. Implicit Timer Expiration + * 2. UDM_SDM_Unsubscribe + * 3. UDM_UECM_Deregisration + * 4. PDU session release request + * 5. PDUSessionResourceReleaseCommand + + * PDU session release command + * 6. PDUSessionResourceReleaseResponse + * 7. Authentication Result Removal + * 8. AM_Policy_Association_Termination + * + * - AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED + * 1. UDM_UECM_DeregistrationNotification + * 2. Deregistration request + * 3. UDM_SDM_Unsubscribe + * 4. UDM_UECM_Deregisration + * 5. PDU session release request + * 6. PDUSessionResourceReleaseCommand + + * PDU session release command + * 7. PDUSessionResourceReleaseResponse + * 8. Authentication Result Removal + * 9. AM_Policy_Association_Termination + * 10.Deregistration accept + * 11.Signalling Connecion Release */ if (state == AMF_RELEASE_SM_CONTEXT_NO_STATE || state == AMF_UE_INITIATED_DE_REGISTERED) { @@ -553,6 +729,27 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) ogs_assert(r != OGS_ERROR); PCF_AM_POLICY_CLEAR(amf_ue); + } else if (state == + AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED) { + ogs_warn("[%s] Implicit De-registered", amf_ue->supi); + OGS_FSM_TRAN(&amf_ue->sm, + &gmm_state_ue_context_will_remove); + + } else if (state == + AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED) { + ogs_warn("[%s] Explicit De-registered", amf_ue->supi); + + amf_ue->explict_de_registered.sbi_done = true; + + if (amf_ue->explict_de_registered.n1_done == true) { + r = ngap_send_ran_ue_context_release_command( + ran_ue_find_by_id(amf_ue->ran_ue_id), + NGAP_Cause_PR_misc, + NGAP_CauseMisc_om_intervention, + NGAP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0); + ogs_expect(r == OGS_OK); + ogs_assert(r != OGS_ERROR); + } } else { ogs_fatal("Invalid state [%d]", state); ogs_assert_if_reached(); @@ -609,8 +806,6 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) } } - xact_count = amf_sess_xact_count(amf_ue); - memset(¶m, 0, sizeof(param)); param.ue_location = true; param.ue_timezone = true; @@ -855,13 +1050,12 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) ogs_expect(r == OGS_OK); ogs_assert(r != OGS_ERROR); } else if (PCF_AM_POLICY_ASSOCIATED(amf_ue)) { - r = amf_ue_sbi_discover_and_send( - OGS_SBI_SERVICE_TYPE_NPCF_AM_POLICY_CONTROL, - NULL, - amf_npcf_am_policy_control_build_delete, - amf_ue, state, NULL); - ogs_expect(r == OGS_OK); - ogs_assert(r != OGS_ERROR); + r = amf_ue_sbi_discover_and_send( + OGS_SBI_SERVICE_TYPE_NPCF_AM_POLICY_CONTROL, NULL, + amf_npcf_am_policy_control_build_delete, + amf_ue, state, NULL); + ogs_expect(r == OGS_OK); + ogs_assert(r != OGS_ERROR); } break; @@ -904,6 +1098,57 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) ogs_error("[%s] Ignore SBI message", amf_ue->suci); break; CASE(OGS_SBI_HTTP_METHOD_DELETE) + /* + * gmm_state_registered() + * + * - AMF_UE_INITIATED_DE_REGISTERED + * 1. PDU session establishment request + * 2. PDUSessionResourceSetupRequest + + * PDU session establishment accept + * 3. PDUSessionResourceSetupResponse + * 4. Authentication Result Removal + * 5. AM_Policy_Association_Termination + * 6. Deregistration request + * 7. UEContextReleaseCommand + * 8. UEContextReleaseComplete + * + * - AMF_RELEASE_SM_CONTEXT_NO_STATE + * 1. PDU session release request + * 2. PDUSessionResourceReleaseCommand + + * PDU session release command + * 3. PDUSessionResourceReleaseREsponse + * 4. PDU session release complete + * 5. Authentication Result Removal + * 6. AM_Policy_Association_Termination + * 7. Deregistration request + * 8. UEContextReleaseCommand + * 9. UEContextReleaseComplete + * + * - AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED + * 1. Implicit Timer Expiration + * 2. UDM_SDM_Unsubscribe + * 3. UDM_UECM_Deregisration + * 4. PDU session release request + * 5. PDUSessionResourceReleaseCommand + + * PDU session release command + * 6. PDUSessionResourceReleaseResponse + * 7. Authentication Result Removal + * 8. AM_Policy_Association_Termination + * + * - AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED + * 1. UDM_UECM_DeregistrationNotification + * 2. Deregistration request + * 3. UDM_SDM_Unsubscribe + * 4. UDM_UECM_Deregisration + * 5. PDU session release request + * 6. PDUSessionResourceReleaseCommand + + * PDU session release command + * 7. PDUSessionResourceReleaseResponse + * 8. Authentication Result Removal + * 9. AM_Policy_Association_Termination + * 10.Deregistration accept + * 11.Signalling Connecion Release + */ CLEAR_5G_AKA_CONFIRMATION(amf_ue); if (state == AMF_RELEASE_SM_CONTEXT_NO_STATE || @@ -928,8 +1173,6 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) state == AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED) { - int xact_count = amf_sess_xact_count(amf_ue); - memset(¶m, 0, sizeof(param)); param.ue_location = true; param.ue_timezone = true; @@ -991,6 +1234,8 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) SWITCH(sbi_message->h.method) CASE(OGS_SBI_HTTP_METHOD_DELETE) /* + * gmm_state_registered() + * * - AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED * 1. Implicit Timer Expiration * 2. UDM_SDM_Unsubscribe @@ -999,7 +1244,8 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) * 5. PDUSessionResourceReleaseCommand + * PDU session release command * 6. PDUSessionResourceReleaseResponse - * 7. AM_Policy_Association_Termination + * 7. Authentication Result Removal + * 8. AM_Policy_Association_Termination * * - AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED * 1. UDM_UECM_DeregistrationNotification @@ -1010,9 +1256,10 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) * 6. PDUSessionResourceReleaseCommand + * PDU session release command * 7. PDUSessionResourceReleaseResponse - * 8. AM_Policy_Association_Termination - * 9. Deregistration accept - * 10. Signalling Connecion Release + * 8. Authentication Result Removal + * 9. AM_Policy_Association_Termination + * 10.Deregistration accept + * 11.Signalling Connecion Release */ if (state == AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED || @@ -1061,38 +1308,40 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) CASE(OGS_SBI_HTTP_METHOD_PATCH) SWITCH(sbi_message->h.resource.component[2]) CASE(OGS_SBI_RESOURCE_NAME_AMF_3GPP_ACCESS) - /* - * - AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED - * 1. Implicit Timer Expiration - * 2. UDM_SDM_Unsubscribe - * 3. UDM_UECM_Deregisration - * 4. Authentication Result Removal - * 5. PDU session release request - * 6. PDUSessionResourceReleaseCommand + - * PDU session release command - * 7. PDUSessionResourceReleaseResponse - * 8. AM_Policy_Association_Termination - * - * - AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED - * 1. UDM_UECM_DeregistrationNotification - * 2. Deregistration request - * 3. UDM_SDM_Unsubscribe - * 4. UDM_UECM_Deregisration - * 5. Authentication Result Removal - * 6. PDU session release request - * 7. PDUSessionResourceReleaseCommand + - * PDU session release command - * 8. PDUSessionResourceReleaseResponse - * 9. AM_Policy_Association_Termination - * 10. Deregistration accept - * 11. Signalling Connecion Release - */ + /* + * gmm_state_registered() + * + * - AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED + * 1. Implicit Timer Expiration + * 2. UDM_SDM_Unsubscribe + * 3. UDM_UECM_Deregisration + * 4. PDU session release request + * 5. PDUSessionResourceReleaseCommand + + * PDU session release command + * 6. PDUSessionResourceReleaseResponse + * 7. Authentication Result Removal + * 8. AM_Policy_Association_Termination + * + * - AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED + * 1. UDM_UECM_DeregistrationNotification + * 2. Deregistration request + * 3. UDM_SDM_Unsubscribe + * 4. UDM_UECM_Deregisration + * 5. PDU session release request + * 6. PDUSessionResourceReleaseCommand + + * PDU session release command + * 7. PDUSessionResourceReleaseResponse + * 8. Authentication Result Removal + * 9. AM_Policy_Association_Termination + * 10.Deregistration accept + * 11.Signalling Connecion Release + */ if (state == AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED || state == AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED) { - if (amf_ue->confirmation_for_5g_aka.resource_uri) { + if (CHECK_5G_AKA_CONFIRMATION(amf_ue)) { r = amf_ue_sbi_discover_and_send( OGS_SBI_SERVICE_TYPE_NAUSF_AUTH, NULL, @@ -1162,6 +1411,8 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) CASE(OGS_SBI_HTTP_METHOD_DELETE) /* + * gmm_state_registered() + * * - AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED * 1. Implicit Timer Expiration * 2. UDM_SDM_Unsubscribe @@ -1170,7 +1421,8 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) * 5. PDUSessionResourceReleaseCommand + * PDU session release command * 6. PDUSessionResourceReleaseResponse - * 7. AM_Policy_Association_Termination + * 7. Authentication Result Removal + * 8. AM_Policy_Association_Termination * * - AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED * 1. UDM_UECM_DeregistrationNotification @@ -1181,9 +1433,10 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) * 6. PDUSessionResourceReleaseCommand + * PDU session release command * 7. PDUSessionResourceReleaseResponse - * 8. AM_Policy_Association_Termination - * 9. Deregistration accept - * 10.Signalling Connecion Release + * 8. Authentication Result Removal + * 9. AM_Policy_Association_Termination + * 10.Deregistration accept + * 11.Signalling Connecion Release */ if (state == AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED) { ogs_warn("[%s] Implicit De-registered", amf_ue->supi);