[PATCH] osmocom-bb[master]: fake_trx: share and use common GSM constants

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/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Thu Feb 22 15:33:39 UTC 2018


Review at  https://gerrit.osmocom.org/6822

fake_trx: share and use common GSM constants

Previously there were multiple definitions of some common GSM
constants in different modules. Let's share them.

Change-Id: Id6cdfbc6e8688755a0df7e44daa512c9afa7dad2
---
M src/target/fake_trx/burst_gen.py
M src/target/fake_trx/burst_send.py
M src/target/fake_trx/clck_gen.py
M src/target/fake_trx/data_if.py
A src/target/fake_trx/gsm_shared.py
M src/target/fake_trx/rand_burst_gen.py
6 files changed, 46 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/22/6822/1

diff --git a/src/target/fake_trx/burst_gen.py b/src/target/fake_trx/burst_gen.py
index 087fe79..68ba0ec 100755
--- a/src/target/fake_trx/burst_gen.py
+++ b/src/target/fake_trx/burst_gen.py
@@ -29,6 +29,7 @@
 
 from rand_burst_gen import RandBurstGen
 from data_if import DATAInterface
+from gsm_shared import *
 
 COPYRIGHT = \
 	"Copyright (C) 2017 by Vadim Yanitskiy <axilirator at gmail.com>\n" \
@@ -73,7 +74,7 @@
 
 		# Generate a random frame number or use provided one
 		if self.fn is None:
-			fn = random.randint(0, DATAInterface.GSM_HYPERFRAME)
+			fn = random.randint(0, GSM_HYPERFRAME)
 		else:
 			fn = self.fn
 
@@ -106,7 +107,7 @@
 					self.tn, fn, self.pwr)
 
 			# Increase frame number (for count > 1)
-			fn = (fn + 1) % DATAInterface.GSM_HYPERFRAME
+			fn = (fn + 1) % GSM_HYPERFRAME
 
 		self.shutdown()
 
diff --git a/src/target/fake_trx/burst_send.py b/src/target/fake_trx/burst_send.py
index a8519ed..ee8e51a 100755
--- a/src/target/fake_trx/burst_send.py
+++ b/src/target/fake_trx/burst_send.py
@@ -27,6 +27,7 @@
 import sys
 
 from data_if import DATAInterface
+from gsm_shared import *
 
 COPYRIGHT = \
 	"Copyright (C) 2017 by Vadim Yanitskiy <axilirator at gmail.com>\n" \
@@ -75,7 +76,7 @@
 
 		# Generate a random frame number or use provided one
 		if self.fn is None:
-			fn = random.randint(0, DATAInterface.GSM_HYPERFRAME)
+			fn = random.randint(0, GSM_HYPERFRAME)
 		else:
 			fn = self.fn
 
@@ -109,7 +110,7 @@
 					self.tn, fn, self.pwr)
 
 			# Increase frame number (for count > 1)
-			fn = (fn + 1) % DATAInterface.GSM_HYPERFRAME
+			fn = (fn + 1) % GSM_HYPERFRAME
 
 		# Finish
 		self.shutdown()
diff --git a/src/target/fake_trx/clck_gen.py b/src/target/fake_trx/clck_gen.py
index 088155b..484ecde 100755
--- a/src/target/fake_trx/clck_gen.py
+++ b/src/target/fake_trx/clck_gen.py
@@ -28,6 +28,7 @@
 
 from threading import Timer
 from udp_link import UDPLink
+from gsm_shared import *
 
 COPYRIGHT = \
 	"Copyright (C) 2017 by Vadim Yanitskiy <axilirator at gmail.com>\n" \
@@ -39,7 +40,6 @@
 class CLCKGen:
 	# GSM TDMA definitions
 	SEC_DELAY_US = 1000 * 1000
-	GSM_SUPERFRAME = 2715648
 	GSM_FRAME_US = 4615.0
 
 	# Average loop back delay
@@ -74,8 +74,8 @@
 
 	def send_clck_ind(self):
 		# Keep clock cycle
-		if self.clck_src % self.GSM_SUPERFRAME >= 0:
-			self.clck_src %= self.GSM_SUPERFRAME
+		if self.clck_src % GSM_HYPERFRAME >= 0:
+			self.clck_src %= GSM_HYPERFRAME
 
 		# We don't need to send so often
 		if self.clck_src % self.ind_period == 0:
diff --git a/src/target/fake_trx/data_if.py b/src/target/fake_trx/data_if.py
index 6662f98..0f373ab 100644
--- a/src/target/fake_trx/data_if.py
+++ b/src/target/fake_trx/data_if.py
@@ -25,10 +25,9 @@
 import random
 
 from udp_link import UDPLink
+from gsm_shared import *
 
 class DATAInterface(UDPLink):
-	# GSM PHY definitions
-	GSM_HYPERFRAME = 2048 * 26 * 51
 
 	def send_l1_msg(self, burst,
 		tn = None, fn = None, rssi = None):
@@ -38,7 +37,7 @@
 
 		# Generate random frame number if not preset
 		if fn is None:
-			fn = random.randint(0, self.GSM_HYPERFRAME)
+			fn = random.randint(0, GSM_HYPERFRAME)
 
 		# Generate random RSSI if not preset
 		if rssi is None:
@@ -79,7 +78,7 @@
 
 		# Generate random frame number if not preset
 		if fn is None:
-			fn = random.randint(0, self.GSM_HYPERFRAME)
+			fn = random.randint(0, GSM_HYPERFRAME)
 
 		# Generate random power level if not preset
 		if pwr is None:
diff --git a/src/target/fake_trx/gsm_shared.py b/src/target/fake_trx/gsm_shared.py
new file mode 100644
index 0000000..cfe94b0
--- /dev/null
+++ b/src/target/fake_trx/gsm_shared.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python2
+# -*- coding: utf-8 -*-
+
+# Virtual Um-interface (fake transceiver)
+# Common GSM constants
+#
+# (C) 2018 by Vadim Yanitskiy <axilirator at gmail.com>
+#
+# All Rights Reserved
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# TDMA definitions
+GSM_SUPERFRAME = 26 * 51
+GSM_HYPERFRAME = 2048 * GSM_SUPERFRAME
+
+# Burst length
+GSM_BURST_LEN = 148
+EDGE_BURST_LEN = GSM_BURST_LEN * 3
diff --git a/src/target/fake_trx/rand_burst_gen.py b/src/target/fake_trx/rand_burst_gen.py
index 75887f2..33e7c53 100644
--- a/src/target/fake_trx/rand_burst_gen.py
+++ b/src/target/fake_trx/rand_burst_gen.py
@@ -24,9 +24,9 @@
 
 import random
 
+from gsm_shared import *
+
 class RandBurstGen:
-	# GSM L1 definitions
-	GSM_BURST_LEN = 148
 
 	# GSM 05.02 Chapter 5.2.3 Normal Burst
 	nb_tsc_list = [
@@ -125,7 +125,7 @@
 
 	# Generate a frequency correction burst
 	def gen_fb(self):
-		return [0] * self.GSM_BURST_LEN
+		return [0] * GSM_BURST_LEN
 
 	# Generate a synchronization burst
 	def gen_sb(self):

-- 
To view, visit https://gerrit.osmocom.org/6822
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id6cdfbc6e8688755a0df7e44daa512c9afa7dad2
Gerrit-PatchSet: 1
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>



More information about the gerrit-log mailing list