Need to increase NF ref_count

1. UE registered and PDU established.
2. PCF does not receive Heartbeat.
 - PCF De-registered state.
 - Since PDU is established, SMF should not remove NF instance
3. PCF re-registered.
 - HERE, WE NEED TO INCREASE NF REFERENCE COUNT.
   Otherwise, NF instance will be removed if PCF is de-registered state
4. UE sends PDU release request.
5. Because SMF knows PCF NF instance, SMF can send PCF delete
This commit is contained in:
Sukchan Lee 2022-03-01 22:02:02 +09:00
parent 3217e93124
commit ed3444eef5
9 changed files with 32 additions and 0 deletions

View File

@ -182,6 +182,8 @@ bool amf_nnrf_handle_nf_status_notify(
ogs_info("[%s] (NRF-notify) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, amf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);
@ -341,6 +343,8 @@ void amf_nnrf_handle_nf_discover_search_result(
ogs_info("[%s] (NF-discover) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, amf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);

View File

@ -179,6 +179,8 @@ bool ausf_nnrf_handle_nf_status_notify(
ogs_info("[%s] (NRF-notify) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, ausf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);
@ -282,6 +284,8 @@ void ausf_nnrf_handle_nf_discover(
ogs_info("[%s] (NF-discover) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, ausf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);

View File

@ -180,6 +180,8 @@ bool bsf_nnrf_handle_nf_status_notify(
ogs_info("[%s] (NRF-notify) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, bsf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);
@ -283,6 +285,8 @@ void bsf_nnrf_handle_nf_discover(
ogs_info("[%s] (NF-discover) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, bsf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);

View File

@ -179,6 +179,8 @@ bool nssf_nnrf_handle_nf_status_notify(
ogs_info("[%s] (NRF-notify) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, nssf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);

View File

@ -180,6 +180,8 @@ bool pcf_nnrf_handle_nf_status_notify(
ogs_info("[%s] (NRF-notify) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, pcf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);
@ -285,6 +287,8 @@ void pcf_nnrf_handle_nf_discover(
ogs_info("[%s] (NF-discover) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, pcf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);

View File

@ -180,6 +180,8 @@ bool smf_nnrf_handle_nf_status_notify(
ogs_info("[%s] (NRF-notify) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, smf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);
@ -283,6 +285,8 @@ void smf_nnrf_handle_nf_discover(
ogs_info("[%s] (NF-discover) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, smf_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);

View File

@ -180,6 +180,8 @@ bool udm_nnrf_handle_nf_status_notify(
ogs_info("[%s] (NRF-notify) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, udm_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);
@ -283,6 +285,8 @@ void udm_nnrf_handle_nf_discover(
ogs_info("[%s] (NF-discover) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, udm_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);

View File

@ -180,6 +180,8 @@ bool udr_nnrf_handle_nf_status_notify(
ogs_info("[%s] (NRF-notify) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, udr_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);

View File

@ -184,6 +184,8 @@ bool af_nnrf_handle_nf_status_notify(
ogs_info("[%s] (NRF-notify) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, af_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);
@ -287,6 +289,8 @@ void af_nnrf_handle_nf_discover(
ogs_info("[%s] (NF-discover) NF registered", nf_instance->id);
} else {
nf_instance->reference_count++;
OGS_FSM_TRAN(&nf_instance->sm, af_nf_state_registered);
ogs_fsm_dispatch(&nf_instance->sm, NULL);