blob: 46c985d59b691354b805eefd61367c5c4aa5677c [file] [log] [blame]
Neels Hofmeyr5b654612019-10-31 02:03:48 +01001PRAGMA foreign_keys=OFF;
2BEGIN TRANSACTION;
3CREATE TABLE subscriber (
4-- OsmoHLR's DB scheme is modelled roughly after TS 23.008 version 13.3.0
5 id INTEGER PRIMARY KEY,
6 -- Chapter 2.1.1.1
7 imsi VARCHAR(15) UNIQUE NOT NULL,
8 -- Chapter 2.1.2
9 msisdn VARCHAR(15) UNIQUE,
10 -- Chapter 2.2.3: Most recent / current IMEI
11 imeisv VARCHAR,
12 -- Chapter 2.4.5
13 vlr_number VARCHAR(15),
14 -- Chapter 2.4.6
15 hlr_number VARCHAR(15),
16 -- Chapter 2.4.8.1
17 sgsn_number VARCHAR(15),
18 -- Chapter 2.13.10
19 sgsn_address VARCHAR,
20 -- Chapter 2.4.8.2
21 ggsn_number VARCHAR(15),
22 -- Chapter 2.4.9.2
23 gmlc_number VARCHAR(15),
24 -- Chapter 2.4.23
25 smsc_number VARCHAR(15),
26 -- Chapter 2.4.24
27 periodic_lu_tmr INTEGER,
28 -- Chapter 2.13.115
29 periodic_rau_tau_tmr INTEGER,
30 -- Chapter 2.1.1.2: network access mode
31 nam_cs BOOLEAN NOT NULL DEFAULT 1,
32 nam_ps BOOLEAN NOT NULL DEFAULT 1,
33 -- Chapter 2.1.8
34 lmsi INTEGER,
35 -- The below purged flags might not even be stored non-volatile,
36 -- refer to TS 23.012 Chapter 3.6.1.4
37 -- Chapter 2.7.5
38 ms_purged_cs BOOLEAN NOT NULL DEFAULT 0,
39 -- Chapter 2.7.6
40 ms_purged_ps BOOLEAN NOT NULL DEFAULT 0
41);
42INSERT INTO subscriber VALUES(1,'123456789012345','098765432109876',NULL,'MSC-1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,1,NULL,0,0);
43INSERT INTO subscriber VALUES(2,'111111111',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,1,NULL,1,0);
44INSERT INTO subscriber VALUES(3,'222222222','22222',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,1,NULL,0,1);
45INSERT INTO subscriber VALUES(4,'333333','3',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,1,NULL,0,0);
46INSERT INTO subscriber VALUES(5,'444444444444444','4444',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,NULL,0,0);
47INSERT INTO subscriber VALUES(6,'5555555','55555555555555',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,0,0);
48CREATE TABLE subscriber_apn (
49 subscriber_id INTEGER, -- subscriber.id
50 apn VARCHAR(256) NOT NULL
51);
52CREATE TABLE subscriber_multi_msisdn (
53-- Chapter 2.1.3
54 subscriber_id INTEGER, -- subscriber.id
55 msisdn VARCHAR(15) NOT NULL
56);
57CREATE TABLE auc_2g (
58 subscriber_id INTEGER PRIMARY KEY, -- subscriber.id
59 algo_id_2g INTEGER NOT NULL, -- enum osmo_auth_algo value
60 ki VARCHAR(32) NOT NULL -- hex string: subscriber's secret key (128bit)
61);
62INSERT INTO auc_2g VALUES(1,1,'BeefedCafeFaceAcedAddedDecadeFee');
63INSERT INTO auc_2g VALUES(4,2,'33333333333333333333333333333333');
64INSERT INTO auc_2g VALUES(6,4,'55555555555555555555555555555555');
65CREATE TABLE auc_3g (
66 subscriber_id INTEGER PRIMARY KEY, -- subscriber.id
67 algo_id_3g INTEGER NOT NULL, -- enum osmo_auth_algo value
68 k VARCHAR(32) NOT NULL, -- hex string: subscriber's secret key (128bit)
69 op VARCHAR(32), -- hex string: operator's secret key (128bit)
70 opc VARCHAR(32), -- hex string: derived from OP and K (128bit)
71 sqn INTEGER NOT NULL DEFAULT 0, -- sequence number of key usage
72 -- nr of index bits at lower SQN end
73 ind_bitlen INTEGER NOT NULL DEFAULT 5
74);
75INSERT INTO auc_3g VALUES(1,5,'C01ffedC1cadaeAc1d1f1edAcac1aB0a',NULL,'CededEffacedAceFacedBadFadedBeef',0,5);
76INSERT INTO auc_3g VALUES(5,5,'44444444444444444444444444444444','44444444444444444444444444444444',NULL,0,5);
77INSERT INTO auc_3g VALUES(6,5,'55555555555555555555555555555555',NULL,'55555555555555555555555555555555',0,5);
78CREATE UNIQUE INDEX idx_subscr_imsi ON subscriber (imsi)
79;
80COMMIT;