blob: 7be93d84621c81764b8ff1d95494aa795817253e [file] [log] [blame]
Harald Welte6048b592016-05-03 18:51:40 +02001#!/usr/bin/perl
2#
3use strict;
4use DBI;
5my $dbh = DBI->connect("dbi:SQLite:dbname=hlr.db","","");
6
7my $sth_subscr_base = $dbh->prepare("INSERT INTO subscriber (imsi, msisdn) VALUES (?, ?)");
8my $sth_subscr_get_id = $dbh->prepare("SELECT * FROM subscriber WHERE imsi = ?");
9my $sth_auc_3g = $dbh->prepare("INSERT INTO auc_3g (subscriber_id, algo_id_3g, k, op, sqn) VALUES (?, ?, ?, ?, ?)");
10my $sth_auc_2g = $dbh->prepare("INSERT INTO auc_2g (subscriber_id, algo_id_2g, ki) VALUES (?, ?, ?)");
11
12sub create_subscr_base($)
13{
14 my ($imsi) = @_;
15 my $suffix = substr($imsi, 5);
16
17 my $msisdn = "49" . $suffix;
18
19 return $sth_subscr_base->execute($imsi, $msisdn);
20}
21
22sub create_auc_2g($)
23{
24 my ($id) = @_;
25
26 my $ki = "000102030405060708090a0b0c0d0e0f";
27
28 $sth_auc_2g->execute($id, 1, $ki);
29}
30
31sub create_auc_3g($)
32{
33 my ($id) = @_;
34
35 my $k = "000102030405060708090a0b0c0d0e0f";
36 my $op = "00102030405060708090a0b0c0d0e0f0";
37
38 $sth_auc_3g->execute($id, 5, $k, $op, 0);
39}
40
41sub create_subscr($$$)
42{
43 my ($imsi, $is_2g, $is_3g) = @_;
44 my $suffix = substr($imsi, 5);
45
46 create_subscr_base($imsi);
47
48 my $id = $dbh->sqlite_last_insert_rowid();
49 #$sth_subscr_get_id->execute($imsi);
50 #my @arr = $sth_subscr_get_id->fetchrow_array();
51 #my $id = $arr[0];
52
53 if ($is_3g) {
54 create_auc_3g($id);
55 }
56 if ($is_2g) {
57 create_auc_2g($id);
58 }
59}
60
61
62my $prefix = "90179";
63
64$dbh->{AutoCommit} = 0;
65$dbh->do("PRAGMA synchronous = OFF");
66
67for (my $i = 0; $i < 1000000; $i++) {
68 my $imsi = sprintf("%s%010u", $prefix, $i);
69 if ($i % 1000 == 0) {
70 printf("Creating subscriber IMSI %s\n", $imsi);
71 }
72 create_subscr($imsi, 1, 1);
73}
74
75$dbh->commit;