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 <pespin(a)sysmocom.de>