Pau Espin Pedrol | e913e37 | 2017-08-24 17:21:51 +0200 | [diff] [blame] | 1 | #!/usr/bin/env python3 |
| 2 | from osmo_gsm_tester.test import * |
| 3 | |
| 4 | hlr = suite.hlr() |
| 5 | bts = suite.bts() |
| 6 | mgcpgw = suite.mgcpgw(bts_ip=bts.remote_addr()) |
| 7 | msc = suite.msc(hlr, mgcpgw) |
| 8 | bsc = suite.bsc(msc) |
| 9 | stp = suite.stp() |
| 10 | ms = suite.modem() |
| 11 | |
| 12 | print('start network...') |
| 13 | msc.set_authentication(True) |
Pau Espin Pedrol | abd556a | 2017-09-04 16:26:08 +0200 | [diff] [blame] | 14 | msc.set_encryption('a5_1') |
| 15 | bsc.set_encryption('a5_1') |
Pau Espin Pedrol | e913e37 | 2017-08-24 17:21:51 +0200 | [diff] [blame] | 16 | hlr.start() |
| 17 | stp.start() |
| 18 | msc.start() |
| 19 | mgcpgw.start() |
| 20 | bsc.bts_add(bts) |
| 21 | bsc.start() |
| 22 | bts.start() |
| 23 | |
| 24 | ms.log_info() |
| 25 | good_ki = ms.ki() |
| 26 | bad_ki = ("%1X" % (int(good_ki[0], 16) ^ 0x01)) + good_ki[1:] |
| 27 | |
| 28 | print('KI changed: ' + good_ki + " => " + bad_ki) |
| 29 | ms.set_ki(bad_ki) |
| 30 | hlr.subscriber_add(ms) |
| 31 | print('Attempt connection with wrong KI...') |
| 32 | ms.connect(msc.mcc_mnc()) |
| 33 | |
Pau Espin Pedrol | 6680ef2 | 2017-09-11 01:24:05 +0200 | [diff] [blame] | 34 | sleep(40) # TODO: read pcap or CTRL interface and look for Rejected? (gsm_a.dtap.msg_mm_type == 0x04) |
Pau Espin Pedrol | e913e37 | 2017-08-24 17:21:51 +0200 | [diff] [blame] | 35 | print('Asserting modem did not register') |
| 36 | # FIXME: this can fail because ofono qmi signals registered before being accepted by network. See OS#2458 |
| 37 | # assert not ms.is_connected(msc.mcc_mnc()) |
| 38 | assert not msc.subscriber_attached(ms) |
| 39 | |
| 40 | hlr.subscriber_delete(ms) |
| 41 | print('KI changed: ' + bad_ki + " => " + good_ki) |
| 42 | ms.set_ki(good_ki) |
| 43 | hlr.subscriber_add(ms, ms.msisdn) |
| 44 | print('Attempt connection with correct KI...') |
| 45 | ms.connect(msc.mcc_mnc()) |
| 46 | wait(ms.is_connected, msc.mcc_mnc()) |
| 47 | wait(msc.subscriber_attached, ms) |