aboutsummaryrefslogtreecommitdiffstats
path: root/stp
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2023-04-15 20:30:52 +0800
committerlaforge <laforge@osmocom.org>2023-04-20 04:51:39 +0000
commit6baf5e77679923776a76123b74ae3beb0b55af8a (patch)
tree5aac8681be1a5b0c0a9c4faa165ea0cf22aad5cb /stp
parent3e5f05ef593980df7438401e0b943f9b9a8dee7b (diff)
stp: Add tests for setups with multiple "routing context 0" ASPs
These two test cases verify that * libosmo-sigtran doesn't include a routing context IE even in ASP role when using a ASP with a single routing context 0 configured * osmo-stp can route between a single SG-role ASP with routing context to two ASP-role ASPs which both have routing context 0 (i.e. no routing context IE in use) The tests do not pass with current libosmo-sigtran until OS#6003 is fixed, presumably by Change-Id I5ce89b393a3b950ab7fd1eace9038718c9efcc51 Change-Id: I81052ece7d1cc8b43da6155356ed1c4d9620acdc Related: OS#6003
Diffstat (limited to 'stp')
-rw-r--r--stp/STP_Tests_M3UA.ttcn73
-rw-r--r--stp/osmo-stp.cfg18
2 files changed, 90 insertions, 1 deletions
diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn
index 41b2e2cf..5af894ab 100644
--- a/stp/STP_Tests_M3UA.ttcn
+++ b/stp/STP_Tests_M3UA.ttcn
@@ -35,7 +35,7 @@ import from SCCP_Emulation all;
import from STP_Tests_Common all;
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 */
+private const integer NR_M3UA_SRV := 3; /* number of M3UA servres in ATS */
modulepar {
/* STP-side IP addresses */
@@ -68,6 +68,20 @@ modulepar {
local_sctp_port := 10002,
point_code := 55,
routing_ctx := 1055
+ },
+ /* as-client60-norctx */
+ {
+ remote_sctp_port := 2907,
+ local_sctp_port := 11060,
+ point_code := 60,
+ routing_ctx := -
+ },
+ /* as-client61-norctx */
+ {
+ remote_sctp_port := 2907,
+ local_sctp_port := 11061,
+ point_code := 61,
+ routing_ctx := -
}
};
integer mp_recovery_timeout_msec := 2000;
@@ -793,6 +807,60 @@ testcase TC_clnt_asp_to_sg() runs on RAW_M3UA_CT {
f_clear_m3ua();
}
+/* Test traffic being routed through "server" side STP (M3UA SG), coming back in "client"
+ * side STP (M3UA ASP) which has no routing context set */
+testcase TC_clnt_sg_to_asp_norctx() runs on RAW_M3UA_CT {
+ 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 pc_receiver := int2oct(mp_m3ua_configs[M3UA_SRV(1)].point_code, 4);
+ var OCT4 pc_receiver2 := int2oct(mp_m3ua_configs[M3UA_SRV(2)].point_code, 4);
+
+ /* activate the sender side (ATS is client to STP in SG role) */
+ f_init_m3ua();
+ f_M3UA_asp_up_act(0);
+
+ /* activate the receiver side (ATS is server to STP in ASP role) */
+ f_init_m3ua_srv();
+ f_M3UA_CLNT_asp_up_act(M3UA_SRV(1), rctx := omit);
+ /* activate another instance of STP in ASP role with no routing context */
+ f_M3UA_CLNT_asp_up_act(M3UA_SRV(2), rctx := omit);
+
+ f_sleep(1.0);
+
+ /* verify traffic is routed from sender to [sole] receiver for each PC */
+ f_test_traffic(0, rctx_sender, pc_sender, M3UA_SRV(1), omit, pc_receiver);
+ f_test_traffic(0, rctx_sender, pc_sender, M3UA_SRV(2), omit, pc_receiver2);
+
+ f_clear_m3ua();
+}
+
+/* Test traffic being routed through "server" side STP (M3UA SG), coming back in "client"
+ * side STP (M3UA ASP) which has no routing context set */
+testcase TC_clnt_asp_to_sg_norctx() runs on RAW_M3UA_CT {
+ var OCT4 rctx_receiver := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
+ var OCT4 pc_receiver := int2oct(mp_m3ua_configs[0].point_code, 4);
+ var OCT4 pc_sender := int2oct(mp_m3ua_configs[M3UA_SRV(1)].point_code, 4);
+ var OCT4 pc_sender2 := int2oct(mp_m3ua_configs[M3UA_SRV(2)].point_code, 4);
+
+ /* activate the sender side (ATS is client to STP in SG role) */
+ f_init_m3ua();
+ f_M3UA_asp_up_act(0);
+
+ /* activate the receiver side (ATS is server to STP in ASP role) */
+ f_init_m3ua_srv();
+ f_M3UA_CLNT_asp_up_act(M3UA_SRV(1), rctx := omit);
+ /* activate another instance of STP in ASP role with no routing context */
+ f_M3UA_CLNT_asp_up_act(M3UA_SRV(2), rctx := omit);
+
+ f_sleep(1.0);
+
+ /* verify traffic is routed from sender to [sole] receiver for each PC */
+ f_test_traffic(M3UA_SRV(1), omit, pc_sender, 0, rctx_receiver, pc_receiver);
+ f_test_traffic(M3UA_SRV(2), omit, pc_sender2, 0, rctx_receiver, pc_receiver);
+
+ f_clear_m3ua();
+}
+
/* Test if ASPAC / ASPIA of one ASP generates DAVA / DUNA on other ASP */
testcase TC_ssnm_aspac_dava_aspia_duna() runs on RAW_M3UA_CT {
var OCT4 rctx0 := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
@@ -1050,6 +1118,9 @@ control {
execute( TC_clnt_sg_to_asp() );
execute( TC_clnt_asp_to_sg() );
+ execute( TC_clnt_sg_to_asp_norctx() );
+ execute( TC_clnt_asp_to_sg_norctx() );
+
execute( TC_clnt_quirk_no_notify_asp_act() );
execute( TC_clnt_no_daud_in_asp() );
execute( TC_clnt_quirk_daud_in_asp() );
diff --git a/stp/osmo-stp.cfg b/stp/osmo-stp.cfg
index 50c80d37..427eb340 100644
--- a/stp/osmo-stp.cfg
+++ b/stp/osmo-stp.cfg
@@ -53,6 +53,16 @@ cs7 instance 0
remote-ip 127.0.0.1
sctp-role client
role asp
+ asp asp-client60-norctx0 11060 2907 m3ua
+ local-ip 127.0.0.1
+ remote-ip 127.0.0.1
+ sctp-role client
+ role asp
+ asp asp-client61-norctx0 11061 2907 m3ua
+ local-ip 127.0.0.1
+ remote-ip 127.0.0.1
+ sctp-role client
+ role asp
as as-sender m3ua
asp asp-sender
routing-key 1023 23
@@ -63,6 +73,12 @@ cs7 instance 0
as as-client m3ua
routing-key 1055 55
asp asp-client0
+ as as-client60-norctx m3ua
+ routing-key 0 60
+ asp asp-client60-norctx0
+ as as-client61-norctx m3ua
+ routing-key 0 61
+ asp asp-client61-norctx0
!
! IPA AS/ASP:
!
@@ -116,6 +132,8 @@ cs7 instance 0
update route 23 16777215 linkset as-sender
update route 42 16777215 linkset as-receiver
update route 55 16777215 linkset as-client
+ update route 60 16777215 linkset as-client60-norctx
+ update route 61 16777215 linkset as-client61-norctx
update route 31 16777215 linkset ipa-as-loadshare-receiver
update route 33 16777215 linkset ipa-as-override-receiver
update route 5 16777215 linkset ipa-as-dynamic-asp