gsm_utils: add enum osmo_rat_type, from osmo-msc enum ran_type

In the MSC, we have RAN types GERAN_A and UTRAN_IU, now we need a similar enum
in osmo-hlr's GSUP client.

Naming: in the MAP specifications, the RAN type is mostly called RAT type,
(Radio Access Network vs. Radio Access Technology?). Since GSUP is more about
MAP messages, I'm calling the enum osmo_rat_type.

Rationale: osmo-msc and osmo-sgsn want to tell the osmo-hlr which RAT a
subscriber is calling on. A subsequent patch will extend the GSUP protocol and
add a RAT types IE.

Change-Id: I659687aef7a4d67ca372a39fef31dee07aed7631
This commit is contained in:
Neels Hofmeyr 2018-12-26 18:03:17 +01:00
parent 691ba52194
commit 5b5c3499cf
3 changed files with 23 additions and 0 deletions

View File

@ -241,3 +241,16 @@ int gsm_7bit_decode_ussd(char *decoded, const uint8_t *user_data, uint8_t length
int gsm_7bit_encode(uint8_t *result, const char *data) OSMO_DEPRECATED("Use gsm_7bit_encode_n() instead");
int gsm_7bit_encode_ussd(uint8_t *result, const char *data, int *octets_written) OSMO_DEPRECATED("Use gsm_7bit_encode_n_ussd() instead");
int gsm_7bit_encode_oct(uint8_t *result, const char *data, int *octets_written) OSMO_DEPRECATED("Use gsm_7bit_encode_n() instead");
enum osmo_rat_type {
OSMO_RAT_UNKNOWN = 0,
OSMO_RAT_GERAN_A,
OSMO_RAT_UTRAN_IU,
/* keep this last */
OSMO_RAT_COUNT
};
extern const struct value_string osmo_rat_type_names[];
inline static const char *osmo_rat_type_name(enum osmo_rat_type val)
{ return get_value_string(osmo_rat_type_names, val); }

View File

@ -997,3 +997,11 @@ int gsm_7bit_encode_oct(uint8_t *result, const char *data, int *octets)
return gsm_7bit_encode_n(result, GSM_7BIT_LEGACY_MAX_BUFFER_SIZE,
data, octets);
}
/* This is also used by osmo-hlr's db schema */
const struct value_string osmo_rat_type_names[] = {
{ OSMO_RAT_UNKNOWN, "unknown" },
{ OSMO_RAT_GERAN_A, "GERAN-A" },
{ OSMO_RAT_UTRAN_IU, "UTRAN-Iu" },
{}
};

View File

@ -553,5 +553,7 @@ sgsap_sgs_cause_names;
sgsap_ue_emm_mode_names;
sgsap_ie_tlvdef;
osmo_rat_type_names;
local: *;
};