[MERGED] osmo-gsm-tester[master]: Use unique incrementing value for BTS LAC
Pau Espin Pedrol has submitted this change and it was merged. Change subject: Use unique incrementing value for BTS LAC .. Use unique incrementing value for BTS LAC Change-Id: I9f864bac05e39ec2fc305f774194799c3d8fe1b0 --- M example/defaults.conf M src/osmo_gsm_tester/bts_octphy.py M src/osmo_gsm_tester/bts_osmotrx.py M src/osmo_gsm_tester/bts_sysmo.py M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/schema.py M src/osmo_gsm_tester/suite.py 7 files changed, 33 insertions(+), 1 deletion(-) Approvals: Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/example/defaults.conf b/example/defaults.conf index e2921a4..d555ab0 100644 --- a/example/defaults.conf +++ b/example/defaults.conf @@ -28,7 +28,6 @@ authentication: optional bsc_bts: - location_area_code: 23 base_station_id_code: 63 stream_id: 255 osmobsc_bts_type: sysmobts diff --git a/src/osmo_gsm_tester/bts_octphy.py b/src/osmo_gsm_tester/bts_octphy.py index ae2e249..eb1092c 100644 --- a/src/osmo_gsm_tester/bts_octphy.py +++ b/src/osmo_gsm_tester/bts_octphy.py @@ -30,6 +30,7 @@ env = None pcu_sk_tmp_dir = None values = None +lac = None BIN_BTS_OCTPHY = 'osmo-bts-octphy' @@ -158,6 +159,8 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_octphy')) +if self.lac is not None: +config.overlay(values, { 'location_area_code': self.lac }) config.overlay(values, self.conf) self.dbg(conf=values) return values @@ -165,4 +168,7 @@ def set_bsc(self, bsc): self.bsc = bsc +def set_lac(self, lac): +self.lac = lac + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/bts_osmotrx.py b/src/osmo_gsm_tester/bts_osmotrx.py index f53b8a3..731daa5 100644 --- a/src/osmo_gsm_tester/bts_osmotrx.py +++ b/src/osmo_gsm_tester/bts_osmotrx.py @@ -30,6 +30,7 @@ env = None trx = None pcu_sk_tmp_dir = None +lac = None BIN_BTS_TRX = 'osmo-bts-trx' BIN_PCU = 'osmo-pcu' @@ -136,6 +137,8 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_trx')) +if self.lac is not None: +config.overlay(values, { 'location_area_code': self.lac }) config.overlay(values, self.conf) self.dbg(conf=values) return values @@ -143,6 +146,9 @@ def set_bsc(self, bsc): self.bsc = bsc +def set_lac(self, lac): +self.lac = lac + class OsmoTrx(log.Origin): suite_run = None run_dir = None diff --git a/src/osmo_gsm_tester/bts_sysmo.py b/src/osmo_gsm_tester/bts_sysmo.py index e8ac7c2..03dc97e 100644 --- a/src/osmo_gsm_tester/bts_sysmo.py +++ b/src/osmo_gsm_tester/bts_sysmo.py @@ -29,6 +29,7 @@ remote_inst = None remote_env = None remote_dir = None +lac = None REMOTE_DIR = '/osmo-gsm-tester' BTS_SYSMO_BIN = 'osmo-bts-sysmo' @@ -143,6 +144,8 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_sysmo')) +if self.lac is not None: +config.overlay(values, { 'location_area_code': self.lac }) config.overlay(values, self.conf) self.dbg(conf=values) return values @@ -150,4 +153,7 @@ def set_bsc(self, bsc): self.bsc = bsc +def set_lac(self, lac): +self.lac = lac + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index ecafa2f..9571131 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -210,6 +210,8 @@ def next_msisdn(self, origin): return self.next_persistent_value('msisdn', '1000', schema.msisdn, util.msisdn_inc, origin) +def next_lac(self, origin): +return self.next_persistent_value('lac', '1', schema.uint16, lambda x: str((int(x)+1) % pow(2,16)), origin) class NoResourceExn(log.Error): pass diff --git a/src/osmo_gsm_tester/schema.py b/src/osmo_gsm_tester/schema.py index 9b142d3..a78bc63 100644 --- a/src/osmo_gsm_tester/schema.py +++ b/src/osmo_gsm_tester/schema.py @@ -71,6 +71,13 @@ if n < 0: raise ValueError('Positive value expected instead of %d' % n) +def uint16(val): +n = int(val) +if n < 0: +raise ValueError('Positive value expected instead of %d' % n) +if n > 65535: # 2^16 - 1 +raise ValueError('Value %d too big, max value is 65535' % n) + def times(val): n = int(val) if n < 1: diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py index 28bdd69..9f9421e 100644 --- a/src/osmo_gsm_tester/suite.py +++ b/src/osmo_gsm_tester/suite.py @@ -344,6 +344,7 @@ def bts(self, specif
osmo-gsm-tester[master]: Use unique incrementing value for BTS LAC
Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/4704/3/src/osmo_gsm_tester/schema.py File src/osmo_gsm_tester/schema.py: Line 74: def uint16(val): (at some point, you know with those 65534 etc, it might be more useful to have a validator function returned as lambda from passed-in min,max range ... for now it's fine) -- To view, visit https://gerrit.osmocom.org/4704 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I9f864bac05e39ec2fc305f774194799c3d8fe1b0 Gerrit-PatchSet: 3 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: Yes
[PATCH] osmo-gsm-tester[master]: Use unique incrementing value for BTS LAC
Hello Neels Hofmeyr, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/4704 to look at the new patch set (#3). Use unique incrementing value for BTS LAC Change-Id: I9f864bac05e39ec2fc305f774194799c3d8fe1b0 --- M example/defaults.conf M src/osmo_gsm_tester/bts_octphy.py M src/osmo_gsm_tester/bts_osmotrx.py M src/osmo_gsm_tester/bts_sysmo.py M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/schema.py M src/osmo_gsm_tester/suite.py 7 files changed, 33 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/04/4704/3 diff --git a/example/defaults.conf b/example/defaults.conf index e2921a4..d555ab0 100644 --- a/example/defaults.conf +++ b/example/defaults.conf @@ -28,7 +28,6 @@ authentication: optional bsc_bts: - location_area_code: 23 base_station_id_code: 63 stream_id: 255 osmobsc_bts_type: sysmobts diff --git a/src/osmo_gsm_tester/bts_octphy.py b/src/osmo_gsm_tester/bts_octphy.py index ae2e249..eb1092c 100644 --- a/src/osmo_gsm_tester/bts_octphy.py +++ b/src/osmo_gsm_tester/bts_octphy.py @@ -30,6 +30,7 @@ env = None pcu_sk_tmp_dir = None values = None +lac = None BIN_BTS_OCTPHY = 'osmo-bts-octphy' @@ -158,6 +159,8 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_octphy')) +if self.lac is not None: +config.overlay(values, { 'location_area_code': self.lac }) config.overlay(values, self.conf) self.dbg(conf=values) return values @@ -165,4 +168,7 @@ def set_bsc(self, bsc): self.bsc = bsc +def set_lac(self, lac): +self.lac = lac + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/bts_osmotrx.py b/src/osmo_gsm_tester/bts_osmotrx.py index f53b8a3..731daa5 100644 --- a/src/osmo_gsm_tester/bts_osmotrx.py +++ b/src/osmo_gsm_tester/bts_osmotrx.py @@ -30,6 +30,7 @@ env = None trx = None pcu_sk_tmp_dir = None +lac = None BIN_BTS_TRX = 'osmo-bts-trx' BIN_PCU = 'osmo-pcu' @@ -136,6 +137,8 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_trx')) +if self.lac is not None: +config.overlay(values, { 'location_area_code': self.lac }) config.overlay(values, self.conf) self.dbg(conf=values) return values @@ -143,6 +146,9 @@ def set_bsc(self, bsc): self.bsc = bsc +def set_lac(self, lac): +self.lac = lac + class OsmoTrx(log.Origin): suite_run = None run_dir = None diff --git a/src/osmo_gsm_tester/bts_sysmo.py b/src/osmo_gsm_tester/bts_sysmo.py index e8ac7c2..03dc97e 100644 --- a/src/osmo_gsm_tester/bts_sysmo.py +++ b/src/osmo_gsm_tester/bts_sysmo.py @@ -29,6 +29,7 @@ remote_inst = None remote_env = None remote_dir = None +lac = None REMOTE_DIR = '/osmo-gsm-tester' BTS_SYSMO_BIN = 'osmo-bts-sysmo' @@ -143,6 +144,8 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_sysmo')) +if self.lac is not None: +config.overlay(values, { 'location_area_code': self.lac }) config.overlay(values, self.conf) self.dbg(conf=values) return values @@ -150,4 +153,7 @@ def set_bsc(self, bsc): self.bsc = bsc +def set_lac(self, lac): +self.lac = lac + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index ecafa2f..9571131 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -210,6 +210,8 @@ def next_msisdn(self, origin): return self.next_persistent_value('msisdn', '1000', schema.msisdn, util.msisdn_inc, origin) +def next_lac(self, origin): +return self.next_persistent_value('lac', '1', schema.uint16, lambda x: str((int(x)+1) % pow(2,16)), origin) class NoResourceExn(log.Error): pass diff --git a/src/osmo_gsm_tester/schema.py b/src/osmo_gsm_tester/schema.py index 9b142d3..a78bc63 100644 --- a/src/osmo_gsm_tester/schema.py +++ b/src/osmo_gsm_tester/schema.py @@ -71,6 +71,13 @@ if n < 0: raise ValueError('Positive value expected instead of %d' % n) +def uint16(val): +n = int(val) +if n < 0: +raise ValueError('Positive value expected instead of %d' % n) +if n > 65535: # 2^16 - 1 +raise ValueError('Value %d too big, max value is 65535' % n) + def times(val): n = int(val) if n < 1: diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py index 28bdd69..9f9421e 100644 --- a/src/osmo_gsm_tester/suite.py +++ b/src/osmo_gsm_tester/suite.py @@ -344,6 +344,7 @@ def bts(self, specifics=None): bts = bts_obj(
osmo-gsm-tester[master]: Use unique incrementing value for BTS LAC
Patch Set 2: (3 comments) https://gerrit.osmocom.org/#/c/4704/2/src/osmo_gsm_tester/bts_sysmo.py File src/osmo_gsm_tester/bts_sysmo.py: Line 147: 'location_area_code': self.suite_run.lac(), > -1: Each BTS object must get a LAC *once*, conf_for_bsc() should be a "cons On practise it doesn't matter because we only call conf_for_bsc once per bsc, but I agree it's better to move it as you suggest. I'll leave the BtsBase class for later as it requires several changes and it's not entirely related to this topic. https://gerrit.osmocom.org/#/c/4704/2/src/osmo_gsm_tester/resource.py File src/osmo_gsm_tester/resource.py: Line 215: return self.next_persistent_value('lac', '1', schema.uint16, lambda x: str((int(x)+1) % pow(2,16)), origin) > -1: What if x starts out as -23? maybe str(max(0, ... )); * X cannot start out as -23 because the default is 1 and in any case if a negative value is read, schema.unit16() is going to throw and exception before it reaches the increment function. * Good catch, I'll fix it. * Me too, but in python I think it's clearer this way. * I don't think it makes sense, as it's only being used here. https://gerrit.osmocom.org/#/c/4704/2/src/osmo_gsm_tester/schema.py File src/osmo_gsm_tester/schema.py: Line 78: if n >= pow(2,16): > 0: lol, why not just > 65535 ... python goes on to calculate 2 ** 16 every because it's clearer, but I can use 65535 and then write in a comment 2^16-1 -- To view, visit https://gerrit.osmocom.org/4704 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I9f864bac05e39ec2fc305f774194799c3d8fe1b0 Gerrit-PatchSet: 2 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: Yes
osmo-gsm-tester[master]: Use unique incrementing value for BTS LAC
Patch Set 2: Code-Review-1 (5 comments) https://gerrit.osmocom.org/#/c/4704/2/src/osmo_gsm_tester/bts_octphy.py File src/osmo_gsm_tester/bts_octphy.py: Line 162: 'location_area_code': self.suite_run.lac(), -1: see sysmo https://gerrit.osmocom.org/#/c/4704/2/src/osmo_gsm_tester/bts_osmotrx.py File src/osmo_gsm_tester/bts_osmotrx.py: Line 140: 'location_area_code': self.suite_run.lac(), -1: see sysmo https://gerrit.osmocom.org/#/c/4704/2/src/osmo_gsm_tester/bts_sysmo.py File src/osmo_gsm_tester/bts_sysmo.py: Line 147: 'location_area_code': self.suite_run.lac(), -1: Each BTS object must get a LAC *once*, conf_for_bsc() should be a "const" function. With this code, if a test case were to call conf_for_bsc() twice, then the same BTS object would exhibit mismatching LACs. I guess we should have a set_lac() function like we have set_msisdn() for the modems. We can call set_lac(suite_run.lac()) in bts_obj() in suite.py. Then overlay self.lac here. (either implement a set_lac() for each BTS class, or we could start having a BtsBase class which the others inherit from, so we have set_lac() implemented exactly once.) https://gerrit.osmocom.org/#/c/4704/2/src/osmo_gsm_tester/resource.py File src/osmo_gsm_tester/resource.py: Line 215: return self.next_persistent_value('lac', '1', schema.uint16, lambda x: str((int(x)+1) % pow(2,16)), origin) -1: What if x starts out as -23? maybe str(max(0, ... )); 0: two spaces before pow; 0: In C I'd use (int(x)+1) & 0x but in python, ok; 0: The magic number "pow(2,16)" is used a lot, Does it make sense to have a LAC_MAX constant defined once somewhere? Is this the only one outside of the uint16() function? https://gerrit.osmocom.org/#/c/4704/2/src/osmo_gsm_tester/schema.py File src/osmo_gsm_tester/schema.py: Line 78: if n >= pow(2,16): 0: lol, why not just > 65535 ... python goes on to calculate 2 ** 16 every time. -- To view, visit https://gerrit.osmocom.org/4704 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I9f864bac05e39ec2fc305f774194799c3d8fe1b0 Gerrit-PatchSet: 2 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: Yes
[PATCH] osmo-gsm-tester[master]: Use unique incrementing value for BTS LAC
Use unique incrementing value for BTS LAC Change-Id: I9f864bac05e39ec2fc305f774194799c3d8fe1b0 --- M example/defaults.conf M src/osmo_gsm_tester/bts_octphy.py M src/osmo_gsm_tester/bts_osmotrx.py M src/osmo_gsm_tester/bts_sysmo.py M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/schema.py M src/osmo_gsm_tester/suite.py 7 files changed, 23 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/04/4704/2 diff --git a/example/defaults.conf b/example/defaults.conf index e2921a4..d555ab0 100644 --- a/example/defaults.conf +++ b/example/defaults.conf @@ -28,7 +28,6 @@ authentication: optional bsc_bts: - location_area_code: 23 base_station_id_code: 63 stream_id: 255 osmobsc_bts_type: sysmobts diff --git a/src/osmo_gsm_tester/bts_octphy.py b/src/osmo_gsm_tester/bts_octphy.py index ae2e249..7fa58a5 100644 --- a/src/osmo_gsm_tester/bts_octphy.py +++ b/src/osmo_gsm_tester/bts_octphy.py @@ -158,6 +158,9 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_octphy')) +config.overlay(values, { +'location_area_code': self.suite_run.lac(), +}) config.overlay(values, self.conf) self.dbg(conf=values) return values diff --git a/src/osmo_gsm_tester/bts_osmotrx.py b/src/osmo_gsm_tester/bts_osmotrx.py index f53b8a3..3aa39b1 100644 --- a/src/osmo_gsm_tester/bts_osmotrx.py +++ b/src/osmo_gsm_tester/bts_osmotrx.py @@ -136,6 +136,9 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_trx')) +config.overlay(values, { +'location_area_code': self.suite_run.lac(), +}) config.overlay(values, self.conf) self.dbg(conf=values) return values diff --git a/src/osmo_gsm_tester/bts_sysmo.py b/src/osmo_gsm_tester/bts_sysmo.py index e8ac7c2..69c5610 100644 --- a/src/osmo_gsm_tester/bts_sysmo.py +++ b/src/osmo_gsm_tester/bts_sysmo.py @@ -143,6 +143,9 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_sysmo')) +config.overlay(values, { +'location_area_code': self.suite_run.lac(), +}) config.overlay(values, self.conf) self.dbg(conf=values) return values diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index 278fe4f..b33ec29 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -211,6 +211,8 @@ def next_msisdn(self, origin): return self.next_persistent_value('msisdn', '1000', schema.msisdn, util.msisdn_inc, origin) +def next_lac(self, origin): +return self.next_persistent_value('lac', '1', schema.uint16, lambda x: str((int(x)+1) % pow(2,16)), origin) class NoResourceExn(log.Error): pass diff --git a/src/osmo_gsm_tester/schema.py b/src/osmo_gsm_tester/schema.py index 9b142d3..f74699f 100644 --- a/src/osmo_gsm_tester/schema.py +++ b/src/osmo_gsm_tester/schema.py @@ -71,6 +71,13 @@ if n < 0: raise ValueError('Positive value expected instead of %d' % n) +def uint16(val): +n = int(val) +if n < 0: +raise ValueError('Positive value expected instead of %d' % n) +if n >= pow(2,16): +raise ValueError('Value %d too big, max value is %d' % (n, pow(2,16)-1)) + def times(val): n = int(val) if n < 1: diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py index 28bdd69..3800d5e 100644 --- a/src/osmo_gsm_tester/suite.py +++ b/src/osmo_gsm_tester/suite.py @@ -370,6 +370,11 @@ self.log('using MSISDN', msisdn) return msisdn +def lac(self): +lac = self.resources_pool.next_lac(self) +self.log('using LAC', lac) +return lac + def poll(self): if self._processes: for process in self._processes: -- To view, visit https://gerrit.osmocom.org/4704 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I9f864bac05e39ec2fc305f774194799c3d8fe1b0 Gerrit-PatchSet: 2 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Neels Hofmeyr
[PATCH] osmo-gsm-tester[master]: Use unique incrementing value for BTS LAC
Review at https://gerrit.osmocom.org/4704 Use unique incrementing value for BTS LAC Change-Id: I9f864bac05e39ec2fc305f774194799c3d8fe1b0 --- M example/defaults.conf M src/osmo_gsm_tester/bts_octphy.py M src/osmo_gsm_tester/bts_osmotrx.py M src/osmo_gsm_tester/bts_sysmo.py M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/schema.py M src/osmo_gsm_tester/suite.py 7 files changed, 24 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/04/4704/1 diff --git a/example/defaults.conf b/example/defaults.conf index e2921a4..d555ab0 100644 --- a/example/defaults.conf +++ b/example/defaults.conf @@ -28,7 +28,6 @@ authentication: optional bsc_bts: - location_area_code: 23 base_station_id_code: 63 stream_id: 255 osmobsc_bts_type: sysmobts diff --git a/src/osmo_gsm_tester/bts_octphy.py b/src/osmo_gsm_tester/bts_octphy.py index ae2e249..7fa58a5 100644 --- a/src/osmo_gsm_tester/bts_octphy.py +++ b/src/osmo_gsm_tester/bts_octphy.py @@ -158,6 +158,9 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_octphy')) +config.overlay(values, { +'location_area_code': self.suite_run.lac(), +}) config.overlay(values, self.conf) self.dbg(conf=values) return values diff --git a/src/osmo_gsm_tester/bts_osmotrx.py b/src/osmo_gsm_tester/bts_osmotrx.py index f53b8a3..3aa39b1 100644 --- a/src/osmo_gsm_tester/bts_osmotrx.py +++ b/src/osmo_gsm_tester/bts_osmotrx.py @@ -136,6 +136,9 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_trx')) +config.overlay(values, { +'location_area_code': self.suite_run.lac(), +}) config.overlay(values, self.conf) self.dbg(conf=values) return values diff --git a/src/osmo_gsm_tester/bts_sysmo.py b/src/osmo_gsm_tester/bts_sysmo.py index e8ac7c2..69c5610 100644 --- a/src/osmo_gsm_tester/bts_sysmo.py +++ b/src/osmo_gsm_tester/bts_sysmo.py @@ -143,6 +143,9 @@ def conf_for_bsc(self): values = config.get_defaults('bsc_bts') config.overlay(values, config.get_defaults('osmo_bts_sysmo')) +config.overlay(values, { +'location_area_code': self.suite_run.lac(), +}) config.overlay(values, self.conf) self.dbg(conf=values) return values diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index 278fe4f..3b65f09 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -22,6 +22,7 @@ import copy import atexit import pprint +import math from . import log from . import config @@ -211,6 +212,8 @@ def next_msisdn(self, origin): return self.next_persistent_value('msisdn', '1000', schema.msisdn, util.msisdn_inc, origin) +def next_lac(self, origin): +return self.next_persistent_value('lac', '1', schema.uint16, lambda x: str(int((int(x)+1) % math.pow(2,16))), origin) class NoResourceExn(log.Error): pass diff --git a/src/osmo_gsm_tester/schema.py b/src/osmo_gsm_tester/schema.py index 9b142d3..21193ed 100644 --- a/src/osmo_gsm_tester/schema.py +++ b/src/osmo_gsm_tester/schema.py @@ -71,6 +71,13 @@ if n < 0: raise ValueError('Positive value expected instead of %d' % n) +def uint16(val): +n = int(val) +if n < 0: +raise ValueError('Positive value expected instead of %d' % n) +if n > 65535: +raise ValueError('Value %d too big, max value is 65535' % n) + def times(val): n = int(val) if n < 1: diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py index 28bdd69..3800d5e 100644 --- a/src/osmo_gsm_tester/suite.py +++ b/src/osmo_gsm_tester/suite.py @@ -370,6 +370,11 @@ self.log('using MSISDN', msisdn) return msisdn +def lac(self): +lac = self.resources_pool.next_lac(self) +self.log('using LAC', lac) +return lac + def poll(self): if self._processes: for process in self._processes: -- To view, visit https://gerrit.osmocom.org/4704 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9f864bac05e39ec2fc305f774194799c3d8fe1b0 Gerrit-PatchSet: 1 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol