blob: be1b157b5b04a0ab9e61728cf3fff8b099c115c0 [file] [log] [blame]
Neels Hofmeyr17518fe2017-06-20 04:35:06 +02001/*! \file gsm_23_003.h */
2
Harald Welte0996c872016-04-20 17:28:03 +02003#pragma once
4
5/* Chapter 2.2 */
6#define GSM23003_IMSI_MAX_DIGITS 15
Neels Hofmeyr9cd1e742017-10-04 03:15:47 +02007#define GSM23003_IMSI_MIN_DIGITS 6
Neels Hofmeyr0ee798a2019-04-10 19:13:19 +02008/*! The char[] buffer size to completely contain an IMSI including the optional checksum digit as well as the
9 * terminating nul character. */
10#define OSMO_IMSI_BUF_SIZE (GSM23003_IMSI_MAX_DIGITS+2)
Harald Welte0996c872016-04-20 17:28:03 +020011/* Chapter 2.4 */
12#define GSM23003_TMSI_NUM_BYTES 4
13/* Chapter 2.5 */
14#define GSM23003_LMSI_NUM_BYTES 4
15/* Chapter 2.6 */
16#define GSM23003_TLLI_NUM_BYTES 4
17/* Chapter 2.7 */
18#define GSM23003_PTMSI_SIG_NUM_BYTES 3
19/* Chapter 2.8 */
20#define GSM23003_MME_CODE_NUM_BYTES 1
21#define GSM23003_MME_GROUP_NUM_BYTES 2
22#define GSM23003_MTMSI_NUM_BYTES 4
23/* Chapter 6.2.1 */
24#define GSM23003_IMEI_TAC_NUM_DIGITS 8
25#define GSM23003_IMEI_SNR_NUM_DIGITS 6
26#define GSM23003_IMEI_NUM_DIGITS (GSM23003_IMEI_TAC_NUM_DIGITS + \
27 GSM23003_IMEI_SNR_NUM_DIGITS + 1)
28#define GSM23003_IMEISV_NUM_DIGITS (GSM23003_IMEI_TAC_NUM_DIGITS + \
29 GSM23003_IMEI_SNR_NUM_DIGITS + 2)
Oliver Smith49fb9922019-01-21 16:32:46 +010030/* IMEI without Luhn checksum */
31#define GSM23003_IMEI_NUM_DIGITS_NO_CHK (GSM23003_IMEI_TAC_NUM_DIGITS + \
32 GSM23003_IMEI_SNR_NUM_DIGITS)
Harald Weltede1da352018-10-08 22:27:04 +020033
34/* Chapter 19.2 "epc.mnc000.mcc000.3gppnetwork.org" */
35#define GSM23003_HOME_NETWORK_DOMAIN_LEN 33
36
37/* Chapter 19.4.2.4: "mmec00.mmegi0000.mme.epc.mnc000.mcc000.3gppnetwork.org" */
38#define GSM23003_MME_DOMAIN_LEN 55