forked from acouzens/open5gs
[SMF] Gy: Check Multiple-Services-Credit-Control Result-Code
This commit is contained in:
parent
e1820e4e54
commit
12158eebb8
|
@ -187,6 +187,8 @@ typedef struct ogs_diam_gy_message_s {
|
|||
uint32_t time_threshold;
|
||||
uint32_t volume_threshold;
|
||||
ogs_diam_gy_service_unit_t granted;
|
||||
uint32_t result_code;
|
||||
uint32_t *err;
|
||||
} cca;
|
||||
};
|
||||
} ogs_diam_gy_message_t;
|
||||
|
|
|
@ -178,6 +178,12 @@ uint32_t smf_gy_handle_cca_update_request(
|
|||
return gy_message->err ? *gy_message->err :
|
||||
ER_DIAMETER_AUTHENTICATION_REJECTED;
|
||||
}
|
||||
if (gy_message->cca.result_code != ER_DIAMETER_SUCCESS) {
|
||||
ogs_warn("Gy CCA Update Diameter Multiple-Services-Credit-Control Result-Code=%u",
|
||||
gy_message->cca.result_code);
|
||||
return gy_message->cca.err ? *gy_message->cca.err :
|
||||
ER_DIAMETER_AUTHENTICATION_REJECTED;
|
||||
}
|
||||
|
||||
bearer = smf_default_bearer_in_sess(sess);
|
||||
ogs_assert(bearer);
|
||||
|
|
|
@ -1003,6 +1003,9 @@ static void smf_gy_cca_cb(void *data, struct msg **msg)
|
|||
/* Set Credit Control Command */
|
||||
gy_message->cmd_code = OGS_DIAM_GY_CMD_CODE_CREDIT_CONTROL;
|
||||
|
||||
/* Initialize some values: */
|
||||
gy_message->cca.result_code = ER_DIAMETER_SUCCESS;
|
||||
|
||||
/* Value of Result Code */
|
||||
ret = fd_msg_search_avp(*msg, ogs_diam_result_code, &avp);
|
||||
ogs_assert(ret == 0);
|
||||
|
@ -1114,6 +1117,10 @@ static void smf_gy_cca_cb(void *data, struct msg **msg)
|
|||
ret = fd_msg_avp_hdr(avpch1, &hdr);
|
||||
ogs_assert(ret == 0);
|
||||
switch (hdr->avp_code) {
|
||||
case AC_RESULT_CODE:
|
||||
gy_message->cca.result_code = hdr->avp_value->u32;
|
||||
gy_message->cca.err = &gy_message->cca.result_code;
|
||||
break;
|
||||
case OGS_DIAM_GY_AVP_CODE_GRANTED_SERVICE_UNIT:
|
||||
rv = decode_granted_service_unit(
|
||||
&gy_message->cca.granted, avpch1, &error);
|
||||
|
|
Loading…
Reference in New Issue