For IMS, WebUI behavior is changed.

If Flow is not added in PCC_Rule, this PCC_Rule will not be installed in PGW.
In this case, AF function will give the Flow Description.
If Rx(Media-Type) is set to "AUDIO" type, PCC_Rule(QCI=1) will be associated,
And then, the PCC_Rule will be installed in PGW
This commit is contained in:
Sukchan Lee 2018-01-10 21:44:23 +09:00
parent 95aaf2f8f1
commit 58f501d397
5 changed files with 13 additions and 42 deletions

View File

@ -272,7 +272,16 @@ static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
if (sess_data->cc_request_type != GX_CC_REQUEST_TYPE_TERMINATION_REQUEST)
{
/* Set Charging-Rule-Install */
if (cca_message.num_of_pcc_rule)
int charging_rule_install = 0;
for (i = 0; i < cca_message.num_of_pcc_rule; i++)
{
pcc_rule_t *pcc_rule = &cca_message.pcc_rule[i];
if (pcc_rule->num_of_flow)
charging_rule_install = 1;
}
if (charging_rule_install)
{
ret = fd_msg_avp_new(gx_charging_rule_install, 0, &avp);
d_assert(ret == 0, return EINVAL,);
@ -431,7 +440,7 @@ static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
d_assert(ret == 0, return EINVAL,);
}
if (cca_message.num_of_pcc_rule)
if (charging_rule_install)
{
ret = fd_msg_avp_add(ans, MSG_BRW_LAST_CHILD, avp);
d_assert(ret == 0, return EINVAL,);

View File

@ -57,20 +57,7 @@ static void volte_test1(abts_case *tc, void *data)
"\"arp\" : {"
"\"priority_level\" : 3,"
"\"pre_emption_vulnerability\" : 0,"
"\"pre_emption_capability\" : 0 } },"
"\"flow\" : ["
"{ \"direction\" : 2,"
"\"description\" : \"permit out udp from any 1-65535 to 10.200.136.98/32 23454\","
"\"_id\" : { \"$oid\" : \"599eb929c850caabcbfdcd31\" } },"
"{ \"direction\" : 1,"
"\"description\" : \"permit out udp from any 50020 to 10.200.136.98/32 1-65535\","
"\"_id\" : { \"$oid\" : \"599eb929c850caabcbfdcd30\" } },"
"{ \"direction\" : 2,"
"\"description\" : \"permit out udp from any 1-65535 to 10.200.136.98/32 23455\","
"\"_id\" : { \"$oid\" : \"599eb929c850caabcbfdcd2f\" } },"
"{ \"direction\" : 1,"
"\"description\" : \"permit out udp from any 50021 to 10.200.136.98/32 1-65535\","
"\"_id\" : { \"$oid\" : \"599eb929c850caabcbfdcd2e\" } } ]"
"\"pre_emption_capability\" : 0 } }"
"} ],"
"\"ambr\" : {"
"\"downlink\" : { \"$numberLong\" : \"35840\" },"
@ -247,27 +234,6 @@ static void volte_test1(abts_case *tc, void *data)
rv = tests1ap_enb_send(sock, sendbuf);
ABTS_INT_EQUAL(tc, CORE_OK, rv);
/* Receive E-RAB Setup Request +
* Activate dedicated EPS bearer context request */
recvbuf = pkbuf_alloc(0, MAX_SDU_LEN);
rv = tests1ap_enb_read(sock, recvbuf);
ABTS_INT_EQUAL(tc, CORE_OK, rv);
pkbuf_free(recvbuf);
/* Send Activate dedicated EPS bearer context accept */
rv = tests1ap_build_activate_dedicated_bearer_accept(&sendbuf, msgindex);
ABTS_INT_EQUAL(tc, CORE_OK, rv);
rv = tests1ap_enb_send(sock, sendbuf);
ABTS_INT_EQUAL(tc, CORE_OK, rv);
core_sleep(time_from_msec(300));
/* Send E-RAB Setup Response */
rv = tests1ap_build_e_rab_setup_response(&sendbuf, 33554492, 1, 7, 3);
ABTS_INT_EQUAL(tc, CORE_OK, rv);
rv = tests1ap_enb_send(sock, sendbuf);
ABTS_INT_EQUAL(tc, CORE_OK, rv);
core_sleep(time_from_msec(300));
/* Send AA-Request */

View File

@ -1,6 +1,6 @@
{
"name": "nextepc",
"version": "0.2.0",
"version": "0.3.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -170,10 +170,8 @@ const schema = {
"flow": {
"type": "array",
"title": "",
"minItems": 1,
"maxItems": 8,
"messages": {
"minItems": "At least 1 Flow is required",
"maxItems": "8 Flows are supported"
},
"items": {

View File

@ -176,10 +176,8 @@ const schema = {
"flow": {
"type": "array",
"title": "",
"minItems": 1,
"maxItems": 8,
"messages": {
"minItems": "At least 1 Flow is required",
"maxItems": "8 Flows are supported"
},
"items": {