Change in osmo-gsm-tester[master]: Add dynts suite to test switch between PDCH and TCH

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Tue Sep 25 10:21:25 UTC 2018


Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/11052 )

Change subject: Add dynts suite to test switch between PDCH and TCH
......................................................................

Add dynts suite to test switch between PDCH and TCH

It seems for not yet clear reasons the MS require some time after the
PDCH channels have been activated again to use them reliably. If no
sleep is used between call hangup and gprs activate pdp ctx, the MS
fails to activate the pdp ctx due to QMI error respone to the "Start
network" requested.

Related: OS#2582
Change-Id: I73b51c31309ac4c28c64ed7eb7c8c649e535aa22
---
M example/default-suites.conf
A example/scenarios/mod-bts0-dynts67-ipa.conf
A example/scenarios/mod-bts0-dynts67-osmo.conf
A suites/dynts/suite.conf
A suites/dynts/switch_tch_pdch.py
5 files changed, 142 insertions(+), 0 deletions(-)

Approvals:
  Pau Espin Pedrol: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/example/default-suites.conf b/example/default-suites.conf
index 1857ba5..74f54a2 100644
--- a/example/default-suites.conf
+++ b/example/default-suites.conf
@@ -12,6 +12,8 @@
 - gprs:sysmo
 - gprs:sysmo+mod-bts0-dynts-ipa
 - gprs:sysmo+mod-bts0-dynts-osmo
+- dynts:sysmo+mod-bts0-dynts67-ipa.conf+cfg-codec-fr1
+- dynts:sysmo+mod-bts0-dynts67-osmo.conf+cfg-codec-fr1
 - nitb_sms:trx-b200
 - sms:trx-b200
 - nitb_ussd:trx-b200
@@ -26,6 +28,8 @@
 - gprs:trx-b200
 - gprs:trx-b200+mod-bts0-dynts-ipa
 - gprs:trx-b200+mod-bts0-dynts-osmo
+- dynts:trx-b200+mod-bts0-dynts67-ipa.conf+cfg-codec-fr1
+- dynts:trx-b200+mod-bts0-dynts67-osmo.conf+cfg-codec-fr1
 - nitb_sms:trx-sysmocell5000
 - sms:trx-sysmocell5000
 - nitb_ussd:trx-sysmocell5000
@@ -40,6 +44,8 @@
 - gprs:trx-sysmocell5000
 - gprs:trx-sysmocell5000+mod-bts0-dynts-ipa
 - gprs:trx-sysmocell5000+mod-bts0-dynts-osmo
+- dynts:trx-sysmocell5000+mod-bts0-dynts67-ipa.conf+cfg-codec-fr1
+- dynts:trx-sysmocell5000+mod-bts0-dynts67-osmo.conf+cfg-codec-fr1
 - nitb_sms:nanobts
 - sms:nanobts+band-1900
 - nitb_ussd:nanobts+band-1900
@@ -51,6 +57,7 @@
 - voice:nanobts+band-1900+mod-bts0-dynts-ipa
 - gprs:nanobts+band-1900
 - gprs:nanobts+band-1900+mod-bts0-dynts-ipa
+- dynts:nanobts+band-1900+mod-bts0-dynts67-ipa.conf+cfg-codec-fr1
 - sms:nanobts+band-900
 - nitb_ussd:nanobts+band-900
 - ussd:nanobts+band-900
@@ -63,6 +70,7 @@
 - gprs:nanobts+band-900
 - 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.conf+cfg-codec-fr1
 - nitb_smpp
 - smpp
 - encryption
diff --git a/example/scenarios/mod-bts0-dynts67-ipa.conf b/example/scenarios/mod-bts0-dynts67-ipa.conf
new file mode 100644
index 0000000..087b3b0
--- /dev/null
+++ b/example/scenarios/mod-bts0-dynts67-ipa.conf
@@ -0,0 +1,13 @@
+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
new file mode 100644
index 0000000..3153120
--- /dev/null
+++ b/example/scenarios/mod-bts0-dynts67-osmo.conf
@@ -0,0 +1,13 @@
+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/suites/dynts/suite.conf b/suites/dynts/suite.conf
new file mode 100644
index 0000000..3b32480
--- /dev/null
+++ b/suites/dynts/suite.conf
@@ -0,0 +1,10 @@
+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/suites/dynts/switch_tch_pdch.py b/suites/dynts/switch_tch_pdch.py
new file mode 100755
index 0000000..f0bbd38
--- /dev/null
+++ b/suites/dynts/switch_tch_pdch.py
@@ -0,0 +1,98 @@
+#!/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!')

-- 
To view, visit https://gerrit.osmocom.org/11052
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I73b51c31309ac4c28c64ed7eb7c8c649e535aa22
Gerrit-Change-Number: 11052
Gerrit-PatchSet: 2
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder (1000002)
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180925/fea5e47a/attachment.htm>


More information about the gerrit-log mailing list