aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/gsm/gsup.h
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-12-26 18:13:38 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2019-08-21 17:48:55 +0200
commitfb4e75de4121939e502efc3190eb02652e8e99c2 (patch)
tree84307a9256d3bea6c87cb7539cd0485375ab6407 /include/osmocom/gsm/gsup.h
parent0e48cd67e1cdc543f9d6c56142dbb720f901d5eb (diff)
gsup: add OSMO_GSUP_RAT_TYPES_IEcccamp2019
Corresponds to the Supported RAT Types Indicator from 3GPP TS 29.002. See 8.1.2 MAP_UPDATE_LOCATION service. This is useful to communicate the RAN / RAT type of the current subscriber during Location Updating Request. The use case we have in mind for VLR <-> HLR would require only a single RAT type, but 29.002 specifies a list of supported RAT types. Hence implement this as a list. So far, have room for eight RAT types in the gsup_msg. That is an arbitrary random choice without any rationale. Change-Id: I93850710ab55a605bf61b95063a69682a2899bb1
Diffstat (limited to 'include/osmocom/gsm/gsup.h')
-rw-r--r--include/osmocom/gsm/gsup.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h
index be856620..fded89bc 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,7 @@ enum osmo_gsup_iei {
OSMO_GSUP_AUTS_IE = 0x26,
OSMO_GSUP_RES_IE = 0x27,
OSMO_GSUP_CN_DOMAIN_IE = 0x28,
+ OSMO_GSUP_RAT_TYPES_IE = 0x29,
OSMO_GSUP_SESSION_ID_IE = 0x30,
OSMO_GSUP_SESSION_STATE_IE = 0x31,
@@ -373,6 +375,9 @@ struct osmo_gsup_message {
/*! 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 rat_types[8];
+ size_t rat_types_len;
};
int osmo_gsup_decode(const uint8_t *data, size_t data_len,