Change in osmo-ttcn3-hacks[master]: library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_*

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/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Sat Jun 23 11:00:02 UTC 2018


Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9688 )

Change subject: library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_*
......................................................................

library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_*

The 'SS Info' IE is optional for GSUP_PROC_SS_{REQ|RSP} messages,
and is not carried in some cases, e.g. when a subscriber aborts
an active transaction by pressing the 'red button'.

Change-Id: I20d9028acbe0c457d2a2cf72eff372b749d8dc30
---
M library/GSUP_Types.ttcn
1 file changed, 51 insertions(+), 28 deletions(-)

Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved



diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn
index 359e272..6044565 100644
--- a/library/GSUP_Types.ttcn
+++ b/library/GSUP_Types.ttcn
@@ -581,62 +581,85 @@
 	}
 }
 
+private function f_gen_ts_ss_ies(
+	hexstring imsi,
+	OCT4 sid,
+	GSUP_SessionState state,
+	template (omit) octetstring ss
+) return GSUP_IEs {
+	/* Mandatory IEs */
+	var GSUP_IEs ies := {
+		valueof(ts_GSUP_IE_IMSI(imsi)),
+		valueof(ts_GSUP_IE_SessionId(sid)),
+		valueof(ts_GSUP_IE_SessionState(state))
+	};
+
+	/* Optional SS payload */
+	if (isvalue(ss)) {
+		ies[3] := valueof(ts_GSUP_IE_SSInfo(valueof(ss)));
+	}
+
+	return ies;
+}
+private function f_gen_tr_ss_ies(
+	template hexstring imsi,
+	template OCT4 sid := ?,
+	template GSUP_SessionState state := ?,
+	template octetstring ss := ?
+) return template GSUP_IEs {
+	/* Mandatory IEs */
+	var template GSUP_IEs ies := {
+		tr_GSUP_IE_IMSI(imsi),
+		tr_GSUP_IE_SessionId(sid),
+		tr_GSUP_IE_SessionState(state)
+	};
+
+	/* Optional SS payload */
+	if (istemplatekind(ss, "*")) {
+		ies[3] := *;
+	} else if (not istemplatekind(ss, "omit")) {
+		ies[3] := tr_GSUP_IE_SSInfo(ss);
+	}
+
+	return ies;
+}
+
 template (value) GSUP_PDU ts_GSUP_PROC_SS_REQ(
 	hexstring imsi,
 	OCT4 sid,
 	GSUP_SessionState state,
-	octetstring ss
+	template (omit) octetstring ss := omit
 ) := ts_GSUP(
 	OSMO_GSUP_MSGT_PROC_SS_REQUEST,
-	{
-		valueof(ts_GSUP_IE_IMSI(imsi)),
-		valueof(ts_GSUP_IE_SessionId(sid)),
-		valueof(ts_GSUP_IE_SessionState(state)),
-		valueof(ts_GSUP_IE_SSInfo(ss))
-	}
+	f_gen_ts_ss_ies(imsi, sid, state, ss)
 );
 template GSUP_PDU tr_GSUP_PROC_SS_REQ(
 	template hexstring imsi,
 	template OCT4 sid := ?,
 	template GSUP_SessionState state := ?,
-	template octetstring ss := ?
+	template octetstring ss := *
 ) := tr_GSUP(
 	OSMO_GSUP_MSGT_PROC_SS_REQUEST,
-	{
-		tr_GSUP_IE_IMSI(imsi),
-		tr_GSUP_IE_SessionId(sid),
-		tr_GSUP_IE_SessionState(state),
-		tr_GSUP_IE_SSInfo(ss)
-	}
+	f_gen_tr_ss_ies(imsi, sid, state, ss)
 );
 
 template (value) GSUP_PDU ts_GSUP_PROC_SS_RES(
 	hexstring imsi,
 	OCT4 sid,
 	GSUP_SessionState state,
-	octetstring ss
+	template (omit) octetstring ss := omit
 ) := ts_GSUP(
 	OSMO_GSUP_MSGT_PROC_SS_RESULT,
-	{
-		valueof(ts_GSUP_IE_IMSI(imsi)),
-		valueof(ts_GSUP_IE_SessionId(sid)),
-		valueof(ts_GSUP_IE_SessionState(state)),
-		valueof(ts_GSUP_IE_SSInfo(ss))
-	}
+	f_gen_ts_ss_ies(imsi, sid, state, ss)
 );
 template GSUP_PDU tr_GSUP_PROC_SS_RES(
 	template hexstring imsi,
 	template OCT4 sid := ?,
 	template GSUP_SessionState state := ?,
-	template octetstring ss := ?
+	template octetstring ss := *
 ) := tr_GSUP(
 	OSMO_GSUP_MSGT_PROC_SS_RESULT,
-	{
-		tr_GSUP_IE_IMSI(imsi),
-		tr_GSUP_IE_SessionId(sid),
-		tr_GSUP_IE_SessionState(state),
-		tr_GSUP_IE_SSInfo(ss)
-	}
+	f_gen_tr_ss_ies(imsi, sid, state, ss)
 );
 
 template (value) GSUP_PDU ts_GSUP_PROC_SS_ERR(

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

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I20d9028acbe0c457d2a2cf72eff372b749d8dc30
Gerrit-Change-Number: 9688
Gerrit-PatchSet: 2
Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180623/de7e33ff/attachment.htm>


More information about the gerrit-log mailing list