Change in osmo-ttcn3-hacks[master]: library/GSUP_Types.ttcn: introduce new InvokeID IE

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Vadim Yanitskiy gerrit-no-reply at lists.osmocom.org
Tue Nov 6 16:55:29 UTC 2018


Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/11640


Change subject: library/GSUP_Types.ttcn: introduce new InvokeID IE
......................................................................

library/GSUP_Types.ttcn: introduce new InvokeID IE

Each invoke component in TCAP is identified by an unique InvokeID,
assigned by the application that originates the invoke. The
InvokeID is returned in the response, and allows the originator
to correlate the reply with the invoke operation to which
it belongs.

Since GSUP has no TCAP layer, there are optional SESSION_ID and
SESSION_STATE IEs aimed to 'emulate' the dialog. This change
introduces the new optional INVOKE_ID IE.

InvokeID is required in order to support multy-part SMS over GSUP.

Change-Id: Ib7ed702cb05328dc4d1f459efc93df4fa947d7ae
Related: OS#3587
---
M library/GSUP_Types.ttcn
1 file changed, 42 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/11640/1

diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn
index d7d9a5b..fa8d1ce 100644
--- a/library/GSUP_Types.ttcn
+++ b/library/GSUP_Types.ttcn
@@ -43,6 +43,7 @@
 
 	OSMO_GSUP_SESSION_ID_IE		('30'O),
 	OSMO_GSUP_SESSION_STATE_IE	('31'O),
+	OSMO_GSUP_INVOKE_ID_IE		('32'O),
 	OSMO_GSUP_SS_INFO_IE		('35'O),
 
 	/* SM related IEs (see 3GPP TS 29.002, section 7.6.8) */
@@ -140,6 +141,7 @@
 				 charg_char, tag = OSMO_GSUP_CHARG_CHAR_IE;
 				 session_state, tag = OSMO_GSUP_SESSION_STATE_IE;
 				 session_id, tag = OSMO_GSUP_SESSION_ID_IE;
+				 invoke_id, tag = OSMO_GSUP_INVOKE_ID_IE;
 				 ss_info, tag = OSMO_GSUP_SS_INFO_IE;
 				 sm_rp_da, tag = OSMO_GSUP_SM_RP_DA_IE;
 				 sm_rp_oa, tag = OSMO_GSUP_SM_RP_OA_IE;
@@ -176,6 +178,7 @@
 	/* Session information */
 	GSUP_SessionState	session_state,
 	OCT4			session_id,
+	int8_t			invoke_id,
 	/* Supplementary Services */
 	octetstring		ss_info,
 	/* Short Message Service */
@@ -613,6 +616,21 @@
 	}
 }
 
+template (value) GSUP_IE ts_GSUP_IE_InvokeID(int8_t invoke_id) := {
+	tag := OSMO_GSUP_INVOKE_ID_IE,
+	len := 0, /* overwritten */
+	val := {
+		invoke_id := invoke_id
+	}
+}
+template GSUP_IE tr_GSUP_IE_InvokeID(template int8_t invoke_id) := {
+	tag := OSMO_GSUP_INVOKE_ID_IE,
+	len := ?,
+	val := {
+		invoke_id := invoke_id
+	}
+}
+
 /* Possible identity types for SM-RP-{OA|DA} IEs */
 type enumerated GSUP_SM_RP_ODA_IdType {
 	OSMO_GSUP_SM_RP_ODA_ID_NONE		('00'O),
@@ -922,6 +940,7 @@
 	hexstring imsi, /* IMSI (dummy, because mandatory) */
 	OCT4 sid, /* TCAP transactionID */
 	GSUP_SessionState state, /* TCAP transaction state */
+	int8_t invoke_id, /* InvokeID */
 	GSUP_SM_RP_DA sm_rp_da, /* Destination Address, see 7.6.8.1 */
 	GSUP_SM_RP_OA sm_rp_oa, /* Originating Address, see 7.6.8.2 */
 	octetstring sm_rp_ui /* SM TPDU, see 7.6.8.4 */
@@ -931,6 +950,7 @@
 		valueof(ts_GSUP_IE_IMSI(imsi)),
 		valueof(ts_GSUP_IE_SessionId(sid)),
 		valueof(ts_GSUP_IE_SessionState(state)),
+		valueof(ts_GSUP_IE_InvokeID(invoke_id)),
 		valueof(ts_GSUP_IE_SM_RP_DA(sm_rp_da)),
 		valueof(ts_GSUP_IE_SM_RP_OA(sm_rp_oa)),
 		valueof(ts_GSUP_IE_SM_RP_UI(sm_rp_ui))
@@ -940,6 +960,7 @@
 	template hexstring imsi := ?,
 	template OCT4 sid := ?, /* TCAP TransactionID */
 	template GSUP_SessionState state := ?, /* TCAP transaction state */
+	template int8_t invoke_id := ?, /* InvokeID */
 	template GSUP_SM_RP_DA sm_rp_da, /* Destination Address, see 7.6.8.1 */
 	template GSUP_SM_RP_OA sm_rp_oa, /* Originating Address, see 7.6.8.2 */
 	template octetstring sm_rp_ui /* SM TPDU, see 7.6.8.4 */
@@ -949,6 +970,7 @@
 		tr_GSUP_IE_IMSI(imsi),
 		tr_GSUP_IE_SessionId(sid),
 		tr_GSUP_IE_SessionState(state),
+		tr_GSUP_IE_InvokeID(invoke_id),
 		tr_GSUP_IE_SM_RP_DA(sm_rp_da),
 		tr_GSUP_IE_SM_RP_OA(sm_rp_oa),
 		tr_GSUP_IE_SM_RP_UI(sm_rp_ui)
@@ -959,6 +981,7 @@
 	hexstring imsi,
 	OCT4 sid, /* TCAP TransactionID */
 	GSUP_SessionState state, /* TCAP transaction state */
+	int8_t invoke_id, /* InvokeID */
 	octetstring sm_rp_ui /* SM TPDU, see 7.6.8.4 */
 ) := ts_GSUP(
 	OSMO_GSUP_MSGT_MO_FORWARD_SM_RESULT,
@@ -966,6 +989,7 @@
 		valueof(ts_GSUP_IE_IMSI(imsi)),
 		valueof(ts_GSUP_IE_SessionId(sid)),
 		valueof(ts_GSUP_IE_SessionState(state)),
+		valueof(ts_GSUP_IE_InvokeID(invoke_id)),
 		valueof(ts_GSUP_IE_SM_RP_UI(sm_rp_ui))
 	}
 );
@@ -973,6 +997,7 @@
 	template hexstring imsi := ?,
 	template OCT4 sid := ?, /* TCAP TransactionID */
 	template GSUP_SessionState state := ?, /* TCAP transaction state */
+	template int8_t invoke_id := ?, /* InvokeID */
 	template octetstring sm_rp_ui /* SM TPDU, see 7.6.8.4 */
 ) := tr_GSUP(
 	OSMO_GSUP_MSGT_MO_FORWARD_SM_RESULT,
@@ -980,6 +1005,7 @@
 		tr_GSUP_IE_IMSI(imsi),
 		tr_GSUP_IE_SessionId(sid),
 		tr_GSUP_IE_SessionState(state),
+		tr_GSUP_IE_InvokeID(invoke_id),
 		tr_GSUP_IE_SM_RP_UI(sm_rp_ui)
 	}
 );
@@ -988,6 +1014,7 @@
 	hexstring imsi,
 	OCT4 sid, /* TCAP TransactionID */
 	GSUP_SessionState state, /* TCAP transaction state */
+	int8_t invoke_id, /* InvokeID */
 	integer cause /* User error, see 12.2.3 */
 ) := ts_GSUP(
 	OSMO_GSUP_MSGT_MO_FORWARD_SM_ERROR,
@@ -995,6 +1022,7 @@
 		valueof(ts_GSUP_IE_IMSI(imsi)),
 		valueof(ts_GSUP_IE_SessionId(sid)),
 		valueof(ts_GSUP_IE_SessionState(state)),
+		valueof(ts_GSUP_IE_InvokeID(invoke_id)),
 		valueof(ts_GSUP_IE_Cause(cause))
 	}
 );
@@ -1002,6 +1030,7 @@
 	template hexstring imsi := ?,
 	template OCT4 sid := ?, /* TCAP TransactionID */
 	template GSUP_SessionState state := ?, /* TCAP transaction state */
+	template int8_t invoke_id := ?, /* InvokeID */
 	template integer cause := ? /* User error, see 12.2.3 */
 ) := tr_GSUP(
 	OSMO_GSUP_MSGT_MO_FORWARD_SM_ERROR,
@@ -1009,6 +1038,7 @@
 		tr_GSUP_IE_IMSI(imsi),
 		tr_GSUP_IE_SessionId(sid),
 		tr_GSUP_IE_SessionState(state),
+		tr_GSUP_IE_InvokeID(invoke_id),
 		tr_GSUP_IE_Cause(cause)
 	}
 );
@@ -1017,6 +1047,7 @@
 	hexstring imsi,
 	OCT4 sid, /* TCAP TransactionID */
 	GSUP_SessionState state, /* TCAP transaction state */
+	int8_t invoke_id, /* InvokeID */
 	GSUP_SM_RP_DA sm_rp_da, /* Destination Address, see 7.6.8.1 */
 	GSUP_SM_RP_OA sm_rp_oa, /* Originating Address, see 7.6.8.2 */
 	octetstring sm_rp_ui /* SM TPDU, see 7.6.8.4 */
@@ -1032,6 +1063,7 @@
 		valueof(ts_GSUP_IE_IMSI(imsi)),
 		valueof(ts_GSUP_IE_SessionId(sid)),
 		valueof(ts_GSUP_IE_SessionState(state)),
