aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2021-06-06 23:15:42 +0200
committerlaforge <laforge@osmocom.org>2021-06-10 12:47:41 +0000
commite23387a1887fa8b20038fab238c35598bac9043e (patch)
tree89f91b010c684f647b08c02e424dbf5d4bf7f5f0
parent2372db6aee08b003824fc61c2358585f25886d53 (diff)
NS_Tests: add test case TC_sns_bss_add_change_del
1. do SNS configuration 2. add a bind 3. receive the SNS_ADD 4. before answering the SNS_ADD, change the weight via vty and remove the bind Related: OS#5036 Change-Id: Ibc565bba4c7e0a0b4dd28a48847dbdb998c8528d
-rw-r--r--ns/NS_Tests.ttcn47
1 files changed, 47 insertions, 0 deletions
diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn
index 3971f0d0..8bbb43c0 100644
--- a/ns/NS_Tests.ttcn
+++ b/ns/NS_Tests.ttcn
@@ -580,6 +580,52 @@ testcase TC_sns_bss_del() runs on RAW_Test_CT {
f_clean_ns_codec();
}
+/* 1. do SNS configuration
+ * 2. add a bind
+ * 3. receive the SNS_ADD
+ * 4. before answering the SNS_ADD, change the weight via vty and remove the bind
+ */
+testcase TC_sns_bss_add_change_del() runs on RAW_Test_CT {
+ var PDU_NS rx;
+ var NSVCConfiguration nsvc_cfg;
+
+ g_handle_rx_alive := true;
+ f_init_vty();
+ f_init_ns_codec(mp_nsconfig);
+ f_init_ns_codec(mp_nsconfig, 1);
+ f_incoming_sns_size();
+ f_incoming_sns_config();
+ f_outgoing_sns_config();
+ activate(as_rx_alive_tx_ack());
+ f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "ip-sns-bind local2");
+
+ /* rx SNS ADD */
+ nsvc_cfg := g_nsconfig.nsvc[1];
+ if (nsvc_cfg.provider.ip.address_family == AF_INET) {
+ var template (omit) IP4_Elements v4_elem := { ts_SNS_IPv4(nsvc_cfg.provider.ip.remote_ip,
+ nsvc_cfg.provider.ip.remote_udp_port,
+ 1, 1) };
+ rx := f_ns_exp(tr_SNS_ADD(g_nsconfig.nsei, ?, v4 := v4_elem), 0);
+ } else {
+ var template (omit) IP6_Elements v6_elem := { ts_SNS_IPv6(nsvc_cfg.provider.ip.remote_ip,
+ nsvc_cfg.provider.ip.remote_udp_port,
+ 1, 1) };
+ rx := f_ns_exp(tr_SNS_ADD(g_nsconfig.nsei, ?, omit, v6_elem), 0);
+ }
+
+ /* delete the endpoint */
+ f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 99 data-weight 99");
+ f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "no ip-sns-bind local2");
+
+ /* accept the SNS_ADD */
+ NSCP[0].send(ts_SNS_ACK(g_nsconfig.nsei, rx.pDU_SNS_Add.transactionID));
+
+ f_incoming_sns_chg_weight(idx_chg := 1);
+ f_incoming_sns_del(idx_del := 1, w_sig := 99, w_user := 99);
+ setverdict(pass);
+ f_clean_ns_codec();
+}
+
control {
if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) {
execute( TC_tx_reset() );
@@ -629,6 +675,7 @@ control {
execute( TC_sns_bss_change_weight_timeout() );
execute( TC_sns_bss_add() );
execute( TC_sns_bss_del() );
+ execute( TC_sns_bss_add_change_del() );
}
}