pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43159?usp=email )


Change subject: stp: Validate timer xua beat 0 disables BEAT procedure
......................................................................

stp: Validate timer xua beat 0 disables BEAT procedure

Check in all sort of configurations that the BEAT procedure on xUA/IPA
can be disabled just fine per ASP using the VTY.

Related: SYS#8156
Change-Id: Id47bf862638a099bb5f6721fcfba873001aed616
---
M stp/STP_Tests_Common.ttcn
M stp/STP_Tests_IPA.ttcn
M stp/STP_Tests_M3UA.ttcn
M stp/STP_Tests_M3UA_TCP.ttcn
M stp/expected-results.xml
5 files changed, 124 insertions(+), 2 deletions(-)



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

diff --git a/stp/STP_Tests_Common.ttcn b/stp/STP_Tests_Common.ttcn
index 16b6406..2178a98 100644
--- a/stp/STP_Tests_Common.ttcn
+++ b/stp/STP_Tests_Common.ttcn
@@ -47,7 +47,8 @@

 type component Test_CT {
        port TELNETasp_PT VTY;
-       timer g_Tguard := 30.0;
+       timer g_Tguard;
+       var float g_Tguard_timeout := 30.0;
        var boolean g_test_initialized := false;
 }

@@ -69,7 +70,7 @@
        f_vty_transceive(VTY, "enable");

        activate(as_gTguard());
-       g_Tguard.start;
+       g_Tguard.start(g_Tguard_timeout);
 }


diff --git a/stp/STP_Tests_IPA.ttcn b/stp/STP_Tests_IPA.ttcn
index 7225949..b16cb0e 100644
--- a/stp/STP_Tests_IPA.ttcn
+++ b/stp/STP_Tests_IPA.ttcn
@@ -852,18 +852,76 @@
        f_vty_cs7_ipa_asp_cmd(g_ipa_configs[0], "timer xua beat " & 
int2str(STP_Tests_Common.mp_t_beat_sec_default));
 }

+/* Test ASP doesn't send a T(beat) when disabled over VTY ("timer xua beat 0") 
*/
+friend function f_TC_beat_disabled(Misc_Helpers.ro_charstring asps) runs on 
IPA_CT
+{
+       var IpaConfigs ipa_configs := ipa_build_configs(asps);
+       var float timeout_val := 
int2float(STP_Tests_Common.mp_t_beat_sec_default) + 1.0;
+       var IpaCcmMsgtype ipa_ping_msg := IPAC_MSGT_PING;
+       var octetstring ipa_ping_data := int2oct(enum2int(ipa_ping_msg), 1);
+
+       g_Tguard_timeout := 60.0;
+       f_init_common();
+       f_init_ipa(ipa_configs := ipa_configs);
+
+       f_vty_cs7_ipa_asp_cmd(ipa_configs[0], "timer xua beat 0");
+
+       if (ipa_configs[0].is_server) {
+               f_listen_ipa(0);
+       } else {
+               f_connect_ipa(0);
+       }
+       /* receive CCM IPA PING: */
+       f_ipa_cfg_chg_ccm_enabled(IPA_CFG[0], false);
+
+       timer T;
+       var ASP_IPA_Unitdata ipa_rx;
+       T.start(timeout_val);
+       alt {
+       [] IPA_CTRL[0].receive(t_ASP_IPA_UD(IPAC_PROTO_CCM, ipa_ping_data)) -> 
value ipa_rx {
+               Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
+                                       log2str("Received unexpected IPA ", 
ipa_rx));
+               }
+       [] IPA_CTRL[0].receive {
+               Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
+                                       log2str("Received unexpected IPA before 
timeout expecting no ",
+                                               t_ASP_IPA_UD(IPAC_PROTO_CCM, 
ipa_ping_data)));
+               }
+       [] T.timeout {
+               setverdict(pass);
+               }
+       }
+
+       log("No BEAT received, all good!");
+
+       /* return to default value: */
+       f_vty_cs7_ipa_asp_cmd(ipa_configs[0], "timer xua beat " & 
int2str(STP_Tests_Common.mp_t_beat_sec_default));
+}
+
 /* Test the IUT sends heartbeat procedure when needed. */
 testcase TC_beat_timeout() runs on IPA_CT {
        var Misc_Helpers.ro_charstring asps := { "ipa-asp-override-sender" };
        f_TC_beat_timeout(asps);
 }

+/* Test the IUT sends no heartbeat procedure when disabled over VTY */
+testcase TC_beat_disabled() runs on IPA_CT {
+       var Misc_Helpers.ro_charstring asps := { "ipa-asp-override-sender" };
+       f_TC_beat_disabled(asps);
+}
+
 /* Test the IUT sends heartbeat procedure when needed. */
 testcase TC_clnt_beat_timeout() runs on IPA_CT {
        var Misc_Helpers.ro_charstring asps := { "ipa-asp-client0" };
        f_TC_beat_timeout(asps);
 }

