Neels Hofmeyr | 17518fe | 2017-06-20 04:35:06 +0200 | [diff] [blame] | 1 | /*! \file gsm_23_003.h */ |
| 2 | |
Harald Welte | 0996c87 | 2016-04-20 17:28:03 +0200 | [diff] [blame] | 3 | #pragma once |
| 4 | |
| 5 | /* Chapter 2.2 */ |
| 6 | #define GSM23003_IMSI_MAX_DIGITS 15 |
Neels Hofmeyr | 9cd1e74 | 2017-10-04 03:15:47 +0200 | [diff] [blame] | 7 | #define GSM23003_IMSI_MIN_DIGITS 6 |
Neels Hofmeyr | 0ee798a | 2019-04-10 19:13:19 +0200 | [diff] [blame] | 8 | /*! 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 Welte | 0996c87 | 2016-04-20 17:28:03 +0200 | [diff] [blame] | 11 | /* Chapter 2.4 */ |
| 12 | #define GSM23003_TMSI_NUM_BYTES 4 |
Eric Wild | dda07be | 2019-06-17 12:19:01 +0200 | [diff] [blame] | 13 | #define GSM23003_TMSI_SGSN_MASK 0xC0000000UL |
Harald Welte | 0996c87 | 2016-04-20 17:28:03 +0200 | [diff] [blame] | 14 | /* Chapter 2.5 */ |
| 15 | #define GSM23003_LMSI_NUM_BYTES 4 |
| 16 | /* Chapter 2.6 */ |
| 17 | #define GSM23003_TLLI_NUM_BYTES 4 |
| 18 | /* Chapter 2.7 */ |
| 19 | #define GSM23003_PTMSI_SIG_NUM_BYTES 3 |
| 20 | /* Chapter 2.8 */ |
| 21 | #define GSM23003_MME_CODE_NUM_BYTES 1 |
| 22 | #define GSM23003_MME_GROUP_NUM_BYTES 2 |
| 23 | #define GSM23003_MTMSI_NUM_BYTES 4 |
Oliver Smith | cdac620 | 2019-05-10 11:28:27 +0200 | [diff] [blame] | 24 | /* Chapter 3.2 */ |
| 25 | #define GSM23003_MSISDN_MAX_DIGITS 15 /* ITU-T Rec. E.164 6.1 */ |
| 26 | #define GSM23003_MSISDN_MIN_DIGITS 1 |
Harald Welte | 0996c87 | 2016-04-20 17:28:03 +0200 | [diff] [blame] | 27 | /* Chapter 6.2.1 */ |
| 28 | #define GSM23003_IMEI_TAC_NUM_DIGITS 8 |
| 29 | #define GSM23003_IMEI_SNR_NUM_DIGITS 6 |
| 30 | #define GSM23003_IMEI_NUM_DIGITS (GSM23003_IMEI_TAC_NUM_DIGITS + \ |
| 31 | GSM23003_IMEI_SNR_NUM_DIGITS + 1) |
| 32 | #define GSM23003_IMEISV_NUM_DIGITS (GSM23003_IMEI_TAC_NUM_DIGITS + \ |
| 33 | GSM23003_IMEI_SNR_NUM_DIGITS + 2) |
Oliver Smith | 49fb992 | 2019-01-21 16:32:46 +0100 | [diff] [blame] | 34 | /* IMEI without Luhn checksum */ |
| 35 | #define GSM23003_IMEI_NUM_DIGITS_NO_CHK (GSM23003_IMEI_TAC_NUM_DIGITS + \ |
| 36 | GSM23003_IMEI_SNR_NUM_DIGITS) |
Harald Welte | de1da35 | 2018-10-08 22:27:04 +0200 | [diff] [blame] | 37 | |
| 38 | /* Chapter 19.2 "epc.mnc000.mcc000.3gppnetwork.org" */ |
| 39 | #define GSM23003_HOME_NETWORK_DOMAIN_LEN 33 |
| 40 | |
| 41 | /* Chapter 19.4.2.4: "mmec00.mmegi0000.mme.epc.mnc000.mcc000.3gppnetwork.org" */ |
| 42 | #define GSM23003_MME_DOMAIN_LEN 55 |