aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2023-04-15 02:54:34 +0800
committerlaforge <laforge@osmocom.org>2023-04-20 04:50:57 +0000
commit843917ef19639233a26bda95dd880f584684fd86 (patch)
treebdd47aef708f62f71450870ee48ea13387c636ee
parentfc8fa3fbadf58993414639cc9b3ab31011a11cb6 (diff)
{RAN,BSSAP_LE}_Adapter: Support M3UA without routing context
The 3rd-party M3UA_Emulation supports operation both with and without a routing context. Let's make sure the layers we build on top don't lose that capability by forcing routing context usage. Change-Id: Iff849953d923770c93029a6a5c5b86daa8c38f1e
-rw-r--r--library/BSSAP_LE_Adapter.ttcn11
-rw-r--r--library/RAN_Adapter.ttcnpp8
2 files changed, 16 insertions, 3 deletions
diff --git a/library/BSSAP_LE_Adapter.ttcn b/library/BSSAP_LE_Adapter.ttcn
index 256d8fa8..9305c63b 100644
--- a/library/BSSAP_LE_Adapter.ttcn
+++ b/library/BSSAP_LE_Adapter.ttcn
@@ -56,7 +56,7 @@ type record BSSAP_LE_Configuration {
integer peer_pc,
integer peer_ssn,
octetstring sio,
- integer rctx
+ integer rctx optional
};
type record of BSSAP_LE_Configuration BSSAP_LE_Configurations;
@@ -84,6 +84,13 @@ function f_bssap_le_adapter_init(inout BSSAP_LE_Adapter ba, in BSSAP_LE_Configur
ops.sccp_addr_local := ba.sccp_addr_own;
ops.sccp_addr_peer := ba.sccp_addr_peer;
+ var template (omit) integer rctx;
+ if (not ispresent(cfg.rctx)) {
+ rctx := omit;
+ } else {
+ rctx := cfg.rctx;
+ }
+
/* create components */
ba.vc_SCCP := SCCP_CT.create(id & "-SCCP") alive;
if (isvalue(ops)) {
@@ -95,7 +102,7 @@ function f_bssap_le_adapter_init(inout BSSAP_LE_Adapter ba, in BSSAP_LE_Configur
map(ba.vc_M3UA:SCTP_PORT, system:sctp);
/* connect MTP3 service provider (M3UA) to lower side of SCCP */
connect(ba.vc_M3UA:MTP3_SP_PORT, ba.vc_SCCP:MTP3_SCCP_PORT);
- ba.vc_M3UA.start(f_M3UA_Emulation(cfg.sctp_addr, cfg.rctx));
+ ba.vc_M3UA.start(f_M3UA_Emulation(cfg.sctp_addr, rctx));
if (isvalue(ops)) {
timer T := 5.0;
diff --git a/library/RAN_Adapter.ttcnpp b/library/RAN_Adapter.ttcnpp
index 68e1e603..c90ffce4 100644
--- a/library/RAN_Adapter.ttcnpp
+++ b/library/RAN_Adapter.ttcnpp
@@ -100,11 +100,17 @@ function f_ran_adapter_init(inout RAN_Adapter ba, in RAN_Configuration cfg, char
}
select (cfg.transport) {
case (BSSAP_TRANSPORT_AoIP, RANAP_TRANSPORT_IuCS) {
+ var template (omit) integer rctx;
+ if (not ispresent(cfg.rctx)) {
+ rctx := omit;
+ } else {
+ rctx := cfg.rctx;
+ }
ba.vc_M3UA := M3UA_CT.create(id & "-M3UA");
map(ba.vc_M3UA:SCTP_PORT, system:sctp);
/* connect MTP3 service provider (M3UA) to lower side of SCCP */
connect(ba.vc_M3UA:MTP3_SP_PORT, ba.vc_SCCP:MTP3_SCCP_PORT);
- ba.vc_M3UA.start(f_M3UA_Emulation(cfg.sctp_addr, cfg.rctx));
+ ba.vc_M3UA.start(f_M3UA_Emulation(cfg.sctp_addr, rctx));
}
#ifdef IPA_EMULATION_SCCP
case (BSSAP_TRANSPORT_SCCPlite_SERVER) {