+/* Test the IUT sends no heartbeat procedure when disabled over VTY */
+testcase TC_clnt_beat_disabled() runs on IPA_CT {
+       var Misc_Helpers.ro_charstring asps := { "ipa-asp-client0" };
+       f_TC_beat_disabled(asps);
+}
+
 control {
        execute( TC_unknown_client_nodynamic() );
        execute( TC_unknown_as_client_nodynamic() );
@@ -884,7 +942,9 @@

        execute( TC_beat() );
        execute( TC_beat_timeout() );
+       execute( TC_beat_disabled() );
        execute( TC_clnt_beat_timeout() );
+       execute( TC_clnt_beat_disabled() );
 }


diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn
index 7debed6..f1ce309 100644
--- a/stp/STP_Tests_M3UA.ttcn
+++ b/stp/STP_Tests_M3UA.ttcn
@@ -603,12 +603,46 @@
        f_clear_m3ua();
 }

+/* Test ASP doesn't send a T(beat) when disabled over VTY ("timer xua beat 0") 
*/
+friend function f_TC_beat_disabled(Misc_Helpers.ro_charstring asps) runs on 
RAW_M3UA_CT
+{
+       var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
+       var M3UA_RecvFrom rx;
+       var template (omit) M3UA_Heartbeat_Data hbd := omit;
+       var float timeout_val := 
int2float(STP_Tests_Common.mp_t_beat_sec_default) + 1.0;
+
+       g_Tguard_timeout := 60.0;
+       f_init_m3ua(answer_beat := false, m3ua_configs := m3ua_configs);
+       f_vty_cs7_asp_cmd(g_m3ua_configs[0], "timer xua beat 0");
+
+       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));
+       } else {
+               f_M3UA_asp_up(0, ntfy_after_up := c_M3UA_ST_I_AS_INACTIVE);
+       }
+
+       f_M3UA_exp_no(0, tr_M3UA_BEAT(*), timeout_val := timeout_val, 
answer_beat := false);
+       log("No BEAT received, all good!");
+
+       /* return to default value: */
+       f_vty_cs7_asp_cmd(g_m3ua_configs[0], "timer xua beat " & 
int2str(STP_Tests_Common.mp_t_beat_sec_default));
+
+       f_clear_m3ua();
+}
+
 /* Test the IUT sends heartbeat procedure when needed. */
 testcase TC_beat_timeout() runs on RAW_M3UA_CT {
        var Misc_Helpers.ro_charstring asps := { "asp-sender" };
        f_TC_beat_timeout(asps);
 }

+/* Test the IUT sends no heartbeat procedure when disabled over VTY */
+testcase TC_beat_disabled() runs on RAW_M3UA_CT {
+       var Misc_Helpers.ro_charstring asps := { "asp-sender" };
+       f_TC_beat_disabled(asps);
+}
+
 /* Test the ASP-ACTIVATE procedure (without traffic-mode or routing ctx) */
 testcase TC_asp_act() runs on RAW_M3UA_CT {
        f_init_m3ua();
@@ -1304,6 +1338,11 @@
        var Misc_Helpers.ro_charstring asps := { "asp-client0" };
        f_TC_beat_timeout(asps);
 }
+/* Test the IUT sends no heartbeat procedure when disabled over VTY */
+testcase TC_clnt_beat_disabled() runs on RAW_M3UA_CT {
+       var Misc_Helpers.ro_charstring asps := { "asp-client0" };
+       f_TC_beat_disabled(asps);
+}

 /* Expect inbound connection from ASP/SCTP-client, followed by ASP-UP + 
ASP-ACT */
 testcase TC_clnt_asp_act() runs on RAW_M3UA_CT {
@@ -1906,6 +1945,7 @@
        execute( TC_beat() );
        execute( TC_beat_payload() );
        execute( TC_beat_timeout() );
+       execute( TC_beat_disabled() );
        execute( TC_asp_act() );
        execute( TC_asp_act_override() );
        execute( TC_asp_act_loadshare() );
@@ -1942,6 +1982,7 @@
        /* Test STP as SCTP client + M3UA ASP role */
        execute( TC_clnt_connect_asp_up() );
        execute( TC_clnt_beat_timeout() );
+       execute( TC_clnt_beat_disabled() );
        execute( TC_clnt_asp_act() );
        execute( TC_clnt_sg_to_asp() );
        execute( TC_clnt_asp_to_sg() );
diff --git a/stp/STP_Tests_M3UA_TCP.ttcn b/stp/STP_Tests_M3UA_TCP.ttcn
index 8bed7e2..4e0706b 100644
--- a/stp/STP_Tests_M3UA_TCP.ttcn
+++ b/stp/STP_Tests_M3UA_TCP.ttcn
@@ -201,12 +201,24 @@
        f_TC_beat_timeout(asps);
 }

+/* Test the IUT sends no heartbeat procedure when disabled over VTY */
+testcase TC_m3ua_tcp_beat_disabled() runs on RAW_M3UA_CT {
+       var Misc_Helpers.ro_charstring asps := { "asp-sender-tcp" };
+       f_TC_beat_disabled(asps);
+}
+
 /* Test the IUT sends heartbeat procedure when needed. */
 testcase TC_m3ua_tcp_clnt_beat_timeout() runs on RAW_M3UA_CT {
        var Misc_Helpers.ro_charstring asps := { "asp-client0-tcp" };
        f_TC_beat_timeout(asps);
 }

