From 843917ef19639233a26bda95dd880f584684fd86 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 15 Apr 2023 02:54:34 +0800 Subject: {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 --- library/BSSAP_LE_Adapter.ttcn | 11 +++++++++-- library/RAN_Adapter.ttcnpp | 8 +++++++- 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) { -- cgit v1.2.3