pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43152?usp=email )
Change subject: stp: tcap: Avoid need of N_NOTICE.req
......................................................................
stp: tcap: Avoid need of N_NOTICE.req
Commits
7970ceaead78ff224390a25f416b22bcd8e4e37e..32618160bdb154ca756c783b67b131533226f7ae
added a fork of titan.Protocol.Emulations.SCCP with a new N-NOTICE.req
primitive which was needed in STP_Tests_TCAP to trigger transmission of
a UDTS message.
That primitive doesn't exist in the specs, since no user of SCCP is
expected to be requesting a transmision of UDTS.
Hence, this commit rewrites the test to avoid the need for such a
primitive, by hooking directly into the lower layer MTP3 User SAP (M3UA
or IPA) and crafting and transmitting the SCCP UDTS over there directly.
Follow up commits will revert the commits adding such a N-NOTICE req to
the SCCP and TCAP layers.
Related: SYS#8090
Change-Id: Ia1b7f487124584ab1720cb89bca5999cbb12392d
---
M stp/STP_Tests_TCAP.ttcn
1 file changed, 77 insertions(+), 21 deletions(-)
Approvals:
Jenkins Builder: Verified
fixeria: Looks good to me, approved
diff --git a/stp/STP_Tests_TCAP.ttcn b/stp/STP_Tests_TCAP.ttcn
index bede97d..bc16337 100644
--- a/stp/STP_Tests_TCAP.ttcn
+++ b/stp/STP_Tests_TCAP.ttcn
@@ -32,6 +32,7 @@
import from SCCPasp_Types all;
import from SCCP_Emulation all;
import from SCCP_Adapter all;
+import from SCCP_Mapping all;
import from IPA_Emulation all;
import from IPA_EXT_TCAP_ROUTING all;
@@ -67,6 +68,9 @@
port TCAP_CODEC_PT SCCP_TCAP[MAX_NUM_ASP];
/* Port for IPA Extension TCAP_ROUTING */
port IPA_TCAP_ROUTING_PT IPA_TCAP_ROUTING[MAX_NUM_ASP];
+
+ /* Used to inject Tx of SCCP UDTS, which cannot be done through SCCP primitive layer as per specs */
+ port MTP3asp_SCCP_PT MTP3;
};
private function tcap_build_configs(template (omit) Misc_Helpers.ro_charstring asps := omit)
@@ -184,6 +188,71 @@
f_wait_peers_available();
}
+/* Tx a UDTS:
+ * There's no way to trigger tx of UDTS from within SCCP User SAP, ie. there's no
+ * N_NOTICE.req, since UDTS are only triggered due to internal SCCP errors within
+ * the stack found when processing incoming messages.
+ * Hence, to emulate transmission of an UDTS we need to hook to lower layers M3UA (or IPA)
+ * and build and transmit the SCCP UDTS ourselves.
+ */
+private function f_asp_connect_mtp3_port(integer asp_idx := 0) runs on TCAP_CT
+{
+ select (g_tcap[asp_idx].cfg.transport) {
+ case (SCCP_TRANSPORT_SIGTRAN) {
+ connect(self:MTP3, g_tcap[asp_idx].vc_M3UA:MTP3_SP_PORT);
+ }
+ case (SCCP_TRANSPORT_SCCPlite) {
+ connect(self:MTP3, g_tcap[asp_idx].vc_IPA:MTP3_SP_PORT);
+ }
+ case else {
+ Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Unexpected tansport!");
+ }
+ }
+}
+private function f_asp_disconnect_mtp3_port(integer asp_idx := 0) runs on TCAP_CT
+{
+ select (g_tcap[asp_idx].cfg.transport) {
+ case (SCCP_TRANSPORT_SIGTRAN) {
+ disconnect(self:MTP3, g_tcap[asp_idx].vc_M3UA:MTP3_SP_PORT);
+ }
+ case (SCCP_TRANSPORT_SCCPlite) {
+ disconnect(self:MTP3, g_tcap[asp_idx].vc_IPA:MTP3_SP_PORT);
+ }
+ case else {
+ Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Unexpected tansport!");
+ }
+ }
+}
+private function f_asp_tx_sccp_udts(template (value) TCMessage tcap_msg,
+ SCCP_PAR_Reason_For_Return reasonForReturn := 3,
+ integer asp_idx := 0)
+runs on TCAP_CT
+{
+ var SCCP_param_Data vl_data;
+ var template (value) PDU_SCCP_UnitdataService udts;
+ var template ASP_MTP3_TRANSFERreq_sccp req;
+
+ if (not MTP3.checkstate("Connected")) {
+ Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
+ "MTP3 port required and not connected, call f_asp_connect_mtp3_port()!");
+ }
+
+ vl_data.data := enc_TCAP_TCMessage(valueof(tcap_msg));
+ vl_data.paramLength := lengthof(vl_data.data);
+ udts := t_PDU_SCCP_UnitdataService(
+ reasonForReturn,
+ ConvertASPAddressToEncodedAddress_itu(g_tcap[asp_idx].sccp_addr_own),
+ ConvertASPAddressToEncodedAddress_itu(g_tcap[asp_idx].sccp_addr_peer),
+ vl_data);
+
+ req := t_ASP_MTP3_TRANSFERreq_sccp(g_tcap[asp_idx].cfg.sio,
+ g_tcap[asp_idx].cfg.own_pc,
+ g_tcap[asp_idx].cfg.peer_pc,
+ g_tcap[asp_idx].sccp_pars.sls,
+ { udataserv := valueof(udts) });
+ MTP3.send(req);
+}
+
private function f_asp_tx_ipa_ext_tcap_routing(template (value) IPA_EXT_TCAP_ROUTING_Message send_msg,
integer asp_idx := 0, boolean exp_ack := true)
runs on TCAP_CT
@@ -219,17 +288,6 @@
SCCP_TCAP[asp_idx].send(sccp_unitdata_req);
}
-private function f_asp_tx_notice(template (value) SCCP_PAR_UserData userData,
- SCCP_PAR_Reason_For_Return reasonForReturn,
- integer asp_idx := 0)
-runs on TCAP_CT
-{
- SCCP_TCAP[asp_idx].send(t_ASP_N_NOTICE_req(g_tcap[asp_idx].sccp_addr_peer,
- g_tcap[asp_idx].sccp_addr_own,
- reasonForReturn, userData, omit));
-}
-
-
private altstep as_asp_rx_tcap_any(template (present) TCMessage tcap_msg := ?,
integer tx_asp_idx := 0)
runs on TCAP_CT
@@ -919,9 +977,8 @@
}
/* Test UDTS routing with TCAP load-sharing
- * If a TCAP message is returned in a UDTS and
- * * it is in the TCAP session cache/tracking
- * * then route it back to the correct IPA ASP.
+ * If a TCAP message is returned in a UDTS and it is in the TCAP session cache/tracking
+ * then route it back to the correct IPA ASP.
*/
testcase TC_tcap_loadshare_m3ua_to_ipa_udts_routing() runs on TCAP_CT {
var template (value) IPA_EXT_TCAP_ROUTING_Message tcap_rt_msg;
@@ -945,15 +1002,14 @@
tcap_msg := ts_TCAP_Continue(int2oct(98 + (ipa_idx-2)*100, 4), int2oct(202, 4));
m3ua_idx := f_asp_tx_tcap_exp_alt(tcap_msg, ipa_idx, 0, 1);
- /* reply with a UDTS */
- var template (value) TCAP_N_NOTICE_req sccp_udts :=
- ts_TCAP_N_NOTICE_req(g_tcap[m3ua_idx].sccp_addr_own,
- g_tcap[m3ua_idx].sccp_addr_peer,
- 3, /* Subsystem failure */
- tcap_msg);
+ /* Reply with a UDTS:
+ * Hooking to lower level port is required to transmit the UDTS:
+ */
+ f_asp_connect_mtp3_port(m3ua_idx);
+ f_asp_tx_sccp_udts(tcap_msg, 3, m3ua_idx);
+
timer T := 5.0;
T.start;
- SCCP_TCAP[m3ua_idx].send(sccp_udts);
var template (present) TCAP_N_NOTICE_ind exp_sccp_udts :=
tr_TCAP_N_NOTICE_ind(g_tcap[m3ua_idx].sccp_addr_own,
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43152?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ia1b7f487124584ab1720cb89bca5999cbb12392d
Gerrit-Change-Number: 43152
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Attention is currently required from: dexter, jolly.
Hello Jenkins Builder, dexter,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43055?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Verified-1 by Jenkins Builder
Change subject: V1.2: Change fields in ProvideEimPackage(Result)
......................................................................
V1.2: Change fields in ProvideEimPackage(Result)
Change parameters in ProvideEimPackage and ProvideEimPackageResult. The
structure is changed in IPA too. The new field eimTransactionId of
EimPackageResultResponseError is filled with the eimTransactionId of
IpaEuiccDataRequest, if exists.
Reference: SGP.32 Section 5.14.6
Related: SYS#8101
Change-Id: I24baab4f9351aec27c58403b94974cba4b274c34
---
M asn1/SGP32Definitions.asn
M src/ipa/libasn/CMakeLists.txt
A src/ipa/libasn/EimPackageResult.c
A src/ipa/libasn/EimPackageResult.h
A src/ipa/libasn/EimPackageResultErrorCode.c
A src/ipa/libasn/EimPackageResultErrorCode.h
A src/ipa/libasn/EimPackageResultResponseError.c
A src/ipa/libasn/EimPackageResultResponseError.h
M src/ipa/libasn/ProvideEimPackageResult.c
M src/ipa/libasn/ProvideEimPackageResult.h
M src/ipa/libasn/ProvideEimPackageResultResponse.c
M src/ipa/libasn/ProvideEimPackageResultResponse.h
M src/ipa/libipa/esipa_prvde_eim_pkg_rslt.c
M src/ipa/libipa/esipa_prvde_eim_pkg_rslt.h
M src/ipa/libipa/proc_euicc_data_req.c
M src/ipa/libipa/proc_euicc_pkg_dwnld_exec.c
16 files changed, 625 insertions(+), 220 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/55/43055/2
--
To view, visit https://gerrit.osmocom.org/c/onomondo-ipa/+/43055?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: onomondo-ipa
Gerrit-Branch: master
Gerrit-Change-Id: I24baab4f9351aec27c58403b94974cba4b274c34
Gerrit-Change-Number: 43055
Gerrit-PatchSet: 2
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Attention is currently required from: dexter, jolly.
Hello Jenkins Builder, dexter,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43056?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Verified-1 by Jenkins Builder
Change subject: V1.2: Add eimTransactionId to InitiateAuthenticationRequestEsipa
......................................................................
V1.2: Add eimTransactionId to InitiateAuthenticationRequestEsipa
Add new eimTransactionId field to InitiateAuthenticationRequestEsipa.
The eimTransactionId walks through the IPA process like this:
* The eimTransactionId is retrieved from ProfileDownloadTriggerRequest
at proc_eim_pkg_retr.c.
* Then it is handed to the Common Mutual Authentication Procedure at
proc_indirect_prfle_dwnld.c.
* There it is handed to the InitiateAuthentication function at
proc_cmn_mtl_auth.c.
* There it is stored in initiateAuthenticationRequestEsipa at
esipa_init_auth.c.
Reference: SGP.32 Section 5.14.1
Related: SYS#8101
Change-Id: I1c8ef6fc0a3f7ab5735e401597fc8c6b2021fc09
---
M asn1/SGP32Definitions.asn
M src/ipa/libasn/InitiateAuthenticationRequestEsipa.c
M src/ipa/libasn/InitiateAuthenticationRequestEsipa.h
M src/ipa/libipa/esipa_init_auth.c
M src/ipa/libipa/esipa_init_auth.h
M src/ipa/libipa/proc_cmn_mtl_auth.c
M src/ipa/libipa/proc_cmn_mtl_auth.h
M src/ipa/libipa/proc_eim_pkg_retr.c
M src/ipa/libipa/proc_indirect_prfle_dwnld.c
M src/ipa/libipa/proc_indirect_prfle_dwnld.h
10 files changed, 31 insertions(+), 9 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/56/43056/2
--
To view, visit https://gerrit.osmocom.org/c/onomondo-ipa/+/43056?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: onomondo-ipa
Gerrit-Branch: master
Gerrit-Change-Id: I1c8ef6fc0a3f7ab5735e401597fc8c6b2021fc09
Gerrit-Change-Number: 43056
Gerrit-PatchSet: 2
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Attention is currently required from: dexter, jolly.
Hello Jenkins Builder, dexter,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43060?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Code-Review+1 by dexter, Verified-1 by Jenkins Builder
Change subject: V1.2: Add function to set Device Capabilities
......................................................................
V1.2: Add function to set Device Capabilities
Add new library function to set the SGP.22 Device Capabilities. Also
add an option to the command line interface to call the library
function.
The IoT device (modem) may and the IPA must set Device Capabilities.
They cannot be set independently. The IoT device would overwrite what
IPA has set and vice versa. Therefore add a library function for the
IoT device that takes care about setting the required capabilities for
IPA.
Reference: SGP.22 Section 3.4.2
Related: SYS#8101
Change-Id: I866787b8cda9a87a9f2e0db4965fbb554d339a6c
---
M include/onomondo/ipa/ipad.h
M src/ipa/libipa/euicc.c
M src/ipa/main.c
3 files changed, 12 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/60/43060/2
--
To view, visit https://gerrit.osmocom.org/c/onomondo-ipa/+/43060?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: onomondo-ipa
Gerrit-Branch: master
Gerrit-Change-Id: I866787b8cda9a87a9f2e0db4965fbb554d339a6c
Gerrit-Change-Number: 43060
Gerrit-PatchSet: 2
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Attention is currently required from: pespin.
fixeria has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43155?usp=email )
Change subject: Revert "deps: use a fork of titan.ProtocolEmulations.SCCP"
......................................................................
Patch Set 2: Code-Review+2
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43155?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I4eb81e0ffc6500340199c4a23a7aabfee925c33b
Gerrit-Change-Number: 43155
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 03 Aug 2026 12:39:05 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes