blob: 80eb3e5ed5cfca0f00b6fd90266f3f76568b6063 [file] [log] [blame]
Neels Hofmeyr7750d2c2017-10-24 23:26:27 +02001CREATE TABLE IF NOT EXISTS subscriber (
Neels Hofmeyr88c91f62017-10-25 00:26:29 +02002-- OsmoHLR's DB scheme is modelled roughly after TS 23.008 version 13.3.0
Harald Weltee72cf552016-04-28 07:18:49 +02003 id INTEGER PRIMARY KEY,
4 -- Chapter 2.1.1.1
Neels Hofmeyrcc785f02017-02-01 17:08:56 +01005 imsi VARCHAR(15) UNIQUE NOT NULL,
Harald Weltee72cf552016-04-28 07:18:49 +02006 -- Chapter 2.1.2
Neels Hofmeyrcc785f02017-02-01 17:08:56 +01007 msisdn VARCHAR(15) UNIQUE,
Harald Weltee72cf552016-04-28 07:18:49 +02008 -- Chapter 2.2.3: Most recent / current IMEI
9 imeisv VARCHAR,
10 -- Chapter 2.4.5
11 vlr_number VARCHAR(15),
12 -- Chapter 2.4.6
13 hlr_number VARCHAR(15),
14 -- Chapter 2.4.8.1
15 sgsn_number VARCHAR(15),
16 -- Chapter 2.13.10
17 sgsn_address VARCHAR,
18 -- Chapter 2.4.8.2
19 ggsn_number VARCHAR(15),
20 -- Chapter 2.4.9.2
21 gmlc_number VARCHAR(15),
22 -- Chapter 2.4.23
23 smsc_number VARCHAR(15),
24 -- Chapter 2.4.24
25 periodic_lu_tmr INTEGER,
26 -- Chapter 2.13.115
27 periodic_rau_tau_tmr INTEGER,
28 -- Chapter 2.1.1.2: network access mode
Harald Welte61229152016-05-03 18:47:08 +020029 nam_cs BOOLEAN NOT NULL DEFAULT 1,
30 nam_ps BOOLEAN NOT NULL DEFAULT 1,
Harald Weltee72cf552016-04-28 07:18:49 +020031 -- Chapter 2.1.8
32 lmsi INTEGER,
33
Harald Welteb18f0e02016-05-05 21:03:03 +020034 -- The below purged flags might not even be stored non-volatile,
35 -- refer to TS 23.012 Chapter 3.6.1.4
Harald Weltee72cf552016-04-28 07:18:49 +020036 -- Chapter 2.7.5
Harald Welte61229152016-05-03 18:47:08 +020037 ms_purged_cs BOOLEAN NOT NULL DEFAULT 0,
Harald Weltee72cf552016-04-28 07:18:49 +020038 -- Chapter 2.7.6
Harald Welte61229152016-05-03 18:47:08 +020039 ms_purged_ps BOOLEAN NOT NULL DEFAULT 0
Harald Weltee72cf552016-04-28 07:18:49 +020040);
41
Neels Hofmeyr7750d2c2017-10-24 23:26:27 +020042CREATE TABLE IF NOT EXISTS subscriber_apn (
Harald Weltee72cf552016-04-28 07:18:49 +020043 subscriber_id INTEGER, -- subscriber.id
44 apn VARCHAR(256) NOT NULL
45);
46
Neels Hofmeyr7750d2c2017-10-24 23:26:27 +020047CREATE TABLE IF NOT EXISTS subscriber_multi_msisdn (
Neels Hofmeyr88c91f62017-10-25 00:26:29 +020048-- Chapter 2.1.3
Harald Weltee72cf552016-04-28 07:18:49 +020049 subscriber_id INTEGER, -- subscriber.id
50 msisdn VARCHAR(15) NOT NULL
51);
52
Neels Hofmeyr7750d2c2017-10-24 23:26:27 +020053CREATE TABLE IF NOT EXISTS auc_2g (
Harald Weltee72cf552016-04-28 07:18:49 +020054 subscriber_id INTEGER PRIMARY KEY, -- subscriber.id
Neels Hofmeyr8089d512017-01-30 13:49:49 +010055 algo_id_2g INTEGER NOT NULL, -- enum osmo_auth_algo value
56 ki VARCHAR(32) NOT NULL -- hex string: subscriber's secret key (128bit)
Harald Weltee72cf552016-04-28 07:18:49 +020057);
58
Neels Hofmeyr7750d2c2017-10-24 23:26:27 +020059CREATE TABLE IF NOT EXISTS auc_3g (
Neels Hofmeyr2116ce22017-01-19 15:50:59 +010060 subscriber_id INTEGER PRIMARY KEY, -- subscriber.id
Neels Hofmeyr8089d512017-01-30 13:49:49 +010061 algo_id_3g INTEGER NOT NULL, -- enum osmo_auth_algo value
62 k VARCHAR(32) NOT NULL, -- hex string: subscriber's secret key (128bit)
63 op VARCHAR(32), -- hex string: operator's secret key (128bit)
64 opc VARCHAR(32), -- hex string: derived from OP and K (128bit)
Neels Hofmeyrcab2fcd2017-03-15 00:07:43 +010065 sqn INTEGER NOT NULL DEFAULT 0, -- sequence number of key usage
66 ind_bitlen INTEGER NOT NULL DEFAULT 5 -- nr of index bits at lower SQN end
Harald Weltee72cf552016-04-28 07:18:49 +020067);
68
Harald Welte61229152016-05-03 18:47:08 +020069CREATE UNIQUE INDEX IF NOT EXISTS idx_subscr_imsi ON subscriber (imsi);