hss: Test Operator-Determined-Barring feature
Related: SYS#6588
Change-Id: I8deea9e284447f8991bdeced982c14fae2f211c5
diff --git a/hss/HSS_Tests.ttcn b/hss/HSS_Tests.ttcn
index 88a82a4..bd493c4 100644
--- a/hss/HSS_Tests.ttcn
+++ b/hss/HSS_Tests.ttcn
@@ -22,7 +22,8 @@
charstring mp_diam_dest_host := "hss.localdomain";
SubscriberConfigs subscribers := {
/* Existing subscriber, ULA returns SERVICE_GRANTED */
- '001010000000000'H
+ '001010000000000'H,
+ '001010000000001'H
};
}
@@ -183,9 +184,8 @@
}
/* ULR + ULA against HSS */
-private function f_dia_ulr_ula() runs on Cli_Session_CT {
+private function f_dia_ulr_ula(template (present) AVP_list ula_sub_data) runs on Cli_Session_CT {
var octetstring sess_id := char2oct("foobar");
- var template (present) AVP_list sub_data;
var PDU_DIAMETER rx_dia;
var UINT32 hbh_id := int2oct(g_pars.s6a_next_hbh_id, 4);
var UINT32 ete_id := int2oct(g_pars.s6a_next_ete_id, 4);
@@ -202,19 +202,8 @@
g_pars.s6a_next_hbh_id := g_pars.s6a_next_hbh_id + 1;
g_pars.s6a_next_ete_id := g_pars.s6a_next_ete_id + 1;
- sub_data := superset(
- tr_AVP_3GPP_SubscriberStatus(SERVICE_GRANTED),
- tr_AVP_3GPP_SubscrRauTauTmr(?),
- tr_AVP_3GPP_AMBR(?, ?),
- tr_AVP_3GPP_ApnConfigProfile(superset(
- tr_AVP_3GPP_ContextId(?),
- tr_AVP_3GPP_AllApnConfigsIncl,
- tr_AVP_3GPP_ApnConfig(?, ?, ?)
- ))
- );
-
alt {
- [] S6a.receive(tr_DIA_ULA(sub_data, sess_id, ?, ?, hbh_id, ete_id)) -> value rx_dia {
+ [] S6a.receive(tr_DIA_ULA(ula_sub_data, sess_id, ?, ?, hbh_id, ete_id)) -> value rx_dia {
setverdict(pass);
}
[] S6a.receive(PDU_DIAMETER:?) -> value rx_dia {
@@ -226,7 +215,18 @@
/* create a session, expect it to succeed */
private function f_TC_ulr_ula() runs on Cli_Session_CT {
- f_dia_ulr_ula();
+ var template (present) AVP_list sub_data := superset(
+ tr_AVP_3GPP_SubscriberStatus(SERVICE_GRANTED),
+ tr_AVP_3GPP_SubscrRauTauTmr(?),
+ tr_AVP_3GPP_AMBR(?, ?),
+ tr_AVP_3GPP_ApnConfigProfile(superset(
+ tr_AVP_3GPP_ContextId(?),
+ tr_AVP_3GPP_AllApnConfigsIncl,
+ tr_AVP_3GPP_ApnConfig(?, ?, ?)
+ ))
+ );
+
+ f_dia_ulr_ula(sub_data);
setverdict(pass);
}
testcase TC_ulr_ula() runs on MTC_CT {
@@ -237,9 +237,37 @@
vc_conn.done;
}
+/* Same as TC_ulr_ula, but done on a subscriber configured with
+Subscriber-Status=1 (OPERATOR_DETERMINED_BARRING) and
+Operator-Determined-Barring=7. */
+private function f_TC_ulr_ula_subscr_op_det_barring_7() runs on Cli_Session_CT {
+ var template (present) AVP_list sub_data := superset(
+ tr_AVP_3GPP_SubscriberStatus(OPERATOR_DETERMINED_BARRING),
+ tr_AVP_3GPP_OperatorDeterminedBarring(7),
+ tr_AVP_3GPP_SubscrRauTauTmr(?),
+ tr_AVP_3GPP_AMBR(?, ?),
+ tr_AVP_3GPP_ApnConfigProfile(superset(
+ tr_AVP_3GPP_ContextId(?),
+ tr_AVP_3GPP_AllApnConfigsIncl,
+ tr_AVP_3GPP_ApnConfig(?, ?, ?)
+ ))
+ );
+
+ f_dia_ulr_ula(sub_data);
+ setverdict(pass);
+}
+testcase TC_ulr_ula_subscr_op_det_barring_7() runs on MTC_CT {
+ var Cli_Session_CT vc_conn;
+ var SessionPars pars := valueof(t_SessionPars(subscribers[1]));
+ f_init();
+ vc_conn := f_start_handler(refers(f_TC_ulr_ula_subscr_op_det_barring_7), pars);
+ vc_conn.done;
+}
+
control {
execute( TC_ulr_ula() );
+ execute( TC_ulr_ula_subscr_op_det_barring_7() );
}