diff --git a/configs/open5gs/smf.yaml.in b/configs/open5gs/smf.yaml.in index a72a40f4a..00c92f363 100644 --- a/configs/open5gs/smf.yaml.in +++ b/configs/open5gs/smf.yaml.in @@ -238,7 +238,8 @@ logger: # o Gy interface parameters towards OCS. # o enabled: # o auto: Default. Use Gy only if OCS available among Diameter peers -# o yes: Use Gy always; reject subscribers if no OCS available among Diameter peers +# o yes: Use Gy always; +# reject subscribers if no OCS available among Diameter peers # o no: Don't use Gy interface if there is an OCS available # # ctf: diff --git a/lib/diameter/rx/message.c b/lib/diameter/rx/message.c index 4de28a8bc..602e3418d 100644 --- a/lib/diameter/rx/message.c +++ b/lib/diameter/rx/message.c @@ -56,7 +56,6 @@ struct dict_object *ogs_diam_rx_framed_ip_address = NULL; struct dict_object *ogs_diam_rx_framed_ipv6_prefix = NULL; struct dict_object *ogs_diam_rx_ip_can_type = NULL; struct dict_object *ogs_diam_rx_abort_cause = NULL; -struct dict_object *ogs_diam_rx_termination_cause = NULL; extern int ogs_dict_rx_entry(char *conffile); @@ -100,7 +99,6 @@ int ogs_diam_rx_init(void) CHECK_dict_search(DICT_AVP, AVP_BY_NAME_ALL_VENDORS, "Framed-IPv6-Prefix", &ogs_diam_rx_framed_ipv6_prefix); CHECK_dict_search(DICT_AVP, AVP_BY_NAME_ALL_VENDORS, "IP-CAN-Type", &ogs_diam_rx_ip_can_type); CHECK_dict_search(DICT_AVP, AVP_BY_NAME_ALL_VENDORS, "Abort-Cause", &ogs_diam_rx_abort_cause); - CHECK_dict_search(DICT_AVP, AVP_BY_NAME_ALL_VENDORS, "Termination-Cause", &ogs_diam_rx_termination_cause); return 0; } diff --git a/lib/diameter/rx/message.h b/lib/diameter/rx/message.h index 24cfdc5e0..ea7c91e00 100644 --- a/lib/diameter/rx/message.h +++ b/lib/diameter/rx/message.h @@ -121,15 +121,6 @@ extern struct dict_object *ogs_diam_rx_ip_can_type; #define OGS_DIAM_RX_ABORT_CAUSE_PS_TO_CS_HANDOVER 3 #define OGS_DIAM_RX_ABORT_CAUSE_SPONSORED_DATA_CONNECTIVITY_DISALLOWED 4 extern struct dict_object *ogs_diam_rx_abort_cause; -#define OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_LOGOUT 1 -#define OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_SERVICE_NOT_PROVIDED 2 -#define OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_BAD_ANSWER 3 -#define OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_DIAMETER_ADMINISTRATIVE 4 -#define OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_LINK_BROKEN 5 -#define OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_AUTH_EXPIRED 6 -#define OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_USER_MOVED 7 -#define OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_SESSION_TIMEOUT 8 -extern struct dict_object *ogs_diam_rx_termination_cause; typedef struct ogs_diam_rx_message_s { #define OGS_DIAM_RX_CMD_CODE_AA 265 diff --git a/src/pcrf/pcrf-rx-path.c b/src/pcrf/pcrf-rx-path.c index df8cd4420..dcb6d8029 100644 --- a/src/pcrf/pcrf-rx-path.c +++ b/src/pcrf/pcrf-rx-path.c @@ -653,14 +653,14 @@ static int pcrf_rx_str_cb( struct msg **msg, struct avp *avp, ogs_assert(ret == 0); /* Get Termination-Cause */ - ret = fd_msg_search_avp(qry, ogs_diam_rx_termination_cause, &avp); + ret = fd_msg_search_avp(qry, ogs_diam_termination_cause, &avp); ogs_assert(ret == 0); if (avp) { ret = fd_msg_avp_hdr(avp, &hdr); ogs_assert(ret == 0); sess_data->termination_cause = hdr->avp_value->i32; switch (sess_data->termination_cause) { - case OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_LOGOUT: + case OGS_DIAM_TERMINATION_CAUSE_DIAMETER_LOGOUT: break; default: ogs_error("Termination-Cause Error : [%d]", diff --git a/src/smf/gy-handler.c b/src/smf/gy-handler.c index 7890edef7..ac64b6985 100644 --- a/src/smf/gy-handler.c +++ b/src/smf/gy-handler.c @@ -50,6 +50,7 @@ static void urr_enable_total_volume_threshold(smf_sess_t *sess, ogs_pfcp_urr_t * urr->rep_triggers.volume_threshold = 1; urr->vol_threshold.tovol = 1; urr->vol_threshold.total_volume = total_volume_threshold; + ogs_assert(sess->pfcp_node); if (sess->pfcp_node->up_function_features.mnop) urr->meas_info.mnop = 1; } diff --git a/src/smf/s5c-handler.c b/src/smf/s5c-handler.c index 20441af5e..d7daf9a0a 100644 --- a/src/smf/s5c-handler.c +++ b/src/smf/s5c-handler.c @@ -376,7 +376,7 @@ void smf_s5c_handle_delete_session_request( break; case OGS_GTP_RAT_TYPE_WLAN: smf_s6b_send_str(sess, xact, - OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_LOGOUT); + OGS_DIAM_TERMINATION_CAUSE_DIAMETER_LOGOUT); break; default: ogs_error("Unknown RAT Type [%d]", sess->gtp_rat_type); diff --git a/src/smf/s6b-path.c b/src/smf/s6b-path.c index d3dfefd12..b1108121a 100644 --- a/src/smf/s6b-path.c +++ b/src/smf/s6b-path.c @@ -555,7 +555,7 @@ void smf_s6b_send_str(smf_sess_t *sess, ogs_gtp_xact_t *xact, uint32_t cause) ogs_assert(ret == 0); /* Set the Termination-Cause AVP */ - ret = fd_msg_avp_new(ogs_diam_rx_termination_cause, 0, &avp); + ret = fd_msg_avp_new(ogs_diam_termination_cause, 0, &avp); ogs_assert(ret == 0); val.i32 = cause; ret = fd_msg_avp_setvalue(avp, &val); diff --git a/tests/volte/diameter-rx-path.c b/tests/volte/diameter-rx-path.c index 569902a30..a0513e5bb 100644 --- a/tests/volte/diameter-rx-path.c +++ b/tests/volte/diameter-rx-path.c @@ -1941,9 +1941,9 @@ void test_rx_send_str(uint8_t *rx_sid) ogs_assert(ret == 0); /* Set the Termination-Cause AVP */ - ret = fd_msg_avp_new(ogs_diam_rx_termination_cause, 0, &avp); + ret = fd_msg_avp_new(ogs_diam_termination_cause, 0, &avp); ogs_assert(ret == 0); - val.i32 = OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_LOGOUT; + val.i32 = OGS_DIAM_TERMINATION_CAUSE_DIAMETER_LOGOUT; ret = fd_msg_avp_setvalue(avp, &val); ogs_assert(ret == 0); ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);