pespin has uploaded this change for review.

View Change

stp: Support configuring M3UA ASPs serving multiple AS

Change-Id: I734e1e2bef2063c46a0ea63245ff2a9888e6b054
Related: OS#7062
---
M stp/STP_Tests_IPA_M3UA.cfg
M stp/STP_Tests_IPA_M3UA.ttcn
M stp/STP_Tests_M3UA.cfg
M stp/STP_Tests_M3UA.ttcn
M stp/STP_Tests_M3UA_TCP.cfg
M stp/STP_Tests_M3UA_TCP.ttcn
6 files changed, 254 insertions(+), 143 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/43486/1
diff --git a/stp/STP_Tests_IPA_M3UA.cfg b/stp/STP_Tests_IPA_M3UA.cfg
index 5870747..b6b8302 100644
--- a/stp/STP_Tests_IPA_M3UA.cfg
+++ b/stp/STP_Tests_IPA_M3UA.cfg
@@ -29,8 +29,12 @@
use_tcp := false,
remote_port := 2905,
local_port := 9999,
- point_code := 23,
- routing_ctx := 1023
+ as := {
+ {
+ point_code := 23,
+ routing_ctx := 1023
+ }
+ }
}
};

diff --git a/stp/STP_Tests_IPA_M3UA.ttcn b/stp/STP_Tests_IPA_M3UA.ttcn
index 1e7189d..fe924ad 100644
--- a/stp/STP_Tests_IPA_M3UA.ttcn
+++ b/stp/STP_Tests_IPA_M3UA.ttcn
@@ -49,8 +49,8 @@
var IpaConfigs ipa_configs := ipa_build_configs(ipa_asps);
var Misc_Helpers.ro_charstring m3ua_asps := { "asp-sender" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(m3ua_asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
var OCT4 pc_receiver := int2oct(ipa_configs[0].point_code, 4);

f_init_m3ua(m3ua_configs := m3ua_configs);
@@ -79,8 +79,8 @@
var Misc_Helpers.ro_charstring m3ua_asps := { "asp-sender" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(m3ua_asps);
var OCT4 pc_sender := int2oct(ipa_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[0].point_code, 4);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[0]);

f_init_common();
f_vty_cs7_ipa_as_cmd(ipa_configs[0].as_name, "point-code override patch-sccp disabled");
@@ -111,8 +111,8 @@
var Misc_Helpers.ro_charstring m3ua_asps := { "asp-sender" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(m3ua_asps);
var OCT4 pc_sender := int2oct(ipa_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[0].point_code, 4);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[0]);

f_init_common();
f_vty_cs7_ipa_as_cmd(ipa_configs[0].as_name, "point-code override patch-sccp disabled");
@@ -146,8 +146,8 @@
var Misc_Helpers.ro_charstring m3ua_asps := { "asp-sender" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(m3ua_asps);
var OCT4 pc_sender := int2oct(ipa_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[0].point_code, 4);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[0]);

f_init_common();
f_vty_cs7_ipa_as_cmd(ipa_configs[0].as_name, "point-code override patch-sccp both");
diff --git a/stp/STP_Tests_M3UA.cfg b/stp/STP_Tests_M3UA.cfg
index 860bdd7..3bdd716 100644
--- a/stp/STP_Tests_M3UA.cfg
+++ b/stp/STP_Tests_M3UA.cfg
@@ -18,8 +18,12 @@
use_tcp := false,
remote_port := 2905,
local_port := 9999,
- point_code := 23,
- routing_ctx := 1023
+ as := {
+ {
+ point_code := 23,
+ routing_ctx := 1023
+ }
+ }
},
{
asp_name := "asp-receiver0",
@@ -27,8 +31,12 @@
use_tcp := false,
remote_port := 2905,
local_port := 10000,
- point_code := 42,
- routing_ctx := 1042
+ as := {
+ {
+ point_code := 42,
+ routing_ctx := 1042
+ }
+ }
},
{
asp_name := "asp-receiver1",
@@ -36,8 +44,12 @@
use_tcp := false,
remote_port := 2905,
local_port := 10001,
- point_code := 42,
- routing_ctx := 1042
+ as := {
+ {
+ point_code := 42,
+ routing_ctx := 1042
+ }
+ }
},
{
asp_name := "asp-LS0-0-0",
@@ -45,8 +57,12 @@
use_tcp := false,
remote_port := 2905,
local_port := 10002,
- point_code := 44,
- routing_ctx := 1044
+ as := {
+ {
+ point_code := 44,
+ routing_ctx := 1044
+ }
+ }
},
{
asp_name := "asp-LS0-1-0",
@@ -54,8 +70,12 @@
use_tcp := false,
remote_port := 2905,
local_port := 10003,
- point_code := 45,
- routing_ctx := 1045
+ as := {
+ {
+ point_code := 45,
+ routing_ctx := 1045
+ }
+ }
},
{
asp_name := "asp-client0",
@@ -63,8 +83,12 @@
use_tcp := false,
remote_port := 2906,
local_port := 10002,
- point_code := 55,
- routing_ctx := 1055
+ as := {
+ {
+ point_code := 55,
+ routing_ctx := 1055
+ }
+ }
},
{
asp_name := "asp-client60-norctx0",
@@ -72,8 +96,12 @@
use_tcp := false,
remote_port := 2907,
local_port := 11060,
- point_code := 60,
- routing_ctx := omit
+ as := {
+ {
+ point_code := 60,
+ routing_ctx := omit
+ }
+ }
},
{
asp_name := "asp-client61-norctx0",
@@ -81,8 +109,12 @@
use_tcp := false,
remote_port := 2907,
local_port := 11061,
- point_code := 61,
- routing_ctx := omit
+ as := {
+ {
+ point_code := 61,
+ routing_ctx := omit
+ }
+ }
}
};

diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn
index ff8f08a..94134e9 100644
--- a/stp/STP_Tests_M3UA.ttcn
+++ b/stp/STP_Tests_M3UA.ttcn
@@ -57,6 +57,15 @@
OCT1 mp_ni := '00'O;
}

+type record M3uaConfigAS {
+ /* point code routed via this M3U */
+ integer point_code,
+ /* associated routing context */
+ integer routing_ctx optional
+}
+
+type record of M3uaConfigAS M3uaConfigASs;
+
type record M3uaConfig {
/* Name of the ASP in the STP, (eg. to access it over VTY) */
charstring asp_name,
@@ -68,10 +77,8 @@
integer remote_port,
/* local M3UA base port on TTCN3 side */
integer local_port,
- /* point code routed via this M3U */
- integer point_code,
- /* associated routing context */
- integer routing_ctx optional
+ /* ASs served by this ASP: */
+ M3uaConfigASs as
};
type record of M3uaConfig M3uaConfigs;

@@ -82,6 +89,48 @@
var boolean g_iut_supports_rfc666_4_5_1_duna_after_act := true; /* RFC4666 4.5.1 */
}

+friend function f_m3ua_config_get_rctx(M3uaConfig m3ua_config, integer idx := 0) return OCT4
+{
+ return int2oct(m3ua_config.as[idx].routing_ctx, 4);
+}
+
+friend function f_m3ua_config_get_all_rctx(M3uaConfig m3ua_config) return octetstring
+{
+ var octetstring rctx := ''O;
+ for (var integer i := 0; i < lengthof(m3ua_config.as); i := i + 1) {
+ rctx := rctx & int2oct(m3ua_config.as[i].routing_ctx, 4);
+ }
+ return rctx;
+}
+
+friend function f_m3ua_config_get_pc(M3uaConfig m3ua_config, integer idx := 0) return OCT4
+{
+ return int2oct(m3ua_config.as[idx].point_code, 4);
+}
+
+friend function f_m3ua_config_get_pc_OCT3(M3uaConfig m3ua_config, integer idx := 0) return OCT3
+{
+ return int2oct(m3ua_config.as[idx].point_code, 3);
+}
+
+friend function f_m3ua_config_get_all_pc(M3uaConfig m3ua_config) return octetstring
+{
+ var octetstring pc := ''O;
+ for (var integer i := 0; i < lengthof(m3ua_config.as); i := i + 1) {
+ pc := pc & int2oct(m3ua_config.as[i].point_code, 4);
+ }
+ return pc;
+}
+
+friend function f_m3ua_config_get_all_affected_pc(M3uaConfig m3ua_config) return M3UA_Point_Codes
+{
+ var M3UA_Point_Codes aff_pcs := {};
+ for (var integer i := 0; i < lengthof(m3ua_config.as); i := i + 1) {
+ aff_pcs := aff_pcs & { valueof(ts_M3UA_PC(m3ua_config.as[i].point_code)) }
+ }
+ return aff_pcs;
+}
+
friend function f_m3ua_get_config_idx(charstring asp_name) runs on RAW_M3UA_CT return integer {
for (var integer i := 0; i < lengthof(g_m3ua_configs); i := i + 1) {
if (g_m3ua_configs[i].asp_name == asp_name) {
@@ -480,7 +529,7 @@

/* perform an outbound ASP-ACTIVATE procedure */
friend function f_M3UA_asp_act(integer idx, template (omit) M3UA_Traffic_Mode_Type tmt := omit,
- template (omit) OCT4 rctx := omit,
+ template (omit) octetstring rctx := omit,
template (omit) OCT2 ntfy_after_act := c_M3UA_ST_I_AS_ACTIVE) runs on RAW_M3UA_CT {
f_M3UA_send(idx, ts_M3UA_ASPAC(tmt, rctx));
f_M3UA_exp(idx, tr_M3UA_ASPAC_ACK(tmt, rctx));
@@ -491,14 +540,14 @@
}

/* perform an outbound ASP-INACTIVATE procedure */
-friend function f_M3UA_asp_inact(integer idx, template (omit) OCT4 rctx := omit) runs on RAW_M3UA_CT {
+friend function f_M3UA_asp_inact(integer idx, template (omit) octetstring rctx := omit) runs on RAW_M3UA_CT {
f_M3UA_send(idx, ts_M3UA_ASPIA(rctx));
f_M3UA_exp(idx, tr_M3UA_ASPIA_ACK(rctx));
}

/* perform outbound ASP-UP and ASP-ACT, optionally expect intermittent NOTIFY */
friend function f_M3UA_asp_up_act(integer idx, template (omit) M3UA_Traffic_Mode_Type tmt := omit,
- template (omit) OCT4 rctx := omit,
+ template (omit) octetstring rctx := omit,
template (omit) OCT2 ntfy_after_up := c_M3UA_ST_I_AS_INACTIVE,
template (omit) OCT2 ntfy_after_act := c_M3UA_ST_I_AS_ACTIVE,
template (omit) boolean exp_duna_after_act := omit /* auto */)
@@ -557,7 +606,7 @@

if (m3ua_configs[0].is_server) {
f_init_m3ua_srv();
- f_M3UA_CLNT_asp_up_act(0, rctx := int2oct(m3ua_configs[0].routing_ctx, 4));
+ f_M3UA_CLNT_asp_up_act(0, rctx := f_m3ua_config_get_all_rctx(m3ua_configs[0]));
} else {
f_M3UA_asp_up(0, ntfy_after_up := c_M3UA_ST_I_AS_INACTIVE);
}
@@ -617,7 +666,7 @@

if (m3ua_configs[0].is_server) {
f_init_m3ua_srv();
- f_M3UA_CLNT_asp_up_act(0, rctx := int2oct(m3ua_configs[0].routing_ctx, 4));
+ f_M3UA_CLNT_asp_up_act(0, rctx := f_m3ua_config_get_all_rctx(m3ua_configs[0]));
} else {
f_M3UA_asp_up(0, ntfy_after_up := c_M3UA_ST_I_AS_INACTIVE);
}
@@ -675,10 +724,10 @@
testcase TC_act_rctx_data_no_rctx() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-receiver0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[1].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[1].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[1]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[1]);

f_init_m3ua(m3ua_configs := m3ua_configs);

@@ -698,7 +747,7 @@
testcase TC_adm_block_act_err() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
f_init_m3ua(m3ua_configs := m3ua_configs);

f_vty_cs7_asp_cmd(g_m3ua_configs[0], "block");
@@ -721,7 +770,7 @@
testcase TC_adm_block_after_act() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
f_init_m3ua(m3ua_configs := m3ua_configs);

f_M3UA_asp_up_act(0, rctx := rctx_sender);
@@ -774,8 +823,8 @@
}

/* Test if traffic is routed from idx_tx/pc_tx to idx_rx/pc_rx */
-friend function f_test_traffic(integer idx_tx, template (omit) OCT4 rctx_sender, OCT4 pc_tx,
- integer idx_rx, template (omit) OCT4 rctx_receiver, OCT4 pc_rx,
+friend function f_test_traffic(integer idx_tx, template (omit) octetstring rctx_sender, OCT4 pc_tx,
+ integer idx_rx, template (omit) octetstring rctx_receiver, OCT4 pc_rx,
OCT1 si := '02'O, OCT1 ni := mp_ni, OCT1 mp := '00'O, OCT1 sls := '00'O)
runs on RAW_M3UA_CT {
var octetstring data := f_rnd_octstring_rnd_len(100);
@@ -790,10 +839,10 @@
testcase TC_tmt_override() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-receiver0", "asp-receiver1" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[1].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[1].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[1]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[1]);

f_init_m3ua(m3ua_configs := m3ua_configs);

@@ -832,10 +881,10 @@
var integer i;
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-receiver0", "asp-receiver1" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[1].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[1].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[1]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[1]);

f_init_m3ua(m3ua_configs := m3ua_configs);

@@ -905,10 +954,10 @@
var integer i;
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-receiver0", "asp-receiver1" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[1].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[1].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[1]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[1]);

f_init_m3ua(m3ua_configs := m3ua_configs);

@@ -988,10 +1037,10 @@
var integer i;
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-receiver0", "asp-receiver1" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[1].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[1].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[1]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[1]);

f_init_m3ua(m3ua_configs := m3ua_configs);

@@ -1058,8 +1107,8 @@
testcase TC_rkm_reg_static_permitted() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT3 dpc := int2oct(m3ua_configs[0].point_code, 3); // must match config
- var OCT4 rctx := int2oct(m3ua_configs[0].routing_ctx, 4); // must match config
+ var OCT3 dpc := f_m3ua_config_get_pc_OCT3(m3ua_configs[0]); // must match config
+ var OCT4 rctx := f_m3ua_config_get_rctx(m3ua_configs[0]); // must match config

f_init_m3ua(m3ua_configs := m3ua_configs);

@@ -1091,7 +1140,7 @@
testcase TC_rkm_unreg_never_registered() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var octetstring rctx := int2oct(m3ua_configs[0].routing_ctx, 4);
+ var octetstring rctx := f_m3ua_config_get_rctx(m3ua_configs[0]);
f_init_m3ua(m3ua_configs := m3ua_configs);

f_M3UA_send(0, ts_M3UA_DEREG_REQ(ts_M3UA_routing_ctx(rctx)));
@@ -1138,8 +1187,8 @@
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
var OCT3 dpcA := int2oct(123, 3);
var OCT4 rctxA := int2oct(1234, 4);
- var OCT3 dpcB := int2oct(m3ua_configs[0].point_code, 4); // must match config
- var OCT4 rctxB := int2oct(m3ua_configs[0].routing_ctx, 4); // must match config
+ 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

f_init_common();
f_vty_config2(VTY, {"cs7 instance 0"}, "xua rkm routing-key-allocation dynamic-permitted");
@@ -1190,11 +1239,15 @@
use_tcp := false,
remote_port := 2905,
local_port := 2222,
- point_code := 22,
- routing_ctx := 220
+ as := {
+ {
+ point_code := 22,
+ routing_ctx := 220
+ }
+ }
}
};
- var OCT4 rctx0 := int2oct(m3ua_configs[0].routing_ctx, 4);
+ var OCT4 rctx0 := f_m3ua_config_get_rctx(m3ua_configs[0]);
f_init_common();
f_vty_config2(VTY, {"cs7 instance 0"}, "xua rkm routing-key-allocation dynamic-permitted");
f_init_m3ua(m3ua_configs := m3ua_configs);
@@ -1204,7 +1257,7 @@

/* REG REQ + RESP */
f_M3UA_send(0, ts_M3UA_REG_REQ({ts_M3UA_rkey(id:='00000001'O,
- dpc:=int2oct(m3ua_configs[0].point_code, 3),
+ dpc:=f_m3ua_config_get_pc_OCT3(m3ua_configs[0]),
tmt := c_M3UA_TMT_loadshare,
rctx := rctx0)}));
f_M3UA_exp(0, tr_M3UA_REG_RSP({tr_M3UA_reg_res(id:='00000001'O, status:=c_M3UA_REGSTS_SUCCESS,
@@ -1228,20 +1281,28 @@
use_tcp := false,
remote_port := 2905,
local_port := 2222,
- point_code := 22,
- routing_ctx := 220
+ as := {
+ {
+ point_code := 22,
+ routing_ctx := 220
+ }
+ }
}, {
asp_name := "unknown1",
is_server := false,
use_tcp := false,
remote_port := 2905,
local_port := 2223,
- point_code := 22,
- routing_ctx := 220
+ as := {
+ {
+ point_code := 22,
+ routing_ctx := 220
+ }
+ }
}
};
- var OCT4 rctx0 := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 rctx1 := int2oct(m3ua_configs[0].routing_ctx, 4);
+ var OCT4 rctx0 := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 rctx1 := f_m3ua_config_get_rctx(m3ua_configs[0]);
f_init_common();
f_vty_config2(VTY, {"cs7 instance 0"}, "xua rkm routing-key-allocation dynamic-permitted");
f_init_m3ua(m3ua_configs := m3ua_configs);
@@ -1252,7 +1313,7 @@

/* REG REQ + RESP */
f_M3UA_send(0, ts_M3UA_REG_REQ({ts_M3UA_rkey(id:='00000001'O,
- dpc:=int2oct(m3ua_configs[0].point_code, 3),
+ dpc := f_m3ua_config_get_pc_OCT3(m3ua_configs[0]),
tmt := c_M3UA_TMT_loadshare,
rctx := rctx0)}));
f_M3UA_exp(0, tr_M3UA_REG_RSP({tr_M3UA_reg_res(id:='00000001'O, status:=c_M3UA_REGSTS_SUCCESS,
@@ -1268,7 +1329,7 @@

/* REG REQ + RESP */
f_M3UA_send(1, ts_M3UA_REG_REQ({ts_M3UA_rkey(id:='00000001'O,
- dpc:=int2oct(m3ua_configs[1].point_code, 3),
+ dpc := f_m3ua_config_get_pc_OCT3(m3ua_configs[1]),
tmt := c_M3UA_TMT_loadshare,
rctx := rctx1)}));
f_M3UA_exp(1, tr_M3UA_REG_RSP({tr_M3UA_reg_res(id:='00000001'O, status:=c_M3UA_REGSTS_SUCCESS,
@@ -1299,14 +1360,14 @@

/* expect/perform an inbound ASP-ACTIVATE procedure */
friend function f_M3UA_CLNT_asp_act(integer idx, template M3UA_Traffic_Mode_Type tmt := omit,
- template (omit) OCT4 rctx := omit) runs on RAW_M3UA_CT {
+ template (omit) octetstring rctx := omit) runs on RAW_M3UA_CT {
f_M3UA_exp(idx, tr_M3UA_ASPAC(tmt, rctx));
f_M3UA_send(idx, ts_M3UA_ASPAC_ACK(tmt, rctx));
}

/* expect/perform inbound ASP-UP and ASP-ACT, optionally send interemittent NOTIFY */
friend function f_M3UA_CLNT_asp_up_act(integer idx, template M3UA_Traffic_Mode_Type tmt := omit,
- template OCT4 rctx := omit,
+ template octetstring rctx := omit,
template (omit) OCT2 ntfy_after_up := c_M3UA_ST_I_AS_INACTIVE,
template (omit) OCT2 ntfy_after_act := c_M3UA_ST_I_AS_ACTIVE)
runs on RAW_M3UA_CT {
@@ -1348,7 +1409,7 @@
testcase TC_clnt_asp_act() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx := int2oct(m3ua_configs[0].routing_ctx, 4);
+ var OCT4 rctx := f_m3ua_config_get_rctx(m3ua_configs[0]);
f_init_m3ua(m3ua_configs := m3ua_configs);
f_init_m3ua_srv();

@@ -1361,7 +1422,7 @@
testcase TC_clnt_asp_act_tmt_loadshare() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx := int2oct(m3ua_configs[0].routing_ctx, 4);
+ var OCT4 rctx := f_m3ua_config_get_rctx(m3ua_configs[0]);

f_init_common();
f_vty_config2(VTY, {"cs7 instance 0", "as as-client m3ua"}, "traffic-mode loadshare");
@@ -1378,10 +1439,10 @@
testcase TC_clnt_sg_to_asp() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[1].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[1].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[1]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[1]);

f_init_m3ua(m3ua_configs := m3ua_configs);
f_M3UA_asp_up_act(0);
@@ -1402,10 +1463,10 @@
testcase TC_clnt_asp_to_sg() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[1].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[1].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[0].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[1]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[1]);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[0]);

f_init_m3ua(m3ua_configs := m3ua_configs);
f_M3UA_asp_up_act(0);
@@ -1425,10 +1486,10 @@
testcase TC_clnt_sg_to_asp_norctx() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-client60-norctx0", "asp-client61-norctx0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[1].point_code, 4);
- var OCT4 pc_receiver2 := int2oct(m3ua_configs[2].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[1]);
+ var OCT4 pc_receiver2 := f_m3ua_config_get_pc(m3ua_configs[2]);

/* activate the sender side (ATS is client to STP in SG role) */
f_init_m3ua(m3ua_configs := m3ua_configs);
@@ -1455,10 +1516,10 @@
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-client60-norctx0", "asp-client61-norctx0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);

- var OCT4 rctx_receiver := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[0].point_code, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[1].point_code, 4);
- var OCT4 pc_sender2 := int2oct(m3ua_configs[2].point_code, 4);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[1]);
+ var OCT4 pc_sender2 := f_m3ua_config_get_pc(m3ua_configs[2]);

/* activate the sender side (ATS is client to STP in SG role) */
f_init_m3ua(m3ua_configs := m3ua_configs);
@@ -1483,8 +1544,8 @@
testcase TC_ssnm_aspac_dava_aspia_duna() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-receiver0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx0 := int2oct(m3ua_configs[0].routing_ctx, 4);
- var integer pc0 := m3ua_configs[1].point_code;
+ var OCT4 rctx0 := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var M3UA_Point_Codes aff_pcs0 := f_m3ua_config_get_all_affected_pc(m3ua_configs[1]);

f_init_m3ua(ignore_ssnm := false, m3ua_configs := m3ua_configs);
/* activate the first ASP */
@@ -1493,13 +1554,13 @@
/* activate the second ASP */
f_M3UA_asp_up_act(1, c_M3UA_TMT_override, omit);
/* expect DAVA for PC of second ASP on first ASP */
- f_M3UA_exp(0, tr_M3UA_DAVA({ts_M3UA_PC(pc0, 0)}, rctx0));
+ f_M3UA_exp(0, tr_M3UA_DAVA(aff_pcs0, rctx0));
/* TODO: expect no DAVA on second ASP */

/* deactivate the second ASP */
f_M3UA_asp_inact(1);
/* expect DUNA for PC of second ASP on first ASP */
- f_M3UA_exp(0, tr_M3UA_DUNA({ts_M3UA_PC(pc0, 0)}, rctx0));
+ f_M3UA_exp(0, tr_M3UA_DUNA(aff_pcs0, rctx0));
/* TODO: expect no DUNA on second ASP */

f_clear_m3ua();
@@ -1509,8 +1570,8 @@
testcase TC_ssnm_distribution_dava_duna() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx0 := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 rctxS0 := int2oct(m3ua_configs[1].routing_ctx, 4);
+ var OCT4 rctx0 := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 rctxS0 := f_m3ua_config_get_rctx(m3ua_configs[1]);
/* some random point code whose availability we advertise */
var template (value) M3UA_Point_Code adv_pc := ts_M3UA_PC(1234, 0);

@@ -1538,8 +1599,8 @@
testcase TC_ssnm_distribution_dava_duna_multipc() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx0 := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 rctxS0 := int2oct(m3ua_configs[1].routing_ctx, 4);
+ var OCT4 rctx0 := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 rctxS0 := f_m3ua_config_get_rctx(m3ua_configs[1]);
/* some random point code whose availability we advertise */
var template (value) M3UA_Point_Codes adv_pcs := { ts_M3UA_PC(1234, 0), ts_M3UA_PC(5678, 0) };

@@ -1567,8 +1628,8 @@
testcase TC_ssnm_distribution_dupu() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx0 := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 rctxS0 := int2oct(m3ua_configs[1].routing_ctx, 4);
+ var OCT4 rctx0 := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 rctxS0 := f_m3ua_config_get_rctx(m3ua_configs[1]);
/* some random point code whose availability we advertise */
var template (value) M3UA_Point_Code adv_pc := ts_M3UA_PC(1234, 0);

@@ -1591,8 +1652,8 @@
testcase TC_ssnm_distribution_scon() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx0 := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 rctxS0 := int2oct(m3ua_configs[1].routing_ctx, 4);
+ var OCT4 rctx0 := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 rctxS0 := f_m3ua_config_get_rctx(m3ua_configs[1]);
/* some random point code whose availability we advertise */
var template (value) M3UA_Point_Code adv_pc := ts_M3UA_PC(1234, 0);

@@ -1650,7 +1711,7 @@
f_quirk("no_notify");
f_init_m3ua_srv();

- f_M3UA_CLNT_asp_up_act(0, rctx := int2oct(g_m3ua_configs[0].routing_ctx, 4),
+ f_M3UA_CLNT_asp_up_act(0, rctx := f_m3ua_config_get_rctx(g_m3ua_configs[0]),
ntfy_after_up := omit, ntfy_after_act := omit);
f_no_quirk("no_notify");
f_clear_m3ua();
@@ -1660,9 +1721,8 @@
testcase TC_clnt_no_daud_in_asp() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx := int2oct(m3ua_configs[0].routing_ctx, 4);
- var integer pc := m3ua_configs[0].point_code;
- var template (value) M3UA_Point_Codes aff_pcs := { ts_M3UA_PC(pc) };
+ var OCT4 rctx := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var template (value) M3UA_Point_Codes aff_pcs := f_m3ua_config_get_all_affected_pc(m3ua_configs[0]);

f_init_m3ua(m3ua_configs := m3ua_configs);
f_no_quirk("daud_in_asp");
@@ -1681,9 +1741,8 @@
testcase TC_clnt_quirk_daud_in_asp() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx := int2oct(m3ua_configs[0].routing_ctx, 4);
- var integer pc := m3ua_configs[0].point_code;
- var template (value) M3UA_Point_Codes aff_pcs := { ts_M3UA_PC(pc) };
+ var OCT4 rctx := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var template (value) M3UA_Point_Codes aff_pcs := f_m3ua_config_get_all_affected_pc(m3ua_configs[0]);

f_init_m3ua(m3ua_configs := m3ua_configs);
f_quirk("daud_in_asp");
@@ -1703,7 +1762,7 @@
testcase TC_clnt_no_snm_inactive() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var template (value) M3UA_Point_Codes aff_pcs := { ts_M3UA_PC(m3ua_configs[0].point_code) };
+ var template (value) M3UA_Point_Codes aff_pcs := f_m3ua_config_get_all_affected_pc(m3ua_configs[0]);

f_init_m3ua(m3ua_configs := m3ua_configs);
f_quirk("no_notify");
@@ -1728,7 +1787,7 @@
testcase TC_clnt_quirk_snm_inactive() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-client0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var template (value) M3UA_Point_Codes aff_pcs := { ts_M3UA_PC(m3ua_configs[0].point_code) };
+ var template (value) M3UA_Point_Codes aff_pcs := f_m3ua_config_get_all_affected_pc(m3ua_configs[0]);

f_init_m3ua(m3ua_configs := m3ua_configs);
f_quirk("no_notify");
@@ -1759,7 +1818,7 @@
f_init_m3ua(m3ua_configs := m3ua_configs);
f_init_m3ua_srv();

- var OCT4 rctx := int2oct(m3ua_configs[0].routing_ctx, 4);
+ var OCT4 rctx := f_m3ua_config_get_rctx(m3ua_configs[0]);
f_M3UA_CLNT_asp_up_act(0, rctx := rctx);
f_sleep(1.0);
f_vty_cs7_asp_cmd(m3ua_configs[0], "shutdown");
@@ -1798,10 +1857,10 @@
var integer i;
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-LS0-0-0", "asp-LS0-1-0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[1].routing_ctx, 4);
- var OCT4 rctx_receiver2 := int2oct(m3ua_configs[2].routing_ctx, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[1]);
+ var OCT4 rctx_receiver2 := f_m3ua_config_get_rctx(m3ua_configs[2]);
var OCT4 pc_receiver := int2oct(99, 4);

f_init_m3ua(m3ua_configs := m3ua_configs);
@@ -1872,8 +1931,8 @@
f_clear_m3ua();
}

-private function f_tc_inaccessible_sp_duna(integer idx_tx, OCT4 pc_sender, OCT4 rctx_sender,
- OCT4 pc_receiver, OCT4 rctx_receiver) runs on RAW_M3UA_CT {
+private function f_tc_inaccessible_sp_duna(integer idx_tx, OCT4 pc_sender, octetstring rctx_sender,
+ OCT4 pc_receiver, octetstring rctx_receiver) runs on RAW_M3UA_CT {
var octetstring data := f_rnd_octstring_rnd_len(100);
var template (value) M3UA_Protocol_Data m3ua_data;
/* Max for T8 is 1200 msec, so we leave some more time. to avodi race conditions: */
@@ -1912,8 +1971,8 @@
testcase TC_inaccessible_sp_duna() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
var OCT4 rctx_receiver := int2oct(3, 4);
var OCT4 pc_receiver := int2oct(mp_inaccessible_pc, 4);

@@ -1928,10 +1987,10 @@
testcase TC_inaccessible_sp_duna2() runs on RAW_M3UA_CT {
var Misc_Helpers.ro_charstring asps := { "asp-sender", "asp-receiver0" };
var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
- var OCT4 rctx_sender := int2oct(m3ua_configs[0].routing_ctx, 4);
- var OCT4 pc_sender := int2oct(m3ua_configs[0].point_code, 4);
- var OCT4 rctx_receiver := int2oct(m3ua_configs[1].routing_ctx, 4);
- var OCT4 pc_receiver := int2oct(m3ua_configs[1].point_code, 4);
+ var OCT4 rctx_sender := f_m3ua_config_get_rctx(m3ua_configs[0]);
+ var OCT4 pc_sender := f_m3ua_config_get_pc(m3ua_configs[0]);
+ var OCT4 rctx_receiver := f_m3ua_config_get_rctx(m3ua_configs[1]);
+ var OCT4 pc_receiver := f_m3ua_config_get_pc(m3ua_configs[1]);

f_init_m3ua(m3ua_configs := m3ua_configs);

diff --git a/stp/STP_Tests_M3UA_TCP.cfg b/stp/STP_Tests_M3UA_TCP.cfg
index 704de7a..7508ed0 100644
--- a/stp/STP_Tests_M3UA_TCP.cfg
+++ b/stp/STP_Tests_M3UA_TCP.cfg
@@ -18,8 +18,12 @@
use_tcp := false,
remote_port := 2905,
local_port := 9999,
- point_code := 23,
- routing_ctx := 1023
+ as := {
+ {
+ point_code := 23,
+ routing_ctx := 1023
+ }
+ }
},
{
asp_name := "asp-sender-tcp",
@@ -27,8 +31,12 @@
use_tcp := true,
remote_port := 2905,
local_port := 9999,
- point_code := 123,
- routing_ctx := 1123
+ as := {
+ {
+ point_code := 123,
+ routing_ctx := 1123
+ }
+ }
},
{
asp_name := "asp-client0",
@@ -36,8 +44,12 @@
use_tcp := false,
remote_port := 2906,
local_port := 10002,
- point_code := 55,
- routing_ctx := 1055
+ as := {
+ {
+ point_code := 55,
+ routing_ctx := 1055
+ }
+ }
},
{
asp_name := "asp-client0-tcp",
@@ -45,8 +57,12 @@
use_tcp := true,
remote_port := 2906,
local_port := 10002,
- point_code := 155,
- routing_ctx := 1155
+ as := {
+ {
+ point_code := 155,
+ routing_ctx := 1155
+ }
+ }
}
};

diff --git a/stp/STP_Tests_M3UA_TCP.ttcn b/stp/STP_Tests_M3UA_TCP.ttcn
index 4e0706b..8cb026f 100644
--- a/stp/STP_Tests_M3UA_TCP.ttcn
+++ b/stp/STP_Tests_M3UA_TCP.ttcn
@@ -45,10 +45,10 @@
private function f_TC_m3ua_tcp(integer idx_a, integer idx_b) runs on RAW_M3UA_CT {
var M3uaConfig cfg_a := g_m3ua_configs[idx_a];
var M3uaConfig cfg_b := g_m3ua_configs[idx_b];
- var OCT4 rctx_a := int2oct(cfg_a.routing_ctx, 4);
- var OCT4 rctx_b := int2oct(cfg_b.routing_ctx, 4);
- var OCT4 pc_a := int2oct(cfg_a.point_code, 4);
- var OCT4 pc_b := int2oct(cfg_b.point_code, 4);
+ var OCT4 rctx_a := f_m3ua_config_get_rctx(cfg_a);
+ var OCT4 rctx_b := f_m3ua_config_get_rctx(cfg_b);
+ var OCT4 pc_a := f_m3ua_config_get_pc(cfg_a);
+ var OCT4 pc_b := f_m3ua_config_get_pc(cfg_b);

/* establish connection with ASP 'A' */
if (g_m3ua_configs[idx_a].is_server) {
@@ -166,7 +166,7 @@
f_init_m3ua(m3ua_configs := m3ua_configs);
f_init_m3ua_srv();

- var OCT4 rctx := int2oct(m3ua_configs[0].routing_ctx, 4);
+ var OCT4 rctx := f_m3ua_config_get_rctx(m3ua_configs[0]);
f_M3UA_CLNT_asp_up_act(0, rctx := rctx);
f_sleep(1.0);
f_vty_cs7_asp_cmd(m3ua_configs[0], "shutdown");

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

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