From 99bed8bdb286bac4b7d3d5c2297aea30fd82e709 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 10 Apr 2020 17:49:01 +0200 Subject: 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 --- example/README.txt | 30 --- example/default-suites.conf | 165 ------------- example/defaults.conf | 142 ----------- example/paths.conf | 3 - example/resources.conf.prod | 274 --------------------- example/resources.conf.rnd | 101 -------- example/resources.conf.virtual | 243 ------------------ example/scenarios/amarisoftenb-rftype@.conf | 4 - example/scenarios/amarisoftue-rftype@.conf | 4 - example/scenarios/band-1800.conf | 3 - example/scenarios/band-1900.conf | 3 - example/scenarios/band-900.conf | 3 - example/scenarios/cfg-amarisoft-license@.conf | 3 - example/scenarios/cfg-codec-fr-any.conf | 7 - example/scenarios/cfg-codec-fr1.conf | 5 - example/scenarios/cfg-codec-fr2.conf | 5 - example/scenarios/cfg-codec-fr3.conf | 5 - example/scenarios/cfg-codec-hr1.conf | 5 - example/scenarios/cfg-codec-hr3.conf | 5 - example/scenarios/cfg-epc-qci@.conf | 3 - example/scenarios/cfg-epc-type@.conf | 3 - example/scenarios/cfg-iperf3-time@.conf | 3 - example/scenarios/cfg-srs-enable-pcap.conf | 7 - example/scenarios/cipher-a50.conf | 7 - example/scenarios/cipher-a51.conf | 7 - example/scenarios/mfeature-gprs.conf | 4 - example/scenarios/mod-bts0-chanallocdescend.conf | 3 - example/scenarios/mod-bts0-dynts-ipa.conf | 13 - example/scenarios/mod-bts0-dynts-osmo.conf | 13 - .../mod-bts0-dynts67-ipa-compat-nanobts.conf | 13 - example/scenarios/mod-bts0-dynts67-ipa.conf | 13 - example/scenarios/mod-bts0-dynts67-osmo.conf | 13 - example/scenarios/mod-bts0-egprs.conf | 3 - example/scenarios/mod-bts0-numtrx2.conf | 3 - example/scenarios/mod-bts0-trxdversion0.conf | 4 - example/scenarios/mod-bts0-ts-tchf.conf | 13 - example/scenarios/mod-bts0-ts-tchh.conf | 13 - example/scenarios/mod-enb-args@.conf | 3 - example/scenarios/mod-enb-meas-event@.conf | 7 - example/scenarios/mod-enb-ncells@.conf | 3 - example/scenarios/mod-enb-nprb@.conf | 3 - example/scenarios/mod-enb-txmode@.conf | 3 - example/scenarios/mod-modem-args@.conf | 3 - .../scenarios/mod-srsue-airplane_mode_sim@.conf | 4 - example/scenarios/mod-srsue-ncarriers@.conf | 3 - example/scenarios/nanobts.conf | 3 - example/scenarios/oc2g.conf | 3 - example/scenarios/octphy.conf | 3 - example/scenarios/srsenb-rftype@.conf | 4 - example/scenarios/srsue-rftype@.conf | 4 - example/scenarios/sysmo.conf | 3 - example/scenarios/trx-b200.conf | 4 - example/scenarios/trx-lms-limenet-micro.conf | 4 - example/scenarios/trx-lms.conf | 4 - example/scenarios/trx-sysmocell5000.conf | 4 - example/scenarios/trx-umtrx.conf | 4 - example/scenarios/trx.conf | 3 - example/suites/4g/iperf3_dl.py | 49 ---- example/suites/4g/iperf3_ul.py | 49 ---- example/suites/4g/ping.py | 25 -- example/suites/4g/suite.conf | 12 - example/suites/debug/interactive.py | 163 ------------ example/suites/debug/suite.conf | 7 - example/suites/dynts/suite.conf | 10 - example/suites/dynts/switch_tch_pdch.py | 98 -------- example/suites/encryption/lib/testlib.py | 54 ---- example/suites/encryption/register_a5_0_authopt.py | 8 - example/suites/encryption/register_a5_0_authreq.py | 8 - example/suites/encryption/register_a5_1_authreq.py | 8 - example/suites/encryption/register_a5_3_authreq.py | 8 - example/suites/encryption/suite.conf | 16 -- example/suites/gprs/cs_paging_gprs_active.py | 38 --- example/suites/gprs/iperf3.py | 8 - example/suites/gprs/iperf3m4.py | 8 - example/suites/gprs/lib/testlib.py | 116 --------- example/suites/gprs/ping.py | 71 ------ example/suites/gprs/ping_idle_ping.py | 81 ------ example/suites/gprs/suite.conf | 13 - example/suites/nitb_debug/error.py | 5 - example/suites/nitb_debug/fail.py | 5 - example/suites/nitb_debug/fail_raise.py | 8 - example/suites/nitb_debug/interactive.py | 111 --------- example/suites/nitb_debug/pass.py | 5 - example/suites/nitb_debug/suite.conf | 10 - example/suites/nitb_netreg/register.py | 22 -- example/suites/nitb_netreg/register_default.py | 22 -- example/suites/nitb_netreg/suite.conf | 10 - .../nitb_netreg_mass/register_default_mass.py | 53 ---- example/suites/nitb_netreg_mass/suite.conf | 11 - .../nitb_smpp/esme_connect_policy_acceptall.py | 32 --- .../suites/nitb_smpp/esme_connect_policy_closed.py | 51 ---- .../suites/nitb_smpp/esme_ms_sms_storeforward.py | 53 ---- .../suites/nitb_smpp/esme_ms_sms_transaction.py | 49 ---- example/suites/nitb_smpp/suite.conf | 12 - example/suites/nitb_sms/mo_mt_sms.py | 30 --- example/suites/nitb_sms/suite.conf | 12 - example/suites/nitb_ussd/assert_extension.py | 37 --- example/suites/nitb_ussd/suite.conf | 12 - .../suites/smpp/esme_connect_policy_acceptall.py | 38 --- example/suites/smpp/esme_connect_policy_closed.py | 59 ----- example/suites/smpp/esme_ms_sms_storeforward.py | 69 ------ example/suites/smpp/esme_ms_sms_transaction.py | 59 ----- example/suites/smpp/suite.conf | 12 - example/suites/sms/mo_mt_sms.py | 41 --- example/suites/sms/suite.conf | 9 - example/suites/ussd/assert_extension.py | 50 ---- example/suites/ussd/suite.conf | 9 - example/suites/voice/lib/testlib.py | 68 ----- example/suites/voice/mo_mt_call.py | 8 - example/suites/voice/mo_mt_call_osmux.py | 8 - example/suites/voice/suite.conf | 9 - 111 files changed, 3059 deletions(-) delete mode 100644 example/README.txt delete mode 100644 example/default-suites.conf delete mode 100644 example/defaults.conf delete mode 100644 example/paths.conf delete mode 100644 example/resources.conf.prod delete mode 100644 example/resources.conf.rnd delete mode 100644 example/resources.conf.virtual delete mode 100644 example/scenarios/amarisoftenb-rftype@.conf delete mode 100644 example/scenarios/amarisoftue-rftype@.conf delete mode 100644 example/scenarios/band-1800.conf delete mode 100644 example/scenarios/band-1900.conf delete mode 100644 example/scenarios/band-900.conf delete mode 100644 example/scenarios/cfg-amarisoft-license@.conf delete mode 100644 example/scenarios/cfg-codec-fr-any.conf delete mode 100644 example/scenarios/cfg-codec-fr1.conf delete mode 100644 example/scenarios/cfg-codec-fr2.conf delete mode 100644 example/scenarios/cfg-codec-fr3.conf delete mode 100644 example/scenarios/cfg-codec-hr1.conf delete mode 100644 example/scenarios/cfg-codec-hr3.conf delete mode 100644 example/scenarios/cfg-epc-qci@.conf delete mode 100644 example/scenarios/cfg-epc-type@.conf delete mode 100644 example/scenarios/cfg-iperf3-time@.conf delete mode 100644 example/scenarios/cfg-srs-enable-pcap.conf delete mode 100644 example/scenarios/cipher-a50.conf delete mode 100644 example/scenarios/cipher-a51.conf delete mode 100644 example/scenarios/mfeature-gprs.conf delete mode 100644 example/scenarios/mod-bts0-chanallocdescend.conf delete mode 100644 example/scenarios/mod-bts0-dynts-ipa.conf delete mode 100644 example/scenarios/mod-bts0-dynts-osmo.conf delete mode 100644 example/scenarios/mod-bts0-dynts67-ipa-compat-nanobts.conf delete mode 100644 example/scenarios/mod-bts0-dynts67-ipa.conf delete mode 100644 example/scenarios/mod-bts0-dynts67-osmo.conf delete mode 100644 example/scenarios/mod-bts0-egprs.conf delete mode 100644 example/scenarios/mod-bts0-numtrx2.conf delete mode 100644 example/scenarios/mod-bts0-trxdversion0.conf delete mode 100644 example/scenarios/mod-bts0-ts-tchf.conf delete mode 100644 example/scenarios/mod-bts0-ts-tchh.conf delete mode 100644 example/scenarios/mod-enb-args@.conf delete mode 100644 example/scenarios/mod-enb-meas-event@.conf delete mode 100644 example/scenarios/mod-enb-ncells@.conf delete mode 100644 example/scenarios/mod-enb-nprb@.conf delete mode 100644 example/scenarios/mod-enb-txmode@.conf delete mode 100644 example/scenarios/mod-modem-args@.conf delete mode 100644 example/scenarios/mod-srsue-airplane_mode_sim@.conf delete mode 100644 example/scenarios/mod-srsue-ncarriers@.conf delete mode 100644 example/scenarios/nanobts.conf delete mode 100644 example/scenarios/oc2g.conf delete mode 100644 example/scenarios/octphy.conf delete mode 100644 example/scenarios/srsenb-rftype@.conf delete mode 100644 example/scenarios/srsue-rftype@.conf delete mode 100644 example/scenarios/sysmo.conf delete mode 100644 example/scenarios/trx-b200.conf delete mode 100644 example/scenarios/trx-lms-limenet-micro.conf delete mode 100644 example/scenarios/trx-lms.conf delete mode 100644 example/scenarios/trx-sysmocell5000.conf delete mode 100644 example/scenarios/trx-umtrx.conf delete mode 100644 example/scenarios/trx.conf delete mode 100755 example/suites/4g/iperf3_dl.py delete mode 100755 example/suites/4g/iperf3_ul.py delete mode 100755 example/suites/4g/ping.py delete mode 100644 example/suites/4g/suite.conf delete mode 100755 example/suites/debug/interactive.py delete mode 100644 example/suites/debug/suite.conf delete mode 100644 example/suites/dynts/suite.conf delete mode 100755 example/suites/dynts/switch_tch_pdch.py delete mode 100644 example/suites/encryption/lib/testlib.py delete mode 100755 example/suites/encryption/register_a5_0_authopt.py delete mode 100755 example/suites/encryption/register_a5_0_authreq.py delete mode 100755 example/suites/encryption/register_a5_1_authreq.py delete mode 100755 example/suites/encryption/register_a5_3_authreq.py delete mode 100644 example/suites/encryption/suite.conf delete mode 100755 example/suites/gprs/cs_paging_gprs_active.py delete mode 100755 example/suites/gprs/iperf3.py delete mode 100755 example/suites/gprs/iperf3m4.py delete mode 100644 example/suites/gprs/lib/testlib.py delete mode 100755 example/suites/gprs/ping.py delete mode 100755 example/suites/gprs/ping_idle_ping.py delete mode 100644 example/suites/gprs/suite.conf delete mode 100644 example/suites/nitb_debug/error.py delete mode 100644 example/suites/nitb_debug/fail.py delete mode 100644 example/suites/nitb_debug/fail_raise.py delete mode 100755 example/suites/nitb_debug/interactive.py delete mode 100644 example/suites/nitb_debug/pass.py delete mode 100644 example/suites/nitb_debug/suite.conf delete mode 100755 example/suites/nitb_netreg/register.py delete mode 100755 example/suites/nitb_netreg/register_default.py delete mode 100644 example/suites/nitb_netreg/suite.conf delete mode 100644 example/suites/nitb_netreg_mass/register_default_mass.py delete mode 100644 example/suites/nitb_netreg_mass/suite.conf delete mode 100755 example/suites/nitb_smpp/esme_connect_policy_acceptall.py delete mode 100755 example/suites/nitb_smpp/esme_connect_policy_closed.py delete mode 100755 example/suites/nitb_smpp/esme_ms_sms_storeforward.py delete mode 100755 example/suites/nitb_smpp/esme_ms_sms_transaction.py delete mode 100644 example/suites/nitb_smpp/suite.conf delete mode 100755 example/suites/nitb_sms/mo_mt_sms.py delete mode 100644 example/suites/nitb_sms/suite.conf delete mode 100755 example/suites/nitb_ussd/assert_extension.py delete mode 100644 example/suites/nitb_ussd/suite.conf delete mode 100755 example/suites/smpp/esme_connect_policy_acceptall.py delete mode 100755 example/suites/smpp/esme_connect_policy_closed.py delete mode 100755 example/suites/smpp/esme_ms_sms_storeforward.py delete mode 100755 example/suites/smpp/esme_ms_sms_transaction.py delete mode 100644 example/suites/smpp/suite.conf delete mode 100755 example/suites/sms/mo_mt_sms.py delete mode 100644 example/suites/sms/suite.conf delete mode 100755 example/suites/ussd/assert_extension.py delete mode 100644 example/suites/ussd/suite.conf delete mode 100644 example/suites/voice/lib/testlib.py delete mode 100755 example/suites/voice/mo_mt_call.py delete mode 100755 example/suites/voice/mo_mt_call_osmux.py delete mode 100644 example/suites/voice/suite.conf (limited to 'example') 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 [], call-dial , call-wait-incoming , call-answer , call-hangup , ussd , 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 [], call-dial , call-wait-incoming , call-answer , call-hangup , ussd ') - 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 -- cgit v1.2.3