Change in osmo-ttcn3-hacks[master]: stp: Less magic numbers; centralize M3UA configuration

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Sun Feb 7 22:07:19 UTC 2021


laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22784 )


Change subject: stp: Less magic numbers; centralize M3UA configuration
......................................................................

stp: Less magic numbers; centralize M3UA configuration

We shouldn't be having magic numbers for point codes etc. in each
test case.

Change-Id: Id8a6241657e1f02f15d6722934eb040fc98beab1
---
M stp/STP_Tests_M3UA.ttcn
1 file changed, 89 insertions(+), 47 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/84/22784/1

diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn
index b76d9be..ee78c9c 100644
--- a/stp/STP_Tests_M3UA.ttcn
+++ b/stp/STP_Tests_M3UA.ttcn
@@ -34,18 +34,58 @@
 
 import from STP_Tests_Common all;
 
-modulepar {
-	HostList mp_stp_m3ua_ip := { "127.0.0.1", "::1" };
-	HostList mp_local_m3ua_ip := { "127.0.0.1", "::1" };
-	integer mp_stp_m3ua_port := 2905;
-	integer mp_stp_m3ua_clnt_port := 2906;
-	integer mp_local_m3ua_port := 9999;
-	integer mp_recovery_timeout_msec := 2000;
-}
-
 private const integer NR_M3UA := 3;	/* number of M3UA clients in ATS */
 private const integer NR_M3UA_SRV := 1;	/* number of M3UA servres in ATS */
 
+modulepar {
+	/* STP-side IP addresses */
+	HostList mp_stp_m3ua_ip := { "127.0.0.1", "::1" };
+	/* local IP addresses */
+	HostList mp_local_m3ua_ip := { "127.0.0.1", "::1" };
+	M3uaConfigs mp_m3ua_configs := {
+		/* as-sender: One ASP within AS */
+		{
+			remote_sctp_port := 2905,
+			local_sctp_port := 9999,
+			point_code := 23,
+			routing_ctx := 1023
+		},
+		/* as-reeiver: Two ASP within AS */
+		{
+			remote_sctp_port := 2905,
+			local_sctp_port := 10000,
+			point_code := 42,
+			routing_ctx := 1042
+		}, {
+			remote_sctp_port := 2905,
+			local_sctp_port := 10001,
+			point_code := 42,
+			routing_ctx := 1042
+		},
+		/* as-client: One ASP within AS */
+		{
+			remote_sctp_port := 2906,
+			local_sctp_port := 10002,
+			point_code := 55,
+			routing_ctx := 1055
+		}
+	};
+	integer mp_recovery_timeout_msec := 2000;
+	charstring mp_sccp_service_type := "mtp3_itu";
+}
+
+type record M3uaConfig {
+	/* STP-side SCTP port for M3UA */
+	integer remote_sctp_port,
+	/* local M3UA base port on TTCN3 side */
+	integer local_sctp_port,
+	/* point code routed via this M3U */
+	integer point_code,
+	/* associated routing context */
+	integer routing_ctx
+};
+type record length (NR_M3UA+NR_M3UA_SRV) of M3uaConfig M3uaConfigs;
+
 private function M3UA_SRV(integer idx) return integer {
 	return NR_M3UA+idx;
 }
@@ -121,6 +161,7 @@
 	var Option opt_add_local_addrs;
 	var OptionList opt_list := {};
 	var template SocketList opt_add_remote_addrs;
