{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
This commit is contained in:
Harald Welte 2023-04-15 02:54:34 +08:00 committed by laforge
parent fc8fa3fbad
commit 843917ef19
2 changed files with 16 additions and 3 deletions

View File

@ -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;

View File

@ -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) {