pespin has uploaded this change for review.

View Change

hss: Test Operator-Determined-Barring featue

Related: SYS#6588
Change-Id: I8deea9e284447f8991bdeced982c14fae2f211c5
---
M hss/HSS_Tests.ttcn
M library/DIAMETER_Templates.ttcn
2 files changed, 72 insertions(+), 16 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/18/34718/1
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() );
}


diff --git a/library/DIAMETER_Templates.ttcn b/library/DIAMETER_Templates.ttcn
index 5bbb2c3..4dd686a 100644
--- a/library/DIAMETER_Templates.ttcn
+++ b/library/DIAMETER_Templates.ttcn
@@ -887,6 +887,24 @@
}
}

+/* Ts 29.272 7.3.30 Operator-Determined-Barring */
+template (present) GenericAVP tr_AVP_3GPP_OperatorDeterminedBarring(template (present) uint32_t val := ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_Operator_Determined_Barring),
+ avp_data := {
+ avp_AAA_3GPP_Operator_Determined_Barring := int2oct_tmpl(val, 4)
+ }
+ }
+}
+template (value) GenericAVP ts_AVP_3GPP_OperatorDeterminedBarring(uint32_t val) := {
+ avp := {
+ avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_Operator_Determined_Barring),
+ avp_data := {
+ avp_AAA_3GPP_Operator_Determined_Barring := int2oct(val, 4)
+ }
+ }
+}
+
template (present) GenericAVP tr_AVP_3GPP_SubscrRauTauTmr(template (present) uint32_t tmr := ?) := {
avp := {
avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_Subscribed_Periodic_RAU_TAU_Timer),

To view, visit change 34718. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I8deea9e284447f8991bdeced982c14fae2f211c5
Gerrit-Change-Number: 34718
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-MessageType: newchange