gsup: add OSMO_GSUP_SUPPORTED_RAT_TYPES_IE and OSMO_GSUP_CURRENT_RAT_TYPE_IE

OSMO_GSUP_SUPPORTED_RAT_TYPES_IE corresponds to the Supported RAT Types
Indicator from 3GPP TS 29.002. See 8.1.2 MAP_UPDATE_LOCATION service,
which indicates the capabilities of the MSC/VLR to the HLR.

So far, have room for eight RAT types in the gsup_msg. That is an arbitrary
random choice without any rationale.

OSMO_GSUP_CURRENT_RAT_TYPE_IE is useful to communicate the currently
used RAN / RAT type of the current subscriber during Location Updating Request.

Change-Id: I93850710ab55a605bf61b95063a69682a2899bb1
diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h
index be85662..49ddb74 100644
--- a/include/osmocom/gsm/gsup.h
+++ b/include/osmocom/gsm/gsup.h
@@ -45,6 +45,7 @@
 #include <osmocom/gsm/protocol/gsm_03_40.h>
 #include <osmocom/gsm/protocol/gsm_04_08_gprs.h>
 #include <osmocom/gsm/protocol/gsm_08_08.h>
+#include <osmocom/gsm/gsm_utils.h>
 #include <osmocom/crypt/auth.h>
 
 #define OSMO_GSUP_PORT 4222
@@ -86,6 +87,8 @@
 	OSMO_GSUP_AUTS_IE			= 0x26,
 	OSMO_GSUP_RES_IE			= 0x27,
 	OSMO_GSUP_CN_DOMAIN_IE			= 0x28,
+	OSMO_GSUP_SUPPORTED_RAT_TYPES_IE	= 0x29, /* supported RAT types */
+	OSMO_GSUP_CURRENT_RAT_TYPE_IE		= 0x2a, /* currently used RAT type */
 
 	OSMO_GSUP_SESSION_ID_IE			= 0x30,
 	OSMO_GSUP_SESSION_STATE_IE		= 0x31,
@@ -373,6 +376,10 @@
 
 	/*! Session Management cause as of 3GPP TS 24.008 10.5.6.6 / Table 10.5.157. */
 	enum gsm48_gsm_cause		cause_sm;
+
+	enum osmo_rat_type		current_rat_type;
+	enum osmo_rat_type		supported_rat_types[8]; /*!< arbitrary choice */
+	size_t				supported_rat_types_len;
 };
 
 int osmo_gsup_decode(const uint8_t *data, size_t data_len,