+		valueof(ts_GSUP_IE_InvokeID(invoke_id)),
 		valueof(ts_GSUP_IE_SM_RP_DA(sm_rp_da)),
 		valueof(ts_GSUP_IE_SM_RP_OA(sm_rp_oa)),
 		valueof(ts_GSUP_IE_SM_RP_UI(sm_rp_ui))
@@ -1041,6 +1073,7 @@
 	template hexstring imsi := ?,
 	template OCT4 sid := ?, /* TCAP TransactionID */
 	template GSUP_SessionState state := ?, /* TCAP transaction state */
+	template int8_t invoke_id := ?, /* InvokeID */
 	template GSUP_SM_RP_DA sm_rp_da, /* Destination Address, see 7.6.8.1 */
 	template GSUP_SM_RP_OA sm_rp_oa, /* Originating Address, see 7.6.8.2 */
 	template octetstring sm_rp_ui /* SM TPDU, see 7.6.8.4 */
@@ -1056,6 +1089,7 @@
 		tr_GSUP_IE_IMSI(imsi),
 		tr_GSUP_IE_SessionId(sid),
 		tr_GSUP_IE_SessionState(state),
+		tr_GSUP_IE_InvokeID(invoke_id),
 		tr_GSUP_IE_SM_RP_DA(sm_rp_da),
 		tr_GSUP_IE_SM_RP_OA(sm_rp_oa),
 		tr_GSUP_IE_SM_RP_UI(sm_rp_ui)
@@ -1066,6 +1100,7 @@
 	hexstring imsi,
 	OCT4 sid, /* TCAP TransactionID */
 	GSUP_SessionState state, /* TCAP transaction state */
+	int8_t invoke_id, /* InvokeID */
 	octetstring sm_rp_ui /* SM TPDU, see 7.6.8.4 */
 ) := ts_GSUP(
 	OSMO_GSUP_MSGT_MT_FORWARD_SM_RESULT,
@@ -1073,6 +1108,7 @@
 		valueof(ts_GSUP_IE_IMSI(imsi)),
 		valueof(ts_GSUP_IE_SessionId(sid)),
 		valueof(ts_GSUP_IE_SessionState(state)),
+		valueof(ts_GSUP_IE_InvokeID(invoke_id)),
 		valueof(ts_GSUP_IE_SM_RP_UI(sm_rp_ui))
 	}
 );
@@ -1080,6 +1116,7 @@
 	template hexstring imsi := ?,
 	template OCT4 sid := ?, /* TCAP TransactionID */
 	template GSUP_SessionState state := ?, /* TCAP transaction state */
+	template int8_t invoke_id := ?, /* InvokeID */
 	template octetstring sm_rp_ui /* SM TPDU, see 7.6.8.4 */
 ) := tr_GSUP(
 	OSMO_GSUP_MSGT_MT_FORWARD_SM_RESULT,
@@ -1087,6 +1124,7 @@
 		tr_GSUP_IE_IMSI(imsi),
 		tr_GSUP_IE_SessionId(sid),
 		tr_GSUP_IE_SessionState(state),
+		tr_GSUP_IE_InvokeID(invoke_id),
 		tr_GSUP_IE_SM_RP_UI(sm_rp_ui)
 	}
 );
@@ -1095,6 +1133,7 @@
 	hexstring imsi,
 	OCT4 sid, /* TCAP TransactionID */
 	GSUP_SessionState state, /* TCAP transaction state */
+	int8_t invoke_id, /* InvokeID */
 	integer cause /* User error, see 12.9.3 */
 ) := ts_GSUP(
 	OSMO_GSUP_MSGT_MT_FORWARD_SM_ERROR,
@@ -1102,6 +1141,7 @@
 		valueof(ts_GSUP_IE_IMSI(imsi)),
 		valueof(ts_GSUP_IE_SessionId(sid)),
 		valueof(ts_GSUP_IE_SessionState(state)),
+		valueof(ts_GSUP_IE_InvokeID(invoke_id)),
 		valueof(ts_GSUP_IE_Cause(cause))
 	}
 );
@@ -1109,6 +1149,7 @@
 	template hexstring imsi := ?,
 	template OCT4 sid := ?, /* TCAP TransactionID */
 	template GSUP_SessionState state := ?, /* TCAP transaction state */
+	template int8_t invoke_id := ?, /* InvokeID */
 	template integer cause := ? /* User error, see 12.9.3 */
 ) := tr_GSUP(
 	OSMO_GSUP_MSGT_MT_FORWARD_SM_ERROR,
@@ -1116,6 +1157,7 @@
 		tr_GSUP_IE_IMSI(imsi),
 		tr_GSUP_IE_SessionId(sid),
 		tr_GSUP_IE_SessionState(state),
+		tr_GSUP_IE_InvokeID(invoke_id),
 		tr_GSUP_IE_Cause(cause)
 	}
 );

-- 
To view, visit https://gerrit.osmocom.org/11640
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib7ed702cb05328dc4d1f459efc93df4fa947d7ae
Gerrit-Change-Number: 11640
Gerrit-PatchSet: 1
Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181106/3f818a44/attachment.htm>


More information about the gerrit-log mailing list