blob: 88ecbdb0084e228c2df3c64de2962a03628c756f [file] [log] [blame]
Pau Espin Pedrold7fa0362018-11-21 12:36:53 +01001#!/usr/bin/env python3
2
3# Following test verifies GPRS works fine after MS stays idle (no data
4# sent/received) for a long while.
5# See OS#3678 and OS#2455 for more information.
6
7from osmo_gsm_tester.testenv import *
8
Pau Espin Pedrol40c7bc72020-05-05 13:41:42 +02009hlr = tenv.hlr()
10bts = tenv.bts()
Pau Espin Pedrold7fa0362018-11-21 12:36:53 +010011pcu = bts.pcu()
Pau Espin Pedrol40c7bc72020-05-05 13:41:42 +020012mgw_msc = tenv.mgw()
13mgw_bsc = tenv.mgw()
14stp = tenv.stp()
15ggsn = tenv.ggsn()
16sgsn = tenv.sgsn(hlr, ggsn)
17msc = tenv.msc(hlr, mgw_msc, stp)
18bsc = tenv.bsc(msc, mgw_bsc, stp)
19ms = tenv.modem()
Pau Espin Pedrold7fa0362018-11-21 12:36:53 +010020
21bsc.bts_add(bts)
22sgsn.bts_add(bts)
23
24print('start network...')
25hlr.start()
26stp.start()
27ggsn.start()
28sgsn.start()
29msc.start()
30mgw_msc.start()
31mgw_bsc.start()
32bsc.start()
33
34bts.start()
35wait(bsc.bts_is_connected, bts)
36print('Waiting for bts to be ready...')
37wait(bts.ready_for_pcu)
38pcu.start()
39
40hlr.subscriber_add(ms)
41
42ms.connect(msc.mcc_mnc())
43ms.attach()
44
45ms.log_info()
46
47print('waiting for modems to attach...')
48wait(ms.is_connected, msc.mcc_mnc())
49wait(msc.subscriber_attached, ms)
50
51print('waiting for modems to attach to data services...')
52wait(ms.is_attached)
53
54# We need to use inet46 since ofono qmi only uses ipv4v6 eua (OS#2713)
55ctx_id_v4 = ms.activate_context(apn='inet46', protocol=ms.CTX_PROT_IPv4)
56print("Setting up data plane for %r" % repr(ctx_id_v4))
57ms.setup_context_data_plane(ctx_id_v4)
Pau Espin Pedrol8bf740a2020-04-06 13:35:24 +020058str = "[1] Running 10 ping requests for %r" % repr(ctx_id_v4)
59output = str + '\n'
60print(str)
61proc = ms.run_netns_wait('ping1', ('ping', '-c', '10', ggsn.addr()))
62str = proc.get_stdout()
63output += str
64print(str)
Pau Espin Pedrold7fa0362018-11-21 12:36:53 +010065
Pau Espin Pedrol8bf740a2020-04-06 13:35:24 +020066str = "Sleeping for 60 seconds"
67output += str + '\n'
68print(str)
Pau Espin Pedrold7fa0362018-11-21 12:36:53 +010069sleep(60)
70
Pau Espin Pedrol8bf740a2020-04-06 13:35:24 +020071str = "[2] Running 10 ping requests for %r" % repr(ctx_id_v4)
72output += str + '\n'
73print(str)
74proc = ms.run_netns_wait('ping2', ('ping', '-c', '10', ggsn.addr()))
75str = proc.get_stdout()
76output += str
77print(str)
78
Pau Espin Pedrold7fa0362018-11-21 12:36:53 +010079ms.deactivate_context(ctx_id_v4)
Pau Espin Pedrol8bf740a2020-04-06 13:35:24 +020080
81test.set_report_stdout(output)