pespin has uploaded this change for review.

View Change

SCCP_Adapter: Allow configuring ipa_ccm_pars in SCCPLite transport

This is needed for instance to set ipa_unit_id, which must match the AS
name configured at the STP.

Change-Id: I16e1f5d0c40c03330642b2781dc6ddae81d821b2
---
M bsc/BSC_Tests_SCCPlite.cfg
M library/SCCP_Adapter.ttcnpp
2 files changed, 23 insertions(+), 13 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/34/41134/1
diff --git a/bsc/BSC_Tests_SCCPlite.cfg b/bsc/BSC_Tests_SCCPlite.cfg
index e4f4068..7e5b4b2 100644
--- a/bsc/BSC_Tests_SCCPlite.cfg
+++ b/bsc/BSC_Tests_SCCPlite.cfg
@@ -21,7 +21,8 @@
tpars := {
sccplite := {
tcp_addr := { 5000, "127.0.0.1", 4000, "" },
- tcp_is_server := true
+ tcp_is_server := true,
+ ipa_ccm_pars := omit
}
},
sccp_service_type := "mtp3_itu",
diff --git a/library/SCCP_Adapter.ttcnpp b/library/SCCP_Adapter.ttcnpp
index 6945255..de01b0e 100644
--- a/library/SCCP_Adapter.ttcnpp
+++ b/library/SCCP_Adapter.ttcnpp
@@ -44,7 +44,8 @@

type record SCCP_Adapter_Config_Sccplite {
SCTP_Association_Address tcp_addr,
- boolean tcp_is_server
+ boolean tcp_is_server,
+ IPA_CCM_Parameters ipa_ccm_pars optional
};

type union SCCP_Adapter_Transport_ConfigUnion {
@@ -96,6 +97,13 @@
};
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));
+
+ if (ischosen(cfg.tpars.sccplite)) {
+ if (not ispresent(cfg.tpars.sccplite.ipa_ccm_pars)) {
+ cfg.tpars.sccplite.ipa_ccm_pars := c_IPA_default_ccm_pars;
+ }
+ }
+
ba.cfg := cfg;
}

@@ -104,19 +112,19 @@

/* create components */
ba.vc_SCCP := SCCP_CT.create(id & "-SCCP") alive;
- select (cfg.transport) {
+ select (ba.cfg.transport) {
case (SCCP_TRANSPORT_SIGTRAN) {
var template (omit) integer rctx;
- if (not ispresent(cfg.rctx)) {
+ if (not ispresent(ba.cfg.rctx)) {
rctx := omit;
} else {
- rctx := cfg.rctx;
+ rctx := ba.cfg.rctx;
}
ba.vc_M3UA := M3UA_CT.create(id & "-M3UA") alive;
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.tpars.sigtran.sctp_addr, rctx));
+ ba.vc_M3UA.start(f_M3UA_Emulation(ba.cfg.tpars.sigtran.sctp_addr, rctx));
}
#ifdef IPA_EMULATION_SCCP
case (SCCP_TRANSPORT_SCCPlite) {
@@ -128,15 +136,16 @@
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.tpars.sccplite.tcp_is_server) {
- ba.vc_IPA.start(IPA_Emulation.main_server(cfg.tpars.sccplite.tcp_addr.local_ip_addr,
- cfg.tpars.sccplite.tcp_addr.local_sctp_port,
+ if (ba.cfg.tpars.sccplite.tcp_is_server) {
+ ba.vc_IPA.start(IPA_Emulation.main_server(ba.cfg.tpars.sccplite.tcp_addr.local_ip_addr,
+ ba.cfg.tpars.sccplite.tcp_addr.local_sctp_port,
true, IPA_INIT_SEND_IPA_ID_ACK));
} else {
- ba.vc_IPA.start(IPA_Emulation.main_client(cfg.tpars.sccplite.tcp_addr.remote_ip_addr,
- cfg.tpars.sccplite.tcp_addr.remote_sctp_port,
- cfg.tpars.sccplite.tcp_addr.local_ip_addr,
- cfg.tpars.sccplite.tcp_addr.local_sctp_port));
+ ba.vc_IPA.start(IPA_Emulation.main_client(ba.cfg.tpars.sccplite.tcp_addr.remote_ip_addr,
+ ba.cfg.tpars.sccplite.tcp_addr.remote_sctp_port,
+ ba.cfg.tpars.sccplite.tcp_addr.local_ip_addr,
+ ba.cfg.tpars.sccplite.tcp_addr.local_sctp_port,
+ ba.cfg.tpars.sccplite.ipa_ccm_pars));
}
/* wait until we received an IPA CCM ID_ACK */
ba.vc_WAIT.done;

To view, visit change 41134. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I16e1f5d0c40c03330642b2781dc6ddae81d821b2
Gerrit-Change-Number: 41134
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>