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>

Reply via email to