Harald Welte | 6048b59 | 2016-05-03 18:51:40 +0200 | [diff] [blame] | 1 | #!/usr/bin/perl |
| 2 | # |
| 3 | use strict; |
| 4 | use DBI; |
| 5 | my $dbh = DBI->connect("dbi:SQLite:dbname=hlr.db","",""); |
| 6 | |
| 7 | my $sth_subscr_base = $dbh->prepare("INSERT INTO subscriber (imsi, msisdn) VALUES (?, ?)"); |
| 8 | my $sth_subscr_get_id = $dbh->prepare("SELECT * FROM subscriber WHERE imsi = ?"); |
| 9 | my $sth_auc_3g = $dbh->prepare("INSERT INTO auc_3g (subscriber_id, algo_id_3g, k, op, sqn) VALUES (?, ?, ?, ?, ?)"); |
| 10 | my $sth_auc_2g = $dbh->prepare("INSERT INTO auc_2g (subscriber_id, algo_id_2g, ki) VALUES (?, ?, ?)"); |
| 11 | |
| 12 | sub 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 | |
| 22 | sub create_auc_2g($) |
| 23 | { |
| 24 | my ($id) = @_; |
| 25 | |
| 26 | my $ki = "000102030405060708090a0b0c0d0e0f"; |
| 27 | |
| 28 | $sth_auc_2g->execute($id, 1, $ki); |
| 29 | } |
| 30 | |
| 31 | sub 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 | |
| 41 | sub 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 | |
| 62 | my $prefix = "90179"; |
| 63 | |
| 64 | $dbh->{AutoCommit} = 0; |
| 65 | $dbh->do("PRAGMA synchronous = OFF"); |
| 66 | |
| 67 | for (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; |