pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41132?usp=email )
Change subject: RAN_{Emulation,Adapter}: Split transport type from transport client/server mode ...................................................................... RAN_{Emulation,Adapter}: Split transport type from transport client/server mode The RAN_Transport is used to identify the stack of protocols in use up to SCCP. The client/server mode is some extra independent information. For instance, RAN_Emulation doesn't really use it while RAN_Adapter does, since the later is the one in charge of setting up the lower layer socket connection. Change-Id: Ib2e7d029bd7eb59cc6f3b3a28bc417f00d3fed9c --- M bsc/BSC_Tests.default M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_SCCPlite.cfg M hnbgw/HNBGW_Tests.default M library/RAN_Adapter.ttcnpp M library/RAN_Emulation.ttcnpp M msc/MSC_Tests.default M sgsn/SGSN_Tests.default 8 files changed, 47 insertions(+), 39 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/41132/1 diff --git a/bsc/BSC_Tests.default b/bsc/BSC_Tests.default index d14fa6c..2c65b18 100644 --- a/bsc/BSC_Tests.default +++ b/bsc/BSC_Tests.default @@ -41,6 +41,7 @@ BSC_Tests.mp_bssap_cfg := { { transport := BSSAP_TRANSPORT_AoIP, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23905, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 185, # 0.23.1 first MSC emulation @@ -52,6 +53,7 @@ }, { transport := BSSAP_TRANSPORT_AoIP, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23906, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 2, # 0.0.2 second MSC emulation @@ -63,6 +65,7 @@ }, { transport := BSSAP_TRANSPORT_AoIP, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23907, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 3, # 0.0.3 third MSC emulation diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 1559d6c..e6260b3 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1066,7 +1066,7 @@ mgw_udp_port := 2427 + mgw_nr, /* Enable it for SCCPlite, since we have 2 MGCP sockets towards MGW (UDP one + the one with MGCP over IPA forwarded from MSC one) */ - multi_conn_mode := (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_SCCPlite_SERVER) + multi_conn_mode := (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_SCCPlite) }; vc_MGCP[mgw_nr] := MGCP_Emulation_CT.create(id) alive; @@ -12675,7 +12675,7 @@ execute( TC_stat_msc_sctp_disconnected() ); } execute( TC_ctrl() ); - if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_SCCPlite_SERVER) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_SCCPlite) { execute( TC_ctrl_location() ); } diff --git a/bsc/BSC_Tests_SCCPlite.cfg b/bsc/BSC_Tests_SCCPlite.cfg index 9a1a1b3..c5f46c9 100644 --- a/bsc/BSC_Tests_SCCPlite.cfg +++ b/bsc/BSC_Tests_SCCPlite.cfg @@ -15,7 +15,8 @@ [MODULE_PARAMETERS] BSC_Tests.mp_bssap_cfg := { { - transport := BSSAP_TRANSPORT_SCCPlite_SERVER, + transport := BSSAP_TRANSPORT_SCCPlite, + transport_is_server := true, sccp_service_type := "mtp3_itu", sctp_addr := { 5000, "127.0.0.1", 4000, "" }, own_pc := 185, # 0.23.1 first MSC emulation diff --git a/hnbgw/HNBGW_Tests.default b/hnbgw/HNBGW_Tests.default index 107d15c..f44ccc5 100644 --- a/hnbgw/HNBGW_Tests.default +++ b/hnbgw/HNBGW_Tests.default @@ -37,6 +37,7 @@ HNBGW_Tests.mp_cn_cfg := { { transport := RANAP_TRANSPORT_IuCS, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23905, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 185, # 0.23.1 first MSC emulation @@ -48,6 +49,7 @@ }, { transport := RANAP_TRANSPORT_IuCS, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23907, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 2, # 0.0.2 second MSC emulation @@ -59,6 +61,7 @@ }, { transport := RANAP_TRANSPORT_IuCS, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23909, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 3, # 0.0.3 third MSC emulation @@ -70,6 +73,7 @@ }, { transport := RANAP_TRANSPORT_IuCS, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23911, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 4, # 0.0.4 fourth MSC emulation @@ -82,6 +86,7 @@ # SGSNs (NUM_SGSN entries) { transport := RANAP_TRANSPORT_IuCS, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23906, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 188, # 0.23.4 first SGSN emulation @@ -93,6 +98,7 @@ }, { transport := RANAP_TRANSPORT_IuCS, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23908, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 10, # 0.1.2 second SGSN emulation @@ -104,6 +110,7 @@ }, { transport := RANAP_TRANSPORT_IuCS, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23910, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 11, # 0.1.3 third SGSN emulation @@ -115,6 +122,7 @@ }, { transport := RANAP_TRANSPORT_IuCS, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23912, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 12, # 0.1.4 fourth SGSN emulation diff --git a/library/RAN_Adapter.ttcnpp b/library/RAN_Adapter.ttcnpp index 04a9bf0..d1cd85c 100644 --- a/library/RAN_Adapter.ttcnpp +++ b/library/RAN_Adapter.ttcnpp @@ -48,6 +48,7 @@ SCCP_PAR_Address sccp_addr_own, SCCP_PAR_Address sccp_addr_peer, RAN_Transport transport, + boolean transport_is_server, /* handler mode */ RAN_Emulation_CT vc_RAN @@ -55,6 +56,7 @@ type record RAN_Configuration { RAN_Transport transport, + boolean transport_is_server, charstring sccp_service_type, SCTP_Association_Address sctp_addr, integer own_pc, @@ -82,6 +84,7 @@ ba.sccp_addr_own := valueof(ts_SccpAddr_PC_SSN(cfg.own_pc, cfg.own_ssn, cfg.sio, cfg.sccp_service_type)); ba.sccp_addr_peer := valueof(ts_SccpAddr_PC_SSN(cfg.peer_pc, cfg.peer_ssn, cfg.sio, cfg.sccp_service_type)); ba.transport := cfg.transport; + ba.transport_is_server := cfg.transport_is_server; } @@ -113,40 +116,31 @@ ba.vc_M3UA.start(f_M3UA_Emulation(cfg.sctp_addr, rctx)); } #ifdef IPA_EMULATION_SCCP - case (BSSAP_TRANSPORT_SCCPlite_SERVER) { - ba.vc_IPA := IPA_Emulation_CT.create(id & "-IPA") alive; - map(ba.vc_IPA:IPA_PORT, system:IPA_CODEC_PT); - /* connect MTP3 service provider (IPA) to lower side of SCCP */ - connect(ba.vc_IPA:MTP3_SP_PORT, ba.vc_SCCP:MTP3_SCCP_PORT); - /* connect waiter to general IPA port (for ASP_IPA_Event) */ - ba.vc_WAIT := IPA_EventWaiter_CT.create(id & "-IPA-WAIT") alive; - connect(ba.vc_IPA:IPA_SP_PORT, ba.vc_WAIT:IPA_SP_PORT); - ba.vc_WAIT.start(IPA_Emulation.waiter_main()); - ba.vc_IPA.start(IPA_Emulation.main_server(cfg.sctp_addr.local_ip_addr, - cfg.sctp_addr.local_sctp_port, - true, IPA_INIT_SEND_IPA_ID_ACK)); - /* wait until we received an IPA CCM ID_ACK */ - ba.vc_WAIT.done; - disconnect(ba.vc_IPA:IPA_SP_PORT, ba.vc_WAIT:IPA_SP_PORT); + case (SCCP_TRANSPORT_SCCPlite) { + ba.vc_IPA := IPA_Emulation_CT.create(id & "-IPA") alive; + map(ba.vc_IPA:IPA_PORT, system:IPA_CODEC_PT); + /* connect MTP3 service provider (IPA) to lower side of SCCP */ + connect(ba.vc_IPA:MTP3_SP_PORT, ba.vc_SCCP:MTP3_SCCP_PORT); + /* connect waiter to general IPA port (for ASP_IPA_Event) */ + ba.vc_WAIT := IPA_EventWaiter_CT.create(id & "-IPA-WAIT") alive; + connect(ba.vc_IPA:IPA_SP_PORT, ba.vc_WAIT:IPA_SP_PORT); + ba.vc_WAIT.start(IPA_Emulation.waiter_main()); + if (cfg.transport_is_server) { + ba.vc_IPA.start(IPA_Emulation.main_server(cfg.sctp_addr.local_ip_addr, + cfg.sctp_addr.local_sctp_port, + true, IPA_INIT_SEND_IPA_ID_ACK)); + } else { + ba.vc_IPA.start(IPA_Emulation.main_client(cfg.sctp_addr.remote_ip_addr, + cfg.sctp_addr.remote_sctp_port, + cfg.sctp_addr.local_ip_addr, + cfg.sctp_addr.local_sctp_port, + ba.ipa_ccm_pars)); } - case (BSSAP_TRANSPORT_SCCPlite_CLIENT) { - ba.vc_IPA := IPA_Emulation_CT.create(id & "-IPA") alive; - map(ba.vc_IPA:IPA_PORT, system:IPA_CODEC_PT); - /* connect MTP3 service provider (IPA) to lower side of SCCP */ - connect(ba.vc_IPA:MTP3_SP_PORT, ba.vc_SCCP:MTP3_SCCP_PORT); - /* connect waiter to general IPA port (for ASP_IPA_Event) */ - ba.vc_WAIT := IPA_EventWaiter_CT.create(id & "-IPA-WAIT") alive; - connect(ba.vc_IPA:IPA_SP_PORT, ba.vc_WAIT:IPA_SP_PORT); - ba.vc_WAIT.start(IPA_Emulation.waiter_main()); - ba.vc_IPA.start(IPA_Emulation.main_client(cfg.sctp_addr.remote_ip_addr, - cfg.sctp_addr.remote_sctp_port, - cfg.sctp_addr.local_ip_addr, - cfg.sctp_addr.local_sctp_port)); - /* wait until we received an IPA CCM ID_ACK */ - ba.vc_WAIT.done; - disconnect(ba.vc_IPA:IPA_SP_PORT, ba.vc_WAIT:IPA_SP_PORT); + /* wait until we received an IPA CCM ID_ACK */ + ba.vc_WAIT.done; + disconnect(ba.vc_IPA:IPA_SP_PORT, ba.vc_WAIT:IPA_SP_PORT); } -#endif /* SCCP */ +#endif /* IPA_EMULATION_SCCP */ case else { setverdict(fail, "Unsuppored RAN_Transport"); mtc.stop; @@ -171,8 +165,7 @@ connect(ba.vc_RAN:BSSAP, ba.vc_SCCP:SCCP_SP_PORT); #endif } - if (cfg.transport == BSSAP_TRANSPORT_SCCPlite_SERVER or - cfg.transport == BSSAP_TRANSPORT_SCCPlite_CLIENT) { + if (cfg.transport == BSSAP_TRANSPORT_SCCPlite) { #ifdef IPA_EMULATION_MGCP /* connect IPA MGCP port with BSSMAP MGCP port */ log("Connecting MGCP RAN Emulation to IPA MGCP PORT"); diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index 8ebe6de..bc691a6 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -129,8 +129,7 @@ type enumerated RAN_Transport { BSSAP_TRANSPORT_AoIP, /* 3GPP AoIP: SCCP over M3UA over SCTP */ - BSSAP_TRANSPORT_SCCPlite_SERVER, /* SCCPlite: SCCP over IPA over TCP */ - BSSAP_TRANSPORT_SCCPlite_CLIENT, /* SCCPlite: SCCP over IPA over TCP */ + BSSAP_TRANSPORT_SCCPlite, /* SCCPlite: SCCP over IPA over TCP */ RANAP_TRANSPORT_IuCS /* 3GPP IuCS: SCCP over M3UA over SCTP */ }; diff --git a/msc/MSC_Tests.default b/msc/MSC_Tests.default index 149d8e7..a89101b 100644 --- a/msc/MSC_Tests.default +++ b/msc/MSC_Tests.default @@ -47,6 +47,7 @@ MSC_Tests.mp_bssap_cfg := { { transport := BSSAP_TRANSPORT_AoIP, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23906, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 193, @@ -58,6 +59,7 @@ }, { transport := BSSAP_TRANSPORT_AoIP, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23907, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 194, @@ -69,6 +71,7 @@ }, { transport := RANAP_TRANSPORT_IuCS, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23908, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 195, diff --git a/sgsn/SGSN_Tests.default b/sgsn/SGSN_Tests.default index 04f4e09..b31d86c 100644 --- a/sgsn/SGSN_Tests.default +++ b/sgsn/SGSN_Tests.default @@ -42,6 +42,7 @@ SGSN_Tests.mp_ranap_cfg := { { transport := RANAP_TRANSPORT_IuCS, + transport_is_server := false, sccp_service_type := "mtp3_itu", sctp_addr := { 23908, "127.0.0.104", 2905, "127.0.0.200" }, own_pc := 195, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41132?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: Ib2e7d029bd7eb59cc6f3b3a28bc417f00d3fed9c Gerrit-Change-Number: 41132 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pes...@sysmocom.de>