blob: 3e5c3e574f36d72a41ef92a3ed1535b5497d9263 [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
Oliver Smithcdac6202019-05-10 11:28:27 +020023/* Chapter 3.2 */
24#define GSM23003_MSISDN_MAX_DIGITS 15 /* ITU-T Rec. E.164 6.1 */
25#define GSM23003_MSISDN_MIN_DIGITS 1
Harald Welte0996c872016-04-20 17:28:03 +020026/* Chapter 6.2.1 */
27#define GSM23003_IMEI_TAC_NUM_DIGITS 8
28#define GSM23003_IMEI_SNR_NUM_DIGITS 6
29#define GSM23003_IMEI_NUM_DIGITS (GSM23003_IMEI_TAC_NUM_DIGITS + \
30 GSM23003_IMEI_SNR_NUM_DIGITS + 1)
31#define GSM23003_IMEISV_NUM_DIGITS (GSM23003_IMEI_TAC_NUM_DIGITS + \
32 GSM23003_IMEI_SNR_NUM_DIGITS + 2)
Oliver Smith49fb9922019-01-21 16:32:46 +010033/* IMEI without Luhn checksum */
34#define GSM23003_IMEI_NUM_DIGITS_NO_CHK (GSM23003_IMEI_TAC_NUM_DIGITS + \
35 GSM23003_IMEI_SNR_NUM_DIGITS)
Harald Weltede1da352018-10-08 22:27:04 +020036
37/* Chapter 19.2 "epc.mnc000.mcc000.3gppnetwork.org" */
38#define GSM23003_HOME_NETWORK_DOMAIN_LEN 33
39
40/* Chapter 19.4.2.4: "mmec00.mmegi0000.mme.epc.mnc000.mcc000.3gppnetwork.org" */
41#define GSM23003_MME_DOMAIN_LEN 55