From 82aed176a824d64925142a140e3b0e7c67045508 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 28 Aug 2017 18:07:40 +0200 Subject: Reserve ARFCN dynamically based on BTS band support Instead of statically specifying a band for a BTS to use, declare a list of supported bands for each BTS. At the time of BTS object creation, ask the BTS for band support and try to dynamically reserve an ARFCN resource which is compatible with any of the bands supported by the BTS. All this happens transparently to the test. Still, the test may want to use a specific band / arfcn. In this case, a test can use suite.reserve_arfcn(band, arfcn) to reserve a specific band/arfcn and pass that to the BTS at creation time, which will then use that one instead of trying to find a suitable one. It is left as future work to support BTs with multiple TRX, in which case several arfcn must be reserved. It should not be that difficult, mostly using "times: X" where X is the amount of trx, changing the API to use a list of arfcns and the configure() methods of the BTS. Related: OS#2230 Change-Id: I6fb5d95bed1fa50c3deaf62a7a6df3cb276bc3c9 --- selftest/conf/resources.conf | 6 +++--- selftest/resource_test.ok | 30 ++++++++++++++++++--------- selftest/suite_test.ok | 42 +++++++++++++++++++++++++++----------- selftest/suite_test/resources.conf | 12 +++++------ 4 files changed, 59 insertions(+), 31 deletions(-) (limited to 'selftest') diff --git a/selftest/conf/resources.conf b/selftest/conf/resources.conf index b186737..e5fe6e6 100644 --- a/selftest/conf/resources.conf +++ b/selftest/conf/resources.conf @@ -12,7 +12,7 @@ bts: type: osmo-bts-sysmo ipa_unit_id: 1 addr: 10.42.42.114 - band: GSM-1800 + bands: ['GSM-850', 'GSM-900', 'GSM-1800', 'GSM-1900'] ciphers: - 'a5_0' - 'a5_1' @@ -21,7 +21,7 @@ bts: type: osmo-bts-trx ipa_unit_id: 6 addr: 10.42.42.50 - band: GSM-1800 + bands: ['GSM-1800'] launch_trx: true ciphers: - 'a5_0' @@ -31,7 +31,7 @@ bts: type: osmo-bts-trx ipa_unit_id: 7 addr: 10.42.42.51 - band: GSM-1800 + bands: ['GSM-1800'] trx_remote_ip: 10.42.42.112 ciphers: - 'a5_0' diff --git a/selftest/resource_test.ok b/selftest/resource_test.ok index 09c276a..9b2fd64 100644 --- a/selftest/resource_test.ok +++ b/selftest/resource_test.ok @@ -46,16 +46,16 @@ cnf ResourcesPool: DBG: Found path state_dir as [PATH]/selftest/conf/test_work/s {'_hash': 'dc9ce027a257da087f31a5bc1ee6b4abd2637369', 'arfcn': '548', 'band': 'GSM-1900'}], - 'bts': [{'_hash': '377ac78d5404b826d40c84efd04b4a9fd4e62b7e', + 'bts': [{'_hash': '2769d8f6cfe22f15e7dbd14f7ce929db2e56bdf3', 'addr': '10.42.42.114', - 'band': 'GSM-1800', + 'bands': ['GSM-850', 'GSM-900', 'GSM-1800', 'GSM-1900'], 'ciphers': ['a5_0', 'a5_1'], 'ipa_unit_id': '1', 'label': 'sysmoBTS 1002', 'type': 'osmo-bts-sysmo'}, {'_hash': '6a9c9fbd364e1563a5b9f0826030a7888fd19575', 'addr': '10.42.42.50', - 'band': 'GSM-1800', + 'bands': ['GSM-1800'], 'ciphers': ['a5_0', 'a5_1'], 'ipa_unit_id': '6', 'label': 'Ettus B200', @@ -63,7 +63,7 @@ cnf ResourcesPool: DBG: Found path state_dir as [PATH]/selftest/conf/test_work/s 'type': 'osmo-bts-trx'}, {'_hash': 'e50fd38e3bfe8039ac13bc315bc84f46110b7443', 'addr': '10.42.42.51', - 'band': 'GSM-1800', + 'bands': ['GSM-1800'], 'ciphers': ['a5_0', 'a5_1'], 'ipa_unit_id': '7', 'label': 'sysmoCell 5000', @@ -118,9 +118,13 @@ cnf ResourcesPool: DBG: Found path state_dir as [PATH]/selftest/conf/test_work/s arfcn: '514' band: GSM-1800 --- testowner: Reserving 2 x bts (candidates: 3) ---- testowner: DBG: Picked - _hash: 377ac78d5404b826d40c84efd04b4a9fd4e62b7e +--- testowner: DBG: Picked - _hash: 2769d8f6cfe22f15e7dbd14f7ce929db2e56bdf3 addr: 10.42.42.114 - band: GSM-1800 + bands: + - GSM-850 + - GSM-900 + - GSM-1800 + - GSM-1900 ciphers: - a5_0 - a5_1 @@ -129,7 +133,8 @@ cnf ResourcesPool: DBG: Found path state_dir as [PATH]/selftest/conf/test_work/s type: osmo-bts-sysmo - _hash: 6a9c9fbd364e1563a5b9f0826030a7888fd19575 addr: 10.42.42.50 - band: GSM-1800 + bands: + - GSM-1800 ciphers: - a5_0 - a5_1 @@ -170,10 +175,14 @@ arfcn: arfcn: '514' band: GSM-1800 bts: -- _hash: 377ac78d5404b826d40c84efd04b4a9fd4e62b7e +- _hash: 2769d8f6cfe22f15e7dbd14f7ce929db2e56bdf3 _reserved_by: testowner-123-1490837279 addr: 10.42.42.114 - band: GSM-1800 + bands: + - GSM-850 + - GSM-900 + - GSM-1800 + - GSM-1900 ciphers: - a5_0 - a5_1 @@ -183,7 +192,8 @@ bts: - _hash: 6a9c9fbd364e1563a5b9f0826030a7888fd19575 _reserved_by: testowner-123-1490837279 addr: 10.42.42.50 - band: GSM-1800 + bands: + - GSM-1800 ciphers: - a5_0 - a5_1 diff --git a/selftest/suite_test.ok b/selftest/suite_test.ok index cd5a9e7..dfb8193 100644 --- a/selftest/suite_test.ok +++ b/selftest/suite_test.ok @@ -37,7 +37,8 @@ tst {combining_scenarios='resources'}: DBG: {definition_conf={bts=[{'label': 'sy tst test_suite: Reserving 3 x bts (candidates: 6) tst test_suite: DBG: Picked - _hash: 076ff06a4b719e61779492d3fb99f42a6635bb72 addr: 10.42.42.53 - band: GSM-1800 + bands: + - GSM-1800 ipa_unit_id: '7' label: sysmoCell 5000 trx_list: @@ -49,7 +50,8 @@ tst test_suite: DBG: Picked - _hash: 076ff06a4b719e61779492d3fb99f42a6635bb72 type: osmo-bts-trx - _hash: 9eaa928b04ce04b19dbae972f9bfc3eea6f5e249 addr: 10.42.42.53 - band: GSM-1800 + bands: + - GSM-1800 ipa_unit_id: '7' label: sysmoCell 5000 trx_list: @@ -58,9 +60,13 @@ tst test_suite: DBG: Picked - _hash: 076ff06a4b719e61779492d3fb99f42a6635bb72 nominal_power: '12' trx_remote_ip: 10.42.42.112 type: osmo-bts-trx -- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9 +- _hash: c8a01d42f3977e49ceff0734a1475857913dfb13 addr: 10.42.42.114 - band: GSM-1800 + bands: + - GSM-850 + - GSM-900 + - GSM-1800 + - GSM-1900 ipa_unit_id: '1' label: sysmoBTS 1002 type: sysmo @@ -180,7 +186,8 @@ tst {combining_scenarios='resources', scenario='foo'}: [RESOURCE_DICT] tst test_suite: Reserving 3 x bts (candidates: 6) [resource.py:[LINENR]] tst test_suite: DBG: Picked - _hash: 076ff06a4b719e61779492d3fb99f42a6635bb72 addr: 10.42.42.53 - band: GSM-1800 + bands: + - GSM-1800 ipa_unit_id: '7' label: sysmoCell 5000 trx_list: @@ -192,7 +199,8 @@ tst test_suite: DBG: Picked - _hash: 076ff06a4b719e61779492d3fb99f42a6635bb72 type: osmo-bts-trx - _hash: 9eaa928b04ce04b19dbae972f9bfc3eea6f5e249 addr: 10.42.42.53 - band: GSM-1800 + bands: + - GSM-1800 ipa_unit_id: '7' label: sysmoCell 5000 trx_list: @@ -201,9 +209,13 @@ tst test_suite: DBG: Picked - _hash: 076ff06a4b719e61779492d3fb99f42a6635bb72 nominal_power: '12' trx_remote_ip: 10.42.42.112 type: osmo-bts-trx -- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9 +- _hash: c8a01d42f3977e49ceff0734a1475857913dfb13 addr: 10.42.42.114 - band: GSM-1800 + bands: + - GSM-850 + - GSM-900 + - GSM-1800 + - GSM-1900 ipa_unit_id: '1' label: sysmoBTS 1002 type: sysmo @@ -258,7 +270,8 @@ tst {combining_scenarios='resources', scenario='foo'}: [RESOURCE_DICT] tst test_suite: Reserving 3 x bts (candidates: 6) [resource.py:[LINENR]] tst test_suite: DBG: Picked - _hash: 076ff06a4b719e61779492d3fb99f42a6635bb72 addr: 10.42.42.53 - band: GSM-1800 + bands: + - GSM-1800 ipa_unit_id: '7' label: sysmoCell 5000 trx_list: @@ -270,7 +283,8 @@ tst test_suite: DBG: Picked - _hash: 076ff06a4b719e61779492d3fb99f42a6635bb72 type: osmo-bts-trx - _hash: 9eaa928b04ce04b19dbae972f9bfc3eea6f5e249 addr: 10.42.42.53 - band: GSM-1800 + bands: + - GSM-1800 ipa_unit_id: '7' label: sysmoCell 5000 trx_list: @@ -279,9 +293,13 @@ tst test_suite: DBG: Picked - _hash: 076ff06a4b719e61779492d3fb99f42a6635bb72 nominal_power: '12' trx_remote_ip: 10.42.42.112 type: osmo-bts-trx -- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9 +- _hash: c8a01d42f3977e49ceff0734a1475857913dfb13 addr: 10.42.42.114 - band: GSM-1800 + bands: + - GSM-850 + - GSM-900 + - GSM-1800 + - GSM-1900 ipa_unit_id: '1' label: sysmoBTS 1002 type: sysmo diff --git a/selftest/suite_test/resources.conf b/selftest/suite_test/resources.conf index 440e55c..2d6fde7 100644 --- a/selftest/suite_test/resources.conf +++ b/selftest/suite_test/resources.conf @@ -10,13 +10,13 @@ bts: type: sysmo ipa_unit_id: 1 addr: 10.42.42.114 - band: GSM-1800 + bands: ['GSM-850', 'GSM-900', 'GSM-1800', 'GSM-1900'] - label: octBTS 3000 type: oct ipa_unit_id: 5 addr: 10.42.42.115 - band: GSM-1800 + bands: ['GSM-1800'] trx_list: - hw_addr: 00:0c:90:32:b5:8a @@ -24,7 +24,7 @@ bts: type: nanobts ipa_unit_id: 1902 addr: 10.42.42.190 - band: GSM-1900 + bands: ['GSM-1800'] trx_list: - hw_addr: 00:02:95:00:41:b3 @@ -32,7 +32,7 @@ bts: type: osmo-bts-trx ipa_unit_id: 6 addr: 10.42.42.52 - band: GSM-1800 + bands: ['GSM-1800'] launch_trx: true trx_list: - nominal_power: 10 @@ -43,7 +43,7 @@ bts: type: osmo-bts-trx ipa_unit_id: 7 addr: 10.42.42.53 - band: GSM-1800 + bands: ['GSM-1800'] trx_remote_ip: 10.42.42.112 trx_list: - nominal_power: 10 @@ -55,7 +55,7 @@ bts: type: osmo-bts-trx ipa_unit_id: 7 addr: 10.42.42.53 - band: GSM-1800 + bands: ['GSM-1800'] trx_remote_ip: 10.42.42.112 trx_list: - nominal_power: 10 -- cgit v1.2.3