pespin has uploaded this change for review.

View Change

stp: Fix expectations of TC_rkm_unreg_active

Newer libosmo-sigtran has been fixed to avoid sending Routing Contexts
for all AS associated to the ASP.

Adapt test to expect correct set of NOTIFY messages.

Depends: libosmo-sigtran.git Change-Id I252f9e16ab92a264559385d47690552d75837569
Change-Id: I635272693e481f3938bbadf09990d8e4d0dd66b0
---
M stp/STP_Tests_M3UA.ttcn
1 file changed, 36 insertions(+), 9 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/43487/1
diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn
index 94134e9..b263e70 100644
--- a/stp/STP_Tests_M3UA.ttcn
+++ b/stp/STP_Tests_M3UA.ttcn
@@ -505,6 +505,33 @@
* Test the STP in M3UA SG role (we are ASP)
***********************************************************************/

+private function f_M3UA_split_rctxs(octetstring rctx_raw) return Osmocom_Types.ro_integer
+{
+ var Osmocom_Types.ro_integer rctx_list := {};
+ while (lengthof(rctx_raw) >= 4) {
+ var OCT4 rctx := substr(rctx_raw, 0, 4);
+ ro_integer_add_unique(rctx_list, oct2int(rctx));
+ rctx_raw := substr(rctx_raw, 4, lengthof(rctx_raw) - 4);
+ }
+ return rctx_list;
+}
+friend function f_M3UA_wait_NOTIFY_all_rctx(integer idx, octetstring rctx, OCT2 st_change := c_M3UA_ST_I_AS_INACTIVE)
+runs on RAW_M3UA_CT {
+ var M3UA_RecvFrom rx;
+ var Osmocom_Types.ro_integer exp_rctx_list := f_M3UA_split_rctxs(rctx);
+ var Osmocom_Types.ro_integer rx_rctx_list;
+
+ while (lengthof(exp_rctx_list) > 0) {
+ log("Waiting to receive NOTIFY ", st_change, " for RCTX ", exp_rctx_list);
+ rx := f_M3UA_exp(idx, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, st_change, *));
+ rx_rctx_list := f_M3UA_split_rctxs(rx.msg.m3UA_NOTIFY.messageParameters.routing_Context.routingContext);
+ for (var integer i := 0; i < (lengthof(rx_rctx_list)); i := i + 1) {
+ ro_integer_del(exp_rctx_list, rx_rctx_list[i]);
+ }
+ }
+ log ("Done waiting to receive NOTIFY ", st_change)
+}
+
/* perform an outbound ASP-UP procedure */
friend function f_M3UA_asp_up(integer idx, template (omit) OCT4 aspid := omit,
template (omit) OCT2 ntfy_after_up := c_M3UA_ST_I_AS_INACTIVE) runs on RAW_M3UA_CT {
@@ -1189,6 +1216,7 @@
var OCT4 rctxA := int2oct(1234, 4);
var OCT3 dpcB := f_m3ua_config_get_pc_OCT3(m3ua_configs[0]); // must match config
var OCT4 rctxB := f_m3ua_config_get_rctx(m3ua_configs[0]); // must match config
+ var octetstring rctx := rctxA & rctxB;

f_init_common();
f_vty_config2(VTY, {"cs7 instance 0"}, "xua rkm routing-key-allocation dynamic-permitted");
@@ -1197,18 +1225,18 @@
/* first register the routing key */
f_M3UA_rkm_register(0, local_id:='30000099'O, dpc:=dpcA, rctx:=rctxA, ntfy_after_reg := omit);

- /* then activate the ASP, this turns the 2 AS (one for each rctx, 1234 and default 1023)
- * INACTIVE, handle the 2 NOTIFY manually afterwards: */
+ /* then activate the 2 AS (one for each rctx, 1234 and default 1023)
+ * handle the 2 NOTIFY manually afterwards: */
f_M3UA_asp_up(0, ntfy_after_up := omit);
- f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_INACTIVE, (rctxA & rctxB, rctxB & rctxA)));
- f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_INACTIVE, (rctxA & rctxB, rctxB & rctxA)));
- f_M3UA_asp_act(0, omit, rctxB, ntfy_after_act := omit);
- f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_ACTIVE, (rctxA & rctxB, rctxB & rctxA)));
+ f_M3UA_wait_NOTIFY_all_rctx(0, rctx, c_M3UA_ST_I_AS_INACTIVE);
+
+ f_M3UA_asp_act(0, omit, rctx, ntfy_after_act := omit);
+ f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_ACTIVE, rctxB));
f_M3UA_exp(0, tr_M3UA_DAVA({ts_M3UA_PC(oct2int(dpcB))}, rctxA));
if (g_iut_supports_rfc666_4_5_1_duna_after_act) {
f_M3UA_exp(0, tr_M3UA_DUNA({*}, rctxB));
}
- f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_ACTIVE, (rctxA & rctxB, rctxB & rctxA)));
+ f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_ACTIVE, rctxA));
f_M3UA_exp(0, tr_M3UA_DAVA({ts_M3UA_PC(oct2int(dpcA))}, rctxB));
if (g_iut_supports_rfc666_4_5_1_duna_after_act) {
f_M3UA_exp(0, tr_M3UA_DUNA({*}, rctxA));
@@ -1221,8 +1249,7 @@
/* deactivate ASP and properly de-register to clean up */
f_M3UA_asp_inact(0);
f_M3UA_send(0, ts_M3UA_DEREG_REQ(ts_M3UA_routing_ctx(rctxA)));
- f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_PENDING, (rctxA & rctxB, rctxB & rctxA)));
- f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_PENDING, (rctxA & rctxB, rctxB & rctxA)));
+ f_M3UA_wait_NOTIFY_all_rctx(0, rctx, c_M3UA_ST_I_AS_PENDING);
f_M3UA_exp(0, tr_M3UA_DEREG_RSP({tr_M3UA_dereg_res(?,c_m3UA_DEREGSTS_SUCCESS)}));

f_vty_config2(VTY, {"cs7 instance 0"}, "xua rkm routing-key-allocation static-only");

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

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