aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorarehbein <arehbein@sysmocom.de>2022-11-30 23:01:48 +0100
committerarehbein <arehbein@sysmocom.de>2022-12-01 16:45:31 +0100
commit91ca46ba87cd0edb5b7c2a126c4ff756c2c478ad (patch)
tree5f8ce038fac2d03221f27c466b908425c9fb354e
parent201fcc4fbf854faba9a39306c7fed772c967e736 (diff)
ns: Add test for SNS Size Num. of IP Endpoints IE
-rw-r--r--ns/NS_Tests.ttcn32
1 files changed, 32 insertions, 0 deletions
diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn
index 3ebdbf35..64ab5dcd 100644
--- a/ns/NS_Tests.ttcn
+++ b/ns/NS_Tests.ttcn
@@ -609,6 +609,37 @@ testcase TC_sns_sgsn_sns_size_syntactically_wrong_NSEI() runs on RAW_Test_CT {
f_clean_ns_codec();
}
+testcase TC_sns_sgsn_sns_size_invalid_num_of_ip_eps() runs on RAW_Test_CT {
+ f_init_vty();
+ f_init_ns_codec(mp_nsconfig);
+ const integer IDX := 0;
+ const integer NUM_IP := 1;
+ log("f_outgoing_sns_size_invalid_num_of_ip_eps(idx=", IDX, ")");
+ var NsCause cause;
+ /* Assumption: No connections to other NSEs for SUT and testcomponent */
+ const integer sgsn_ip4_endpoints := lengthof(mp_nsconfig.nsvc);
+ const integer ip4_endpoints := lengthof(mp_nsconfig.nsvc);
+ const integer num_of_nsvcs := sgsn_ip4_endpoints * ip4_endpoints;
+ /* Template that would be accepted, only missing the number of IP endpoints
+ * (since there are no ternary operators in TTCN-3...) */
+ var template (omit) PDU_NS ts_base_SNS_SIZE_configured :=
+ ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := num_of_nsvcs,
+ num_v4 := omit, num_v6 := omit);
+ /* Send IP4 endpoints when IP6 is configured and vice versa, in effect sending an unsupported type of NS-VC endpoints. */
+ if (g_nsconfig.nsvc[0].provider.ip.address_family == AF_INET) {
+ ts_base_SNS_SIZE_configured.pDU_SNS_Size.numberOfIP6_Endpoints :=
+ {iEI := int2oct(enum2int(ns_iei_num_ipv6_ep), 1), numberOfIP_Endpoints := int2oct(NUM_IP, 2)};
+ cause := NS_CAUSE_INVALID_NR_OF_IPv6_ENDPOINTS;
+ } else {
+ ts_base_SNS_SIZE_configured.pDU_SNS_Size.numberOfIP4_Endpoints :=
+ {iEI := int2oct(enum2int(ns_iei_num_ipv4_ep), 1), numberOfIP_Endpoints := int2oct(NUM_IP, 2)};
+ cause := NS_CAUSE_INVALID_NR_OF_IPv4_ENDPOINTS;
+ }
+ f_send_expect(IDX, ts_base_SNS_SIZE_configured, cause);
+ setverdict(pass);
+ f_clean_ns_codec();
+}
+
testcase TC_sns_bss_config_success() runs on RAW_Test_CT {
f_init_vty();
f_init_ns_codec(mp_nsconfig);
@@ -1149,6 +1180,7 @@ control {
execute( TC_sns_sgsn_size_correct_port() );
execute( TC_sns_sgsn_size_after_success() );
execute( TC_sns_sgsn_sns_size_syntactically_wrong_NSEI() );
+ execute( TC_sns_sgsn_sns_size_invalid_num_of_ip_eps() );
}
}
}