From 95e3d9906c4c1077dd37382c5bffdbfe3aaffb09 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 25 Apr 2021 14:27:44 +0200 Subject: stp: Add TC_ipa_to_m3ua_ni() This tests sets a non-zero default network-indicator in the ss7 instance and then performs an IPA -> M3UA translation while checking if the M3UA side now uses the specified default network-indicator (NATIONAL). Change-Id: Id4f9d0ff67e114a119ab032d44ac0dfd34f5c402 Related: SYS#5421 --- library/M3UA_Templates.ttcn | 3 +++ stp/STP_Tests.ttcn | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/library/M3UA_Templates.ttcn b/library/M3UA_Templates.ttcn index 5881b40d..3667ca0b 100644 --- a/library/M3UA_Templates.ttcn +++ b/library/M3UA_Templates.ttcn @@ -17,6 +17,9 @@ import from Osmocom_Types all; const OCT1 c_M3UA_VERSION := '01'O; +const OCT1 c_M3UA_NI_NATIONAL := '02'O; +const OCT1 c_M3UA_NI_INTERNATIONAL := '00'O; + const OCT2 c_M3UA_ST_T_STATE_CHG := '0001'O; const OCT2 c_M3UA_ST_I_RESERVED := '0001'O; const OCT2 c_M3UA_ST_I_AS_INACTIVE := '0002'O; diff --git a/stp/STP_Tests.ttcn b/stp/STP_Tests.ttcn index 990518c3..004af050 100644 --- a/stp/STP_Tests.ttcn +++ b/stp/STP_Tests.ttcn @@ -120,6 +120,42 @@ testcase TC_ipa_to_m3ua() runs on IPA_M3UA_CT { f_clear_m3ua(); } +/* test routing an SCCP message from IPA ASP to M3UA ASP using national network indicator */ +testcase TC_ipa_to_m3ua_ni() runs on IPA_M3UA_CT { + var OCT4 pc_sender := int2oct(5, 4); + var OCT4 rctx_receiver := int2oct(1023, 4); + var OCT4 pc_receiver := int2oct(23, 4); + + f_init_common(); + f_vty_config2(VTY, {"cs7 instance 0", "as ipa-as-dynamic-asp ipa"}, + "point-code override patch-sccp disabled"); + + f_init_m3ua(); + f_init_ipa(); + + f_connect_ipa(3); + f_M3UA_asp_up_act(0, omit, omit); // TODO: rctx + + /* send a well-formed, encoded SCCP message via IPA */ + var octetstring data := f_rnd_octstring(f_rnd_int(100)); + var SCCP_PAR_Address called := valueof(ts_SccpAddr_GT('1234'H)); + var SCCP_PAR_Address calling := valueof(ts_SccpAddr_GT('5678'H)); + var PDU_SCCP sccp := valueof(ts_SCCP_UDT(called, calling, data)); + var octetstring sccp_enc := enc_PDU_SCCP(sccp); + f_vty_config2(VTY, {"cs7 instance 0"}, "network-indicator national"); + f_IPA_send(3, sccp_enc); + f_vty_config2(VTY, {"cs7 instance 0"}, "network-indicator international"); + + /* expect to receive it via M3UA */ + var template (present) M3UA_Protocol_Data rx_pd; + rx_pd := tr_M3UA_protocol_data(pc_sender, pc_receiver, c_M3UA_SI_SCCP, c_M3UA_NI_NATIONAL, + '00'O, '00'O, sccp_enc); + f_M3UA_exp(0, tr_M3UA_DATA(rctx_receiver, rx_pd)); + + f_clear_m3ua(); +} + + /* test routing an SCCP message from IPA ASP to M3UA ASP while patching PC into SCCP addresses */ testcase TC_ipa_to_m3ua_patch_sccp() runs on IPA_M3UA_CT { var OCT4 pc_sender := int2oct(5, 4); @@ -163,6 +199,7 @@ control { /* M3UA <-> IPA Tests */ execute( TC_m3ua_to_ipa() ); execute( TC_ipa_to_m3ua() ); + execute( TC_ipa_to_m3ua_ni() ); execute( TC_ipa_to_m3ua_patch_sccp() ); } -- cgit v1.2.3