+/* Test the IUT sends no heartbeat procedure when disabled over VTY */
+testcase TC_m3ua_tcp_clnt_beat_disabled() runs on RAW_M3UA_CT {
+       var Misc_Helpers.ro_charstring asps := { "asp-client0-tcp" };
+       f_TC_beat_disabled(asps);
+}
+
 control {
        /* M3UA TCP Tests */
        execute( TC_m3ua_tcp_cli() );
@@ -218,7 +230,9 @@
        execute( TC_m3ua_tcp_cli_adm_shutdown() );

        execute( TC_m3ua_tcp_beat_timeout() );
+       execute( TC_m3ua_tcp_beat_disabled() );
        execute( TC_m3ua_tcp_clnt_beat_timeout() );
+       execute( TC_m3ua_tcp_clnt_beat_disabled() );
 }

 }
diff --git a/stp/expected-results.xml b/stp/expected-results.xml
index 92f0a92..2243959 100644
--- a/stp/expected-results.xml
+++ b/stp/expected-results.xml
@@ -4,6 +4,7 @@
   <testcase classname='STP_Tests_M3UA' name='TC_beat' time='MASKED'/>
   <testcase classname='STP_Tests_M3UA' name='TC_beat_payload' time='MASKED'/>
   <testcase classname='STP_Tests_M3UA' name='TC_beat_timeout' time='MASKED'/>
+  <testcase classname='STP_Tests_M3UA' name='TC_beat_disabled' time='MASKED'/>
   <testcase classname='STP_Tests_M3UA' name='TC_asp_act' time='MASKED'/>
   <testcase classname='STP_Tests_M3UA' name='TC_asp_act_override' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA' name='TC_asp_act_loadshare' 
time='MASKED'/>
@@ -28,6 +29,7 @@
   <testcase classname='STP_Tests_M3UA' name='TC_dyn_2asp_as_rkm_permitted' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA' name='TC_clnt_connect_asp_up' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA' name='TC_clnt_beat_timeout' 
time='MASKED'/>
+  <testcase classname='STP_Tests_M3UA' name='TC_clnt_beat_disabled' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA' name='TC_clnt_asp_act' time='MASKED'/>
   <testcase classname='STP_Tests_M3UA' name='TC_clnt_sg_to_asp' time='MASKED'/>
   <testcase classname='STP_Tests_M3UA' name='TC_clnt_asp_to_sg' time='MASKED'/>
@@ -54,7 +56,9 @@
   <testcase classname='STP_Tests_M3UA_TCP' name='TC_m3ua_tcp_srv_adm_shutdown' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA_TCP' name='TC_m3ua_tcp_cli_adm_shutdown' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA_TCP' name='TC_m3ua_tcp_beat_timeout' 
time='MASKED'/>
+  <testcase classname='STP_Tests_M3UA_TCP' name='TC_m3ua_tcp_beat_disabled' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA_TCP' 
name='TC_m3ua_tcp_clnt_beat_timeout' time='MASKED'/>
+  <testcase classname='STP_Tests_M3UA_TCP' 
name='TC_m3ua_tcp_clnt_beat_disabled' time='MASKED'/>
   <testcase classname='STP_Tests_IPA' name='TC_unknown_client_nodynamic' 
time='MASKED'/>
   <testcase classname='STP_Tests_IPA' name='TC_unknown_as_client_nodynamic' 
time='MASKED'/>
   <testcase classname='STP_Tests_IPA' name='TC_known_client_nodynamic' 
time='MASKED'/>
@@ -72,7 +76,9 @@
   <testcase classname='STP_Tests_IPA' name='TC_ipa_tcp_cli_adm_shutdown' 
time='MASKED'/>
   <testcase classname='STP_Tests_IPA' name='TC_beat' time='MASKED'/>
   <testcase classname='STP_Tests_IPA' name='TC_beat_timeout' time='MASKED'/>
+  <testcase classname='STP_Tests_IPA' name='TC_beat_disabled' time='MASKED'/>
   <testcase classname='STP_Tests_IPA' name='TC_clnt_beat_timeout' 
time='MASKED'/>
+  <testcase classname='STP_Tests_IPA' name='TC_clnt_beat_disabled' 
time='MASKED'/>
   <testcase classname='STP_Tests_IPA_M3UA' name='TC_m3ua_to_ipa' 
time='MASKED'/>
   <testcase classname='STP_Tests_IPA_M3UA' name='TC_ipa_to_m3ua' 
time='MASKED'/>
   <testcase classname='STP_Tests_IPA_M3UA' name='TC_ipa_to_m3ua_ni' 
time='MASKED'/>

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

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Id47bf862638a099bb5f6721fcfba873001aed616
Gerrit-Change-Number: 43159
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>

Reply via email to