From bda26c09019310dd25a2e7671f362cf2c26a3aff Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 11 May 2016 09:13:08 +0200 Subject: [PATCH] Add structures defining decoded TS 23.003 identities Change-Id: I6423f8d75bb3e7aeca285854ab3232a087d62b57 Reviewed-on: https://gerrit.osmocom.org/304 Reviewed-by: Harald Welte Tested-by: Jenkins Builder --- include/Makefile.am | 1 + include/osmocom/gsm/gsm23003.h | 80 ++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 include/osmocom/gsm/gsm23003.h diff --git a/include/Makefile.am b/include/Makefile.am index 2e58d7e25..04a8b23a3 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -67,6 +67,7 @@ nobase_include_HEADERS = \ osmocom/gsm/gsm0502.h \ osmocom/gsm/gsm0503.h \ osmocom/gsm/gsm0808.h \ + osmocom/gsm/gsm23003.h \ osmocom/gsm/gsm48.h \ osmocom/gsm/gsm48_ie.h \ osmocom/gsm/gsm_utils.h \ diff --git a/include/osmocom/gsm/gsm23003.h b/include/osmocom/gsm/gsm23003.h new file mode 100644 index 000000000..29e646cc8 --- /dev/null +++ b/include/osmocom/gsm/gsm23003.h @@ -0,0 +1,80 @@ +#pragma once +#include + +/* 23.003 Chapter 12.1 */ +struct osmo_plmn_id { + uint16_t mcc; + uint16_t mnc; +}; + +/* 4.1 */ +struct osmo_location_area_id { + struct osmo_plmn_id plmn; + uint16_t lac; +}; + +/* 4.2 */ +struct osmo_routing_area_id { + struct osmo_location_area_id lac; + uint8_t rac; +}; + +/* 4.3.1 */ +struct osmo_cell_global_id { + struct osmo_location_area_id lai; + uint16_t cell_identity; +}; + +/* 12.5 */ +struct osmo_service_area_id { + struct osmo_location_area_id lai; + uint16_t sac; +}; + +/* 12.6 */ +struct osmo_shared_network_area_id { + struct osmo_plmn_id plmn; + uint32_t snac; +}; + +/* 5.1 */ +enum osmo_gsn_addr_type { + GSN_ADDR_TYPE_IPV4 = 0, + GSN_ADDR_TYPE_IPV6 = 1, +}; + +/* 5.1 */ +struct osmo_gsn_address { + enum osmo_gsn_addr_type type; + uint8_t length; + uint8_t addr[16]; +}; + +/* 19.4.2.3 */ +struct osmo_tracking_area_id { + struct osmo_plmn_id plmn; + uint16_t tac; +}; + +struct osmo_eutran_cell_global_id { + struct osmo_plmn_id plmn; + uint32_t eci; /* FIXME */ +}; + +/* 2.8.1 */ +struct osmo_mme_id { + uint16_t group_id; + uint8_t code; +}; + +/* 2.8.1 */ +struct osmo_gummei { + struct osmo_plmn_id plmn; + struct osmo_mme_id mme; +}; + +/* 2.8.1 */ +struct osmo_guti { + struct osmo_gummei gummei; + uint32_t mtmsi; +};