GSUP_Types: Split RAT_TYPE_IE to SUPPORTED / CURRENT

We added the RAT_TYPE_IE while the respective change in libosmocore
was still in gerrit review.  Meanwhile the support there has been
split into two parts: A list of supported radio access types and
another IE indicating the current RAT.  Let's catch up with that
in the GSUP implementation.

This makes TC_gsup_sai_eps() pass again.

Change-Id: I2c609dc523cbec562c6c6a05f4c7d600649ff52d
diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn
index e1aa24c..8977d9f 100644
--- a/library/GSUP_Types.ttcn
+++ b/library/GSUP_Types.ttcn
@@ -43,7 +43,8 @@
 	OSMO_GSUP_AUTS_IE		('26'O),
 	OSMO_GSUP_RES_IE		('27'O),
 	OSMO_GSUP_CN_DOMAIN_IE		('28'O),
-	OSMO_GSUP_RAT_TYPE_IE		('29'O),
+	OSMO_GSUP_SUPPORTED_RAT_TYPES_IE ('29'O),
+	OSMO_GSUP_CURRENT_RAT_TYPE_IE	('2a'O),
 
 	OSMO_GSUP_SESSION_ID_IE		('30'O),
 	OSMO_GSUP_SESSION_STATE_IE	('31'O),
@@ -233,7 +234,8 @@
 				 cause_rr, tag = OSMO_GSUP_CAUSE_RR_IE;
 				 cause_bssap, tag = OSMO_GSUP_CAUSE_BSSAP_IE;
 				 cause_sm, tag = OSMO_GSUP_CAUSE_SM_IE;
-				 rat_type, tag = OSMO_GSUP_RAT_TYPE_IE;
+				 supported_rat_types, tag = OSMO_GSUP_SUPPORTED_RAT_TYPES_IE;
+				 current_rat_type, tag = OSMO_GSUP_CURRENT_RAT_TYPE_IE;
 			)"
 };
 
@@ -300,7 +302,8 @@
 	OCT1			cause_bssap,
 	OCT1			cause_sm,
 
-	GSUP_RatTypes		rat_type
+	GSUP_RatTypes		supported_rat_types,
+	GSUP_RatType		current_rat_type
 };
 
 type record GSUP_PDU {
@@ -449,7 +452,7 @@
 template (value) GSUP_PDU ts_GSUP_SAI_REQ_EPS(hexstring imsi) :=
 	ts_GSUP(OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST, {
 		valueof(ts_GSUP_IE_IMSI(imsi)),
-		valueof(ts_GSUP_IE_RAT_TYPE({RAT_TYPE_EUTRAN_SGs}))
+		valueof(ts_GSUP_IE_CURRENT_RAT_TYPE(RAT_TYPE_EUTRAN_SGs))
 	});
 
 template GSUP_PDU tr_GSUP_SAI_REQ(template hexstring imsi) :=
@@ -1124,19 +1127,33 @@
 	}
 }
 
-
-template (present) GSUP_IE tr_GSUP_IE_RAT_TYPE(template (present) GSUP_RatTypes ratt) := {
-	tag := OSMO_GSUP_RAT_TYPE_IE,
+template (present) GSUP_IE tr_GSUP_IE_SUPPORTED_RAT_TYPES(template (present) GSUP_RatTypes ratt) := {
+	tag := OSMO_GSUP_SUPPORTED_RAT_TYPES_IE,
 	len := ?,
 	val := {
-		rat_type := ratt
+		supported_rat_types := ratt
 	}
 }
-template (value) GSUP_IE ts_GSUP_IE_RAT_TYPE(GSUP_RatTypes ratt) := {
-	tag := OSMO_GSUP_RAT_TYPE_IE,
+template (value) GSUP_IE ts_GSUP_IE_SUPPORTED_RAT_TYPES(GSUP_RatTypes ratt) := {
+	tag := OSMO_GSUP_SUPPORTED_RAT_TYPES_IE,
 	len := 0, /* overwritten */
 	val := {
-		rat_type := ratt
+		supported_rat_types := ratt
+	}
+}
+
+template (present) GSUP_IE tr_GSUP_IE_CURRENT_RAT_TYPE(template (present) GSUP_RatType ratt) := {
+	tag := OSMO_GSUP_CURRENT_RAT_TYPE_IE,
+	len := ?,
+	val := {
+		current_rat_type := ratt
+	}
+}
+template (value) GSUP_IE ts_GSUP_IE_CURRENT_RAT_TYPE(GSUP_RatType ratt) := {
+	tag := OSMO_GSUP_CURRENT_RAT_TYPE_IE,
+	len := 0, /* overwritten */
+	val := {
+		current_rat_type := ratt
 	}
 }