+	var M3uaConfig m3cfg := mp_m3ua_configs[i];
 
 	if (lengthof(mp_local_m3ua_ip) == 0 or lengthof(mp_stp_m3ua_ip) == 0) {
 		setverdict(fail, "Empty local or remote address trying to connect SCTP socket: ",
@@ -136,15 +177,15 @@
 
 	if (lengthof(mp_stp_m3ua_ip) > 1) {
 		for (var integer j := 1; j < lengthof(mp_stp_m3ua_ip); j := j + 1) {
-			var Socket sk := valueof(ts_Socket(mp_stp_m3ua_ip[j], mp_stp_m3ua_port));
+			var Socket sk := valueof(ts_Socket(mp_stp_m3ua_ip[j], m3cfg.remote_sctp_port));
 			opt_add_remote_addrs[j - 1] := sk;
 		}
 	} else {
 		opt_add_remote_addrs := omit;
 	}
 
-	res := M3UA_CodecPort_CtrlFunct.f_IPL4_connect(M3UA[i], mp_stp_m3ua_ip[0], mp_stp_m3ua_port,
-						       mp_local_m3ua_ip[0], mp_local_m3ua_port+i, 0,
+	res := M3UA_CodecPort_CtrlFunct.f_IPL4_connect(M3UA[i], mp_stp_m3ua_ip[0], m3cfg.remote_sctp_port,
+						       mp_local_m3ua_ip[0], m3cfg.local_sctp_port, 0,
 						       {sctp:=valueof(ts_SCTP(3, 0, opt_add_remote_addrs))},
 						       opt_list);
 	if (not ispresent(res.connId)) {
@@ -164,6 +205,7 @@
 	var Result res;
 	var Option opt_add_local_addrs;
 	var OptionList opt_list := {};
+	var M3uaConfig m3cfg := mp_m3ua_configs[i];
 
 	if (lengthof(mp_local_m3ua_ip) == 0 ) {
 		setverdict(fail, "Empty local address trying to bind SCTP socket: ",
@@ -177,7 +219,7 @@
 		opt_list := {opt_add_local_addrs};
 	}
 
-	res := M3UA_CodecPort_CtrlFunct.f_IPL4_listen(M3UA[i], mp_local_m3ua_ip[0], mp_local_m3ua_port+i,
+	res := M3UA_CodecPort_CtrlFunct.f_IPL4_listen(M3UA[i], mp_local_m3ua_ip[0], m3cfg.local_sctp_port,
 						      {sctp:=valueof(ts_SCTP)}, opt_list);
 	if (not ispresent(res.connId)) {
 		setverdict(fail, "Could not bind M3UA socket, check your configuration");
@@ -329,10 +371,10 @@
 
 /* test whether the STP accepts M3UA DATA without Routing Context IE */
 testcase TC_act_rctx_data_no_rctx() runs on RAW_M3UA_CT {
-	var OCT4 rctx_sender := int2oct(1023, 4);
-	var OCT4 pc_sender := int2oct(23, 4);
-	var OCT4 rctx_receiver := int2oct(1042, 4);
-	var OCT4 pc_receiver := int2oct(42, 4);
+	var OCT4 rctx_sender := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
+	var OCT4 pc_sender := int2oct(mp_m3ua_configs[0].point_code, 4);
+	var OCT4 rctx_receiver := int2oct(mp_m3ua_configs[1].routing_ctx, 4);
+	var OCT4 pc_receiver := int2oct(mp_m3ua_configs[1].point_code, 4);
 
 	f_init_m3ua();
 	/* bring up the sender specifying a routing context */
@@ -361,10 +403,10 @@
 
 /* test "traffic-mode override" behavior */
 testcase TC_tmt_override() runs on RAW_M3UA_CT {
-	var OCT4 rctx_sender := int2oct(1023, 4);
-	var OCT4 pc_sender := int2oct(23, 4);
-	var OCT4 rctx_receiver := int2oct(1042, 4);
-	var OCT4 pc_receiver := int2oct(42, 4);
+	var OCT4 rctx_sender := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
+	var OCT4 pc_sender := int2oct(mp_m3ua_configs[0].point_code, 4);
+	var OCT4 rctx_receiver := int2oct(mp_m3ua_configs[1].routing_ctx, 4);
+	var OCT4 pc_receiver := int2oct(mp_m3ua_configs[1].point_code, 4);
 
 	f_init_m3ua();
 
@@ -398,10 +440,10 @@
 
 /* test "traffic-mode load-share" behavior */
 testcase TC_tmt_loadshare() runs on RAW_M3UA_CT {
-	var OCT4 rctx_sender := int2oct(1023, 4);
-	var OCT4 pc_sender := int2oct(23, 4);
-	var OCT4 rctx_receiver := int2oct(1042, 4);
-	var OCT4 pc_receiver := int2oct(42, 4);
+	var OCT4 rctx_sender := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
+	var OCT4 pc_sender := int2oct(mp_m3ua_configs[0].point_code, 4);
+	var OCT4 rctx_receiver := int2oct(mp_m3ua_configs[1].routing_ctx, 4);
+	var OCT4 pc_receiver := int2oct(mp_m3ua_configs[1].point_code, 4);
 	var integer i;
 
 	f_init_m3ua();
@@ -451,10 +493,10 @@
 
 /* test "traffic-mode broadcast" behavior */
 testcase TC_tmt_broadcast() runs on RAW_M3UA_CT {
-	var OCT4 rctx_sender := int2oct(1023, 4);
-	var OCT4 pc_sender := int2oct(23, 4);
-	var OCT4 rctx_receiver := int2oct(1042, 4);
-	var OCT4 pc_receiver := int2oct(42, 4);
+	var OCT4 rctx_sender := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
+	var OCT4 pc_sender := int2oct(mp_m3ua_configs[0].point_code, 4);
+	var OCT4 rctx_receiver := int2oct(mp_m3ua_configs[1].routing_ctx, 4);
+	var OCT4 pc_receiver := int2oct(mp_m3ua_configs[1].point_code, 4);
 	var integer i;
 
 	f_init_m3ua();
@@ -513,8 +555,8 @@
 
 /* Send RKM registration; expect OK as RCTX does match config */
 testcase TC_rkm_reg_static_permitted() runs on RAW_M3UA_CT {
-	var OCT3 dpc := int2oct(23, 3); // must match config
-	var OCT4 rctx := int2oct(1023, 4);  // must match config
+	var OCT3 dpc := int2oct(mp_m3ua_configs[0].point_code, 3); // must match config
+	var OCT4 rctx := int2oct(mp_m3ua_configs[0].routing_ctx, 4);  // must match config
 
 	f_init_m3ua();
 
@@ -543,7 +585,7 @@
 /* try to de-register a routing key that was never registered -> error */
 testcase TC_rkm_unreg_never_registered() runs on RAW_M3UA_CT {
 	f_init_m3ua();
-	f_M3UA_send(0, ts_M3UA_DEREG_REQ(ts_M3UA_routing_ctx(int2oct(1023,4))));
+	f_M3UA_send(0, ts_M3UA_DEREG_REQ(ts_M3UA_routing_ctx(int2oct(mp_m3ua_configs[0].routing_ctx,4))));
 	f_M3UA_exp(0, tr_M3UA_DEREG_RSP({tr_M3UA_dereg_res(?,c_m3UA_DEREGSTS_ERR_NOT_REG)}));
 	f_clear_m3ua();
 }
@@ -559,15 +601,15 @@
 /* try to de-register a routing key that was registered -> OK*/
 testcase TC_rkm_unreg_registered() runs on RAW_M3UA_CT {
 	f_init_m3ua();
-	f_M3UA_send(0, ts_M3UA_DEREG_REQ(ts_M3UA_routing_ctx(int2oct(1023,4))));
+	f_M3UA_send(0, ts_M3UA_DEREG_REQ(ts_M3UA_routing_ctx(int2oct(mp_m3ua_configs[0].routing_ctx,4))));
 	f_M3UA_exp(0, tr_M3UA_DEREG_RSP({tr_M3UA_dereg_res(?,c_m3UA_DEREGSTS_SUCCESS)}));
 	f_clear_m3ua();
 }
 
 /* try to de-register a routing key for an active ASP -> ERROR */
 testcase TC_rkm_unreg_active() runs on RAW_M3UA_CT {
-	var OCT3 dpc := int2oct(23, 3); // must match config
-	var OCT4 rctx := int2oct(1023, 4);  // must match config
+	var OCT3 dpc := int2oct(mp_m3ua_configs[0].point_code, 3); // must match config
+	var OCT4 rctx := int2oct(mp_m3ua_configs[0].routing_ctx, 4);  // must match config
 
 	f_init_m3ua();
 
@@ -634,7 +676,7 @@
 	f_init_m3ua();
 	f_init_m3ua_srv();
 
-	f_M3UA_CLNT_asp_up_act(M3UA_SRV(0), rctx := int2oct(1055, 4));
+	f_M3UA_CLNT_asp_up_act(M3UA_SRV(0), rctx := int2oct(mp_m3ua_configs[M3UA_SRV(0)].routing_ctx, 4));
 
 	f_clear_m3ua();
 }
@@ -646,7 +688,7 @@
 	f_init_m3ua();
 	f_init_m3ua_srv();
 
-	f_M3UA_CLNT_asp_up_act(M3UA_SRV(0), tmt := c_M3UA_TMT_loadshare, rctx := int2oct(1055, 4));
+	f_M3UA_CLNT_asp_up_act(M3UA_SRV(0), tmt := c_M3UA_TMT_loadshare, rctx := int2oct(mp_m3ua_configs[M3UA_SRV(0)].routing_ctx, 4));
 
 	f_clear_m3ua();
 }
@@ -654,16 +696,16 @@
 /* Test traffic being routed through "server" side STP (M3UA SG), coming back in "client"
  * side STP (M3UA ASP) */
 testcase TC_clnt_sg_to_asp() runs on RAW_M3UA_CT {
-	var OCT4 rctx_sender := int2oct(1023, 4);
-	var OCT4 pc_sender := int2oct(23, 4);
-	var OCT4 rctx_receiver := int2oct(1055, 4);
-	var OCT4 pc_receiver := int2oct(55, 4);
+	var OCT4 rctx_sender := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
+	var OCT4 pc_sender := int2oct(mp_m3ua_configs[0].point_code, 4);
+	var OCT4 rctx_receiver := int2oct(mp_m3ua_configs[M3UA_SRV(0)].routing_ctx, 4);
+	var OCT4 pc_receiver := int2oct(mp_m3ua_configs[M3UA_SRV(0)].point_code, 4);
 
 	f_init_m3ua();
 	f_M3UA_asp_up_act(0);
 
 	f_init_m3ua_srv();
-	f_M3UA_CLNT_asp_up_act(M3UA_SRV(0), rctx := int2oct(1055, 4));
+	f_M3UA_CLNT_asp_up_act(M3UA_SRV(0), rctx := int2oct(mp_m3ua_configs[M3UA_SRV(0)].routing_ctx, 4));
 
 	f_sleep(1.0);
 
@@ -676,16 +718,16 @@
 /* Test traffic being routed through "client" side STP (M3UA ASP), coming back in "server"
  * side STP (M3UA SG) */
 testcase TC_clnt_asp_to_sg() runs on RAW_M3UA_CT {
-	var OCT4 rctx_sender := int2oct(1055, 4);
-	var OCT4 pc_sender := int2oct(55, 4);
-	var OCT4 rctx_receiver := int2oct(1023, 4);
-	var OCT4 pc_receiver := int2oct(23, 4);
+	var OCT4 rctx_sender := int2oct(mp_m3ua_configs[M3UA_SRV(0)].routing_ctx, 4);
+	var OCT4 pc_sender := int2oct(mp_m3ua_configs[M3UA_SRV(0)].point_code, 4);
+	var OCT4 rctx_receiver := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
+	var OCT4 pc_receiver := int2oct(mp_m3ua_configs[0].point_code, 4);
 
 	f_init_m3ua();
 	f_M3UA_asp_up_act(0);
 
 	f_init_m3ua_srv();
-	f_M3UA_CLNT_asp_up_act(M3UA_SRV(0), rctx := int2oct(1055, 4));
+	f_M3UA_CLNT_asp_up_act(M3UA_SRV(0), rctx := int2oct(mp_m3ua_configs[M3UA_SRV(0)].routing_ctx, 4));
 
 	f_sleep(1.0);
 

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22784
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Id8a6241657e1f02f15d6722934eb040fc98beab1
Gerrit-Change-Number: 22784
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210207/1c3df3f3/attachment.htm>


More information about the gerrit-log mailing list