[MERGED] osmo-gsm-tester[master]: Use unique incrementing value for BTS LAC

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
Wed Nov 8 10:05:41 UTC 2017


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, specifics=None):
         bts = bts_obj(self, self.reserved_resources.get(resource.R_BTS, specifics=specifics))
+        bts.set_lac(self.lac())
         self.register_for_cleanup(bts)
         return bts
 
@@ -370,6 +371,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: merged
Gerrit-Change-Id: I9f864bac05e39ec2fc305f774194799c3d8fe1b0
Gerrit-PatchSet: 4
Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>



More information about the gerrit-log mailing list