[Gy] Follow-up PRs (#1479)
This commit is contained in:
parent
2be12903cb
commit
ff242cd6ea
|
@ -238,7 +238,8 @@ logger:
|
||||||
# o Gy interface parameters towards OCS.
|
# o Gy interface parameters towards OCS.
|
||||||
# o enabled:
|
# o enabled:
|
||||||
# o auto: Default. Use Gy only if OCS available among Diameter peers
|
# 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
|
# o no: Don't use Gy interface if there is an OCS available
|
||||||
#
|
#
|
||||||
# ctf:
|
# ctf:
|
||||||
|
|
|
@ -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_framed_ipv6_prefix = NULL;
|
||||||
struct dict_object *ogs_diam_rx_ip_can_type = 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_abort_cause = NULL;
|
||||||
struct dict_object *ogs_diam_rx_termination_cause = NULL;
|
|
||||||
|
|
||||||
extern int ogs_dict_rx_entry(char *conffile);
|
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, "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, "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, "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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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_PS_TO_CS_HANDOVER 3
|
||||||
#define OGS_DIAM_RX_ABORT_CAUSE_SPONSORED_DATA_CONNECTIVITY_DISALLOWED 4
|
#define OGS_DIAM_RX_ABORT_CAUSE_SPONSORED_DATA_CONNECTIVITY_DISALLOWED 4
|
||||||
extern struct dict_object *ogs_diam_rx_abort_cause;
|
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 {
|
typedef struct ogs_diam_rx_message_s {
|
||||||
#define OGS_DIAM_RX_CMD_CODE_AA 265
|
#define OGS_DIAM_RX_CMD_CODE_AA 265
|
||||||
|
|
|
@ -653,14 +653,14 @@ static int pcrf_rx_str_cb( struct msg **msg, struct avp *avp,
|
||||||
ogs_assert(ret == 0);
|
ogs_assert(ret == 0);
|
||||||
|
|
||||||
/* Get Termination-Cause */
|
/* 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);
|
ogs_assert(ret == 0);
|
||||||
if (avp) {
|
if (avp) {
|
||||||
ret = fd_msg_avp_hdr(avp, &hdr);
|
ret = fd_msg_avp_hdr(avp, &hdr);
|
||||||
ogs_assert(ret == 0);
|
ogs_assert(ret == 0);
|
||||||
sess_data->termination_cause = hdr->avp_value->i32;
|
sess_data->termination_cause = hdr->avp_value->i32;
|
||||||
switch (sess_data->termination_cause) {
|
switch (sess_data->termination_cause) {
|
||||||
case OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_LOGOUT:
|
case OGS_DIAM_TERMINATION_CAUSE_DIAMETER_LOGOUT:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ogs_error("Termination-Cause Error : [%d]",
|
ogs_error("Termination-Cause Error : [%d]",
|
||||||
|
|
|
@ -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->rep_triggers.volume_threshold = 1;
|
||||||
urr->vol_threshold.tovol = 1;
|
urr->vol_threshold.tovol = 1;
|
||||||
urr->vol_threshold.total_volume = total_volume_threshold;
|
urr->vol_threshold.total_volume = total_volume_threshold;
|
||||||
|
ogs_assert(sess->pfcp_node);
|
||||||
if (sess->pfcp_node->up_function_features.mnop)
|
if (sess->pfcp_node->up_function_features.mnop)
|
||||||
urr->meas_info.mnop = 1;
|
urr->meas_info.mnop = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -376,7 +376,7 @@ void smf_s5c_handle_delete_session_request(
|
||||||
break;
|
break;
|
||||||
case OGS_GTP_RAT_TYPE_WLAN:
|
case OGS_GTP_RAT_TYPE_WLAN:
|
||||||
smf_s6b_send_str(sess, xact,
|
smf_s6b_send_str(sess, xact,
|
||||||
OGS_DIAM_RX_TERMINATION_CAUSE_DIAMETER_LOGOUT);
|
OGS_DIAM_TERMINATION_CAUSE_DIAMETER_LOGOUT);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ogs_error("Unknown RAT Type [%d]", sess->gtp_rat_type);
|
ogs_error("Unknown RAT Type [%d]", sess->gtp_rat_type);
|
||||||
|
|
|
@ -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);
|
ogs_assert(ret == 0);
|
||||||
|
|
||||||
/* Set the Termination-Cause AVP */
|
/* 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);
|
ogs_assert(ret == 0);
|
||||||
val.i32 = cause;
|
val.i32 = cause;
|
||||||
ret = fd_msg_avp_setvalue(avp, &val);
|
ret = fd_msg_avp_setvalue(avp, &val);
|
||||||
|
|
|
@ -1941,9 +1941,9 @@ void test_rx_send_str(uint8_t *rx_sid)
|
||||||
ogs_assert(ret == 0);
|
ogs_assert(ret == 0);
|
||||||
|
|
||||||
/* Set the Termination-Cause AVP */
|
/* 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);
|
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);
|
ret = fd_msg_avp_setvalue(avp, &val);
|
||||||
ogs_assert(ret == 0);
|
ogs_assert(ret == 0);
|
||||||
ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
|
ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
|
||||||
|
|
Loading…
Reference in New Issue