<p>Pau Espin Pedrol <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/10931">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Sanitize existing suite names<br><br>When first suites were added, osmo-nitb was used. Then new tests using<br>regular split components were added with "aoip_" prefix. At some point<br>it was clear that osmo-nitb was being deprecated so new tests for split<br>components were added without any prefix, as they are expected to be the<br>default one. Since most current and future development is going to be done<br>for split components, as well as new tests added, it makes sense to move<br>the few old testsuites using osmo-nitb to have all "nitb_" prefix, while<br>keeping the split component tests without prefix as it's the regular<br>network topology.<br><br>Change-Id: Idea2e053d337548e0e9b1b47441dbb262124f909<br>---<br>M example/default-suites.conf<br>D suites/aoip_sms/mo_mt_sms.py<br>D suites/aoip_sms/suite.conf<br>M suites/debug/interactive.py<br>M suites/debug/suite.conf<br>R suites/encryption/register_a5_0_authopt.py<br>R suites/encryption/register_a5_0_authreq.py<br>R suites/encryption/register_a5_1_authreq.py<br>R suites/encryption/suite.conf<br>R suites/nitb_debug/error.py<br>R suites/nitb_debug/fail.py<br>R suites/nitb_debug/fail_raise.py<br>R suites/nitb_debug/interactive.py<br>R suites/nitb_debug/pass.py<br>R suites/nitb_debug/suite.conf<br>R suites/nitb_netreg/register.py<br>R suites/nitb_netreg/register_default.py<br>R suites/nitb_netreg/suite.conf<br>R suites/nitb_smpp/esme_connect_policy_acceptall.py<br>R suites/nitb_smpp/esme_connect_policy_closed.py<br>R suites/nitb_smpp/esme_ms_sms_storeforward.py<br>R suites/nitb_smpp/esme_ms_sms_transaction.py<br>C suites/nitb_smpp/suite.conf<br>A suites/nitb_sms/mo_mt_sms.py<br>R suites/nitb_sms/suite.conf<br>R suites/nitb_ussd/assert_extension.py<br>R suites/nitb_ussd/suite.conf<br>M suites/smpp/esme_connect_policy_acceptall.py<br>M suites/smpp/esme_connect_policy_closed.py<br>M suites/smpp/esme_ms_sms_storeforward.py<br>M suites/smpp/esme_ms_sms_transaction.py<br>M suites/smpp/suite.conf<br>M suites/sms/mo_mt_sms.py<br>M suites/sms/suite.conf<br>M suites/ussd/assert_extension.py<br>M suites/ussd/suite.conf<br>36 files changed, 287 insertions(+), 299 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/example/default-suites.conf b/example/default-suites.conf</span><br><span>index 6b6e1d0..af7e8de 100644</span><br><span>--- a/example/default-suites.conf</span><br><span>+++ b/example/default-suites.conf</span><br><span>@@ -1,7 +1,7 @@</span><br><span style="color: hsl(120, 100%, 40%);">+- nitb_sms:sysmo</span><br><span> - sms:sysmo</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_sms:sysmo</span><br><span style="color: hsl(120, 100%, 40%);">+- nitb_ussd:sysmo</span><br><span> - ussd:sysmo</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_ussd:sysmo</span><br><span> - voice:sysmo+mod-bts0-ts-tchf+cfg-codec-fr1</span><br><span> - voice:sysmo+mod-bts0-ts-tchf+cfg-codec-fr2</span><br><span> - voice:sysmo+mod-bts0-ts-tchf+cfg-codec-fr3</span><br><span>@@ -12,10 +12,10 @@</span><br><span> - gprs:sysmo</span><br><span> - gprs:sysmo+mod-bts0-dynts-ipa</span><br><span> - gprs:sysmo+mod-bts0-dynts-osmo</span><br><span style="color: hsl(120, 100%, 40%);">+- nitb_sms:trx-b200</span><br><span> - sms:trx-b200</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_sms:trx-b200</span><br><span style="color: hsl(120, 100%, 40%);">+- nitb_ussd:trx-b200</span><br><span> - ussd:trx-b200</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_ussd:trx-b200</span><br><span> - voice:trx-b200+mod-bts0-ts-tchf+cfg-codec-fr1</span><br><span> - voice:trx-b200+mod-bts0-ts-tchf+cfg-codec-fr2</span><br><span> - voice:trx-b200+mod-bts0-ts-tchf+cfg-codec-fr3</span><br><span>@@ -26,10 +26,10 @@</span><br><span> - gprs:trx-b200</span><br><span> - gprs:trx-b200+mod-bts0-dynts-ipa</span><br><span> - gprs:trx-b200+mod-bts0-dynts-osmo</span><br><span style="color: hsl(120, 100%, 40%);">+- nitb_sms:trx-sysmocell5000</span><br><span> - sms:trx-sysmocell5000</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_sms:trx-sysmocell5000</span><br><span style="color: hsl(120, 100%, 40%);">+- nitb_ussd:trx-sysmocell5000</span><br><span> - ussd:trx-sysmocell5000</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_ussd:trx-sysmocell5000</span><br><span> - voice:trx-sysmocell5000+mod-bts0-ts-tchf+cfg-codec-fr1</span><br><span> - voice:trx-sysmocell5000+mod-bts0-ts-tchf+cfg-codec-fr2</span><br><span> - voice:trx-sysmocell5000+mod-bts0-ts-tchf+cfg-codec-fr3</span><br><span>@@ -40,10 +40,10 @@</span><br><span> - gprs:trx-sysmocell5000</span><br><span> - gprs:trx-sysmocell5000+mod-bts0-dynts-ipa</span><br><span> - gprs:trx-sysmocell5000+mod-bts0-dynts-osmo</span><br><span style="color: hsl(0, 100%, 40%);">-- sms:nanobts</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_sms:nanobts+band-1900</span><br><span style="color: hsl(120, 100%, 40%);">+- nitb_sms:nanobts</span><br><span style="color: hsl(120, 100%, 40%);">+- sms:nanobts+band-1900</span><br><span style="color: hsl(120, 100%, 40%);">+- nitb_ussd:nanobts+band-1900</span><br><span> - ussd:nanobts+band-1900</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_ussd:nanobts+band-1900</span><br><span> - voice:nanobts+band-1900+mod-bts0-ts-tchf+cfg-codec-fr1</span><br><span> - voice:nanobts+band-1900+mod-bts0-ts-tchf+cfg-codec-fr2</span><br><span> - voice:nanobts+band-1900+mod-bts0-ts-tchf+cfg-codec-fr3</span><br><span>@@ -52,9 +52,9 @@</span><br><span> - voice:nanobts+band-1900+mod-bts0-dynts-ipa</span><br><span> - gprs:nanobts+band-1900</span><br><span> - gprs:nanobts+band-1900+mod-bts0-dynts-ipa</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_sms:nanobts+band-900</span><br><span style="color: hsl(120, 100%, 40%);">+- sms:nanobts+band-900</span><br><span style="color: hsl(120, 100%, 40%);">+- nitb_ussd:nanobts+band-900</span><br><span> - ussd:nanobts+band-900</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_ussd:nanobts+band-900</span><br><span> - voice:nanobts+band-900+mod-bts0-ts-tchf+cfg-codec-fr1</span><br><span> - voice:nanobts+band-900+mod-bts0-ts-tchf+cfg-codec-fr2</span><br><span> - voice:nanobts+band-900+mod-bts0-ts-tchf+cfg-codec-fr3</span><br><span>@@ -65,6 +65,6 @@</span><br><span> - gprs:nanobts+band-900</span><br><span> - gprs:nanobts+band-900+mod-bts0-dynts-ipa</span><br><span> - gprs:nanobts+band-900+mod-bts0-numtrx2+mod-bts0-chanallocdescend</span><br><span style="color: hsl(120, 100%, 40%);">+- nitb_smpp</span><br><span> - smpp</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_smpp</span><br><span style="color: hsl(0, 100%, 40%);">-- aoip_encryption</span><br><span style="color: hsl(120, 100%, 40%);">+- encryption</span><br><span>diff --git a/suites/aoip_sms/mo_mt_sms.py b/suites/aoip_sms/mo_mt_sms.py</span><br><span>deleted file mode 100755</span><br><span>index 7654ea6..0000000</span><br><span>--- a/suites/aoip_sms/mo_mt_sms.py</span><br><span>+++ /dev/null</span><br><span>@@ -1,41 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-#!/usr/bin/env python3</span><br><span style="color: hsl(0, 100%, 40%);">-from osmo_gsm_tester.testenv import *</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-hlr = suite.hlr()</span><br><span style="color: hsl(0, 100%, 40%);">-bts = suite.bts()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_bsc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-stp = suite.stp()</span><br><span style="color: hsl(0, 100%, 40%);">-msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(0, 100%, 40%);">-bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span style="color: hsl(0, 100%, 40%);">-ms_mo = suite.modem()</span><br><span style="color: hsl(0, 100%, 40%);">-ms_mt = suite.modem()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-hlr.start()</span><br><span style="color: hsl(0, 100%, 40%);">-stp.start()</span><br><span style="color: hsl(0, 100%, 40%);">-msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_bsc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-bsc.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-bsc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-bts.start()</span><br><span style="color: hsl(0, 100%, 40%);">-wait(bsc.bts_is_connected, bts)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-hlr.subscriber_add(ms_mo)</span><br><span style="color: hsl(0, 100%, 40%);">-hlr.subscriber_add(ms_mt)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-ms_mo.connect(msc.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-ms_mt.connect(msc.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-ms_mo.log_info()</span><br><span style="color: hsl(0, 100%, 40%);">-ms_mt.log_info()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-print('waiting for modems to attach...')</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms_mo.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms_mt.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(msc.subscriber_attached, ms_mo, ms_mt)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-sms = ms_mo.sms_send(ms_mt)</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms_mt.sms_was_received, sms)</span><br><span>diff --git a/suites/aoip_sms/suite.conf b/suites/aoip_sms/suite.conf</span><br><span>deleted file mode 100644</span><br><span>index 28a81ea..0000000</span><br><span>--- a/suites/aoip_sms/suite.conf</span><br><span>+++ /dev/null</span><br><span>@@ -1,9 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-resources:</span><br><span style="color: hsl(0, 100%, 40%);">-  ip_address:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 6 # msc, bsc, hlr, stp, mgw*2</span><br><span style="color: hsl(0, 100%, 40%);">-  bts:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 1</span><br><span style="color: hsl(0, 100%, 40%);">-  modem:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 2</span><br><span style="color: hsl(0, 100%, 40%);">-    features:</span><br><span style="color: hsl(0, 100%, 40%);">-    - sms</span><br><span>diff --git a/suites/debug/interactive.py b/suites/debug/interactive.py</span><br><span>index 595cfd9..98bf174 100755</span><br><span>--- a/suites/debug/interactive.py</span><br><span>+++ b/suites/debug/interactive.py</span><br><span>@@ -1,23 +1,43 @@</span><br><span> #!/usr/bin/env python3</span><br><span> from osmo_gsm_tester.testenv import *</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-print('use resources...')</span><br><span style="color: hsl(0, 100%, 40%);">-nitb = suite.nitb()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr = suite.hlr()</span><br><span> bts = suite.bts()</span><br><span style="color: hsl(120, 100%, 40%);">+pcu = bts.pcu()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+stp = suite.stp()</span><br><span style="color: hsl(120, 100%, 40%);">+ggsn = suite.ggsn()</span><br><span style="color: hsl(120, 100%, 40%);">+sgsn = suite.sgsn(hlr, ggsn)</span><br><span style="color: hsl(120, 100%, 40%);">+msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> modems = suite.modems(int(prompt('How many modems?')))</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-print('start nitb and bts...')</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.start()</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+sgsn.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.start()</span><br><span style="color: hsl(120, 100%, 40%);">+stp.start()</span><br><span style="color: hsl(120, 100%, 40%);">+ggsn.start()</span><br><span style="color: hsl(120, 100%, 40%);">+sgsn.start()</span><br><span style="color: hsl(120, 100%, 40%);">+msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> bts.start()</span><br><span style="color: hsl(0, 100%, 40%);">-wait(nitb.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+print('Waiting for bts to connect to bsc...')</span><br><span style="color: hsl(120, 100%, 40%);">+wait(bsc.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+print('Waiting for bts to be ready...')</span><br><span style="color: hsl(120, 100%, 40%);">+wait(bts.ready_for_pcu)</span><br><span style="color: hsl(120, 100%, 40%);">+pcu.start()</span><br><span> </span><br><span> for m in modems:</span><br><span style="color: hsl(0, 100%, 40%);">-  nitb.subscriber_add(m)</span><br><span style="color: hsl(0, 100%, 40%);">-  m.connect(nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+  hlr.subscriber_add(m)</span><br><span style="color: hsl(120, 100%, 40%);">+  m.connect(msc.mcc_mnc())</span><br><span> </span><br><span> while True:</span><br><span style="color: hsl(0, 100%, 40%);">-  cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered, call-list [<ms_msisdn>], call-dial <src_msisdn> <dst_msisdn>, call-wait-incoming <src_msisdn> <dst_msisdn>, call-answer <mt_msisdn> <call_id>, call-hangup <ms_msisdn> <call_id>, ussd <command>')</span><br><span style="color: hsl(120, 100%, 40%);">+  cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered, call-list [<ms_msisdn>], call-dial <src_msisdn> <dst_msisdn>, call-wait-incoming <src_msisdn> <dst_msisdn>, call-answer <mt_msisdn> <call_id>, call-hangup <ms_msisdn> <call_id>, ussd <command>, data-attach, data-wait, data-detach, data-activate')</span><br><span>   cmd = cmd.strip().lower()</span><br><span> </span><br><span>   if not cmd:</span><br><span>@@ -31,15 +51,15 @@</span><br><span>   elif 'wait-registered'.startswith(cmd):</span><br><span>     try:</span><br><span>       for m in modems:</span><br><span style="color: hsl(0, 100%, 40%);">-         wait(m.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-      wait(nitb.subscriber_attached, *modems)</span><br><span style="color: hsl(120, 100%, 40%);">+          wait(m.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+      wait(msc.subscriber_attached, *modems)</span><br><span>     except Timeout:</span><br><span>       print('Timeout while waiting for registration.')</span><br><span> </span><br><span>   elif 'get-registered'.startswith(cmd):</span><br><span style="color: hsl(0, 100%, 40%);">-    print(nitb.imsi_list_attached())</span><br><span style="color: hsl(120, 100%, 40%);">+    print(msc.imsi_list_attached())</span><br><span>     print('RESULT: %s' %</span><br><span style="color: hsl(0, 100%, 40%);">-       ('All modems are registered.' if nitb.subscriber_attached(*modems)</span><br><span style="color: hsl(120, 100%, 40%);">+       ('All modems are registered.' if msc.subscriber_attached(*modems)</span><br><span>         else 'Some modem(s) not registered yet.'))</span><br><span> </span><br><span>   elif 'sms'.startswith(cmd):</span><br><span>@@ -107,5 +127,34 @@</span><br><span>         response = ms.ussd_send(ussd_cmd)</span><br><span>         print('modem %s: response=%r' % (ms.name(), response))</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  elif cmd.startswith('data-attach'):</span><br><span style="color: hsl(120, 100%, 40%);">+    if len(params) != 1:</span><br><span style="color: hsl(120, 100%, 40%);">+      print('wrong format')</span><br><span style="color: hsl(120, 100%, 40%);">+      continue</span><br><span style="color: hsl(120, 100%, 40%);">+    for ms in modems:</span><br><span style="color: hsl(120, 100%, 40%);">+        print('modem %s: attach' % ms.name())</span><br><span style="color: hsl(120, 100%, 40%);">+        ms.attach()</span><br><span style="color: hsl(120, 100%, 40%);">+        wait(ms.is_attached)</span><br><span style="color: hsl(120, 100%, 40%);">+        print('modem %s: attached' % ms.name())</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  elif cmd.startswith('data-detach'):</span><br><span style="color: hsl(120, 100%, 40%);">+    if len(params) != 1:</span><br><span style="color: hsl(120, 100%, 40%);">+      print('wrong format')</span><br><span style="color: hsl(120, 100%, 40%);">+      continue</span><br><span style="color: hsl(120, 100%, 40%);">+    for ms in modems:</span><br><span style="color: hsl(120, 100%, 40%);">+        print('modem %s: detach' % ms.name())</span><br><span style="color: hsl(120, 100%, 40%);">+        ms.attach()</span><br><span style="color: hsl(120, 100%, 40%);">+        wait(lambda: not ms.is_attached())</span><br><span style="color: hsl(120, 100%, 40%);">+        print('modem %s: detached' % ms.name())</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  elif cmd.startswith('data-activate'):</span><br><span style="color: hsl(120, 100%, 40%);">+    if len(params) != 1:</span><br><span style="color: hsl(120, 100%, 40%);">+      print('wrong format')</span><br><span style="color: hsl(120, 100%, 40%);">+      continue</span><br><span style="color: hsl(120, 100%, 40%);">+    for ms in modems:</span><br><span style="color: hsl(120, 100%, 40%);">+        print('modem %s: activate' % ms.name())</span><br><span style="color: hsl(120, 100%, 40%);">+        response = ms.activate_context()</span><br><span style="color: hsl(120, 100%, 40%);">+        print('modem %s: response=%r' % (ms.name(), response))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   else:</span><br><span>       print('Unknown command: %s' % cmd)</span><br><span>diff --git a/suites/debug/suite.conf b/suites/debug/suite.conf</span><br><span>index adfc161..2f36e1d 100644</span><br><span>--- a/suites/debug/suite.conf</span><br><span>+++ b/suites/debug/suite.conf</span><br><span>@@ -1,10 +1,7 @@</span><br><span> resources:</span><br><span>   ip_address:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 1</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 8</span><br><span>   bts:</span><br><span>   - times: 1</span><br><span>   modem:</span><br><span>   - times: 4</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-defaults:</span><br><span style="color: hsl(0, 100%, 40%);">-  timeout: 60s</span><br><span>diff --git a/suites/aoip_encryption/register_a5_0_authopt.py b/suites/encryption/register_a5_0_authopt.py</span><br><span>similarity index 100%</span><br><span>rename from suites/aoip_encryption/register_a5_0_authopt.py</span><br><span>rename to suites/encryption/register_a5_0_authopt.py</span><br><span>diff --git a/suites/aoip_encryption/register_a5_0_authreq.py b/suites/encryption/register_a5_0_authreq.py</span><br><span>similarity index 100%</span><br><span>rename from suites/aoip_encryption/register_a5_0_authreq.py</span><br><span>rename to suites/encryption/register_a5_0_authreq.py</span><br><span>diff --git a/suites/aoip_encryption/register_a5_1_authreq.py b/suites/encryption/register_a5_1_authreq.py</span><br><span>similarity index 100%</span><br><span>rename from suites/aoip_encryption/register_a5_1_authreq.py</span><br><span>rename to suites/encryption/register_a5_1_authreq.py</span><br><span>diff --git a/suites/aoip_encryption/suite.conf b/suites/encryption/suite.conf</span><br><span>similarity index 100%</span><br><span>rename from suites/aoip_encryption/suite.conf</span><br><span>rename to suites/encryption/suite.conf</span><br><span>diff --git a/suites/debug/error.py b/suites/nitb_debug/error.py</span><br><span>similarity index 100%</span><br><span>rename from suites/debug/error.py</span><br><span>rename to suites/nitb_debug/error.py</span><br><span>diff --git a/suites/debug/fail.py b/suites/nitb_debug/fail.py</span><br><span>similarity index 100%</span><br><span>rename from suites/debug/fail.py</span><br><span>rename to suites/nitb_debug/fail.py</span><br><span>diff --git a/suites/debug/fail_raise.py b/suites/nitb_debug/fail_raise.py</span><br><span>similarity index 100%</span><br><span>rename from suites/debug/fail_raise.py</span><br><span>rename to suites/nitb_debug/fail_raise.py</span><br><span>diff --git a/suites/aoip_debug/interactive.py b/suites/nitb_debug/interactive.py</span><br><span>similarity index 63%</span><br><span>rename from suites/aoip_debug/interactive.py</span><br><span>rename to suites/nitb_debug/interactive.py</span><br><span>index 98bf174..595cfd9 100755</span><br><span>--- a/suites/aoip_debug/interactive.py</span><br><span>+++ b/suites/nitb_debug/interactive.py</span><br><span>@@ -1,43 +1,23 @@</span><br><span> #!/usr/bin/env python3</span><br><span> from osmo_gsm_tester.testenv import *</span><br><span style="color: hsl(0, 100%, 40%);">-hlr = suite.hlr()</span><br><span style="color: hsl(0, 100%, 40%);">-bts = suite.bts()</span><br><span style="color: hsl(0, 100%, 40%);">-pcu = bts.pcu()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_bsc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-stp = suite.stp()</span><br><span style="color: hsl(0, 100%, 40%);">-ggsn = suite.ggsn()</span><br><span style="color: hsl(0, 100%, 40%);">-sgsn = suite.sgsn(hlr, ggsn)</span><br><span style="color: hsl(0, 100%, 40%);">-msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(0, 100%, 40%);">-bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+print('use resources...')</span><br><span style="color: hsl(120, 100%, 40%);">+nitb = suite.nitb()</span><br><span style="color: hsl(120, 100%, 40%);">+bts = suite.bts()</span><br><span> modems = suite.modems(int(prompt('How many modems?')))</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-bsc.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-sgsn.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-hlr.start()</span><br><span style="color: hsl(0, 100%, 40%);">-stp.start()</span><br><span style="color: hsl(0, 100%, 40%);">-ggsn.start()</span><br><span style="color: hsl(0, 100%, 40%);">-sgsn.start()</span><br><span style="color: hsl(0, 100%, 40%);">-msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_bsc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-bsc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+print('start nitb and bts...')</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.start()</span><br><span> bts.start()</span><br><span style="color: hsl(0, 100%, 40%);">-print('Waiting for bts to connect to bsc...')</span><br><span style="color: hsl(0, 100%, 40%);">-wait(bsc.bts_is_connected, bts)</span><br><span style="color: hsl(0, 100%, 40%);">-print('Waiting for bts to be ready...')</span><br><span style="color: hsl(0, 100%, 40%);">-wait(bts.ready_for_pcu)</span><br><span style="color: hsl(0, 100%, 40%);">-pcu.start()</span><br><span style="color: hsl(120, 100%, 40%);">+wait(nitb.bts_is_connected, bts)</span><br><span> </span><br><span> for m in modems:</span><br><span style="color: hsl(0, 100%, 40%);">-  hlr.subscriber_add(m)</span><br><span style="color: hsl(0, 100%, 40%);">-  m.connect(msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+  nitb.subscriber_add(m)</span><br><span style="color: hsl(120, 100%, 40%);">+  m.connect(nitb.mcc_mnc())</span><br><span> </span><br><span> while True:</span><br><span style="color: hsl(0, 100%, 40%);">-  cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered, call-list [<ms_msisdn>], call-dial <src_msisdn> <dst_msisdn>, call-wait-incoming <src_msisdn> <dst_msisdn>, call-answer <mt_msisdn> <call_id>, call-hangup <ms_msisdn> <call_id>, ussd <command>, data-attach, data-wait, data-detach, data-activate')</span><br><span style="color: hsl(120, 100%, 40%);">+  cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered, call-list [<ms_msisdn>], call-dial <src_msisdn> <dst_msisdn>, call-wait-incoming <src_msisdn> <dst_msisdn>, call-answer <mt_msisdn> <call_id>, call-hangup <ms_msisdn> <call_id>, ussd <command>')</span><br><span>   cmd = cmd.strip().lower()</span><br><span> </span><br><span>   if not cmd:</span><br><span>@@ -51,15 +31,15 @@</span><br><span>   elif 'wait-registered'.startswith(cmd):</span><br><span>     try:</span><br><span>       for m in modems:</span><br><span style="color: hsl(0, 100%, 40%);">-          wait(m.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-      wait(msc.subscriber_attached, *modems)</span><br><span style="color: hsl(120, 100%, 40%);">+         wait(m.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+      wait(nitb.subscriber_attached, *modems)</span><br><span>     except Timeout:</span><br><span>       print('Timeout while waiting for registration.')</span><br><span> </span><br><span>   elif 'get-registered'.startswith(cmd):</span><br><span style="color: hsl(0, 100%, 40%);">-    print(msc.imsi_list_attached())</span><br><span style="color: hsl(120, 100%, 40%);">+    print(nitb.imsi_list_attached())</span><br><span>     print('RESULT: %s' %</span><br><span style="color: hsl(0, 100%, 40%);">-       ('All modems are registered.' if msc.subscriber_attached(*modems)</span><br><span style="color: hsl(120, 100%, 40%);">+       ('All modems are registered.' if nitb.subscriber_attached(*modems)</span><br><span>         else 'Some modem(s) not registered yet.'))</span><br><span> </span><br><span>   elif 'sms'.startswith(cmd):</span><br><span>@@ -127,34 +107,5 @@</span><br><span>         response = ms.ussd_send(ussd_cmd)</span><br><span>         print('modem %s: response=%r' % (ms.name(), response))</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  elif cmd.startswith('data-attach'):</span><br><span style="color: hsl(0, 100%, 40%);">-    if len(params) != 1:</span><br><span style="color: hsl(0, 100%, 40%);">-      print('wrong format')</span><br><span style="color: hsl(0, 100%, 40%);">-      continue</span><br><span style="color: hsl(0, 100%, 40%);">-    for ms in modems:</span><br><span style="color: hsl(0, 100%, 40%);">-        print('modem %s: attach' % ms.name())</span><br><span style="color: hsl(0, 100%, 40%);">-        ms.attach()</span><br><span style="color: hsl(0, 100%, 40%);">-        wait(ms.is_attached)</span><br><span style="color: hsl(0, 100%, 40%);">-        print('modem %s: attached' % ms.name())</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  elif cmd.startswith('data-detach'):</span><br><span style="color: hsl(0, 100%, 40%);">-    if len(params) != 1:</span><br><span style="color: hsl(0, 100%, 40%);">-      print('wrong format')</span><br><span style="color: hsl(0, 100%, 40%);">-      continue</span><br><span style="color: hsl(0, 100%, 40%);">-    for ms in modems:</span><br><span style="color: hsl(0, 100%, 40%);">-        print('modem %s: detach' % ms.name())</span><br><span style="color: hsl(0, 100%, 40%);">-        ms.attach()</span><br><span style="color: hsl(0, 100%, 40%);">-        wait(lambda: not ms.is_attached())</span><br><span style="color: hsl(0, 100%, 40%);">-        print('modem %s: detached' % ms.name())</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  elif cmd.startswith('data-activate'):</span><br><span style="color: hsl(0, 100%, 40%);">-    if len(params) != 1:</span><br><span style="color: hsl(0, 100%, 40%);">-      print('wrong format')</span><br><span style="color: hsl(0, 100%, 40%);">-      continue</span><br><span style="color: hsl(0, 100%, 40%);">-    for ms in modems:</span><br><span style="color: hsl(0, 100%, 40%);">-        print('modem %s: activate' % ms.name())</span><br><span style="color: hsl(0, 100%, 40%);">-        response = ms.activate_context()</span><br><span style="color: hsl(0, 100%, 40%);">-        print('modem %s: response=%r' % (ms.name(), response))</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>   else:</span><br><span>       print('Unknown command: %s' % cmd)</span><br><span>diff --git a/suites/debug/pass.py b/suites/nitb_debug/pass.py</span><br><span>similarity index 100%</span><br><span>rename from suites/debug/pass.py</span><br><span>rename to suites/nitb_debug/pass.py</span><br><span>diff --git a/suites/aoip_debug/suite.conf b/suites/nitb_debug/suite.conf</span><br><span>similarity index 63%</span><br><span>rename from suites/aoip_debug/suite.conf</span><br><span>rename to suites/nitb_debug/suite.conf</span><br><span>index 2f36e1d..adfc161 100644</span><br><span>--- a/suites/aoip_debug/suite.conf</span><br><span>+++ b/suites/nitb_debug/suite.conf</span><br><span>@@ -1,7 +1,10 @@</span><br><span> resources:</span><br><span>   ip_address:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 8</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 1</span><br><span>   bts:</span><br><span>   - times: 1</span><br><span>   modem:</span><br><span>   - times: 4</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+defaults:</span><br><span style="color: hsl(120, 100%, 40%);">+  timeout: 60s</span><br><span>diff --git a/suites/netreg/register.py b/suites/nitb_netreg/register.py</span><br><span>similarity index 100%</span><br><span>rename from suites/netreg/register.py</span><br><span>rename to suites/nitb_netreg/register.py</span><br><span>diff --git a/suites/netreg/register_default.py b/suites/nitb_netreg/register_default.py</span><br><span>similarity index 100%</span><br><span>rename from suites/netreg/register_default.py</span><br><span>rename to suites/nitb_netreg/register_default.py</span><br><span>diff --git a/suites/netreg/suite.conf b/suites/nitb_netreg/suite.conf</span><br><span>similarity index 100%</span><br><span>rename from suites/netreg/suite.conf</span><br><span>rename to suites/nitb_netreg/suite.conf</span><br><span>diff --git a/suites/aoip_smpp/esme_connect_policy_acceptall.py b/suites/nitb_smpp/esme_connect_policy_acceptall.py</span><br><span>similarity index 84%</span><br><span>rename from suites/aoip_smpp/esme_connect_policy_acceptall.py</span><br><span>rename to suites/nitb_smpp/esme_connect_policy_acceptall.py</span><br><span>index 168b4f3..904226b 100755</span><br><span>--- a/suites/aoip_smpp/esme_connect_policy_acceptall.py</span><br><span>+++ b/suites/nitb_smpp/esme_connect_policy_acceptall.py</span><br><span>@@ -6,11 +6,8 @@</span><br><span> </span><br><span> from osmo_gsm_tester.testenv import *</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-hlr = suite.hlr()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-stp = suite.stp()</span><br><span style="color: hsl(0, 100%, 40%);">-msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(0, 100%, 40%);">-smsc = msc.smsc</span><br><span style="color: hsl(120, 100%, 40%);">+nitb = suite.nitb()</span><br><span style="color: hsl(120, 100%, 40%);">+smsc = nitb.smsc</span><br><span> esme = suite.esme()</span><br><span> </span><br><span> # Here we deliberately omit calling smsc.esme_add() to avoid having it included</span><br><span>@@ -18,10 +15,7 @@</span><br><span> smsc.set_smsc_policy(smsc.SMSC_POLICY_ACCEPT_ALL)</span><br><span> esme.set_smsc(smsc)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-stp.start()</span><br><span style="color: hsl(0, 100%, 40%);">-hlr.start()</span><br><span style="color: hsl(0, 100%, 40%);">-msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.start()</span><br><span> </span><br><span> # Due to accept-all policy, connect() should work even if we didn't previously</span><br><span> # configure the esme in the smsc, no matter the system_id / password we use.</span><br><span>diff --git a/suites/aoip_smpp/esme_connect_policy_closed.py b/suites/nitb_smpp/esme_connect_policy_closed.py</span><br><span>similarity index 89%</span><br><span>rename from suites/aoip_smpp/esme_connect_policy_closed.py</span><br><span>rename to suites/nitb_smpp/esme_connect_policy_closed.py</span><br><span>index 487e5a4..eaabb3d 100755</span><br><span>--- a/suites/aoip_smpp/esme_connect_policy_closed.py</span><br><span>+++ b/suites/nitb_smpp/esme_connect_policy_closed.py</span><br><span>@@ -11,13 +11,8 @@</span><br><span> SMPP_ESME_RINVPASWD = 0x0000000E</span><br><span> SMPP_ESME_RINVSYSID = 0x0000000F</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-hlr = suite.hlr()</span><br><span style="color: hsl(0, 100%, 40%);">-bts = suite.bts()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-stp = suite.stp()</span><br><span style="color: hsl(0, 100%, 40%);">-msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(0, 100%, 40%);">-smsc = msc.smsc</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+nitb = suite.nitb()</span><br><span style="color: hsl(120, 100%, 40%);">+smsc = nitb.smsc</span><br><span> esme = suite.esme()</span><br><span> esme_no_pwd = suite.esme()</span><br><span> esme_no_pwd.set_password('')</span><br><span>@@ -26,10 +21,7 @@</span><br><span> smsc.esme_add(esme)</span><br><span> smsc.esme_add(esme_no_pwd)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-stp.start()</span><br><span style="color: hsl(0, 100%, 40%);">-hlr.start()</span><br><span style="color: hsl(0, 100%, 40%);">-msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.start()</span><br><span> </span><br><span> log('Test with correct credentials (no password)')</span><br><span> esme_no_pwd.connect()</span><br><span>diff --git a/suites/aoip_smpp/esme_ms_sms_storeforward.py b/suites/nitb_smpp/esme_ms_sms_storeforward.py</span><br><span>similarity index 63%</span><br><span>rename from suites/aoip_smpp/esme_ms_sms_storeforward.py</span><br><span>rename to suites/nitb_smpp/esme_ms_sms_storeforward.py</span><br><span>index 681bc29..391a040 100755</span><br><span>--- a/suites/aoip_smpp/esme_ms_sms_storeforward.py</span><br><span>+++ b/suites/nitb_smpp/esme_ms_sms_storeforward.py</span><br><span>@@ -12,46 +12,34 @@</span><br><span> </span><br><span> SMPP_ESME_RINVDSTADR = 0x0000000B</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-hlr = suite.hlr()</span><br><span style="color: hsl(120, 100%, 40%);">+nitb = suite.nitb()</span><br><span> bts = suite.bts()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_bsc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-stp = suite.stp()</span><br><span style="color: hsl(0, 100%, 40%);">-msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(0, 100%, 40%);">-bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span style="color: hsl(0, 100%, 40%);">-bsc.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> ms = suite.modem()</span><br><span> esme = suite.esme()</span><br><span style="color: hsl(0, 100%, 40%);">-msc.smsc.esme_add(esme)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-hlr.start()</span><br><span style="color: hsl(0, 100%, 40%);">-stp.start()</span><br><span style="color: hsl(0, 100%, 40%);">-msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_bsc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+print('start nitb and bts...')</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.smsc.esme_add(esme)</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.start()</span><br><span> bts.start()</span><br><span style="color: hsl(0, 100%, 40%);">-wait(bsc.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(nitb.bts_is_connected, bts)</span><br><span> </span><br><span> esme.connect()</span><br><span style="color: hsl(0, 100%, 40%);">-hlr.subscriber_add(ms)</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.subscriber_add(ms)</span><br><span> </span><br><span> wrong_msisdn = ms.msisdn + esme.msisdn</span><br><span style="color: hsl(0, 100%, 40%);">-print('sending sms with wrong msisdn %s, it will be stored but not delivered' % wrong_msisdn)</span><br><span style="color: hsl(120, 100%, 40%);">+print('sending sms with wrong msisdn %s, it will fail' % wrong_msisdn)</span><br><span> msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')</span><br><span style="color: hsl(0, 100%, 40%);">-# Since osmo-msc 1e67fea7ba5c6336, we accept all sms in store&forward mode without looking at HLR</span><br><span style="color: hsl(0, 100%, 40%);">-# esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_STOREFORWARD)</span><br><span style="color: hsl(0, 100%, 40%);">-umref_wrong = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)</span><br><span style="color: hsl(120, 100%, 40%);">+esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_STOREFORWARD)</span><br><span> </span><br><span> print('sending sms, it will be stored...')</span><br><span> msg = Sms(esme.msisdn, ms.msisdn, 'smpp send not-yet-registered message')</span><br><span> umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)</span><br><span> </span><br><span> print('MS registers and will receive the SMS...')</span><br><span style="color: hsl(0, 100%, 40%);">-ms.connect(msc.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(msc.subscriber_attached, ms)</span><br><span style="color: hsl(120, 100%, 40%);">+ms.connect(nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(nitb.subscriber_attached, ms)</span><br><span> wait(ms.sms_was_received, msg)</span><br><span> print('Waiting to receive and consume sms receipt with reference', umref)</span><br><span> wait(esme.receipt_was_received, umref)</span><br><span>@@ -62,8 +50,4 @@</span><br><span> wait(ms.sms_was_received, msg)</span><br><span> print('Waiting to receive and consume sms receipt with reference', umref)</span><br><span> wait(esme.receipt_was_received, umref)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-print('Asserting the sms with wrong msisdn was not delivered', umref_wrong)</span><br><span style="color: hsl(0, 100%, 40%);">-assert not esme.receipt_was_received(umref_wrong)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> esme.disconnect()</span><br><span>diff --git a/suites/aoip_smpp/esme_ms_sms_transaction.py b/suites/nitb_smpp/esme_ms_sms_transaction.py</span><br><span>similarity index 74%</span><br><span>rename from suites/aoip_smpp/esme_ms_sms_transaction.py</span><br><span>rename to suites/nitb_smpp/esme_ms_sms_transaction.py</span><br><span>index 16b01cc..adc9dae 100755</span><br><span>--- a/suites/aoip_smpp/esme_ms_sms_transaction.py</span><br><span>+++ b/suites/nitb_smpp/esme_ms_sms_transaction.py</span><br><span>@@ -10,36 +10,26 @@</span><br><span> </span><br><span> SMPP_ESME_RINVDSTADR = 0x0000000B</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-hlr = suite.hlr()</span><br><span style="color: hsl(120, 100%, 40%);">+nitb = suite.nitb()</span><br><span> bts = suite.bts()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_bsc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-stp = suite.stp()</span><br><span style="color: hsl(0, 100%, 40%);">-msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(0, 100%, 40%);">-bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span style="color: hsl(0, 100%, 40%);">-bsc.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> ms = suite.modem()</span><br><span> esme = suite.esme()</span><br><span style="color: hsl(0, 100%, 40%);">-msc.smsc.esme_add(esme)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-hlr.start()</span><br><span style="color: hsl(0, 100%, 40%);">-stp.start()</span><br><span style="color: hsl(0, 100%, 40%);">-msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_bsc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+print('start nitb and bts...')</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.smsc.esme_add(esme)</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.start()</span><br><span> bts.start()</span><br><span style="color: hsl(0, 100%, 40%);">-wait(bsc.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(nitb.bts_is_connected, bts)</span><br><span> </span><br><span> esme.connect()</span><br><span style="color: hsl(0, 100%, 40%);">-hlr.subscriber_add(ms)</span><br><span style="color: hsl(0, 100%, 40%);">-ms.connect(msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.subscriber_add(ms)</span><br><span style="color: hsl(120, 100%, 40%);">+ms.connect(nitb.mcc_mnc())</span><br><span> </span><br><span> ms.log_info()</span><br><span> print('waiting for modem to attach...')</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(msc.subscriber_attached, ms)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(nitb.subscriber_attached, ms)</span><br><span> </span><br><span> print('sending first sms...')</span><br><span> msg = Sms(esme.msisdn, ms.msisdn, 'smpp send message')</span><br><span>diff --git a/suites/aoip_smpp/suite.conf b/suites/nitb_smpp/suite.conf</span><br><span>similarity index 73%</span><br><span>copy from suites/aoip_smpp/suite.conf</span><br><span>copy to suites/nitb_smpp/suite.conf</span><br><span>index 61e7015..eb5dc01 100644</span><br><span>--- a/suites/aoip_smpp/suite.conf</span><br><span>+++ b/suites/nitb_smpp/suite.conf</span><br><span>@@ -1,6 +1,6 @@</span><br><span> resources:</span><br><span>   ip_address:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 6 # msc, bsc, hlr, stp, mgw*2</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 1</span><br><span>   bts:</span><br><span>   - times: 1</span><br><span>   modem:</span><br><span>diff --git a/suites/nitb_sms/mo_mt_sms.py b/suites/nitb_sms/mo_mt_sms.py</span><br><span>new file mode 100755</span><br><span>index 0000000..10897ff</span><br><span>--- /dev/null</span><br><span>+++ b/suites/nitb_sms/mo_mt_sms.py</span><br><span>@@ -0,0 +1,30 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/usr/bin/env python3</span><br><span style="color: hsl(120, 100%, 40%);">+from osmo_gsm_tester.testenv import *</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+nitb = suite.nitb()</span><br><span style="color: hsl(120, 100%, 40%);">+bts = suite.bts()</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mo = suite.modem()</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt = suite.modem()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+print('start nitb and bts...')</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.start()</span><br><span style="color: hsl(120, 100%, 40%);">+bts.start()</span><br><span style="color: hsl(120, 100%, 40%);">+wait(nitb.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.subscriber_add(ms_mo)</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.subscriber_add(ms_mt)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mo.connect(nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt.connect(nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mo.log_info()</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt.log_info()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+print('waiting for modems to attach...')</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mo.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mt.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(nitb.subscriber_attached, ms_mo, ms_mt)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+sms = ms_mo.sms_send(ms_mt)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mt.sms_was_received, sms)</span><br><span>diff --git a/suites/aoip_smpp/suite.conf b/suites/nitb_sms/suite.conf</span><br><span>similarity index 73%</span><br><span>rename from suites/aoip_smpp/suite.conf</span><br><span>rename to suites/nitb_sms/suite.conf</span><br><span>index 61e7015..485402b 100644</span><br><span>--- a/suites/aoip_smpp/suite.conf</span><br><span>+++ b/suites/nitb_sms/suite.conf</span><br><span>@@ -1,10 +1,10 @@</span><br><span> resources:</span><br><span>   ip_address:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 6 # msc, bsc, hlr, stp, mgw*2</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 1</span><br><span>   bts:</span><br><span>   - times: 1</span><br><span>   modem:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 1</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 2</span><br><span>     features:</span><br><span>     - sms</span><br><span> </span><br><span>diff --git a/suites/aoip_ussd/assert_extension.py b/suites/nitb_ussd/assert_extension.py</span><br><span>similarity index 63%</span><br><span>rename from suites/aoip_ussd/assert_extension.py</span><br><span>rename to suites/nitb_ussd/assert_extension.py</span><br><span>index 475de09..8ccab2d 100755</span><br><span>--- a/suites/aoip_ussd/assert_extension.py</span><br><span>+++ b/suites/nitb_ussd/assert_extension.py</span><br><span>@@ -3,36 +3,24 @@</span><br><span> </span><br><span> USSD_COMMAND_GET_EXTENSION = '*#100#'</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-hlr = suite.hlr()</span><br><span style="color: hsl(120, 100%, 40%);">+nitb = suite.nitb()</span><br><span> bts = suite.bts()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_bsc = suite.mgw()</span><br><span style="color: hsl(0, 100%, 40%);">-stp = suite.stp()</span><br><span style="color: hsl(0, 100%, 40%);">-msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(0, 100%, 40%);">-bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span> ms = suite.modem()</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-hlr.start()</span><br><span style="color: hsl(0, 100%, 40%);">-stp.start()</span><br><span style="color: hsl(0, 100%, 40%);">-msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_msc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-mgw_bsc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-bsc.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-bsc.start()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+print('start nitb and bts...')</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.start()</span><br><span> bts.start()</span><br><span style="color: hsl(0, 100%, 40%);">-wait(bsc.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(nitb.bts_is_connected, bts)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-hlr.subscriber_add(ms)</span><br><span style="color: hsl(120, 100%, 40%);">+nitb.subscriber_add(ms)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-ms.connect(msc.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+ms.connect(nitb.mcc_mnc())</span><br><span> ms.log_info()</span><br><span> </span><br><span> print('waiting for modems to attach...')</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(msc.subscriber_attached, ms)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(nitb.subscriber_attached, ms)</span><br><span> </span><br><span> # ofono (qmi) currently changes state to 'registered' jut after sending</span><br><span> # 'Location Update Request', but before receiving 'Location Updating Accept'.</span><br><span>@@ -46,5 +34,4 @@</span><br><span> </span><br><span> print('Sending ussd code %s' % USSD_COMMAND_GET_EXTENSION)</span><br><span> response = ms.ussd_send(USSD_COMMAND_GET_EXTENSION)</span><br><span style="color: hsl(0, 100%, 40%);">-log('got ussd response: %r' % repr(response))</span><br><span style="color: hsl(0, 100%, 40%);">-assert response.endswith(' ' + ms.msisdn)</span><br><span style="color: hsl(120, 100%, 40%);">+assert ' ' + ms.msisdn + '\r' in response</span><br><span>diff --git a/suites/aoip_ussd/suite.conf b/suites/nitb_ussd/suite.conf</span><br><span>similarity index 69%</span><br><span>rename from suites/aoip_ussd/suite.conf</span><br><span>rename to suites/nitb_ussd/suite.conf</span><br><span>index 460147a..232a5d8 100644</span><br><span>--- a/suites/aoip_ussd/suite.conf</span><br><span>+++ b/suites/nitb_ussd/suite.conf</span><br><span>@@ -1,9 +1,12 @@</span><br><span> resources:</span><br><span>   ip_address:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 6 # msc, bsc, hlr, stp, mgw*2</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 1</span><br><span>   bts:</span><br><span>   - times: 1</span><br><span>   modem:</span><br><span>   - times: 1</span><br><span>     features:</span><br><span>     - ussd</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+defaults:</span><br><span style="color: hsl(120, 100%, 40%);">+  timeout: 60s</span><br><span>diff --git a/suites/smpp/esme_connect_policy_acceptall.py b/suites/smpp/esme_connect_policy_acceptall.py</span><br><span>index 904226b..168b4f3 100755</span><br><span>--- a/suites/smpp/esme_connect_policy_acceptall.py</span><br><span>+++ b/suites/smpp/esme_connect_policy_acceptall.py</span><br><span>@@ -6,8 +6,11 @@</span><br><span> </span><br><span> from osmo_gsm_tester.testenv import *</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-nitb = suite.nitb()</span><br><span style="color: hsl(0, 100%, 40%);">-smsc = nitb.smsc</span><br><span style="color: hsl(120, 100%, 40%);">+hlr = suite.hlr()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+stp = suite.stp()</span><br><span style="color: hsl(120, 100%, 40%);">+msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+smsc = msc.smsc</span><br><span> esme = suite.esme()</span><br><span> </span><br><span> # Here we deliberately omit calling smsc.esme_add() to avoid having it included</span><br><span>@@ -15,7 +18,10 @@</span><br><span> smsc.set_smsc_policy(smsc.SMSC_POLICY_ACCEPT_ALL)</span><br><span> esme.set_smsc(smsc)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-nitb.start()</span><br><span style="color: hsl(120, 100%, 40%);">+stp.start()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.start()</span><br><span style="color: hsl(120, 100%, 40%);">+msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc.start()</span><br><span> </span><br><span> # Due to accept-all policy, connect() should work even if we didn't previously</span><br><span> # configure the esme in the smsc, no matter the system_id / password we use.</span><br><span>diff --git a/suites/smpp/esme_connect_policy_closed.py b/suites/smpp/esme_connect_policy_closed.py</span><br><span>index eaabb3d..487e5a4 100755</span><br><span>--- a/suites/smpp/esme_connect_policy_closed.py</span><br><span>+++ b/suites/smpp/esme_connect_policy_closed.py</span><br><span>@@ -11,8 +11,13 @@</span><br><span> SMPP_ESME_RINVPASWD = 0x0000000E</span><br><span> SMPP_ESME_RINVSYSID = 0x0000000F</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-nitb = suite.nitb()</span><br><span style="color: hsl(0, 100%, 40%);">-smsc = nitb.smsc</span><br><span style="color: hsl(120, 100%, 40%);">+hlr = suite.hlr()</span><br><span style="color: hsl(120, 100%, 40%);">+bts = suite.bts()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+stp = suite.stp()</span><br><span style="color: hsl(120, 100%, 40%);">+msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+smsc = msc.smsc</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> esme = suite.esme()</span><br><span> esme_no_pwd = suite.esme()</span><br><span> esme_no_pwd.set_password('')</span><br><span>@@ -21,7 +26,10 @@</span><br><span> smsc.esme_add(esme)</span><br><span> smsc.esme_add(esme_no_pwd)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-nitb.start()</span><br><span style="color: hsl(120, 100%, 40%);">+stp.start()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.start()</span><br><span style="color: hsl(120, 100%, 40%);">+msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc.start()</span><br><span> </span><br><span> log('Test with correct credentials (no password)')</span><br><span> esme_no_pwd.connect()</span><br><span>diff --git a/suites/smpp/esme_ms_sms_storeforward.py b/suites/smpp/esme_ms_sms_storeforward.py</span><br><span>index 391a040..681bc29 100755</span><br><span>--- a/suites/smpp/esme_ms_sms_storeforward.py</span><br><span>+++ b/suites/smpp/esme_ms_sms_storeforward.py</span><br><span>@@ -12,34 +12,46 @@</span><br><span> </span><br><span> SMPP_ESME_RINVDSTADR = 0x0000000B</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-nitb = suite.nitb()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr = suite.hlr()</span><br><span> bts = suite.bts()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+stp = suite.stp()</span><br><span style="color: hsl(120, 100%, 40%);">+msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> ms = suite.modem()</span><br><span> esme = suite.esme()</span><br><span style="color: hsl(120, 100%, 40%);">+msc.smsc.esme_add(esme)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-print('start nitb and bts...')</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.smsc.esme_add(esme)</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.start()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.start()</span><br><span style="color: hsl(120, 100%, 40%);">+stp.start()</span><br><span style="color: hsl(120, 100%, 40%);">+msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.start()</span><br><span> bts.start()</span><br><span style="color: hsl(0, 100%, 40%);">-wait(nitb.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(bsc.bts_is_connected, bts)</span><br><span> </span><br><span> esme.connect()</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.subscriber_add(ms)</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.subscriber_add(ms)</span><br><span> </span><br><span> wrong_msisdn = ms.msisdn + esme.msisdn</span><br><span style="color: hsl(0, 100%, 40%);">-print('sending sms with wrong msisdn %s, it will fail' % wrong_msisdn)</span><br><span style="color: hsl(120, 100%, 40%);">+print('sending sms with wrong msisdn %s, it will be stored but not delivered' % wrong_msisdn)</span><br><span> msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')</span><br><span style="color: hsl(0, 100%, 40%);">-esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_STOREFORWARD)</span><br><span style="color: hsl(120, 100%, 40%);">+# Since osmo-msc 1e67fea7ba5c6336, we accept all sms in store&forward mode without looking at HLR</span><br><span style="color: hsl(120, 100%, 40%);">+# esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_STOREFORWARD)</span><br><span style="color: hsl(120, 100%, 40%);">+umref_wrong = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)</span><br><span> </span><br><span> print('sending sms, it will be stored...')</span><br><span> msg = Sms(esme.msisdn, ms.msisdn, 'smpp send not-yet-registered message')</span><br><span> umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)</span><br><span> </span><br><span> print('MS registers and will receive the SMS...')</span><br><span style="color: hsl(0, 100%, 40%);">-ms.connect(nitb.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(nitb.subscriber_attached, ms)</span><br><span style="color: hsl(120, 100%, 40%);">+ms.connect(msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(msc.subscriber_attached, ms)</span><br><span> wait(ms.sms_was_received, msg)</span><br><span> print('Waiting to receive and consume sms receipt with reference', umref)</span><br><span> wait(esme.receipt_was_received, umref)</span><br><span>@@ -50,4 +62,8 @@</span><br><span> wait(ms.sms_was_received, msg)</span><br><span> print('Waiting to receive and consume sms receipt with reference', umref)</span><br><span> wait(esme.receipt_was_received, umref)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+print('Asserting the sms with wrong msisdn was not delivered', umref_wrong)</span><br><span style="color: hsl(120, 100%, 40%);">+assert not esme.receipt_was_received(umref_wrong)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> esme.disconnect()</span><br><span>diff --git a/suites/smpp/esme_ms_sms_transaction.py b/suites/smpp/esme_ms_sms_transaction.py</span><br><span>index adc9dae..16b01cc 100755</span><br><span>--- a/suites/smpp/esme_ms_sms_transaction.py</span><br><span>+++ b/suites/smpp/esme_ms_sms_transaction.py</span><br><span>@@ -10,26 +10,36 @@</span><br><span> </span><br><span> SMPP_ESME_RINVDSTADR = 0x0000000B</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-nitb = suite.nitb()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr = suite.hlr()</span><br><span> bts = suite.bts()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+stp = suite.stp()</span><br><span style="color: hsl(120, 100%, 40%);">+msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> ms = suite.modem()</span><br><span> esme = suite.esme()</span><br><span style="color: hsl(120, 100%, 40%);">+msc.smsc.esme_add(esme)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-print('start nitb and bts...')</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.smsc.esme_add(esme)</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.start()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.start()</span><br><span style="color: hsl(120, 100%, 40%);">+stp.start()</span><br><span style="color: hsl(120, 100%, 40%);">+msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.start()</span><br><span> bts.start()</span><br><span style="color: hsl(0, 100%, 40%);">-wait(nitb.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(bsc.bts_is_connected, bts)</span><br><span> </span><br><span> esme.connect()</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.subscriber_add(ms)</span><br><span style="color: hsl(0, 100%, 40%);">-ms.connect(nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.subscriber_add(ms)</span><br><span style="color: hsl(120, 100%, 40%);">+ms.connect(msc.mcc_mnc())</span><br><span> </span><br><span> ms.log_info()</span><br><span> print('waiting for modem to attach...')</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(nitb.subscriber_attached, ms)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(msc.subscriber_attached, ms)</span><br><span> </span><br><span> print('sending first sms...')</span><br><span> msg = Sms(esme.msisdn, ms.msisdn, 'smpp send message')</span><br><span>diff --git a/suites/smpp/suite.conf b/suites/smpp/suite.conf</span><br><span>index eb5dc01..61e7015 100644</span><br><span>--- a/suites/smpp/suite.conf</span><br><span>+++ b/suites/smpp/suite.conf</span><br><span>@@ -1,6 +1,6 @@</span><br><span> resources:</span><br><span>   ip_address:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 1</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 6 # msc, bsc, hlr, stp, mgw*2</span><br><span>   bts:</span><br><span>   - times: 1</span><br><span>   modem:</span><br><span>diff --git a/suites/sms/mo_mt_sms.py b/suites/sms/mo_mt_sms.py</span><br><span>index 10897ff..7654ea6 100755</span><br><span>--- a/suites/sms/mo_mt_sms.py</span><br><span>+++ b/suites/sms/mo_mt_sms.py</span><br><span>@@ -1,30 +1,41 @@</span><br><span> #!/usr/bin/env python3</span><br><span> from osmo_gsm_tester.testenv import *</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-nitb = suite.nitb()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr = suite.hlr()</span><br><span> bts = suite.bts()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+stp = suite.stp()</span><br><span style="color: hsl(120, 100%, 40%);">+msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span> ms_mo = suite.modem()</span><br><span> ms_mt = suite.modem()</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-print('start nitb and bts...')</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.start()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.start()</span><br><span style="color: hsl(120, 100%, 40%);">+stp.start()</span><br><span style="color: hsl(120, 100%, 40%);">+msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> bts.start()</span><br><span style="color: hsl(0, 100%, 40%);">-wait(nitb.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(bsc.bts_is_connected, bts)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-nitb.subscriber_add(ms_mo)</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.subscriber_add(ms_mt)</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.subscriber_add(ms_mo)</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.subscriber_add(ms_mt)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-ms_mo.connect(nitb.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-ms_mt.connect(nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mo.connect(msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt.connect(msc.mcc_mnc())</span><br><span> </span><br><span> ms_mo.log_info()</span><br><span> ms_mt.log_info()</span><br><span> </span><br><span> print('waiting for modems to attach...')</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms_mo.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms_mt.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(nitb.subscriber_attached, ms_mo, ms_mt)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mo.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mt.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(msc.subscriber_attached, ms_mo, ms_mt)</span><br><span> </span><br><span> sms = ms_mo.sms_send(ms_mt)</span><br><span> wait(ms_mt.sms_was_received, sms)</span><br><span>diff --git a/suites/sms/suite.conf b/suites/sms/suite.conf</span><br><span>index 485402b..28a81ea 100644</span><br><span>--- a/suites/sms/suite.conf</span><br><span>+++ b/suites/sms/suite.conf</span><br><span>@@ -1,12 +1,9 @@</span><br><span> resources:</span><br><span>   ip_address:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 1</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 6 # msc, bsc, hlr, stp, mgw*2</span><br><span>   bts:</span><br><span>   - times: 1</span><br><span>   modem:</span><br><span>   - times: 2</span><br><span>     features:</span><br><span>     - sms</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-defaults:</span><br><span style="color: hsl(0, 100%, 40%);">-  timeout: 60s</span><br><span>diff --git a/suites/ussd/assert_extension.py b/suites/ussd/assert_extension.py</span><br><span>index 8ccab2d..475de09 100755</span><br><span>--- a/suites/ussd/assert_extension.py</span><br><span>+++ b/suites/ussd/assert_extension.py</span><br><span>@@ -3,24 +3,36 @@</span><br><span> </span><br><span> USSD_COMMAND_GET_EXTENSION = '*#100#'</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-nitb = suite.nitb()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr = suite.hlr()</span><br><span> bts = suite.bts()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+stp = suite.stp()</span><br><span style="color: hsl(120, 100%, 40%);">+msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span> ms = suite.modem()</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-print('start nitb and bts...')</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.bts_add(bts)</span><br><span style="color: hsl(0, 100%, 40%);">-nitb.start()</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.start()</span><br><span style="color: hsl(120, 100%, 40%);">+stp.start()</span><br><span style="color: hsl(120, 100%, 40%);">+msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> bts.start()</span><br><span style="color: hsl(0, 100%, 40%);">-wait(nitb.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(bsc.bts_is_connected, bts)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-nitb.subscriber_add(ms)</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.subscriber_add(ms)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-ms.connect(nitb.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+ms.connect(msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> ms.log_info()</span><br><span> </span><br><span> print('waiting for modems to attach...')</span><br><span style="color: hsl(0, 100%, 40%);">-wait(ms.is_connected, nitb.mcc_mnc())</span><br><span style="color: hsl(0, 100%, 40%);">-wait(nitb.subscriber_attached, ms)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(msc.subscriber_attached, ms)</span><br><span> </span><br><span> # ofono (qmi) currently changes state to 'registered' jut after sending</span><br><span> # 'Location Update Request', but before receiving 'Location Updating Accept'.</span><br><span>@@ -34,4 +46,5 @@</span><br><span> </span><br><span> print('Sending ussd code %s' % USSD_COMMAND_GET_EXTENSION)</span><br><span> response = ms.ussd_send(USSD_COMMAND_GET_EXTENSION)</span><br><span style="color: hsl(0, 100%, 40%);">-assert ' ' + ms.msisdn + '\r' in response</span><br><span style="color: hsl(120, 100%, 40%);">+log('got ussd response: %r' % repr(response))</span><br><span style="color: hsl(120, 100%, 40%);">+assert response.endswith(' ' + ms.msisdn)</span><br><span>diff --git a/suites/ussd/suite.conf b/suites/ussd/suite.conf</span><br><span>index 232a5d8..460147a 100644</span><br><span>--- a/suites/ussd/suite.conf</span><br><span>+++ b/suites/ussd/suite.conf</span><br><span>@@ -1,12 +1,9 @@</span><br><span> resources:</span><br><span>   ip_address:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 1</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 6 # msc, bsc, hlr, stp, mgw*2</span><br><span>   bts:</span><br><span>   - times: 1</span><br><span>   modem:</span><br><span>   - times: 1</span><br><span>     features:</span><br><span>     - ussd</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-defaults:</span><br><span style="color: hsl(0, 100%, 40%);">-  timeout: 60s</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10931">change 10931</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/10931"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-tester </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Idea2e053d337548e0e9b1b47441dbb262124f909 </div>
<div style="display:none"> Gerrit-Change-Number: 10931 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>