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


Change subject: stp: Add tests for setups with multiple "routing context 0" ASPs
......................................................................

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
---
M stp/STP_Tests_M3UA.ttcn
M stp/osmo-stp.cfg
2 files changed, 110 insertions(+), 1 deletion(-)



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

diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn
index 41b2e2c..5af894a 100644
--- a/stp/STP_Tests_M3UA.ttcn
+++ b/stp/STP_Tests_M3UA.ttcn
@@ -35,7 +35,7 @@
 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 @@
                        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 @@
        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 @@
        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 50c80d3..427eb34 100644
--- a/stp/osmo-stp.cfg
+++ b/stp/osmo-stp.cfg
@@ -53,6 +53,16 @@
   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 @@
  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 @@
   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

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/32327
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: I81052ece7d1cc8b43da6155356ed1c4d9620acdc
Gerrit-Change-Number: 32327
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <[email protected]>
Gerrit-MessageType: newchange

Reply via email to