aboutsummaryrefslogtreecommitdiffstats
path: root/example
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-04-10 17:49:01 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2020-04-10 19:00:14 +0200
commit99bed8bdb286bac4b7d3d5c2297aea30fd82e709 (patch)
treeaaf1afa87d0466186e02fe442eaf5852d32dd043 /example
parent69a6f668b9cad6a2a9a7f580f577d84a9f18b708 (diff)
Move example/ and ttcn3/ to sysmocom/ and sysmocom/ttcn3
This content is mostly specific to sysmocom's setup (thought it can still be re-used by other people if willing to). symlinks in ttcn3/ pointing to example/ are redone to point to sysmocom/. Change-Id: I364e0859c0851b9167907a4d948b659a0f6a19fb
Diffstat (limited to 'example')
-rw-r--r--example/README.txt30
-rw-r--r--example/default-suites.conf165
-rw-r--r--example/defaults.conf142
-rw-r--r--example/paths.conf3
-rw-r--r--example/resources.conf.prod274
-rw-r--r--example/resources.conf.rnd101
-rw-r--r--example/resources.conf.virtual243
-rw-r--r--example/scenarios/amarisoftenb-rftype@.conf4
-rw-r--r--example/scenarios/amarisoftue-rftype@.conf4
-rw-r--r--example/scenarios/band-1800.conf3
-rw-r--r--example/scenarios/band-1900.conf3
-rw-r--r--example/scenarios/band-900.conf3
-rw-r--r--example/scenarios/cfg-amarisoft-license@.conf3
-rw-r--r--example/scenarios/cfg-codec-fr-any.conf7
-rw-r--r--example/scenarios/cfg-codec-fr1.conf5
-rw-r--r--example/scenarios/cfg-codec-fr2.conf5
-rw-r--r--example/scenarios/cfg-codec-fr3.conf5
-rw-r--r--example/scenarios/cfg-codec-hr1.conf5
-rw-r--r--example/scenarios/cfg-codec-hr3.conf5
-rw-r--r--example/scenarios/cfg-epc-qci@.conf3
-rw-r--r--example/scenarios/cfg-epc-type@.conf3
-rw-r--r--example/scenarios/cfg-iperf3-time@.conf3
-rw-r--r--example/scenarios/cfg-srs-enable-pcap.conf7
-rw-r--r--example/scenarios/cipher-a50.conf7
-rw-r--r--example/scenarios/cipher-a51.conf7
-rw-r--r--example/scenarios/mfeature-gprs.conf4
-rw-r--r--example/scenarios/mod-bts0-chanallocdescend.conf3
-rw-r--r--example/scenarios/mod-bts0-dynts-ipa.conf13
-rw-r--r--example/scenarios/mod-bts0-dynts-osmo.conf13
-rw-r--r--example/scenarios/mod-bts0-dynts67-ipa-compat-nanobts.conf13
-rw-r--r--example/scenarios/mod-bts0-dynts67-ipa.conf13
-rw-r--r--example/scenarios/mod-bts0-dynts67-osmo.conf13
-rw-r--r--example/scenarios/mod-bts0-egprs.conf3
-rw-r--r--example/scenarios/mod-bts0-numtrx2.conf3
-rw-r--r--example/scenarios/mod-bts0-trxdversion0.conf4
-rw-r--r--example/scenarios/mod-bts0-ts-tchf.conf13
-rw-r--r--example/scenarios/mod-bts0-ts-tchh.conf13
-rw-r--r--example/scenarios/mod-enb-args@.conf3
-rw-r--r--example/scenarios/mod-enb-meas-event@.conf7
-rw-r--r--example/scenarios/mod-enb-ncells@.conf3
-rw-r--r--example/scenarios/mod-enb-nprb@.conf3
-rw-r--r--example/scenarios/mod-enb-txmode@.conf3
-rw-r--r--example/scenarios/mod-modem-args@.conf3
-rw-r--r--example/scenarios/mod-srsue-airplane_mode_sim@.conf4
-rw-r--r--example/scenarios/mod-srsue-ncarriers@.conf3
-rw-r--r--example/scenarios/nanobts.conf3
-rw-r--r--example/scenarios/oc2g.conf3
-rw-r--r--example/scenarios/octphy.conf3
-rw-r--r--example/scenarios/srsenb-rftype@.conf4
-rw-r--r--example/scenarios/srsue-rftype@.conf4
-rw-r--r--example/scenarios/sysmo.conf3
-rw-r--r--example/scenarios/trx-b200.conf4
-rw-r--r--example/scenarios/trx-lms-limenet-micro.conf4
-rw-r--r--example/scenarios/trx-lms.conf4
-rw-r--r--example/scenarios/trx-sysmocell5000.conf4
-rw-r--r--example/scenarios/trx-umtrx.conf4
-rw-r--r--example/scenarios/trx.conf3
-rwxr-xr-xexample/suites/4g/iperf3_dl.py49
-rwxr-xr-xexample/suites/4g/iperf3_ul.py49
-rwxr-xr-xexample/suites/4g/ping.py25
-rw-r--r--example/suites/4g/suite.conf12
-rwxr-xr-xexample/suites/debug/interactive.py163
-rw-r--r--example/suites/debug/suite.conf7
-rw-r--r--example/suites/dynts/suite.conf10
-rwxr-xr-xexample/suites/dynts/switch_tch_pdch.py98
-rw-r--r--example/suites/encryption/lib/testlib.py54
-rwxr-xr-xexample/suites/encryption/register_a5_0_authopt.py8
-rwxr-xr-xexample/suites/encryption/register_a5_0_authreq.py8
-rwxr-xr-xexample/suites/encryption/register_a5_1_authreq.py8
-rwxr-xr-xexample/suites/encryption/register_a5_3_authreq.py8
-rw-r--r--example/suites/encryption/suite.conf16
-rwxr-xr-xexample/suites/gprs/cs_paging_gprs_active.py38
-rwxr-xr-xexample/suites/gprs/iperf3.py8
-rwxr-xr-xexample/suites/gprs/iperf3m4.py8
-rw-r--r--example/suites/gprs/lib/testlib.py116
-rwxr-xr-xexample/suites/gprs/ping.py71
-rwxr-xr-xexample/suites/gprs/ping_idle_ping.py81
-rw-r--r--example/suites/gprs/suite.conf13
-rw-r--r--example/suites/nitb_debug/error.py5
-rw-r--r--example/suites/nitb_debug/fail.py5
-rw-r--r--example/suites/nitb_debug/fail_raise.py8
-rwxr-xr-xexample/suites/nitb_debug/interactive.py111
-rw-r--r--example/suites/nitb_debug/pass.py5
-rw-r--r--example/suites/nitb_debug/suite.conf10
-rwxr-xr-xexample/suites/nitb_netreg/register.py22
-rwxr-xr-xexample/suites/nitb_netreg/register_default.py22
-rw-r--r--example/suites/nitb_netreg/suite.conf10
-rw-r--r--example/suites/nitb_netreg_mass/register_default_mass.py53
-rw-r--r--example/suites/nitb_netreg_mass/suite.conf11
-rwxr-xr-xexample/suites/nitb_smpp/esme_connect_policy_acceptall.py32
-rwxr-xr-xexample/suites/nitb_smpp/esme_connect_policy_closed.py51
-rwxr-xr-xexample/suites/nitb_smpp/esme_ms_sms_storeforward.py53
-rwxr-xr-xexample/suites/nitb_smpp/esme_ms_sms_transaction.py49
-rw-r--r--example/suites/nitb_smpp/suite.conf12
-rwxr-xr-xexample/suites/nitb_sms/mo_mt_sms.py30
-rw-r--r--example/suites/nitb_sms/suite.conf12
-rwxr-xr-xexample/suites/nitb_ussd/assert_extension.py37
-rw-r--r--example/suites/nitb_ussd/suite.conf12
-rwxr-xr-xexample/suites/smpp/esme_connect_policy_acceptall.py38
-rwxr-xr-xexample/suites/smpp/esme_connect_policy_closed.py59
-rwxr-xr-xexample/suites/smpp/esme_ms_sms_storeforward.py69
-rwxr-xr-xexample/suites/smpp/esme_ms_sms_transaction.py59
-rw-r--r--example/suites/smpp/suite.conf12
-rwxr-xr-xexample/suites/sms/mo_mt_sms.py41
-rw-r--r--example/suites/sms/suite.conf9
-rwxr-xr-xexample/suites/ussd/assert_extension.py50
-rw-r--r--example/suites/ussd/suite.conf9
-rw-r--r--example/suites/voice/lib/testlib.py68
-rwxr-xr-xexample/suites/voice/mo_mt_call.py8
-rwxr-xr-xexample/suites/voice/mo_mt_call_osmux.py8
-rw-r--r--example/suites/voice/suite.conf9
111 files changed, 0 insertions, 3059 deletions
diff --git a/example/README.txt b/example/README.txt
deleted file mode 100644
index 76567f2..0000000
--- a/example/README.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-This a real gsm test suite configured and ready to use.
-The only thing missing is a trial dir containing binaries.
-
-You can point osmo-gsm-tester.py at this config using the OSMO_GSM_TESTER_CONF
-environment variable:
-
- export OSMO_GSM_TESTER_CONF="$PWD"
-
-When there is no OSMO_GSM_TESTER_CONF set, osmo-gsm-tester will instead look
-for conf files in several locations like ~/.config/osmo-gsm-tester,
-/usr/local/etc/osmo-gsm-tester, /etc/osmo-gsm-tester.
-
-If you have your trial with binary tar archives in ~/my_trial
-you can run the suite for example like this:
-
- osmo-gsm-tester.py ~/my_trial
-
-Specifically, from this dir:
-
- OSMO_GSM_TESTER_CONF="$PWD" ../src/osmo-gsm-tester.py ~/my_trial
-
-Alternatively you can setup this example as permanent config using something
-like:
-
- mkdir -p ~/.config
- ln -s "$PWD" ~/.config/osmo-gsm-tester
-
-A ./state dir will be created to store the current osmo-gsm-tester state. If
-you prefer not to write to $PWD, set up an own configuration pointing at a
-different path (see paths.conf: 'state_dir').
diff --git a/example/default-suites.conf b/example/default-suites.conf
deleted file mode 100644
index 5e46061..0000000
--- a/example/default-suites.conf
+++ /dev/null
@@ -1,165 +0,0 @@
-- nitb_sms:sysmo
-- sms:sysmo
-- nitb_ussd:sysmo
-- ussd:sysmo
-- voice:sysmo+mod-bts0-ts-tchf+cfg-codec-fr1
-- voice:sysmo+mod-bts0-ts-tchf+cfg-codec-fr2
-- voice:sysmo+mod-bts0-ts-tchf+cfg-codec-fr3
-- voice:sysmo+mod-bts0-ts-tchh+cfg-codec-hr1
-- voice:sysmo+mod-bts0-ts-tchh+cfg-codec-hr3
-- voice:sysmo+mod-bts0-dynts-ipa+cfg-codec-fr-any
-- voice:sysmo+mod-bts0-dynts-osmo
-- gprs:sysmo
-- gprs:sysmo+mod-bts0-egprs
-- gprs:sysmo+mod-bts0-dynts-ipa
-- gprs:sysmo+mod-bts0-dynts-osmo
-- dynts:sysmo+mod-bts0-dynts67-ipa+cfg-codec-fr-any
-- dynts:sysmo+mod-bts0-dynts67-osmo
-
-- nitb_sms:oc2g
-- sms:oc2g
-- nitb_ussd:oc2g
-- ussd:oc2g
-- voice:oc2g+mod-bts0-ts-tchf+cfg-codec-fr1
-- voice:oc2g+mod-bts0-ts-tchf+cfg-codec-fr2
-- voice:oc2g+mod-bts0-ts-tchf+cfg-codec-fr3
-- voice:oc2g+mod-bts0-ts-tchh+cfg-codec-hr1
-- voice:oc2g+mod-bts0-ts-tchh+cfg-codec-hr3
-- voice:oc2g+mod-bts0-dynts-ipa+cfg-codec-fr-any
-- voice:oc2g+mod-bts0-dynts-osmo
-- gprs:oc2g
-- gprs:oc2g+mod-bts0-egprs
-- gprs:oc2g+mod-bts0-dynts-ipa
-- gprs:oc2g+mod-bts0-dynts-osmo
-- dynts:oc2g+mod-bts0-dynts67-ipa+cfg-codec-fr-any
-- dynts:oc2g+mod-bts0-dynts67-osmo
-
-- nitb_sms:trx-b200
-- sms:trx-b200
-- nitb_ussd:trx-b200
-- ussd:trx-b200
-- voice:trx-b200+mod-bts0-ts-tchf+cfg-codec-fr1
-- voice:trx-b200+mod-bts0-ts-tchf+cfg-codec-fr2
-- voice:trx-b200+mod-bts0-ts-tchf+cfg-codec-fr3
-- voice:trx-b200+mod-bts0-ts-tchh+cfg-codec-hr1
-- voice:trx-b200+mod-bts0-ts-tchh+cfg-codec-hr3
-- voice:trx-b200+mod-bts0-dynts-ipa+cfg-codec-fr-any
-- voice:trx-b200+mod-bts0-dynts-osmo
-- voice:trx-b200+mod-bts0-trxdversion0
-- voice:trx-b200+mod-bts0-numtrx2+mod-bts0-chanallocdescend
-- gprs:trx-b200
-- gprs:trx-b200+mod-bts0-egprs
-- gprs:trx-b200+mod-bts0-dynts-ipa
-- gprs:trx-b200+mod-bts0-dynts-osmo
-- gprs:trx-b200+mod-bts0-numtrx2+mod-bts0-chanallocdescend
-- dynts:trx-b200+mod-bts0-dynts67-ipa+cfg-codec-fr-any
-- dynts:trx-b200+mod-bts0-dynts67-osmo
-
-- nitb_sms:trx-sysmocell5000
-- sms:trx-sysmocell5000
-- nitb_ussd:trx-sysmocell5000
-- ussd:trx-sysmocell5000
-- voice:trx-sysmocell5000+mod-bts0-ts-tchf+cfg-codec-fr1
-- voice:trx-sysmocell5000+mod-bts0-ts-tchf+cfg-codec-fr2
-- voice:trx-sysmocell5000+mod-bts0-ts-tchf+cfg-codec-fr3
-- voice:trx-sysmocell5000+mod-bts0-ts-tchh+cfg-codec-hr1
-- voice:trx-sysmocell5000+mod-bts0-ts-tchh+cfg-codec-hr3
-- voice:trx-sysmocell5000+mod-bts0-dynts-ipa+cfg-codec-fr-any
-- voice:trx-sysmocell5000+mod-bts0-dynts-osmo
-- gprs:trx-sysmocell5000
-- gprs:trx-sysmocell5000+mod-bts0-egprs
-- gprs:trx-sysmocell5000+mod-bts0-dynts-ipa
-- gprs:trx-sysmocell5000+mod-bts0-dynts-osmo
-- dynts:trx-sysmocell5000+mod-bts0-dynts67-ipa+cfg-codec-fr-any
-- dynts:trx-sysmocell5000+mod-bts0-dynts67-osmo
-
-- nitb_sms:trx-umtrx
-- sms:trx-umtrx
-- nitb_ussd:trx-umtrx
-- ussd:trx-umtrx
-- voice:trx-umtrx+mod-bts0-ts-tchf+cfg-codec-fr1
-- voice:trx-umtrx+mod-bts0-ts-tchf+cfg-codec-fr2
-- voice:trx-umtrx+mod-bts0-ts-tchf+cfg-codec-fr3
-- voice:trx-umtrx+mod-bts0-ts-tchh+cfg-codec-hr1
-- voice:trx-umtrx+mod-bts0-ts-tchh+cfg-codec-hr3
-- voice:trx-umtrx+mod-bts0-dynts-ipa+cfg-codec-fr-any
-- voice:trx-umtrx+mod-bts0-dynts-osmo
-- voice:trx-umtrx+mod-bts0-numtrx2+mod-bts0-chanallocdescend
-- gprs:trx-umtrx
-- gprs:trx-umtrx+mod-bts0-egprs
-- gprs:trx-umtrx+mod-bts0-dynts-ipa
-- gprs:trx-umtrx+mod-bts0-dynts-osmo
-- gprs:trx-umtrx+mod-bts0-numtrx2+mod-bts0-chanallocdescend
-- dynts:trx-umtrx+mod-bts0-dynts67-ipa+cfg-codec-fr-any
-- dynts:trx-umtrx+mod-bts0-dynts67-osmo
-
-- nitb_sms:trx-lms
-- sms:trx-lms
-- nitb_ussd:trx-lms
-- ussd:trx-lms
-- voice:trx-lms+mod-bts0-ts-tchf+cfg-codec-fr1
-- voice:trx-lms+mod-bts0-ts-tchf+cfg-codec-fr2
-- voice:trx-lms+mod-bts0-ts-tchf+cfg-codec-fr3
-- voice:trx-lms+mod-bts0-ts-tchh+cfg-codec-hr1
-- voice:trx-lms+mod-bts0-ts-tchh+cfg-codec-hr3
-- voice:trx-lms+mod-bts0-dynts-ipa+cfg-codec-fr-any
-- voice:trx-lms+mod-bts0-dynts-osmo
-- gprs:trx-lms
-- gprs:trx-lms+mod-bts0-egprs
-- gprs:trx-lms+mod-bts0-dynts-ipa
-- gprs:trx-lms+mod-bts0-dynts-osmo
-- dynts:trx-lms+mod-bts0-dynts67-ipa+cfg-codec-fr-any
-- dynts:trx-lms+mod-bts0-dynts67-osmo
-
-- nitb_sms:trx-lms-limenet-micro
-- sms:trx-lms-limenet-micro
-- nitb_ussd:trx-lms-limenet-micro
-- ussd:trx-lms-limenet-micro
-- voice:trx-lms-limenet-micro+mod-bts0-ts-tchf+cfg-codec-fr1
-- voice:trx-lms-limenet-micro+mod-bts0-ts-tchf+cfg-codec-fr2
-- voice:trx-lms-limenet-micro+mod-bts0-ts-tchf+cfg-codec-fr3
-- voice:trx-lms-limenet-micro+mod-bts0-ts-tchh+cfg-codec-hr1
-- voice:trx-lms-limenet-micro+mod-bts0-ts-tchh+cfg-codec-hr3
-- voice:trx-lms-limenet-micro+mod-bts0-dynts-ipa+cfg-codec-fr-any
-- voice:trx-lms-limenet-micro+mod-bts0-dynts-osmo
-- gprs:trx-lms-limenet-micro
-- gprs:trx-lms-limenet-micro+mod-bts0-egprs
-- gprs:trx-lms-limenet-micro+mod-bts0-dynts-ipa
-- gprs:trx-lms-limenet-micro+mod-bts0-dynts-osmo
-- dynts:trx-lms-limenet-micro+mod-bts0-dynts67-ipa+cfg-codec-fr-any
-- dynts:trx-lms-limenet-micro+mod-bts0-dynts67-osmo
-
-- nitb_sms:nanobts
-- sms:nanobts+band-1900
-- nitb_ussd:nanobts+band-1900
-- ussd:nanobts+band-1900
-- voice:nanobts+band-1900+mod-bts0-ts-tchf+cfg-codec-fr1
-- voice:nanobts+band-1900+mod-bts0-ts-tchf+cfg-codec-fr2
-- voice:nanobts+band-1900+mod-bts0-ts-tchf+cfg-codec-fr3
-- voice:nanobts+band-1900+mod-bts0-ts-tchh+cfg-codec-hr3
-- voice:nanobts+band-1900+mod-bts0-dynts-ipa+cfg-codec-fr-any
-- gprs:nanobts+band-1900
-- gprs:nanobts+band-1900+mod-bts0-egprs
-- gprs:nanobts+band-1900+mod-bts0-dynts-ipa
-- dynts:nanobts+band-1900+mod-bts0-dynts67-ipa-compat-nanobts+cfg-codec-fr-any
-
-- sms:nanobts+band-900
-- nitb_ussd:nanobts+band-900
-- ussd:nanobts+band-900
-- voice:nanobts+band-900+mod-bts0-ts-tchf+cfg-codec-fr1
-- voice:nanobts+band-900+mod-bts0-ts-tchf+cfg-codec-fr2
-- voice:nanobts+band-900+mod-bts0-ts-tchf+cfg-codec-fr3
-- voice:nanobts+band-900+mod-bts0-ts-tchh+cfg-codec-hr3
-- voice:nanobts+band-900+mod-bts0-dynts-ipa+cfg-codec-fr-any
-- voice:nanobts+band-900+mod-bts0-numtrx2+mod-bts0-chanallocdescend
-- gprs:nanobts+band-900
-- gprs:nanobts+band-900+mod-bts0-egprs
-- gprs:nanobts+band-900+mod-bts0-dynts-ipa
-- gprs:nanobts+band-900+mod-bts0-numtrx2+mod-bts0-chanallocdescend
-- dynts:nanobts+band-900+mod-bts0-dynts67-ipa-compat-nanobts+cfg-codec-fr-any
-
-- nitb_smpp
-- smpp
-- encryption
-
-- 4g:srsenb-rftype@zmq+srsue-rftype@zmq
diff --git a/example/defaults.conf b/example/defaults.conf
deleted file mode 100644
index f3994bb..0000000
--- a/example/defaults.conf
+++ /dev/null
@@ -1,142 +0,0 @@
-nitb:
- net:
- mcc: 901
- mnc: 70
- short_name: osmo-gsm-tester-nitb
- long_name: osmo-gsm-tester-nitb
- auth_policy: closed
- encryption: a5_0
-
-bsc:
- net:
- mcc: 901
- mnc: 70
- short_name: osmo-gsm-tester-msc
- long_name: osmo-gsm-tester-msc
- encryption: a5_0
- codec_list:
- - fr1
-
-msc:
- net:
- mcc: 901
- mnc: 70
- short_name: osmo-gsm-tester-msc
- long_name: osmo-gsm-tester-msc
- encryption: a5_0
- authentication: optional
-
-bsc_bts:
- base_station_id_code: 63
- stream_id: 255
- osmobsc_bts_type: sysmobts
- channel_allocator: ascending
- gprs_mode: gprs
- num_trx: 1
- max_trx: 1
- trx_list:
- - nominal_power: 23
- max_power_red: 0
- arfcn: 868
- timeslot_list:
- - phys_chan_config: CCCH+SDCCH4
- - phys_chan_config: SDCCH8
- - phys_chan_config: TCH/F
- - phys_chan_config: TCH/F
- - phys_chan_config: TCH/F
- - phys_chan_config: TCH/F
- - phys_chan_config: PDCH
- - phys_chan_config: PDCH
- - nominal_power: 23
- max_power_red: 0
- arfcn: 872
- timeslot_list:
- - phys_chan_config: TCH/F
- - phys_chan_config: SDCCH8
- - phys_chan_config: TCH/F
- - phys_chan_config: TCH/F
- - phys_chan_config: TCH/F
- - phys_chan_config: TCH/F
- - phys_chan_config: PDCH
- - phys_chan_config: PDCH
-
-osmo_bts_octphy:
- max_trx: 2
-
-nanobts:
- max_trx: 2
- trx_list:
- - {}
- - timeslot_list:
- - {}
- - {}
- - {}
- - {}
- - {}
- - {}
- - phys_chan_config: TCH/F # nanobts only supports PDCH in TRX0.
- - phys_chan_config: TCH/F
-
-osmo_bts_trx:
- max_trx: 2
-
-osmo_trx:
- type: uhd
- launch_trx: true
- clock_reference: internal
-
-osmo_bts_virtual:
- max_trx: 1
-
-osmo_bts_oc2g:
- max_trx: 1
- trx_list:
- - nominal_power: 25
-
-epc:
- type: srsepc
- mcc: 901
- mnc: 70
- qci: 9
-
-srsepc:
- enable_pcap: false
-
-amarisoft:
- license_server_addr: 0.0.0.0
-
-enb:
- mcc: 901
- mnc: 70
- transmission_mode: 1
- num_cells: 1
- enable_measurements: false
- a1_report_type: rsrp
- a1_report_value: -105
- a1_hysteresis: 0
- a1_time_to_trigger: 640
- a2_report_type: rsrp
- a2_report_value: -110
- a2_hysteresis: 0
- a2_time_to_trigger: 640
- a3_report_type: rsrp
- a3_report_value: 6
- a3_hysteresis: 0
- a3_time_to_trigger: 480
-
-srsenb:
- num_prb: 100
- enable_pcap: false
-
-amarisoftenb:
- num_prb: 100
- enable_pcap: false
-
-srsue:
- enable_pcap: false
- airplane_t_on_ms: -1
- airplane_t_off_ms: -1
- num_carriers: 1
-
-iperf3cli:
- time: 60
diff --git a/example/paths.conf b/example/paths.conf
deleted file mode 100644
index 27c5818..0000000
--- a/example/paths.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-state_dir: '/var/tmp/osmo-gsm-tester/state'
-suites_dir: './suites'
-scenarios_dir: './scenarios'
diff --git a/example/resources.conf.prod b/example/resources.conf.prod
deleted file mode 100644
index c66cafa..0000000
--- a/example/resources.conf.prod
+++ /dev/null
@@ -1,274 +0,0 @@
-# all hardware and interfaces available to this osmo-gsm-tester
-
-ip_address:
-- addr: 10.42.42.2
-- addr: 10.42.42.3
-- addr: 10.42.42.4
-- addr: 10.42.42.5
-- addr: 10.42.42.6
-- addr: 10.42.42.7
-- addr: 10.42.42.8
-- addr: 10.42.42.9
-- addr: 10.42.42.10
-
-run_node:
-- run_type: ssh
- run_addr: 10.42.42.118
- ssh_user: jenkins
- ssh_addr: 10.42.42.116
-
-bts:
-- label: sysmoBTS 1002
- type: osmo-bts-sysmo
- ipa_unit_id: 1
- addr: 10.42.42.114
- band: GSM-1800
- direct_pcu: true
- ciphers: [a5_0, a5_1, a5_3]
-
-- label: Ettus B200
- type: osmo-bts-trx
- ipa_unit_id: 6
- addr: 10.42.42.50
- band: GSM-1800
- ciphers: [a5_0, a5_1, a5_3]
- osmo_trx:
- type: uhd
- launch_trx: true
- remote_user: jenkins
- trx_ip: 10.42.42.116
- dev_args: "type=b200,serial=306BD11"
- clock_reference: external
- multi_arfcn: true
-
-- label: UmTRX
- type: osmo-bts-trx
- ipa_unit_id: 12
- addr: 10.42.42.54
- band: GSM-1800
- ciphers: [a5_0, a5_1, a5_3]
- osmo_trx:
- type: uhd
- launch_trx: true
- remote_user: jenkins
- trx_ip: 10.42.42.118
- dev_args: "addr=10.42.42.130,pa=NONE,pa_power_max_dbm=23,fifo_ctrl_window=0,status_port=12345"
- clock_reference: internal
-
-- label: LimeSDR-USB
- type: osmo-bts-trx
- ipa_unit_id: 11
- addr: 10.42.42.53
- band: GSM-1800
- ciphers: [a5_0, a5_1, a5_3]
- osmo_trx:
- type: lms
- launch_trx: true
- remote_user: jenkins
- trx_ip: 10.42.42.117
- clock_reference: external
- dev_args: "LimeSDR-USB,serial=00090706024F0A22"
- channels:
- - rx_path: "LNAW"
-
-- label: LimeNET-Micro
- type: osmo-bts-trx
- ipa_unit_id: 15
- addr: 10.42.42.53
- band: GSM-1800
- ciphers: [a5_0, a5_1]
- osmo_trx:
- type: lms
- launch_trx: true
- remote_user: pi
- trx_ip: 10.42.42.123
- clock_reference: external
- dev_args: "LimeNET-Micro,serial=005839AF25B352"
-
-- label: sysmoCell 5000
- type: osmo-bts-trx
- ipa_unit_id: 7
- addr: 10.42.42.51
- band: GSM-1800
- ciphers: [a5_0, a5_1, a5_3]
- trx_list:
- - power_supply:
- type: 'intellinet'
- device: '10.42.42.250'
- port: '5'
- osmo_trx:
- type: sc5
- launch_trx: true
- remote_user: root
- clock_reference: external
- trx_ip: 10.42.42.112
-
-- label: OCTBTS 3500
- type: osmo-bts-octphy
- ipa_unit_id: 8
- addr: 10.42.42.52
- band: GSM-1800
- trx_list:
- - hw_addr: 00:0c:90:2e:80:1e
- net_device: enp2s0
-
-- label: NanoBTS-ONW-1900
- type: nanobts
- ipa_unit_id: 9
- band: GSM-1900
- trx_list:
- - addr: 10.42.42.120
- power_supply:
- type: 'intellinet'
- device: '10.42.42.250'
- port: '1'
-
-- label: NanoBTS-ONW-900
- type: nanobts
- ipa_unit_id: 10
- band: GSM-900
- num_trx: 1
- trx_list:
- - addr: 10.42.42.121
- power_supply:
- type: 'intellinet'
- device: '10.42.42.250'
- port: '2'
- - addr: 10.42.42.122
- power_supply:
- type: 'intellinet'
- device: '10.42.42.250'
- port: '3'
-
-- label: OsmoBTS Virtual
- type: osmo-bts-virtual
- ipa_unit_id: 13
- addr: 10.42.42.55
- band: GSM-1800
-
-- label: OC-2G
- type: osmo-bts-oc2g
- ipa_unit_id: 14
- addr: 10.42.42.100
- band: GSM-900
- direct_pcu: true
- ciphers: [a5_0, a5_1, a5_3]
-
-enb:
-- label: srsENB-zmq
- type: srsenb
- rf_dev_type: zmq
- rf_dev_args: auto
- remote_user: jenkins
- addr: 10.42.42.117
-
-- label: srsENB-B200
- type: srsenb
- rf_dev_type: uhd
- rf_dev_args: "type=b200,serial=306BD11"
- remote_user: jenkins
- addr: 10.42.42.117
-
-arfcn:
- - arfcn: 512
- band: GSM-1800
- - arfcn: 514
- band: GSM-1800
- - arfcn: 516
- band: GSM-1800
- - arfcn: 518
- band: GSM-1800
- - arfcn: 520
- band: GSM-1800
- - arfcn: 540
- band: GSM-1900
- - arfcn: 542
- band: GSM-1900
- - arfcn: 544
- band: GSM-1900
- - arfcn: 546
- band: GSM-1900
- - arfcn: 548
- band: GSM-1900
-
-modem:
-- label: sierra_1st
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.4/1-5.4.1/1-5.4.1.2'
- ki: 'EBAB63D06C3F546A16C977CB40E57C68'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'sim']
-
-- label: sierra_2nd
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.4/1-5.4.1/1-5.4.1.3'
- ki: 'EBD2B5F6CF3374106D0A66C11F922001'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'sim']
-
-- label: gobi2k
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.4/1-5.4.1/1-5.4.1.5'
- ki: '5752B3F43277C35D2D1D957007DF74E2'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sim']
-
-- label: ec20_1
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.4/1-5.4.1/1-5.4.1.6'
- ki: '07F35D0A9476646169669401215580E0'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim']
-
-- label: ec20_2
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.2'
- ki: '278B899D126C31F3B24D21E3EB556530'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim']
-
-- label: ec20_3
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.3'
- ki: 'B43BBCD8DE4D594F4146DE3D8ADC589D'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim']
-
-- label: ec20_4
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.5'
- ki: 'A41F06F39DE3B0295C178A674D3E3636'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim']
-
-- label: ec20_5
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.6'
- ki: '8CCBE85A62C6DC7AC2A9886F4BBC3146'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim']
-
-- label: srsUE-zmq_1
- type: srsue
- rf_dev_type: zmq
- rf_dev_args: auto
- remote_user: jenkins
- addr: 10.42.42.116
- imsi: '001010123456789'
- ki: '00112233445566778899aabbccddeeff'
- auth_algo: 'xor'
- features: ['4g']
-
-- label: srsUE-soapy-lms_1
- type: srsue
- rf_dev_type: soapy
- rf_dev_args: driver=lime,serial=00090706024F0A22,rxant=LNAW,txant=BAND1
- remote_user: jenkins
- addr: 10.42.42.116
- imsi: '001010123456789'
- ki: '00112233445566778899aabbccddeeff'
- auth_algo: 'xor'
- features: ['4g']
-
-osmocon_phone:
- - serial_device: '/dev/serial/by-id/usb-Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_00897B41-if00-port0'
diff --git a/example/resources.conf.rnd b/example/resources.conf.rnd
deleted file mode 100644
index 4ce39d1..0000000
--- a/example/resources.conf.rnd
+++ /dev/null
@@ -1,101 +0,0 @@
-# all hardware and interfaces available to this osmo-gsm-tester
-
-ip_address:
-- addr: 10.42.42.2
-- addr: 10.42.42.3
-- addr: 10.42.42.4
-- addr: 10.42.42.5
-- addr: 10.42.42.6
-- addr: 10.42.42.7
-- addr: 10.42.42.8
-- addr: 10.42.42.9
-- addr: 10.42.42.10
-
-bts:
-- label: sysmoBTS 1002
- type: osmo-bts-sysmo
- ipa_unit_id: 1
- addr: 10.42.42.114
- band: GSM-1800
- direct_pcu: true
- ciphers: [a5_0, a5_1, a5_3]
-
-- label: Ettus B200
- type: osmo-bts-trx
- ipa_unit_id: 6
- addr: 10.42.42.50
- band: GSM-1800
- osmo_trx:
- type: uhd
- launch_trx: true
- clock_reference: external
- multi_arfcn: true
- remote_user: jenkins
- trx_ip: 127.0.0.1
- dev_args: "type=b200,serial=30A9FFB"
- ciphers: [a5_0, a5_1, a5_3]
-
-- label: NanoBTS-ONW-1900
- type: nanobts
- ipa_unit_id: 9
- band: GSM-1900
- trx_list:
- - addr: 10.42.42.120
- power_supply:
- type: 'sispm'
- device: '01:01:55:2e:b6'
- port: '1'
-
-arfcn:
- - arfcn: 512
- band: GSM-1800
- - arfcn: 514
- band: GSM-1800
- - arfcn: 516
- band: GSM-1800
- - arfcn: 518
- band: GSM-1800
- - arfcn: 520
- band: GSM-1800
- - arfcn: 540
- band: GSM-1900
- - arfcn: 542
- band: GSM-1900
- - arfcn: 544
- band: GSM-1900
- - arfcn: 546
- band: GSM-1900
- - arfcn: 548
- band: GSM-1900
-
-modem:
-- label: sierra_1st
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1.2'
- ki: '80A37E6FDEA931EAC92FFA5F671EFEAD'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'sim']
-
-- label: sierra_2nd
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1.3'
- ki: '00969E283349D354A8239E877F2E0866'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'sim']
-
-- label: ec20_1
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1.6'
- ki: 'BB70807226393CDBAC8DD3439FF54252'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim']
-
-- label: ec20_2
- path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1.5'
- ki: '2F70DCA43C45ACB97E947FDD0C7CA30A'
- auth_algo: 'comp128v1'
- ciphers: [a5_0, a5_1]
- features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim']
-
-osmocon_phone:
-- serial_device: '/dev/serial/by-id/usb-Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_0089279D-if00-port0'
diff --git a/example/resources.conf.virtual b/example/resources.conf.virtual
deleted file mode 100644
index 7711c58..0000000
--- a/example/resources.conf.virtual
+++ /dev/null
@@ -1,243 +0,0 @@
-# Resources for a "virtual" run.
-
-ip_address:
-- addr: 127.0.42.2
-- addr: 127.0.42.3
-- addr: 127.0.42.4
-- addr: 127.0.42.5
-- addr: 127.0.42.6
-- addr: 127.0.42.7
-- addr: 127.0.42.8
-- addr: 127.0.42.9
-- addr: 127.0.42.10
-
-bts:
-- label: OsmoBTS Virtual
- type: osmo-bts-virtual
- ipa_unit_id: 13
- addr: 127.0.43.55
- band: GSM-1800
-
-arfcn:
- - arfcn: 512
- band: GSM-1800
- - arfcn: 514
- band: GSM-1800
- - arfcn: 516
- band: GSM-1800
- - arfcn: 518
- band: GSM-1800
- - arfcn: 520
- band: GSM-1800
- - arfcn: 540
- band: GSM-1900
- - arfcn: 542
- band: GSM-1900
- - arfcn: 544
- band: GSM-1900
- - arfcn: 546
- band: GSM-1900
- - arfcn: 548
- band: GSM-1900
-
-modem:
- - imsi: "001010000000000"
- type: osmo-mobile
- - imsi: "001010000000001"
- type: osmo-mobile
- - imsi: "001010000000002"
- type: osmo-mobile
- - imsi: "001010000000003"
- type: osmo-mobile
- - imsi: "001010000000004"
- type: osmo-mobile
- - imsi: "001010000000005"
- type: osmo-mobile
- - imsi: "001010000000006"
- type: osmo-mobile
- - imsi: "001010000000007"
- type: osmo-mobile
- - imsi: "001010000000008"
- type: osmo-mobile
- - imsi: "001010000000009"
- type: osmo-mobile
- - imsi: "001020000000000"
- type: osmo-mobile
- - imsi: "001020000000001"
- type: osmo-mobile
- - imsi: "001020000000002"
- type: osmo-mobile
- - imsi: "001020000000003"
- type: osmo-mobile
- - imsi: "001020000000004"
- type: osmo-mobile
- - imsi: "001020000000005"
- type: osmo-mobile
- - imsi: "001020000000006"
- type: osmo-mobile
- - imsi: "001020000000007"
- type: osmo-mobile
- - imsi: "001020000000008"
- type: osmo-mobile
- - imsi: "001020000000009"
- type: osmo-mobile
- - imsi: "001030000000000"
- type: osmo-mobile
- - imsi: "001030000000001"
- type: osmo-mobile
- - imsi: "001030000000002"
- type: osmo-mobile
- - imsi: "001030000000003"
- type: osmo-mobile
- - imsi: "001030000000004"
- type: osmo-mobile
- - imsi: "001030000000005"
- type: osmo-mobile
- - imsi: "001030000000006"
- type: osmo-mobile
- - imsi: "001030000000007"
- type: osmo-mobile
- - imsi: "001030000000008"
- type: osmo-mobile
- - imsi: "001030000000009"
- type: osmo-mobile
- - imsi: "001040000000000"
- type: osmo-mobile
- - imsi: "001040000000001"
- type: osmo-mobile
- - imsi: "001040000000002"
- type: osmo-mobile
- - imsi: "001040000000003"
- type: osmo-mobile
- - imsi: "001040000000004"
- type: osmo-mobile
- - imsi: "001040000000005"
- type: osmo-mobile
- - imsi: "001040000000006"
- type: osmo-mobile
- - imsi: "001040000000007"
- type: osmo-mobile
- - imsi: "001040000000008"
- type: osmo-mobile
- - imsi: "001040000000009"
- type: osmo-mobile
- - imsi: "001050000000000"
- type: osmo-mobile
- - imsi: "001050000000001"
- type: osmo-mobile
- - imsi: "001050000000002"
- type: osmo-mobile
- - imsi: "001050000000003"
- type: osmo-mobile
- - imsi: "001050000000004"
- type: osmo-mobile
- - imsi: "001050000000005"
- type: osmo-mobile
- - imsi: "001050000000006"
- type: osmo-mobile
- - imsi: "001050000000007"
- type: osmo-mobile
- - imsi: "001050000000008"
- type: osmo-mobile
- - imsi: "001050000000009"
- type: osmo-mobile
- - imsi: "001060000000000"
- type: osmo-mobile
- - imsi: "001060000000001"
- type: osmo-mobile
- - imsi: "001060000000002"
- type: osmo-mobile
- - imsi: "001060000000003"
- type: osmo-mobile
- - imsi: "001060000000004"
- type: osmo-mobile
- - imsi: "001060000000005"
- type: osmo-mobile
- - imsi: "001060000000006"
- type: osmo-mobile
- - imsi: "001060000000007"
- type: osmo-mobile
- - imsi: "001060000000008"
- type: osmo-mobile
- - imsi: "001060000000009"
- type: osmo-mobile
- - imsi: "001070000000000"
- type: osmo-mobile
- - imsi: "001070000000001"
- type: osmo-mobile
- - imsi: "001070000000002"
- type: osmo-mobile
- - imsi: "001070000000003"
- type: osmo-mobile
- - imsi: "001070000000004"
- type: osmo-mobile
- - imsi: "001070000000005"
- type: osmo-mobile
- - imsi: "001070000000006"
- type: osmo-mobile
- - imsi: "001070000000007"
- type: osmo-mobile
- - imsi: "001070000000008"
- type: osmo-mobile
- - imsi: "001070000000009"
- type: osmo-mobile
- - imsi: "001080000000000"
- type: osmo-mobile
- - imsi: "001080000000001"
- type: osmo-mobile
- - imsi: "001080000000002"
- type: osmo-mobile
- - imsi: "001080000000003"
- type: osmo-mobile
- - imsi: "001080000000004"
- type: osmo-mobile
- - imsi: "001080000000005"
- type: osmo-mobile
- - imsi: "001080000000006"
- type: osmo-mobile
- - imsi: "001080000000007"
- type: osmo-mobile
- - imsi: "001080000000008"
- type: osmo-mobile
- - imsi: "001080000000009"
- type: osmo-mobile
- - imsi: "001090000000000"
- type: osmo-mobile
- - imsi: "001090000000001"
- type: osmo-mobile
- - imsi: "001090000000002"
- type: osmo-mobile
- - imsi: "001090000000003"
- type: osmo-mobile
- - imsi: "001090000000004"
- type: osmo-mobile
- - imsi: "001090000000005"
- type: osmo-mobile
- - imsi: "001090000000006"
- type: osmo-mobile
- - imsi: "001090000000007"
- type: osmo-mobile
- - imsi: "001090000000008"
- type: osmo-mobile
- - imsi: "001090000000009"
- type: osmo-mobile
- - imsi: "001100000000000"
- type: osmo-mobile
- - imsi: "001100000000001"
- type: osmo-mobile
- - imsi: "001100000000002"
- type: osmo-mobile
- - imsi: "001100000000003"
- type: osmo-mobile
- - imsi: "001100000000004"
- type: osmo-mobile
- - imsi: "001100000000005"
- type: osmo-mobile
- - imsi: "001100000000006"
- type: osmo-mobile
- - imsi: "001100000000007"
- type: osmo-mobile
- - imsi: "001100000000008"
- type: osmo-mobile
- - imsi: "001100000000009"
- type: osmo-mobile
diff --git a/example/scenarios/amarisoftenb-rftype@.conf b/example/scenarios/amarisoftenb-rftype@.conf
deleted file mode 100644
index 137458a..0000000
--- a/example/scenarios/amarisoftenb-rftype@.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
- enb:
- - type: amarisoftenb
- rf_dev_type: ${param1}
diff --git a/example/scenarios/amarisoftue-rftype@.conf b/example/scenarios/amarisoftue-rftype@.conf
deleted file mode 100644
index 5bf4cfe..0000000
--- a/example/scenarios/amarisoftue-rftype@.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
- modem:
- - type: amarisoftue
- rf_dev_type: ${param1}
diff --git a/example/scenarios/band-1800.conf b/example/scenarios/band-1800.conf
deleted file mode 100644
index b12c4c0..0000000
--- a/example/scenarios/band-1800.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-resources:
- bts:
- - band: GSM-1800
diff --git a/example/scenarios/band-1900.conf b/example/scenarios/band-1900.conf
deleted file mode 100644
index ef648ef..0000000
--- a/example/scenarios/band-1900.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-resources:
- bts:
- - band: GSM-1900
diff --git a/example/scenarios/band-900.conf b/example/scenarios/band-900.conf
deleted file mode 100644
index a5f8980..0000000
--- a/example/scenarios/band-900.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-resources:
- bts:
- - band: GSM-900
diff --git a/example/scenarios/cfg-amarisoft-license@.conf b/example/scenarios/cfg-amarisoft-license@.conf
deleted file mode 100644
index 3e4813b..0000000
--- a/example/scenarios/cfg-amarisoft-license@.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-config:
- amarisoft:
- license_server_addr: ${param1}
diff --git a/example/scenarios/cfg-codec-fr-any.conf b/example/scenarios/cfg-codec-fr-any.conf
deleted file mode 100644
index 9cab6cc..0000000
--- a/example/scenarios/cfg-codec-fr-any.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-config:
- bsc:
- net:
- codec_list:
- - fr1
- - fr2
- - fr3
diff --git a/example/scenarios/cfg-codec-fr1.conf b/example/scenarios/cfg-codec-fr1.conf
deleted file mode 100644
index f58a82d..0000000
--- a/example/scenarios/cfg-codec-fr1.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-config:
- bsc:
- net:
- codec_list:
- - fr1
diff --git a/example/scenarios/cfg-codec-fr2.conf b/example/scenarios/cfg-codec-fr2.conf
deleted file mode 100644
index 1ad63de..0000000
--- a/example/scenarios/cfg-codec-fr2.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-config:
- bsc:
- net:
- codec_list:
- - fr2
diff --git a/example/scenarios/cfg-codec-fr3.conf b/example/scenarios/cfg-codec-fr3.conf
deleted file mode 100644
index fcc47cc..0000000
--- a/example/scenarios/cfg-codec-fr3.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-config:
- bsc:
- net:
- codec_list:
- - fr3
diff --git a/example/scenarios/cfg-codec-hr1.conf b/example/scenarios/cfg-codec-hr1.conf
deleted file mode 100644
index 50a092c..0000000
--- a/example/scenarios/cfg-codec-hr1.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-config:
- bsc:
- net:
- codec_list:
- - hr1
diff --git a/example/scenarios/cfg-codec-hr3.conf b/example/scenarios/cfg-codec-hr3.conf
deleted file mode 100644
index c54b924..0000000
--- a/example/scenarios/cfg-codec-hr3.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-config:
- bsc:
- net:
- codec_list:
- - hr3
diff --git a/example/scenarios/cfg-epc-qci@.conf b/example/scenarios/cfg-epc-qci@.conf
deleted file mode 100644
index 8f9c937..0000000
--- a/example/scenarios/cfg-epc-qci@.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-config:
- epc:
- qci: ${param1}
diff --git a/example/scenarios/cfg-epc-type@.conf b/example/scenarios/cfg-epc-type@.conf
deleted file mode 100644
index 89b7fba..0000000
--- a/example/scenarios/cfg-epc-type@.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-config:
- epc:
- type: ${param1}
diff --git a/example/scenarios/cfg-iperf3-time@.conf b/example/scenarios/cfg-iperf3-time@.conf
deleted file mode 100644
index f46c59a..0000000
--- a/example/scenarios/cfg-iperf3-time@.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-config:
- iperf3cli:
- time: ${param1}
diff --git a/example/scenarios/cfg-srs-enable-pcap.conf b/example/scenarios/cfg-srs-enable-pcap.conf
deleted file mode 100644
index 6927b80..0000000
--- a/example/scenarios/cfg-srs-enable-pcap.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-config:
- epc:
- enable_pcap: true
- enb:
- enable_pcap: true
- modem:
- enable_pcap: true
diff --git a/example/scenarios/cipher-a50.conf b/example/scenarios/cipher-a50.conf
deleted file mode 100644
index 107172b..0000000
--- a/example/scenarios/cipher-a50.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-resources:
- bts:
- - ciphers:
- - a5_0
- modem:
- - ciphers:
- - a5_0
diff --git a/example/scenarios/cipher-a51.conf b/example/scenarios/cipher-a51.conf
deleted file mode 100644
index 8539867..0000000
--- a/example/scenarios/cipher-a51.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-resources:
- bts:
- - ciphers:
- - a5_1
- modem:
- - ciphers:
- - a5_1
diff --git a/example/scenarios/mfeature-gprs.conf b/example/scenarios/mfeature-gprs.conf
deleted file mode 100644
index c520a90..0000000
--- a/example/scenarios/mfeature-gprs.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
- modem:
- - features:
- - 'gprs'
diff --git a/example/scenarios/mod-bts0-chanallocdescend.conf b/example/scenarios/mod-bts0-chanallocdescend.conf
deleted file mode 100644
index 78cd02c..0000000
--- a/example/scenarios/mod-bts0-chanallocdescend.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-modifiers:
- bts:
- - channel_allocator: descending
diff --git a/example/scenarios/mod-bts0-dynts-ipa.conf b/example/scenarios/mod-bts0-dynts-ipa.conf
deleted file mode 100644
index fcad2c7..0000000
--- a/example/scenarios/mod-bts0-dynts-ipa.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-modifiers:
- bts:
- - num_trx: 1
- trx_list:
- - timeslot_list:
- - phys_chan_config: 'CCCH+SDCCH4'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'TCH/F_PDCH'
- - phys_chan_config: 'TCH/F_PDCH'
- - phys_chan_config: 'TCH/F_PDCH'
- - phys_chan_config: 'TCH/F_PDCH'
- - phys_chan_config: 'TCH/F_PDCH'
- - phys_chan_config: 'TCH/F_PDCH'
diff --git a/example/scenarios/mod-bts0-dynts-osmo.conf b/example/scenarios/mod-bts0-dynts-osmo.conf
deleted file mode 100644
index 26345bd..0000000
--- a/example/scenarios/mod-bts0-dynts-osmo.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-modifiers:
- bts:
- - num_trx: 1
- trx_list:
- - timeslot_list:
- - phys_chan_config: 'CCCH+SDCCH4'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'TCH/F_TCH/H_PDCH'
- - phys_chan_config: 'TCH/F_TCH/H_PDCH'
- - phys_chan_config: 'TCH/F_TCH/H_PDCH'
- - phys_chan_config: 'TCH/F_TCH/H_PDCH'
- - phys_chan_config: 'TCH/F_TCH/H_PDCH'
- - phys_chan_config: 'TCH/F_TCH/H_PDCH'
diff --git a/example/scenarios/mod-bts0-dynts67-ipa-compat-nanobts.conf b/example/scenarios/mod-bts0-dynts67-ipa-compat-nanobts.conf
deleted file mode 100644
index 1eed05c..0000000
--- a/example/scenarios/mod-bts0-dynts67-ipa-compat-nanobts.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-modifiers:
- bts:
- - num_trx: 1
- trx_list:
- - timeslot_list:
- - phys_chan_config: 'CCCH+SDCCH4'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'TCH/H'
- - phys_chan_config: 'TCH/H'
- - phys_chan_config: 'TCH/H'
- - phys_chan_config: 'TCH/H'
- - phys_chan_config: 'TCH/F_PDCH'
- - phys_chan_config: 'TCH/F_PDCH'
diff --git a/example/scenarios/mod-bts0-dynts67-ipa.conf b/example/scenarios/mod-bts0-dynts67-ipa.conf
deleted file mode 100644
index 087b3b0..0000000
--- a/example/scenarios/mod-bts0-dynts67-ipa.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-modifiers:
- bts:
- - num_trx: 1
- trx_list:
- - timeslot_list:
- - phys_chan_config: 'CCCH+SDCCH4'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'TCH/F_PDCH'
- - phys_chan_config: 'TCH/F_PDCH'
diff --git a/example/scenarios/mod-bts0-dynts67-osmo.conf b/example/scenarios/mod-bts0-dynts67-osmo.conf
deleted file mode 100644
index 3153120..0000000
--- a/example/scenarios/mod-bts0-dynts67-osmo.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-modifiers:
- bts:
- - num_trx: 1
- trx_list:
- - timeslot_list:
- - phys_chan_config: 'CCCH+SDCCH4'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'TCH/F_TCH/H_PDCH'
- - phys_chan_config: 'TCH/F_TCH/H_PDCH'
diff --git a/example/scenarios/mod-bts0-egprs.conf b/example/scenarios/mod-bts0-egprs.conf
deleted file mode 100644
index 542dd9d..0000000
--- a/example/scenarios/mod-bts0-egprs.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-modifiers:
- bts:
- - gprs_mode: egprs
diff --git a/example/scenarios/mod-bts0-numtrx2.conf b/example/scenarios/mod-bts0-numtrx2.conf
deleted file mode 100644
index eb24fd3..0000000
--- a/example/scenarios/mod-bts0-numtrx2.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-modifiers:
- bts:
- - num_trx: 2
diff --git a/example/scenarios/mod-bts0-trxdversion0.conf b/example/scenarios/mod-bts0-trxdversion0.conf
deleted file mode 100644
index 67e5653..0000000
--- a/example/scenarios/mod-bts0-trxdversion0.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-modifiers:
- bts:
- - osmo_trx:
- max_trxd_version: 0
diff --git a/example/scenarios/mod-bts0-ts-tchf.conf b/example/scenarios/mod-bts0-ts-tchf.conf
deleted file mode 100644
index 527b620..0000000
--- a/example/scenarios/mod-bts0-ts-tchf.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-modifiers:
- bts:
- - num_trx: 1
- trx_list:
- - timeslot_list:
- - phys_chan_config: 'CCCH+SDCCH4'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'TCH/F'
- - phys_chan_config: 'TCH/F'
- - phys_chan_config: 'TCH/F'
- - phys_chan_config: 'TCH/F'
- - phys_chan_config: 'TCH/F'
- - phys_chan_config: 'TCH/F'
diff --git a/example/scenarios/mod-bts0-ts-tchh.conf b/example/scenarios/mod-bts0-ts-tchh.conf
deleted file mode 100644
index 0709bc4..0000000
--- a/example/scenarios/mod-bts0-ts-tchh.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-modifiers:
- bts:
- - num_trx: 1
- trx_list:
- - timeslot_list:
- - phys_chan_config: 'CCCH+SDCCH4'
- - phys_chan_config: 'SDCCH8'
- - phys_chan_config: 'TCH/H'
- - phys_chan_config: 'TCH/H'
- - phys_chan_config: 'TCH/H'
- - phys_chan_config: 'TCH/H'
- - phys_chan_config: 'TCH/H'
- - phys_chan_config: 'TCH/H'
diff --git a/example/scenarios/mod-enb-args@.conf b/example/scenarios/mod-enb-args@.conf
deleted file mode 100644
index a758d01..0000000
--- a/example/scenarios/mod-enb-args@.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-modifiers:
- enb:
- - additional_args: ${param1}
diff --git a/example/scenarios/mod-enb-meas-event@.conf b/example/scenarios/mod-enb-meas-event@.conf
deleted file mode 100644
index 44f4fcd..0000000
--- a/example/scenarios/mod-enb-meas-event@.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-modifiers:
- enb:
- - enable_measurements: true
- ${param1}_report_type: ${param2}
- ${param1}_report_value: ${param3}
- ${param1}_hysteresis: ${param4}
- ${param1}_time_to_trigger: ${param5}
diff --git a/example/scenarios/mod-enb-ncells@.conf b/example/scenarios/mod-enb-ncells@.conf
deleted file mode 100644
index b57b94a..0000000
--- a/example/scenarios/mod-enb-ncells@.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-modifiers:
- enb:
- - num_cells: ${param1}
diff --git a/example/scenarios/mod-enb-nprb@.conf b/example/scenarios/mod-enb-nprb@.conf
deleted file mode 100644
index f17347c..0000000
--- a/example/scenarios/mod-enb-nprb@.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-modifiers:
- enb:
- - num_prb: ${param1}
diff --git a/example/scenarios/mod-enb-txmode@.conf b/example/scenarios/mod-enb-txmode@.conf
deleted file mode 100644
index e0c8d01..0000000
--- a/example/scenarios/mod-enb-txmode@.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-modifiers:
- enb:
- - transmission_mode: ${param1}
diff --git a/example/scenarios/mod-modem-args@.conf b/example/scenarios/mod-modem-args@.conf
deleted file mode 100644
index dde7796..0000000
--- a/example/scenarios/mod-modem-args@.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-modifiers:
- modem:
- - additional_args: ${param1}
diff --git a/example/scenarios/mod-srsue-airplane_mode_sim@.conf b/example/scenarios/mod-srsue-airplane_mode_sim@.conf
deleted file mode 100644
index c05fba1..0000000
--- a/example/scenarios/mod-srsue-airplane_mode_sim@.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-modifiers:
- modem:
- - airplane_t_on_ms: ${param1}
- airplane_t_off_ms: ${param2}
diff --git a/example/scenarios/mod-srsue-ncarriers@.conf b/example/scenarios/mod-srsue-ncarriers@.conf
deleted file mode 100644
index bb6409a..0000000
--- a/example/scenarios/mod-srsue-ncarriers@.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-modifiers:
- modem:
- - num_carriers: ${param1}
diff --git a/example/scenarios/nanobts.conf b/example/scenarios/nanobts.conf
deleted file mode 100644
index 7322288..0000000
--- a/example/scenarios/nanobts.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-resources:
- bts:
- - type: nanobts
diff --git a/example/scenarios/oc2g.conf b/example/scenarios/oc2g.conf
deleted file mode 100644
index 884e46b..0000000
--- a/example/scenarios/oc2g.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-resources:
- bts:
- - type: osmo-bts-oc2g
diff --git a/example/scenarios/octphy.conf b/example/scenarios/octphy.conf
deleted file mode 100644
index 3a419e8..0000000
--- a/example/scenarios/octphy.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-resources:
- bts:
- - type: osmo-bts-octphy
diff --git a/example/scenarios/srsenb-rftype@.conf b/example/scenarios/srsenb-rftype@.conf
deleted file mode 100644
index bf64b19..0000000
--- a/example/scenarios/srsenb-rftype@.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
- enb:
- - type: srsenb
- rf_dev_type: ${param1}
diff --git a/example/scenarios/srsue-rftype@.conf b/example/scenarios/srsue-rftype@.conf
deleted file mode 100644
index 85a0609..0000000
--- a/example/scenarios/srsue-rftype@.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
- modem:
- - type: srsue
- rf_dev_type: ${param1}
diff --git a/example/scenarios/sysmo.conf b/example/scenarios/sysmo.conf
deleted file mode 100644
index 624758b..0000000
--- a/example/scenarios/sysmo.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-resources:
- bts:
- - type: osmo-bts-sysmo
diff --git a/example/scenarios/trx-b200.conf b/example/scenarios/trx-b200.conf
deleted file mode 100644
index 2bad7e8..0000000
--- a/example/scenarios/trx-b200.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
- bts:
- - label: Ettus B200
- type: osmo-bts-trx
diff --git a/example/scenarios/trx-lms-limenet-micro.conf b/example/scenarios/trx-lms-limenet-micro.conf
deleted file mode 100644
index 2e2c1cc..0000000
--- a/example/scenarios/trx-lms-limenet-micro.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
- bts:
- - label: LimeNET-Micro
- type: osmo-bts-trx
diff --git a/example/scenarios/trx-lms.conf b/example/scenarios/trx-lms.conf
deleted file mode 100644
index 15802db..0000000
--- a/example/scenarios/trx-lms.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
- bts:
- - label: LimeSDR-USB
- type: osmo-bts-trx
diff --git a/example/scenarios/trx-sysmocell5000.conf b/example/scenarios/trx-sysmocell5000.conf
deleted file mode 100644
index 62e9a3c..0000000
--- a/example/scenarios/trx-sysmocell5000.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
- bts:
- - label: sysmoCell 5000
- type: osmo-bts-trx
diff --git a/example/scenarios/trx-umtrx.conf b/example/scenarios/trx-umtrx.conf
deleted file mode 100644
index c13fa49..0000000
--- a/example/scenarios/trx-umtrx.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
- bts:
- - label: UmTRX
- type: osmo-bts-trx
diff --git a/example/scenarios/trx.conf b/example/scenarios/trx.conf
deleted file mode 100644
index f1d6d13..0000000
--- a/example/scenarios/trx.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-resources:
- bts:
- - type: osmo-bts-trx
diff --git a/example/suites/4g/iperf3_dl.py b/example/suites/4g/iperf3_dl.py
deleted file mode 100755
index 88ae82d..0000000
--- a/example/suites/4g/iperf3_dl.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-def print_result_node(result, node_str):
- sent = result['end']['sum_sent']
- recv = result['end']['sum_received']
- print("Result %s:" % node_str)
- print("\tSEND: %d KB, %d kbps, %d seconds (%s retrans)" % (sent['bytes']/1000, sent['bits_per_second']/1000, sent['seconds'], str(sent.get('retransmits', 'unknown'))))
- print("\tRECV: %d KB, %d kbps, %d seconds" % (recv['bytes']/1000, recv['bits_per_second']/1000, recv['seconds']))
-
-def print_results(cli_res, srv_res):
- print_result_node(cli_res, 'client')
- print_result_node(srv_res, 'server')
-
-epc = suite.epc()
-enb = suite.enb()
-ue = suite.modem()
-iperf3srv = suite.iperf3srv({'addr': epc.tun_addr()})
-iperf3srv.set_run_node(epc.run_node())
-iperf3cli = iperf3srv.create_client()
-iperf3cli.set_run_node(ue.run_node())
-
-epc.subscriber_add(ue)
-epc.start()
-enb.ue_add(ue)
-enb.start(epc)
-
-print('waiting for ENB to connect to EPC...')
-wait(epc.enb_is_connected, enb)
-print('ENB is connected to EPC')
-
-ue.connect(enb)
-
-iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(True, ue.netns())
-
-print('waiting for UE to attach...')
-wait(ue.is_connected, None)
-print('UE is attached')
-
-print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns()))
-proc.launch_sync()
-iperf3srv.stop()
-print_results(iperf3cli.get_results(), iperf3srv.get_results())
-
-max_rate = enb.ue_max_rate(downlink=True)
-res_str = ue.verify_metric(max_rate * 0.8, operation='avg', metric='dl_brate', criterion='gt')
-print(res_str)
-test.set_report_stdout(res_str)
diff --git a/example/suites/4g/iperf3_ul.py b/example/suites/4g/iperf3_ul.py
deleted file mode 100755
index 597b50d..0000000
--- a/example/suites/4g/iperf3_ul.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-def print_result_node(result, node_str):
- sent = result['end']['sum_sent']
- recv = result['end']['sum_received']
- print("Result %s:" % node_str)
- print("\tSEND: %d KB, %d kbps, %d seconds (%s retrans)" % (sent['bytes']/1000, sent['bits_per_second']/1000, sent['seconds'], str(sent.get('retransmits', 'unknown'))))
- print("\tRECV: %d KB, %d kbps, %d seconds" % (recv['bytes']/1000, recv['bits_per_second']/1000, recv['seconds']))
-
-def print_results(cli_res, srv_res):
- print_result_node(cli_res, 'client')
- print_result_node(srv_res, 'server')
-
-epc = suite.epc()
-enb = suite.enb()
-ue = suite.modem()
-iperf3srv = suite.iperf3srv({'addr': epc.tun_addr()})
-iperf3srv.set_run_node(epc.run_node())
-iperf3cli = iperf3srv.create_client()
-iperf3cli.set_run_node(ue.run_node())
-
-epc.subscriber_add(ue)
-epc.start()
-enb.ue_add(ue)
-enb.start(epc)
-
-print('waiting for ENB to connect to EPC...')
-wait(epc.enb_is_connected, enb)
-print('ENB is connected to EPC')
-
-ue.connect(enb)
-
-iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(False, ue.netns())
-
-print('waiting for UE to attach...')
-wait(ue.is_connected, None)
-print('UE is attached')
-
-print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns()))
-proc.launch_sync()
-iperf3srv.stop()
-print_results(iperf3cli.get_results(), iperf3srv.get_results())
-
-max_rate = enb.ue_max_rate(downlink=False)
-res_str = ue.verify_metric(max_rate * 0.8, operation='avg', metric='ul_brate', criterion='gt')
-print(res_str)
-test.set_report_stdout(res_str)
diff --git a/example/suites/4g/ping.py b/example/suites/4g/ping.py
deleted file mode 100755
index 17eee78..0000000
--- a/example/suites/4g/ping.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-epc = suite.epc()
-enb = suite.enb()
-ue = suite.modem()
-
-epc.subscriber_add(ue)
-epc.start()
-enb.ue_add(ue)
-enb.start(epc)
-
-print('waiting for ENB to connect to EPC...')
-wait(epc.enb_is_connected, enb)
-print('ENB is connected to EPC')
-
-ue.connect(enb)
-print('waiting for UE to attach...')
-wait(ue.is_connected, None)
-print('UE is attached')
-
-proc = ue.run_netns_wait('ping', ('ping', '-c', '10', epc.tun_addr()))
-output = proc.get_stdout()
-print(output)
-test.set_report_stdout(output)
diff --git a/example/suites/4g/suite.conf b/example/suites/4g/suite.conf
deleted file mode 100644
index e439e99..0000000
--- a/example/suites/4g/suite.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-resources:
- run_node: # for EPC
- - times: 1
- enb:
- - times: 1
- modem:
- - times: 1
- features:
- - 4g
-
-defaults:
- timeout: 180s
diff --git a/example/suites/debug/interactive.py b/example/suites/debug/interactive.py
deleted file mode 100755
index 89f967f..0000000
--- a/example/suites/debug/interactive.py
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-hlr = suite.hlr()
-bts = suite.bts()
-pcu = bts.pcu()
-mgw_msc = suite.mgw()
-mgw_bsc = suite.mgw()
-stp = suite.stp()
-ggsn = suite.ggsn()
-sgsn = suite.sgsn(hlr, ggsn)
-msc = suite.msc(hlr, mgw_msc, stp)
-bsc = suite.bsc(msc, mgw_bsc, stp)
-
-modems = suite.modems(int(prompt('How many modems?')))
-
-bsc.bts_add(bts)
-sgsn.bts_add(bts)
-
-hlr.start()
-stp.start()
-ggsn.start()
-sgsn.start()
-msc.start()
-mgw_msc.start()
-mgw_bsc.start()
-bsc.start()
-
-bts.start()
-print('Waiting for bts to connect to bsc...')
-wait(bsc.bts_is_connected, bts)
-print('Waiting for bts to be ready...')
-wait(bts.ready_for_pcu)
-pcu.start()
-
-for m in modems:
- hlr.subscriber_add(m)
- m.connect(msc.mcc_mnc())
-
-while True:
- cmd = prompt('Enter command: (q)uit (d)ebug (s)ms (g)et-registered (w)ait-registered, call-list [<ms_msisdn>], call-dial <src_msisdn> <dst_msisdn>, call-wait-incoming <src_msisdn> <dst_msisdn>, call-answer <mt_msisdn> <call_id>, call-hangup <ms_msisdn> <call_id>, ussd <command>, data-attach, data-wait, data-detach, data-activate')
- cmd = cmd.strip().lower()
-
- if not cmd:
- continue
-
- params = cmd.split()
-
- if 'quit'.startswith(cmd):
- break
-
- elif 'debug'.startswith(cmd):
- import pdb; pdb.set_trace()
-
- elif 'wait-registered'.startswith(cmd):
- try:
- for m in modems:
- wait(m.is_connected, msc.mcc_mnc())
- wait(msc.subscriber_attached, *modems)
- except Timeout:
- print('Timeout while waiting for registration.')
-
- elif 'get-registered'.startswith(cmd):
- print(msc.imsi_list_attached())
- print('RESULT: %s' %
- ('All modems are registered.' if msc.subscriber_attached(*modems)
- else 'Some modem(s) not registered yet.'))
-
- elif 'sms'.startswith(cmd):
- for mo in modems:
- for mt in modems:
- mo.sms_send(mt.msisdn, 'to ' + mt.name())
-
- elif cmd.startswith('call-list'):
- if len(params) != 1 and len(params) != 2:
- print('wrong format')
- continue
- for ms in modems:
- if len(params) == 1 or str(ms.msisdn) == params[1]:
- print('call-list: %r %r' % (ms.name(), ms.call_id_list()))
-
- elif cmd.startswith('call-dial'):
- if len(params) != 3:
- print('wrong format')
- continue
- src_msisdn, dst_msisdn = params[1:]
- for mo in modems:
- if str(mo.msisdn) == src_msisdn:
- print('dialing %s->%s' % (src_msisdn, dst_msisdn))
- call_id = mo.call_dial(dst_msisdn)
- print('dial success: call_id=%r' % call_id)
-
- elif cmd.startswith('call-wait-incoming'):
- if len(params) != 3:
- print('wrong format')
- continue
- src_msisdn, dst_msisdn = params[1:]
- for mt in modems:
- if str(mt.msisdn) == dst_msisdn:
- print('waiting for incoming %s->%s' % (src_msisdn, dst_msisdn))
- call_id = mt.call_wait_incoming(src_msisdn)
- print('incoming call success: call_id=%r' % call_id)
-
- elif cmd.startswith('call-answer'):
- if len(params) != 3:
- print('wrong format')
- continue
- mt_msisdn, call_id = params[1:]
- for mt in modems:
- if str(mt.msisdn) == mt_msisdn:
- print('answering %s %r' % (mt.name(), call_id))
- mt.call_answer(call_id)
-
- elif cmd.startswith('call-hangup'):
- if len(params) != 3:
- print('wrong format')
- continue
- ms_msisdn, call_id = params[1:]
- for ms in modems:
- if str(ms.msisdn) == ms_msisdn:
- print('hanging up %s %r' % (ms.name(), call_id))
- ms.call_hangup(call_id)
-
- elif cmd.startswith('ussd'):
- if len(params) != 2:
- print('wrong format')
- continue
- ussd_cmd = params[1]
- for ms in modems:
- print('modem %s: ussd %s' % (ms.name(), ussd_cmd))
- response = ms.ussd_send(ussd_cmd)
- print('modem %s: response=%r' % (ms.name(), response))
-
- elif cmd.startswith('data-attach'):
- if len(params) != 1:
- print('wrong format')
- continue
- for ms in modems:
- print('modem %s: attach' % ms.name())
- ms.attach()
- wait(ms.is_attached)
- print('modem %s: attached' % ms.name())
-
- elif cmd.startswith('data-detach'):
- if len(params) != 1:
- print('wrong format')
- continue
- for ms in modems:
- print('modem %s: detach' % ms.name())
- ms.attach()
- wait(lambda: not ms.is_attached())
- print('modem %s: detached' % ms.name())
-
- elif cmd.startswith('data-activate'):
- if len(params) != 1:
- print('wrong format')
- continue
- for ms in modems:
- print('modem %s: activate' % ms.name())
- response = ms.activate_context()
- print('modem %s: response=%r' % (ms.name(), response))
-
- else:
- print('Unknown command: %s' % cmd)
diff --git a/example/suites/debug/suite.conf b/example/suites/debug/suite.conf
deleted file mode 100644
index 2f36e1d..0000000
--- a/example/suites/debug/suite.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-resources:
- ip_address:
- - times: 8
- bts:
- - times: 1
- modem:
- - times: 4
diff --git a/example/suites/dynts/suite.conf b/example/suites/dynts/suite.conf
deleted file mode 100644
index 3b32480..0000000
--- a/example/suites/dynts/suite.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-resources:
- ip_address:
- - times: 8 # msc, bsc, hlr, stp, mgw*2, sgsn, ggsn
- bts:
- - times: 1
- modem:
- - times: 2
- features:
- - gprs
- - voice
diff --git a/example/suites/dynts/switch_tch_pdch.py b/example/suites/dynts/switch_tch_pdch.py
deleted file mode 100755
index f0bbd38..0000000
--- a/example/suites/dynts/switch_tch_pdch.py
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-
-def activate_pdp(ms_mo, ms_mt):
- # We need to use inet46 since ofono qmi only uses ipv4v6 eua (OS#2713)
- ctx_id_v4_mo = ms_mo.activate_context(apn='inet46', protocol=ms_mo.CTX_PROT_IPv4)
- print('ms_mo pdp ctx %r activated' % repr(ctx_id_v4_mo))
- ctx_id_v4_mt = ms_mt.activate_context(apn='inet46', protocol=ms_mt.CTX_PROT_IPv4)
- print('ms_mt pdp ctx %r activated' % repr(ctx_id_v4_mt))
- sleep(5)
- ms_mo.deactivate_context(ctx_id_v4_mo)
- ms_mt.deactivate_context(ctx_id_v4_mt)
-
-def make_call(ms_mo, ms_mt):
- assert len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0
- mo_cid = ms_mo.call_dial(ms_mt)
- mt_cid = ms_mt.call_wait_incoming(ms_mo)
- print('dial success')
-
- assert not ms_mo.call_is_active(mo_cid) and not ms_mt.call_is_active(mt_cid)
- ms_mt.call_answer(mt_cid)
- wait(ms_mo.call_is_active, mo_cid)
- wait(ms_mt.call_is_active, mt_cid)
- print('answer success, call established and ongoing')
-
- sleep(5) # maintain the call active for 5 seconds
-
- assert ms_mo.call_is_active(mo_cid) and ms_mt.call_is_active(mt_cid)
- ms_mo.call_hangup(mo_cid)
- ms_mt.call_hangup(mt_cid)
- wait(lambda: len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0)
- print('hangup success')
-
-hlr = suite.hlr()
-bts = suite.bts()
-pcu = bts.pcu()
-mgw_msc = suite.mgw()
-mgw_bsc = suite.mgw()
-stp = suite.stp()
-ggsn = suite.ggsn()
-sgsn = suite.sgsn(hlr, ggsn)
-msc = suite.msc(hlr, mgw_msc, stp)
-bsc = suite.bsc(msc, mgw_bsc, stp)
-ms_mo = suite.modem()
-ms_mt = suite.modem()
-
-bsc.bts_add(bts)
-sgsn.bts_add(bts)
-
-print('start network...')
-hlr.start()
-stp.start()
-ggsn.start()
-sgsn.start()
-msc.start()
-mgw_msc.start()
-mgw_bsc.start()
-bsc.start()
-
-bts.start()
-wait(bsc.bts_is_connected, bts)
-print('Waiting for bts to be ready...')
-wait(bts.ready_for_pcu)
-pcu.start()
-
-hlr.subscriber_add(ms_mo)
-hlr.subscriber_add(ms_mt)
-
-ms_mo.connect(msc.mcc_mnc())
-ms_mt.connect(msc.mcc_mnc())
-ms_mo.attach()
-ms_mt.attach()
-
-ms_mo.log_info()
-ms_mt.log_info()
-
-print('waiting for modems to attach...')
-wait(ms_mo.is_connected, msc.mcc_mnc())
-wait(ms_mt.is_connected, msc.mcc_mnc())
-wait(msc.subscriber_attached, ms_mo)
-wait(msc.subscriber_attached, ms_mt)
-
-print('waiting for modems to attach to data services...')
-wait(ms_mo.is_attached)
-wait(ms_mt.is_attached)
-
-print('1: activate_pdp')
-activate_pdp(ms_mo, ms_mt)
-print('2: make_call')
-make_call(ms_mo, ms_mt)
-print('3: Wait 30 seconds to let PCU handle the PDCH channels again')
-sleep(30)
-print('3: activate_pdp')
-activate_pdp(ms_mo, ms_mt)
-print('4: make_call')
-make_call(ms_mo, ms_mt)
-print('Done!')
diff --git a/example/suites/encryption/lib/testlib.py b/example/suites/encryption/lib/testlib.py
deleted file mode 100644
index 3948941..0000000
--- a/example/suites/encryption/lib/testlib.py
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-def encryption_test_setup_run(enable_auth, algo):
- hlr = suite.hlr()
- bts = suite.bts()
- mgw_msc = suite.mgw()
- mgw_bsc = suite.mgw()
- stp = suite.stp()
- msc = suite.msc(hlr, mgw_msc, stp)
- bsc = suite.bsc(msc, mgw_bsc, stp)
- ms = suite.modem()
-
- print('start network...')
- msc.set_authentication(enable_auth)
- msc.set_encryption(algo)
- bsc.set_encryption(algo)
- hlr.start()
- stp.start()
- msc.start()
- mgw_msc.start()
- mgw_bsc.start()
- bsc.bts_add(bts)
- bsc.start()
- bts.start()
- wait(bsc.bts_is_connected, bts)
-
- ms.log_info()
- good_ki = ms.ki()
- bad_ki = ("%1X" % (int(good_ki[0], 16) ^ 0x01)) + good_ki[1:]
-
- print('KI changed: ' + good_ki + " => " + bad_ki)
- ms.set_ki(bad_ki)
- hlr.subscriber_add(ms)
- if enable_auth:
- print('Attempt connection with wrong KI...')
- ms.connect(msc.mcc_mnc())
-
- sleep(40) # TODO: read pcap or CTRL interface and look for Rejected? (gsm_a.dtap.msg_mm_type == 0x04)
- print('Asserting modem did not register')
- # FIXME: this can fail because ofono qmi signals registered before being accepted by network. See OS#2458
- # assert not ms.is_connected(msc.mcc_mnc())
- assert not msc.subscriber_attached(ms)
-
- hlr.subscriber_delete(ms)
- print('KI changed: ' + bad_ki + " => " + good_ki)
- ms.set_ki(good_ki)
- hlr.subscriber_add(ms, ms.msisdn)
- print('Attempt connection with correct KI...')
- else:
- print('Attempt connection with wrong KI, should work as it is not used...')
- ms.connect(msc.mcc_mnc())
- wait(ms.is_connected, msc.mcc_mnc())
- wait(msc.subscriber_attached, ms)
diff --git a/example/suites/encryption/register_a5_0_authopt.py b/example/suites/encryption/register_a5_0_authopt.py
deleted file mode 100755
index 1b7f471..0000000
--- a/example/suites/encryption/register_a5_0_authopt.py
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-import testlib
-suite.test_import_modules_register_for_cleanup(testlib)
-from testlib import encryption_test_setup_run
-
-encryption_test_setup_run(False, 'a5_0')
diff --git a/example/suites/encryption/register_a5_0_authreq.py b/example/suites/encryption/register_a5_0_authreq.py
deleted file mode 100755
index feca525..0000000
--- a/example/suites/encryption/register_a5_0_authreq.py
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-import testlib
-suite.test_import_modules_register_for_cleanup(testlib)
-from testlib import encryption_test_setup_run
-
-encryption_test_setup_run(True, 'a5_0')
diff --git a/example/suites/encryption/register_a5_1_authreq.py b/example/suites/encryption/register_a5_1_authreq.py
deleted file mode 100755
index 077819b..0000000
--- a/example/suites/encryption/register_a5_1_authreq.py
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-import testlib
-suite.test_import_modules_register_for_cleanup(testlib)
-from testlib import encryption_test_setup_run
-
-encryption_test_setup_run(True, 'a5_1')
diff --git a/example/suites/encryption/register_a5_3_authreq.py b/example/suites/encryption/register_a5_3_authreq.py
deleted file mode 100755
index 219c109..0000000
--- a/example/suites/encryption/register_a5_3_authreq.py
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-import testlib
-suite.test_import_modules_register_for_cleanup(testlib)
-from testlib import encryption_test_setup_run
-
-encryption_test_setup_run(True, 'a5_3')
diff --git a/example/suites/encryption/suite.conf b/example/suites/encryption/suite.conf
deleted file mode 100644
index 18e94a3..0000000
--- a/example/suites/encryption/suite.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-resources:
- ip_address:
- - times: 6 # msc, bsc, hlr, stp, mgw*2
- bts:
- - times: 1
- ciphers:
- - a5_0
- - a5_1
- modem:
- - times: 1
- ciphers:
- - a5_0
- - a5_1
-
-defaults:
- timeout: 120s
diff --git a/example/suites/gprs/cs_paging_gprs_active.py b/example/suites/gprs/cs_paging_gprs_active.py
deleted file mode 100755
index b7dead2..0000000
--- a/example/suites/gprs/cs_paging_gprs_active.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env python3
-
-# Following test verifies CS paging works when MS is GPRS attached.
-# See OS#2204 for more information.
-
-from osmo_gsm_tester.testenv import *
-
-import testlib
-suite.test_import_modules_register_for_cleanup(testlib)
-from testlib import setup_run_iperf3_test_parallel
-
-def ready_cb_place_voicecall(ms_li):
- print('waiting a few secs to make sure iperf3 test is running')
- sleep(2)
- # At this point in time, TBF should be enabled on both MS since they are sending/receiving data.
- print('iperf3 running, let\'s place a call')
- ms_mo = ms_li[0]
- ms_mt = ms_li[1]
- assert len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0
- mo_cid = ms_mo.call_dial(ms_mt)
- mt_cid = ms_mt.call_wait_incoming(ms_mo)
- print('dial success')
-
- assert not ms_mo.call_is_active(mo_cid) and not ms_mt.call_is_active(mt_cid)
- ms_mt.call_answer(mt_cid)
- wait(ms_mo.call_is_active, mo_cid)
- wait(ms_mt.call_is_active, mt_cid)
- print('answer success, call established and ongoing')
-
- sleep(5) # maintain the call active for 5 seconds
-
- assert ms_mo.call_is_active(mo_cid) and ms_mt.call_is_active(mt_cid)
- ms_mt.call_hangup(mt_cid)
- wait(lambda: len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0)
- print('hangup success')
-
-
-setup_run_iperf3_test_parallel(2, ready_cb=ready_cb_place_voicecall)
diff --git a/example/suites/gprs/iperf3.py b/example/suites/gprs/iperf3.py
deleted file mode 100755
index e25519a..0000000
--- a/example/suites/gprs/iperf3.py
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-import testlib
-suite.test_import_modules_register_for_cleanup(testlib)
-from testlib import setup_run_iperf3_test_parallel
-
-setup_run_iperf3_test_parallel(1)
diff --git a/example/suites/gprs/iperf3m4.py b/example/suites/gprs/iperf3m4.py
deleted file mode 100755
index 1cc27ed..0000000
--- a/example/suites/gprs/iperf3m4.py
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-import testlib
-suite.test_import_modules_register_for_cleanup(testlib)
-from testlib import setup_run_iperf3_test_parallel
-
-setup_run_iperf3_test_parallel(4)
diff --git a/example/suites/gprs/lib/testlib.py b/example/suites/gprs/lib/testlib.py
deleted file mode 100644
index c1a1bc1..0000000
--- a/example/suites/gprs/lib/testlib.py
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-def print_result_node(result, node_str):
- sent = result['end']['sum_sent']
- recv = result['end']['sum_received']
- print("Result %s:" % node_str)
- print("\tSEND: %d KB, %d kbps, %d seconds (%s retrans)" % (sent['bytes']/1000, sent['bits_per_second']/1000, sent['seconds'], str(sent.get('retransmits', 'unknown'))))
- print("\tRECV: %d KB, %d kbps, %d seconds" % (recv['bytes']/1000, recv['bits_per_second']/1000, recv['seconds']))
-
-def print_results(cli_res, srv_res):
- print_result_node(cli_res, 'client')
- print_result_node(srv_res, 'server')
-
-def run_iperf3_cli_parallel(iperf3clients, ms_li, ready_cb):
- assert len(iperf3clients) == len(ms_li)
- procs = []
- for i in range(len(iperf3clients)):
- print("Running iperf3 client to %s through %r" % (str(iperf3clients[i]), repr(ms_li[i].tmp_ctx_id)))
- procs.append(iperf3clients[i].prepare_test_proc(False, ms_li[i].netns()))
- try:
- for proc in procs:
- proc.launch()
- if ready_cb:
- ready_cb(ms_li)
- for proc in procs:
- proc.wait()
- except Exception as e:
- for proc in procs:
- try:
- proc.terminate()
- except Exception:
- print("Exception while terminating process %r" % repr(process))
- raise e
-
-
-def setup_run_iperf3_test_parallel(num_ms, ready_cb=None):
- hlr = suite.hlr()
- bts = suite.bts()
- pcu = bts.pcu()
- mgw_msc = suite.mgw()
- mgw_bsc = suite.mgw()
- stp = suite.stp()
- ggsn = suite.ggsn()
- sgsn = suite.sgsn(hlr, ggsn)
- msc = suite.msc(hlr, mgw_msc, stp)
- bsc = suite.bsc(msc, mgw_bsc, stp)
-
- iperf3srv_addr = suite.ip_address()
- servers = []
- clients = []
- ms_li = []
- for i in range(num_ms):
- iperf3srv = suite.iperf3srv(iperf3srv_addr)
- iperf3srv.set_port(iperf3srv.DEFAULT_SRV_PORT + i)
- servers.append(iperf3srv)
-
- iperf3cli = iperf3srv.create_client()
- clients.append(iperf3cli)
-
- ms = suite.modem()
- ms_li.append(ms)
-
- bsc.bts_add(bts)
- sgsn.bts_add(bts)
-
- for iperf3srv in servers:
- print('start iperfv3 server %s...' % str(iperf3srv) )
- iperf3srv.start()
-
- print('start network...')
- hlr.start()
- stp.start()
- ggsn.start()
- sgsn.start()
- msc.start()
- mgw_msc.start()
- mgw_bsc.start()
- bsc.start()
-
- bts.start()
- wait(bsc.bts_is_connected, bts)
- print('Waiting for bts to be ready...')
- wait(bts.ready_for_pcu)
- pcu.start()
-
- for ms in ms_li:
- hlr.subscriber_add(ms)
- ms.connect(msc.mcc_mnc())
- ms.attach()
- ms.log_info()
-
- print('waiting for modems to attach...')
- for ms in ms_li:
- wait(ms.is_connected, msc.mcc_mnc())
- wait(msc.subscriber_attached, *ms_li)
-
- print('waiting for modems to attach to data services...')
- for ms in ms_li:
- wait(ms.is_attached)
- # We need to use inet46 since ofono qmi only uses ipv4v6 eua (OS#2713)
- ctx_id_v4 = ms.activate_context(apn='inet46', protocol=ms.CTX_PROT_IPv4)
- print("Setting up data plan for %r" % repr(ctx_id_v4))
- ms.setup_context_data_plane(ctx_id_v4)
- setattr(ms, 'tmp_ctx_id', ctx_id_v4)
-
- run_iperf3_cli_parallel(clients, ms_li, ready_cb)
-
- for i in range(num_ms):
- servers[i].stop()
- print("Results for %s through %r" % (str(servers[i]), repr(ms_li[i].tmp_ctx_id)))
- print_results(clients[i].get_results(), servers[i].get_results())
-
- for ms in ms_li:
- ms.deactivate_context(ms.tmp_ctx_id)
- delattr(ms, 'tmp_ctx_id')
diff --git a/example/suites/gprs/ping.py b/example/suites/gprs/ping.py
deleted file mode 100755
index 22fe80a..0000000
--- a/example/suites/gprs/ping.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-hlr = suite.hlr()
-bts = suite.bts()
-pcu = bts.pcu()
-mgw_msc = suite.mgw()
-mgw_bsc = suite.mgw()
-stp = suite.stp()
-ggsn = suite.ggsn()
-sgsn = suite.sgsn(hlr, ggsn)
-msc = suite.msc(hlr, mgw_msc, stp)
-bsc = suite.bsc(msc, mgw_bsc, stp)
-ms = suite.modem()
-
-bsc.bts_add(bts)
-sgsn.bts_add(bts)
-
-print('start network...')
-hlr.start()
-stp.start()
-ggsn.start()
-sgsn.start()
-msc.start()
-mgw_msc.start()
-mgw_bsc.start()
-bsc.start()
-
-bts.start()
-wait(bsc.bts_is_connected, bts)
-print('Waiting for bts to be ready...')
-wait(bts.ready_for_pcu)
-pcu.start()
-
-hlr.subscriber_add(ms)
-
-ms.connect(msc.mcc_mnc())
-ms.attach()
-
-ms.log_info()
-
-print('waiting for modems to attach...')
-wait(ms.is_connected, msc.mcc_mnc())
-wait(msc.subscriber_attached, ms)
-
-print('waiting for modems to attach to data services...')
-wait(ms.is_attached)
-
-# We need to use inet46 since ofono qmi only uses ipv4v6 eua (OS#2713)
-ctx_id_v4 = ms.activate_context(apn='inet46', protocol=ms.CTX_PROT_IPv4)
-print("Setting up data plan for %r" % repr(ctx_id_v4))
-ms.setup_context_data_plane(ctx_id_v4)
-print("Running 10 ping requests for %r" % repr(ctx_id_v4))
-proc = ms.run_netns_wait('ping', ('ping', '-c', '10', ggsn.addr()))
-output = proc.get_stdout()
-ms.deactivate_context(ctx_id_v4)
-
-# We need to use inet46 since ofono qmi only uses ipv4v6 eua (OS#2713)
-ctx_id_v6 = ms.activate_context(apn='inet46', protocol=ms.CTX_PROT_IPv6)
-sleep(5)
-# TODO: send ping to server or open TCP conn with a socket in python
-ms.deactivate_context(ctx_id_v6)
-
-# IPv46 (dual) not supported in ofono qmi: org.ofono.Error.Failed: Operation failed (36)
-# ctx_id_v46 = ms.activate_context(apn='inet46', protocol=ms.CTX_PROT_IPv46)
-# sleep(5)
-# TODO: send ping to server or open TCP conn with a socket in python
-# ms.deactivate_context(ctx_id_v46)
-
-print(output)
-test.set_report_stdout(output)
diff --git a/example/suites/gprs/ping_idle_ping.py b/example/suites/gprs/ping_idle_ping.py
deleted file mode 100755
index 02e2cdf..0000000
--- a/example/suites/gprs/ping_idle_ping.py
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env python3
-
-# Following test verifies GPRS works fine after MS stays idle (no data
-# sent/received) for a long while.
-# See OS#3678 and OS#2455 for more information.
-
-from osmo_gsm_tester.testenv import *
-
-hlr = suite.hlr()
-bts = suite.bts()
-pcu = bts.pcu()
-mgw_msc = suite.mgw()
-mgw_bsc = suite.mgw()
-stp = suite.stp()
-ggsn = suite.ggsn()
-sgsn = suite.sgsn(hlr, ggsn)
-msc = suite.msc(hlr, mgw_msc, stp)
-bsc = suite.bsc(msc, mgw_bsc, stp)
-ms = suite.modem()
-
-bsc.bts_add(bts)
-sgsn.bts_add(bts)
-
-print('start network...')
-hlr.start()
-stp.start()
-ggsn.start()
-sgsn.start()
-msc.start()
-mgw_msc.start()
-mgw_bsc.start()
-bsc.start()
-
-bts.start()
-wait(bsc.bts_is_connected, bts)
-print('Waiting for bts to be ready...')
-wait(bts.ready_for_pcu)
-pcu.start()
-
-hlr.subscriber_add(ms)
-
-ms.connect(msc.mcc_mnc())
-ms.attach()
-
-ms.log_info()
-
-print('waiting for modems to attach...')
-wait(ms.is_connected, msc.mcc_mnc())
-wait(msc.subscriber_attached, ms)
-
-print('waiting for modems to attach to data services...')
-wait(ms.is_attached)
-
-# We need to use inet46 since ofono qmi only uses ipv4v6 eua (OS#2713)
-ctx_id_v4 = ms.activate_context(apn='inet46', protocol=ms.CTX_PROT_IPv4)
-print("Setting up data plane for %r" % repr(ctx_id_v4))
-ms.setup_context_data_plane(ctx_id_v4)
-str = "[1] Running 10 ping requests for %r" % repr(ctx_id_v4)
-output = str + '\n'
-print(str)
-proc = ms.run_netns_wait('ping1', ('ping', '-c', '10', ggsn.addr()))
-str = proc.get_stdout()
-output += str
-print(str)
-
-str = "Sleeping for 60 seconds"
-output += str + '\n'
-print(str)
-sleep(60)
-
-str = "[2] Running 10 ping requests for %r" % repr(ctx_id_v4)
-output += str + '\n'
-print(str)
-proc = ms.run_netns_wait('ping2', ('ping', '-c', '10', ggsn.addr()))
-str = proc.get_stdout()
-output += str
-print(str)
-
-ms.deactivate_context(ctx_id_v4)
-
-test.set_report_stdout(output)
diff --git a/example/suites/gprs/suite.conf b/example/suites/gprs/suite.conf
deleted file mode 100644
index d40c1e5..0000000
--- a/example/suites/gprs/suite.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-resources:
- ip_address:
- - times: 9 # msc, bsc, hlr, stp, mgw*2, sgsn, ggsn, iperf3srv
- bts:
- - times: 1
- modem:
- - times: 2
- features:
- - gprs
- - voice
- - times: 2
- features:
- - gprs
diff --git a/example/suites/nitb_debug/error.py b/example/suites/nitb_debug/error.py
deleted file mode 100644
index 032e26c..0000000
--- a/example/suites/nitb_debug/error.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-# This can be used to verify that a test error is reported properly.
-assert False
diff --git a/example/suites/nitb_debug/fail.py b/example/suites/nitb_debug/fail.py
deleted file mode 100644
index a2d9e3a..0000000
--- a/example/suites/nitb_debug/fail.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-# This can be used to verify that a test failure is reported properly.
-test.set_fail('ExpectedFail', 'This failure is expected')
diff --git a/example/suites/nitb_debug/fail_raise.py b/example/suites/nitb_debug/fail_raise.py
deleted file mode 100644
index c30a4f5..0000000
--- a/example/suites/nitb_debug/fail_raise.py
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-class ExpectedExn(Exception):
- pass
-
-# This can be used to verify that a test failure is reported properly.
-raise ExpectedExn('This failure is expected')
diff --git a/example/suites/nitb_debug/interactive.py b/example/suites/nitb_debug/interactive.py
deleted file mode 100755
index 595cfd9..0000000
--- a/example/suites/nitb_debug/interactive.py
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-print('use resources...')
-nitb = suite.nitb()
-bts = suite.bts()
-modems = suite.modems(int(prompt('How many modems?')))
-
-print('start nitb and bts...')
-nitb.bts_add(bts)
-nitb.start()
-bts.start()
-wait(nitb.bts_is_connected, bts)
-
-for m in modems:
- nitb.subscriber_add(m)
- m.connect(nitb.mcc_mnc())
-
-while True:
- cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered, call-list [<ms_msisdn>], call-dial <src_msisdn> <dst_msisdn>, call-wait-incoming <src_msisdn> <dst_msisdn>, call-answer <mt_msisdn> <call_id>, call-hangup <ms_msisdn> <call_id>, ussd <command>')
- cmd = cmd.strip().lower()
-
- if not cmd:
- continue
-
- params = cmd.split()
-
- if 'quit'.startswith(cmd):
- break
-
- elif 'wait-registered'.startswith(cmd):
- try:
- for m in modems:
- wait(m.is_connected, nitb.mcc_mnc())
- wait(nitb.subscriber_attached, *modems)
- except Timeout:
- print('Timeout while waiting for registration.')
-
- elif 'get-registered'.startswith(cmd):
- print(nitb.imsi_list_attached())
- print('RESULT: %s' %
- ('All modems are registered.' if nitb.subscriber_attached(*modems)
- else 'Some modem(s) not registered yet.'))
-
- elif 'sms'.startswith(cmd):
- for mo in modems:
- for mt in modems:
- mo.sms_send(mt.msisdn, 'to ' + mt.name())
-
- elif cmd.startswith('call-list'):
- if len(params) != 1 and len(params) != 2:
- print('wrong format')
- continue
- for ms in modems:
- if len(params) == 1 or str(ms.msisdn) == params[1]:
- print('call-list: %r %r' % (ms.name(), ms.call_id_list()))
-
- elif cmd.startswith('call-dial'):
- if len(params) != 3:
- print('wrong format')
- continue
- src_msisdn, dst_msisdn = params[1:]
- for mo in modems:
- if str(mo.msisdn) == src_msisdn:
- print('dialing %s->%s' % (src_msisdn, dst_msisdn))
- call_id = mo.call_dial(dst_msisdn)
- print('dial success: call_id=%r' % call_id)
-
- elif cmd.startswith('call-wait-incoming'):
- if len(params) != 3:
- print('wrong format')
- continue
- src_msisdn, dst_msisdn = params[1:]
- for mt in modems:
- if str(mt.msisdn) == dst_msisdn:
- print('waiting for incoming %s->%s' % (src_msisdn, dst_msisdn))
- call_id = mt.call_wait_incoming(src_msisdn)
- print('incoming call success: call_id=%r' % call_id)
-
- elif cmd.startswith('call-answer'):
- if len(params) != 3:
- print('wrong format')
- continue
- mt_msisdn, call_id = params[1:]
- for mt in modems:
- if str(mt.msisdn) == mt_msisdn:
- print('answering %s %r' % (mt.name(), call_id))
- mt.call_answer(call_id)
-
- elif cmd.startswith('call-hangup'):
- if len(params) != 3:
- print('wrong format')
- continue
- ms_msisdn, call_id = params[1:]
- for ms in modems:
- if str(ms.msisdn) == ms_msisdn:
- print('hanging up %s %r' % (ms.name(), call_id))
- ms.call_hangup(call_id)
-
- elif cmd.startswith('ussd'):
- if len(params) != 2:
- print('wrong format')
- continue
- ussd_cmd = params[1]
- for ms in modems:
- print('modem %s: ussd %s' % (ms.name(), ussd_cmd))
- response = ms.ussd_send(ussd_cmd)
- print('modem %s: response=%r' % (ms.name(), response))
-
- else:
- print('Unknown command: %s' % cmd)
diff --git a/example/suites/nitb_debug/pass.py b/example/suites/nitb_debug/pass.py
deleted file mode 100644
index c07f079..0000000
--- a/example/suites/nitb_debug/pass.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-# This can be used to verify that a test passes correctly.
-pass
diff --git a/example/suites/nitb_debug/suite.conf b/example/suites/nitb_debug/suite.conf
deleted file mode 100644
index adfc161..0000000
--- a/example/suites/nitb_debug/suite.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-resources:
- ip_address:
- - times: 1
- bts:
- - times: 1
- modem:
- - times: 4
-
-defaults:
- timeout: 60s
diff --git a/example/suites/nitb_netreg/register.py b/example/suites/nitb_netreg/register.py
deleted file mode 100755
index d5fbeb7..0000000
--- a/example/suites/nitb_netreg/register.py
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-print('use resources...')
-nitb = suite.nitb()
-bts = suite.bts()
-ms = suite.modem()
-
-print('start nitb and bts...')
-nitb.bts_add(bts)
-nitb.start()
-bts.start()
-wait(nitb.bts_is_connected, bts)
-
-nitb.subscriber_add(ms)
-
-ms.connect(nitb.mcc_mnc())
-
-print(ms.info())
-
-wait(ms.is_connected, nitb.mcc_mnc())
-wait(nitb.subscriber_attached, ms)
diff --git a/example/suites/nitb_netreg/register_default.py b/example/suites/nitb_netreg/register_default.py
deleted file mode 100755
index 545525d..0000000
--- a/example/suites/nitb_netreg/register_default.py
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-print('use resources...')
-nitb = suite.nitb()
-bts = suite.bts()
-ms = suite.modem()
-
-print('start nitb and bts...')
-nitb.bts_add(bts)
-nitb.start()
-bts.start()
-wait(nitb.bts_is_connected, bts)
-
-nitb.subscriber_add(ms)
-
-ms.connect()
-
-print(ms.info())
-
-wait(ms.is_connected)
-wait(nitb.subscriber_attached, ms)
diff --git a/example/suites/nitb_netreg/suite.conf b/example/suites/nitb_netreg/suite.conf
deleted file mode 100644
index 1bb1dbb..0000000
--- a/example/suites/nitb_netreg/suite.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-resources:
- ip_address:
- - times: 1
- bts:
- - times: 1
- modem:
- - times: 1
-
-defaults:
- timeout: 40s
diff --git a/example/suites/nitb_netreg_mass/register_default_mass.py b/example/suites/nitb_netreg_mass/register_default_mass.py
deleted file mode 100644
index 262b271..0000000
--- a/example/suites/nitb_netreg_mass/register_default_mass.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env python3
-"""
-Runs a network registration with a 'massive' amount of MS
-using the ms_driver infrastructure.
-"""
-from osmo_gsm_tester.testenv import *
-from datetime import timedelta
-
-print('Claiming resources for the test')
-nitb = suite.nitb()
-bts = suite.bts()
-ms_driver = suite.ms_driver()
-ul = ms_driver.add_test('ul_test')
-modems = suite.all_resources(suite.modem)
-
-print('Launching a simple network')
-nitb.bts_add(bts)
-nitb.start()
-bts.start()
-wait(nitb.bts_is_connected, bts)
-
-# Configure all MS that are available to this test.
-for modem in modems:
- nitb.subscriber_add(modem)
- ms_driver.subscriber_add(modem)
-
-# Run the base test.
-ms_driver.run_test()
-
-# Print the stats of the run.
-ms_driver.print_stats()
-
-# Evaluate if this run was successful or not. Our initial acceptance criteria
-# is quite basic but it should allow us to scale to a larger number of MS and
-# reasons (e.g. have a full BCCH).
-#
-# 99% of LUs should complete
-# 99% of successful LUs should complete within 10s.
-stats = ul.get_stats()
-if len(modems) > 0 and stats.num_completed < 1:
- raise Exception("No run completed.")
-completion_ratio = stats.num_completed / stats.num_attempted
-
-# Verify that 99% of LUs completed.
-if completion_ratio < 0.99:
- raise Exception("Completion ratio of %f%% lower than threshold." % (completion_ratio * 100.0))
-
-# Check how many results are below our threshold.
-acceptable_delay = timedelta(seconds=30)
-quick_enough = len(ul.lus_less_than(acceptable_delay))
-latency_ratio = quick_enough / stats.num_attempted
-if latency_ratio < 0.99:
- raise Exception("Latency ratio of %f%% lower than threshold." % (latency_ratio * 100.0))
diff --git a/example/suites/nitb_netreg_mass/suite.conf b/example/suites/nitb_netreg_mass/suite.conf
deleted file mode 100644
index bb1585b..0000000
--- a/example/suites/nitb_netreg_mass/suite.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-resources:
- ip_address:
- - times: 1
- bts:
- - type: osmo-bts-virtual
- modem:
- - times: 100
- type: osmo-mobile
-
-defaults:
- timeout: 50s
diff --git a/example/suites/nitb_smpp/esme_connect_policy_acceptall.py b/example/suites/nitb_smpp/esme_connect_policy_acceptall.py
deleted file mode 100755
index 904226b..0000000
--- a/example/suites/nitb_smpp/esme_connect_policy_acceptall.py
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env python3
-
-# This test checks following use-cases while in 'accept-all' policy:
-# * SMPP interface of SMSC accepts SMPP clients (ESMEs) which do not appear on
-# the config file
-
-from osmo_gsm_tester.testenv import *
-
-nitb = suite.nitb()
-smsc = nitb.smsc
-esme = suite.esme()
-
-# Here we deliberately omit calling smsc.esme_add() to avoid having it included
-# in the smsc config.
-smsc.set_smsc_policy(smsc.SMSC_POLICY_ACCEPT_ALL)
-esme.set_smsc(smsc)
-
-nitb.start()
-
-# Due to accept-all policy, connect() should work even if we didn't previously
-# configure the esme in the smsc, no matter the system_id / password we use.
-log('Test connect with non-empty values in system_id and password')
-esme.set_system_id('foo')
-esme.set_password('bar')
-esme.connect()
-esme.disconnect()
-
-log('Test connect with empty values in system_id and password')
-esme.set_system_id('')
-esme.set_password('')
-esme.connect()
-esme.disconnect()
diff --git a/example/suites/nitb_smpp/esme_connect_policy_closed.py b/example/suites/nitb_smpp/esme_connect_policy_closed.py
deleted file mode 100755
index eaabb3d..0000000
--- a/example/suites/nitb_smpp/esme_connect_policy_closed.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python3
-
-# This test checks following use-cases while in 'closed' policy:
-# * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously
-# defined in its configuration file.
-# * SMPP interface of SMSC rejects ESMEs with known system id but wrong password.
-# * SMPP interface of SMSC rejects ESEMs with unknown system id
-
-from osmo_gsm_tester.testenv import *
-
-SMPP_ESME_RINVPASWD = 0x0000000E
-SMPP_ESME_RINVSYSID = 0x0000000F
-
-nitb = suite.nitb()
-smsc = nitb.smsc
-esme = suite.esme()
-esme_no_pwd = suite.esme()
-esme_no_pwd.set_password('')
-
-smsc.set_smsc_policy(smsc.SMSC_POLICY_CLOSED)
-smsc.esme_add(esme)
-smsc.esme_add(esme_no_pwd)
-
-nitb.start()
-
-log('Test with correct credentials (no password)')
-esme_no_pwd.connect()
-esme_no_pwd.disconnect()
-
-log('Test with correct credentials (no password, non empty)')
-esme_no_pwd.set_password('foobar')
-esme_no_pwd.connect()
-esme_no_pwd.disconnect()
-
-log('Test with correct credentials')
-esme.connect()
-esme.disconnect()
-
-log('Test with bad password, checking for failure')
-correct_password = esme.password
-new_password = 'barfoo' if correct_password == 'foobar' else 'foobar'
-esme.set_password(new_password)
-esme.run_method_expect_failure(SMPP_ESME_RINVPASWD, esme.connect)
-esme.set_password(correct_password)
-
-log('Test with bad system_id, checking for failure')
-correct_system_id = esme.system_id
-new_system_id = 'barfoo' if correct_system_id == 'foobar' else 'foobar'
-esme.set_system_id(new_system_id)
-esme.run_method_expect_failure(SMPP_ESME_RINVSYSID, esme.connect)
-esme.set_system_id(correct_system_id)
diff --git a/example/suites/nitb_smpp/esme_ms_sms_storeforward.py b/example/suites/nitb_smpp/esme_ms_sms_storeforward.py
deleted file mode 100755
index 391a040..0000000
--- a/example/suites/nitb_smpp/esme_ms_sms_storeforward.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env python3
-
-# This test checks following use-cases:
-# * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously
-# defined in its configuration file.
-# * When SMS is sent in 'store & forward' mode, ESME fails to send an SMS to non registered MS.
-# * When SMS is sent in 'store & forward' mode, ESME can send an SMS to a not yet registered MS.
-# * When SMS is sent in 'store & forward' mode, ESME can send an SMS to an already registered MS.
-# * When SMS is sent in 'store & forward' mode, ESME receives a SMS receipt if it asked for it.
-
-from osmo_gsm_tester.testenv import *
-
-SMPP_ESME_RINVDSTADR = 0x0000000B
-
-nitb = suite.nitb()
-bts = suite.bts()
-ms = suite.modem()
-esme = suite.esme()
-
-print('start nitb and bts...')
-nitb.bts_add(bts)
-nitb.smsc.esme_add(esme)
-nitb.start()
-bts.start()
-wait(nitb.bts_is_connected, bts)
-
-esme.connect()
-nitb.subscriber_add(ms)
-
-wrong_msisdn = ms.msisdn + esme.msisdn
-print('sending sms with wrong msisdn %s, it will fail' % wrong_msisdn)
-msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')
-esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_STOREFORWARD)
-
-print('sending sms, it will be stored...')
-msg = Sms(esme.msisdn, ms.msisdn, 'smpp send not-yet-registered message')
-umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)
-
-print('MS registers and will receive the SMS...')
-ms.connect(nitb.mcc_mnc())
-wait(ms.is_connected, nitb.mcc_mnc())
-wait(nitb.subscriber_attached, ms)
-wait(ms.sms_was_received, msg)
-print('Waiting to receive and consume sms receipt with reference', umref)
-wait(esme.receipt_was_received, umref)
-
-print('checking MS can receive SMS while registered...')
-msg = Sms(esme.msisdn, ms.msisdn, 'smpp send already-registered message')
-umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)
-wait(ms.sms_was_received, msg)
-print('Waiting to receive and consume sms receipt with reference', umref)
-wait(esme.receipt_was_received, umref)
-esme.disconnect()
diff --git a/example/suites/nitb_smpp/esme_ms_sms_transaction.py b/example/suites/nitb_smpp/esme_ms_sms_transaction.py
deleted file mode 100755
index adc9dae..0000000
--- a/example/suites/nitb_smpp/esme_ms_sms_transaction.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python3
-
-# This test checks following use-cases:
-# * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously
-# defined in its configuration file.
-# * When SMS is sent in 'transaction' mode, ESME can send an SMS to an already registered MS.
-# * When SMS is sent in 'transaction' mode, ESME fails to send an SMS to non registered MS.
-
-from osmo_gsm_tester.testenv import *
-
-SMPP_ESME_RINVDSTADR = 0x0000000B
-
-nitb = suite.nitb()
-bts = suite.bts()
-ms = suite.modem()
-esme = suite.esme()
-
-print('start nitb and bts...')
-nitb.bts_add(bts)
-nitb.smsc.esme_add(esme)
-nitb.start()
-bts.start()
-wait(nitb.bts_is_connected, bts)
-
-esme.connect()
-nitb.subscriber_add(ms)
-ms.connect(nitb.mcc_mnc())
-
-ms.log_info()
-print('waiting for modem to attach...')
-wait(ms.is_connected, nitb.mcc_mnc())
-wait(nitb.subscriber_attached, ms)
-
-print('sending first sms...')
-msg = Sms(esme.msisdn, ms.msisdn, 'smpp send message')
-esme.sms_send(msg, esme.MSGMODE_TRANSACTION)
-wait(ms.sms_was_received, msg)
-
-print('sending second sms (unicode chars not in gsm aplhabet)...')
-msg = Sms(esme.msisdn, ms.msisdn, 'chars:[кизаçйж]')
-esme.sms_send(msg, esme.MSGMODE_TRANSACTION)
-wait(ms.sms_was_received, msg)
-
-wrong_msisdn = ms.msisdn + esme.msisdn
-print('sending third sms (with wrong msisdn %s)' % wrong_msisdn)
-msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')
-esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_TRANSACTION)
-
-esme.disconnect()
diff --git a/example/suites/nitb_smpp/suite.conf b/example/suites/nitb_smpp/suite.conf
deleted file mode 100644
index eb5dc01..0000000
--- a/example/suites/nitb_smpp/suite.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-resources:
- ip_address:
- - times: 1
- bts:
- - times: 1
- modem:
- - times: 1
- features:
- - sms
-
-defaults:
- timeout: 60s
diff --git a/example/suites/nitb_sms/mo_mt_sms.py b/example/suites/nitb_sms/mo_mt_sms.py
deleted file mode 100755
index 10897ff..0000000
--- a/example/suites/nitb_sms/mo_mt_sms.py
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-nitb = suite.nitb()
-bts = suite.bts()
-ms_mo = suite.modem()
-ms_mt = suite.modem()
-
-print('start nitb and bts...')
-nitb.bts_add(bts)
-nitb.start()
-bts.start()
-wait(nitb.bts_is_connected, bts)
-
-nitb.subscriber_add(ms_mo)
-nitb.subscriber_add(ms_mt)
-
-ms_mo.connect(nitb.mcc_mnc())
-ms_mt.connect(nitb.mcc_mnc())
-
-ms_mo.log_info()
-ms_mt.log_info()
-
-print('waiting for modems to attach...')
-wait(ms_mo.is_connected, nitb.mcc_mnc())
-wait(ms_mt.is_connected, nitb.mcc_mnc())
-wait(nitb.subscriber_attached, ms_mo, ms_mt)
-
-sms = ms_mo.sms_send(ms_mt)
-wait(ms_mt.sms_was_received, sms)
diff --git a/example/suites/nitb_sms/suite.conf b/example/suites/nitb_sms/suite.conf
deleted file mode 100644
index 485402b..0000000
--- a/example/suites/nitb_sms/suite.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-resources:
- ip_address:
- - times: 1
- bts:
- - times: 1
- modem:
- - times: 2
- features:
- - sms
-
-defaults:
- timeout: 60s
diff --git a/example/suites/nitb_ussd/assert_extension.py b/example/suites/nitb_ussd/assert_extension.py
deleted file mode 100755
index 8ccab2d..0000000
--- a/example/suites/nitb_ussd/assert_extension.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-USSD_COMMAND_GET_EXTENSION = '*#100#'
-
-nitb = suite.nitb()
-bts = suite.bts()
-ms = suite.modem()
-
-print('start nitb and bts...')
-nitb.bts_add(bts)
-nitb.start()
-bts.start()
-wait(nitb.bts_is_connected, bts)
-
-nitb.subscriber_add(ms)
-
-ms.connect(nitb.mcc_mnc())
-ms.log_info()
-
-print('waiting for modems to attach...')
-wait(ms.is_connected, nitb.mcc_mnc())
-wait(nitb.subscriber_attached, ms)
-
-# ofono (qmi) currently changes state to 'registered' jut after sending
-# 'Location Update Request', but before receiving 'Location Updating Accept'.
-# Which means we can reach lines below and send USSD code while still not being
-# attached, which will then fail. See OsmoGsmTester #2239 for more detailed
-# information.
-# Until we find an ofono fix or a better way to workaround this, let's just
-# sleep for a while in order to receive the 'Location Updating Accept' message
-# before attemting to send the USSD.
-sleep(10)
-
-print('Sending ussd code %s' % USSD_COMMAND_GET_EXTENSION)
-response = ms.ussd_send(USSD_COMMAND_GET_EXTENSION)
-assert ' ' + ms.msisdn + '\r' in response
diff --git a/example/suites/nitb_ussd/suite.conf b/example/suites/nitb_ussd/suite.conf
deleted file mode 100644
index 232a5d8..0000000
--- a/example/suites/nitb_ussd/suite.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-resources:
- ip_address:
- - times: 1
- bts:
- - times: 1
- modem:
- - times: 1
- features:
- - ussd
-
-defaults:
- timeout: 60s
diff --git a/example/suites/smpp/esme_connect_policy_acceptall.py b/example/suites/smpp/esme_connect_policy_acceptall.py
deleted file mode 100755
index 168b4f3..0000000
--- a/example/suites/smpp/esme_connect_policy_acceptall.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env python3
-
-# This test checks following use-cases while in 'accept-all' policy:
-# * SMPP interface of SMSC accepts SMPP clients (ESMEs) which do not appear on
-# the config file
-
-from osmo_gsm_tester.testenv import *
-
-hlr = suite.hlr()
-mgw_msc = suite.mgw()
-stp = suite.stp()
-msc = suite.msc(hlr, mgw_msc, stp)
-smsc = msc.smsc
-esme = suite.esme()
-
-# Here we deliberately omit calling smsc.esme_add() to avoid having it included
-# in the smsc config.
-smsc.set_smsc_policy(smsc.SMSC_POLICY_ACCEPT_ALL)
-esme.set_smsc(smsc)
-
-stp.start()
-hlr.start()
-msc.start()
-mgw_msc.start()
-
-# Due to accept-all policy, connect() should work even if we didn't previously
-# configure the esme in the smsc, no matter the system_id / password we use.
-log('Test connect with non-empty values in system_id and password')
-esme.set_system_id('foo')
-esme.set_password('bar')
-esme.connect()
-esme.disconnect()
-
-log('Test connect with empty values in system_id and password')
-esme.set_system_id('')
-esme.set_password('')
-esme.connect()
-esme.disconnect()
diff --git a/example/suites/smpp/esme_connect_policy_closed.py b/example/suites/smpp/esme_connect_policy_closed.py
deleted file mode 100755
index 487e5a4..0000000
--- a/example/suites/smpp/esme_connect_policy_closed.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python3
-
-# This test checks following use-cases while in 'closed' policy:
-# * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously
-# defined in its configuration file.
-# * SMPP interface of SMSC rejects ESMEs with known system id but wrong password.
-# * SMPP interface of SMSC rejects ESEMs with unknown system id
-
-from osmo_gsm_tester.testenv import *
-
-SMPP_ESME_RINVPASWD = 0x0000000E
-SMPP_ESME_RINVSYSID = 0x0000000F
-
-hlr = suite.hlr()
-bts = suite.bts()
-mgw_msc = suite.mgw()
-stp = suite.stp()
-msc = suite.msc(hlr, mgw_msc, stp)
-smsc = msc.smsc
-
-esme = suite.esme()
-esme_no_pwd = suite.esme()
-esme_no_pwd.set_password('')
-
-smsc.set_smsc_policy(smsc.SMSC_POLICY_CLOSED)
-smsc.esme_add(esme)
-smsc.esme_add(esme_no_pwd)
-
-stp.start()
-hlr.start()
-msc.start()
-mgw_msc.start()
-
-log('Test with correct credentials (no password)')
-esme_no_pwd.connect()
-esme_no_pwd.disconnect()
-
-log('Test with correct credentials (no password, non empty)')
-esme_no_pwd.set_password('foobar')
-esme_no_pwd.connect()
-esme_no_pwd.disconnect()
-
-log('Test with correct credentials')
-esme.connect()
-esme.disconnect()
-
-log('Test with bad password, checking for failure')
-correct_password = esme.password
-new_password = 'barfoo' if correct_password == 'foobar' else 'foobar'
-esme.set_password(new_password)
-esme.run_method_expect_failure(SMPP_ESME_RINVPASWD, esme.connect)
-esme.set_password(correct_password)
-
-log('Test with bad system_id, checking for failure')
-correct_system_id = esme.system_id
-new_system_id = 'barfoo' if correct_system_id == 'foobar' else 'foobar'
-esme.set_system_id(new_system_id)
-esme.run_method_expect_failure(SMPP_ESME_RINVSYSID, esme.connect)
-esme.set_system_id(correct_system_id)
diff --git a/example/suites/smpp/esme_ms_sms_storeforward.py b/example/suites/smpp/esme_ms_sms_storeforward.py
deleted file mode 100755
index 681bc29..0000000
--- a/example/suites/smpp/esme_ms_sms_storeforward.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python3
-
-# This test checks following use-cases:
-# * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously
-# defined in its configuration file.
-# * When SMS is sent in 'store & forward' mode, ESME fails to send an SMS to non registered MS.
-# * When SMS is sent in 'store & forward' mode, ESME can send an SMS to a not yet registered MS.
-# * When SMS is sent in 'store & forward' mode, ESME can send an SMS to an already registered MS.
-# * When SMS is sent in 'store & forward' mode, ESME receives a SMS receipt if it asked for it.
-
-from osmo_gsm_tester.testenv import *
-
-SMPP_ESME_RINVDSTADR = 0x0000000B
-
-hlr = suite.hlr()
-bts = suite.bts()
-mgw_msc = suite.mgw()
-mgw_bsc = suite.mgw()
-stp = suite.stp()
-msc = suite.msc(hlr, mgw_msc, stp)
-bsc = suite.bsc(msc, mgw_bsc, stp)
-bsc.bts_add(bts)
-
-ms = suite.modem()
-esme = suite.esme()
-msc.smsc.esme_add(esme)
-
-hlr.start()
-stp.start()
-msc.start()
-mgw_msc.start()
-mgw_bsc.start()
-bsc.start()
-bts.start()
-wait(bsc.bts_is_connected, bts)
-
-esme.connect()
-hlr.subscriber_add(ms)
-
-wrong_msisdn = ms.msisdn + esme.msisdn
-print('sending sms with wrong msisdn %s, it will be stored but not delivered' % wrong_msisdn)
-msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')
-# Since osmo-msc 1e67fea7ba5c6336, we accept all sms in store&forward mode without looking at HLR
-# esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_STOREFORWARD)
-umref_wrong = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)
-
-print('sending sms, it will be stored...')
-msg = Sms(esme.msisdn, ms.msisdn, 'smpp send not-yet-registered message')
-umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)
-
-print('MS registers and will receive the SMS...')
-ms.connect(msc.mcc_mnc())
-wait(ms.is_connected, msc.mcc_mnc())
-wait(msc.subscriber_attached, ms)
-wait(ms.sms_was_received, msg)
-print('Waiting to receive and consume sms receipt with reference', umref)
-wait(esme.receipt_was_received, umref)
-
-print('checking MS can receive SMS while registered...')
-msg = Sms(esme.msisdn, ms.msisdn, 'smpp send already-registered message')
-umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)
-wait(ms.sms_was_received, msg)
-print('Waiting to receive and consume sms receipt with reference', umref)
-wait(esme.receipt_was_received, umref)
-
-print('Asserting the sms with wrong msisdn was not delivered', umref_wrong)
-assert not esme.receipt_was_received(umref_wrong)
-
-esme.disconnect()
diff --git a/example/suites/smpp/esme_ms_sms_transaction.py b/example/suites/smpp/esme_ms_sms_transaction.py
deleted file mode 100755
index 16b01cc..0000000
--- a/example/suites/smpp/esme_ms_sms_transaction.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python3
-
-# This test checks following use-cases:
-# * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously
-# defined in its configuration file.
-# * When SMS is sent in 'transaction' mode, ESME can send an SMS to an already registered MS.
-# * When SMS is sent in 'transaction' mode, ESME fails to send an SMS to non registered MS.
-
-from osmo_gsm_tester.testenv import *
-
-SMPP_ESME_RINVDSTADR = 0x0000000B
-
-hlr = suite.hlr()
-bts = suite.bts()
-mgw_msc = suite.mgw()
-mgw_bsc = suite.mgw()
-stp = suite.stp()
-msc = suite.msc(hlr, mgw_msc, stp)
-bsc = suite.bsc(msc, mgw_bsc, stp)
-bsc.bts_add(bts)
-
-ms = suite.modem()
-esme = suite.esme()
-msc.smsc.esme_add(esme)
-
-hlr.start()
-stp.start()
-msc.start()
-mgw_msc.start()
-mgw_bsc.start()
-bsc.start()
-bts.start()
-wait(bsc.bts_is_connected, bts)
-
-esme.connect()
-hlr.subscriber_add(ms)
-ms.connect(msc.mcc_mnc())
-
-ms.log_info()
-print('waiting for modem to attach...')
-wait(ms.is_connected, msc.mcc_mnc())
-wait(msc.subscriber_attached, ms)
-
-print('sending first sms...')
-msg = Sms(esme.msisdn, ms.msisdn, 'smpp send message')
-esme.sms_send(msg, esme.MSGMODE_TRANSACTION)
-wait(ms.sms_was_received, msg)
-
-print('sending second sms (unicode chars not in gsm aplhabet)...')
-msg = Sms(esme.msisdn, ms.msisdn, 'chars:[кизаçйж]')
-esme.sms_send(msg, esme.MSGMODE_TRANSACTION)
-wait(ms.sms_was_received, msg)
-
-wrong_msisdn = ms.msisdn + esme.msisdn
-print('sending third sms (with wrong msisdn %s)' % wrong_msisdn)
-msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')
-esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_TRANSACTION)
-
-esme.disconnect()
diff --git a/example/suites/smpp/suite.conf b/example/suites/smpp/suite.conf
deleted file mode 100644
index 61e7015..0000000
--- a/example/suites/smpp/suite.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-resources:
- ip_address:
- - times: 6 # msc, bsc, hlr, stp, mgw*2
- bts:
- - times: 1
- modem:
- - times: 1
- features:
- - sms
-
-defaults:
- timeout: 60s
diff --git a/example/suites/sms/mo_mt_sms.py b/example/suites/sms/mo_mt_sms.py
deleted file mode 100755
index 7654ea6..0000000
--- a/example/suites/sms/mo_mt_sms.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-hlr = suite.hlr()
-bts = suite.bts()
-mgw_msc = suite.mgw()
-mgw_bsc = suite.mgw()
-stp = suite.stp()
-msc = suite.msc(hlr, mgw_msc, stp)
-bsc = suite.bsc(msc, mgw_bsc, stp)
-ms_mo = suite.modem()
-ms_mt = suite.modem()
-
-hlr.start()
-stp.start()
-msc.start()
-mgw_msc.start()
-mgw_bsc.start()
-
-bsc.bts_add(bts)
-bsc.start()
-
-bts.start()
-wait(bsc.bts_is_connected, bts)
-
-hlr.subscriber_add(ms_mo)
-hlr.subscriber_add(ms_mt)
-
-ms_mo.connect(msc.mcc_mnc())
-ms_mt.connect(msc.mcc_mnc())
-
-ms_mo.log_info()
-ms_mt.log_info()
-
-print('waiting for modems to attach...')
-wait(ms_mo.is_connected, msc.mcc_mnc())
-wait(ms_mt.is_connected, msc.mcc_mnc())
-wait(msc.subscriber_attached, ms_mo, ms_mt)
-
-sms = ms_mo.sms_send(ms_mt)
-wait(ms_mt.sms_was_received, sms)
diff --git a/example/suites/sms/suite.conf b/example/suites/sms/suite.conf
deleted file mode 100644
index 28a81ea..0000000
--- a/example/suites/sms/suite.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-resources:
- ip_address:
- - times: 6 # msc, bsc, hlr, stp, mgw*2
- bts:
- - times: 1
- modem:
- - times: 2
- features:
- - sms
diff --git a/example/suites/ussd/assert_extension.py b/example/suites/ussd/assert_extension.py
deleted file mode 100755
index 475de09..0000000
--- a/example/suites/ussd/assert_extension.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-USSD_COMMAND_GET_EXTENSION = '*#100#'
-
-hlr = suite.hlr()
-bts = suite.bts()
-mgw_msc = suite.mgw()
-mgw_bsc = suite.mgw()
-stp = suite.stp()
-msc = suite.msc(hlr, mgw_msc, stp)
-bsc = suite.bsc(msc, mgw_bsc, stp)
-ms = suite.modem()
-
-hlr.start()
-stp.start()
-msc.start()
-mgw_msc.start()
-mgw_bsc.start()
-
-bsc.bts_add(bts)
-bsc.start()
-
-bts.start()
-wait(bsc.bts_is_connected, bts)
-
-hlr.subscriber_add(ms)
-
-ms.connect(msc.mcc_mnc())
-
-ms.log_info()
-
-print('waiting for modems to attach...')
-wait(ms.is_connected, msc.mcc_mnc())
-wait(msc.subscriber_attached, ms)
-
-# ofono (qmi) currently changes state to 'registered' jut after sending
-# 'Location Update Request', but before receiving 'Location Updating Accept'.
-# Which means we can reach lines below and send USSD code while still not being
-# attached, which will then fail. See OsmoGsmTester #2239 for more detailed
-# information.
-# Until we find an ofono fix or a better way to workaround this, let's just
-# sleep for a while in order to receive the 'Location Updating Accept' message
-# before attemting to send the USSD.
-sleep(10)
-
-print('Sending ussd code %s' % USSD_COMMAND_GET_EXTENSION)
-response = ms.ussd_send(USSD_COMMAND_GET_EXTENSION)
-log('got ussd response: %r' % repr(response))
-assert response.endswith(' ' + ms.msisdn)
diff --git a/example/suites/ussd/suite.conf b/example/suites/ussd/suite.conf
deleted file mode 100644
index 460147a..0000000
--- a/example/suites/ussd/suite.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-resources:
- ip_address:
- - times: 6 # msc, bsc, hlr, stp, mgw*2
- bts:
- - times: 1
- modem:
- - times: 1
- features:
- - ussd
diff --git a/example/suites/voice/lib/testlib.py b/example/suites/voice/lib/testlib.py
deleted file mode 100644
index 7d934f1..0000000
--- a/example/suites/voice/lib/testlib.py
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-def test_mo_mt_call(use_osmux=False, force_osmux=False):
- hlr = suite.hlr()
- bts = suite.bts()
- mgw_msc = suite.mgw()
- mgw_bsc = suite.mgw()
- stp = suite.stp()
- msc = suite.msc(hlr, mgw_msc, stp)
- bsc = suite.bsc(msc, mgw_bsc, stp)
- ms_mo = suite.modem()
- ms_mt = suite.modem()
-
- hlr.start()
- stp.start()
-
- msc.set_use_osmux(use_osmux, force_osmux)
- msc.start()
-
- # osmo-msc still doesn't support linking 2 internal leg calls through Osmux
- # if both calls are using Osmux. Currently, RTP is always used between the 2
- # endpoints of the MGW. See OS#4065.
- mgw_msc.set_use_osmux(use_osmux, False)
- mgw_msc.start()
-
- # We don't want to force Osmux in BSC_MGW since in MGW BTS-side is still RTP.
- mgw_bsc.set_use_osmux(use_osmux, False)
- mgw_bsc.start()
-
- bsc.set_use_osmux(use_osmux, force_osmux)
- bsc.bts_add(bts)
- bsc.start()
-
- bts.start()
- wait(bsc.bts_is_connected, bts)
-
- hlr.subscriber_add(ms_mo)
- hlr.subscriber_add(ms_mt)
-
- ms_mo.connect(msc.mcc_mnc())
- ms_mt.connect(msc.mcc_mnc())
-
- ms_mo.log_info()
- ms_mt.log_info()
-
- print('waiting for modems to attach...')
- wait(ms_mo.is_connected, msc.mcc_mnc())
- wait(ms_mt.is_connected, msc.mcc_mnc())
- wait(msc.subscriber_attached, ms_mo, ms_mt)
-
- assert len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0
- mo_cid = ms_mo.call_dial(ms_mt)
- mt_cid = ms_mt.call_wait_incoming(ms_mo)
- print('dial success')
-
- assert not ms_mo.call_is_active(mo_cid) and not ms_mt.call_is_active(mt_cid)
- ms_mt.call_answer(mt_cid)
- wait(ms_mo.call_is_active, mo_cid)
- wait(ms_mt.call_is_active, mt_cid)
- print('answer success, call established and ongoing')
-
- sleep(5) # maintain the call active for 5 seconds
-
- assert ms_mo.call_is_active(mo_cid) and ms_mt.call_is_active(mt_cid)
- ms_mt.call_hangup(mt_cid)
- wait(lambda: len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0)
- print('hangup success')
diff --git a/example/suites/voice/mo_mt_call.py b/example/suites/voice/mo_mt_call.py
deleted file mode 100755
index 740b1fe..0000000
--- a/example/suites/voice/mo_mt_call.py
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-import testlib
-suite.test_import_modules_register_for_cleanup(testlib)
-from testlib import test_mo_mt_call
-
-test_mo_mt_call(False, False)
diff --git a/example/suites/voice/mo_mt_call_osmux.py b/example/suites/voice/mo_mt_call_osmux.py
deleted file mode 100755
index acf7d71..0000000
--- a/example/suites/voice/mo_mt_call_osmux.py
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python3
-from osmo_gsm_tester.testenv import *
-
-import testlib
-suite.test_import_modules_register_for_cleanup(testlib)
-from testlib import test_mo_mt_call
-
-test_mo_mt_call(True, True)
diff --git a/example/suites/voice/suite.conf b/example/suites/voice/suite.conf
deleted file mode 100644
index 522b1ca..0000000
--- a/example/suites/voice/suite.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-resources:
- ip_address:
- - times: 6 # msc, bsc, hlr, stp, mgw*2
- bts:
- - times: 1
- modem:
- - times: 2
- features:
- - voice