Change in osmocom-bb[master]: trx_toolkit/burst_fwd.py: document and refactor BurstForwarder

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

Vadim Yanitskiy gerrit-no-reply at lists.osmocom.org
Fri Dec 7 12:34:55 UTC 2018


Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12181 )

Change subject: trx_toolkit/burst_fwd.py: document and refactor BurstForwarder
......................................................................

trx_toolkit/burst_fwd.py: document and refactor BurstForwarder

Instead of having all configuration variables of BurstForwarder
initialized in the class heading, let's introduce two functions
for initialization (resetting to defaults) of both UL/DL params.
This would allow to reset a BurstForwarder instance from the
control interface in follow-up patches.

Let's also introduce some basic documentation for the class
fields, which were defined in the heading previously.

Change-Id: I6b1bf41cf22f01a7e7ecc91c625fb0d2bf4bfeac
---
M src/target/trx_toolkit/burst_fwd.py
1 file changed, 117 insertions(+), 39 deletions(-)

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



diff --git a/src/target/trx_toolkit/burst_fwd.py b/src/target/trx_toolkit/burst_fwd.py
index 3834849..f3eeddd 100644
--- a/src/target/trx_toolkit/burst_fwd.py
+++ b/src/target/trx_toolkit/burst_fwd.py
@@ -4,7 +4,7 @@
 # TRX Toolkit
 # BTS <-> BB burst forwarding
 #
-# (C) 2017 by Vadim Yanitskiy <axilirator at gmail.com>
+# (C) 2017-2018 by Vadim Yanitskiy <axilirator at gmail.com>
 #
 # All Rights Reserved
 #
@@ -27,58 +27,136 @@
 from data_msg import *
 
 class BurstForwarder:
-	# Timeslot filter (drop everything by default)
-	ts_pass = None
+	""" Performs burst forwarding and preprocessing between MS and BTS.
 
-	# Freq. filter
-	bts_freq = None
-	bb_freq = None
+	== Pass-filtering parameters
 
-	# Randomization of RSSI
-	randomize_dl_rssi = False
-	randomize_ul_rssi = False
+	BurstForwarder may drop or pass an UL/DL burst depending
+	on the following parameters:
 
-	# Randomization of ToA
-	randomize_dl_toa256 = False
-	randomize_ul_toa256 = False
+	  - bts_freq / bb_freq - the current BTS / MS frequency
+	    that was set using RXTUNE control command. By default,
+	    both freq. values are set to None, so nothing is being
+	    forwarded (i.e. bursts are getting dropped).
 
-	# Timing Advance value indicated by MS (0 by default)
-	# Valid range: 0..63, where each unit means
-	# one GSM symbol advance.
-	ta = 0
+	    FIXME: currently, we don't care about TXTUNE command
+	    and transmit frequencies. It would be great to distinguish
+	    between RX and TX frequencies for both BTS and MS.
 
-	# Timing of Arrival values indicated by transceiver
-	# in units of 1/256 of GSM symbol periods. A pair of
-	# base and threshold values defines a range of ToA value
-	# randomization: from (base - threshold) to (base + threshold).
-	toa256_dl_base = 0
-	toa256_ul_base = 0
+	  - ts_pass - currently active timeslot, configured by the MS.
+	    It can be activated or deactivated using SETSLOT control
+	    command from the MS.
 
-	toa256_dl_threshold = 128
-	toa256_ul_threshold = 128
+	    FIXME: only a single timeslot can be activated!
+	    FIXME: there is no such list for the BTS side.
 
-	# RSSI values indicated by transceiver in dBm.
-	# A pair of base and threshold values defines a range of RSSI
-	# randomization: from (base - threshold) to (base + threshold).
-	rssi_dl_base = -60
-	rssi_ul_base = -70
+	== Preprocessing and measurement simulation
 
-	rssi_dl_threshold = 10
-	rssi_ul_threshold = 5
+	Since this is a virtual environment, we can simulate different
+	parameters of a virtual RF interface:
 
-	# Path loss simulation: DL/UL burst dropping
-	# Indicates how many bursts should be dropped
-	# and which dropping period is used. By default,
-	# period is 1, i.e. every burst (fn % 1 is always 0)
-	burst_dl_drop_amount = 0
-	burst_ul_drop_amount = 0
-	burst_dl_drop_period = 1
-	burst_ul_drop_period = 1
+	  - ToA (Timing of Arrival) - measured difference between expected
+	    and actual time of burst arrival in units of 1/256 of GSM symbol
+	    periods. A pair of both base and threshold values defines a range
+	    of ToA value randomization:
+
+	      DL: from (toa256_dl_base - toa256_dl_threshold)
+	            to (toa256_dl_base + toa256_dl_threshold),
+	      UL: from (toa256_ul_base - toa256_ul_threshold)
+	            to (toa256_ul_base + toa256_ul_threshold).
+
+	  - RSSI (Received Signal Strength Indication) - measured "power" of
+	    the signal (per burst) in dBm. A pair of both base and threshold
+	    values defines a range of RSSI value randomization:
+
+	      DL: from (rssi_dl_base - rssi_dl_threshold)
+	            to (rssi_dl_base + rssi_dl_threshold),
+	      UL: from (rssi_ul_base - rssi_ul_threshold)
+	            to (rssi_ul_base + rssi_ul_threshold).
+
+	Please note that the randomization of both RSSI and ToA
+	is optional, and should be enabled manually.
+
+	=== Timing Advance handling
+
+	The BTS is using ToA measurements for UL bursts in order to calculate
+	Timing Advance value, that is then indicated to a MS, which in its turn
+	shall apply this value to the transmitted signal in order to compensate
+	the delay. Basically, every burst is transmitted in advance defined by
+	the indicated Timing Advance value. The valid range is 0..63, where
+	each unit means one GSM symbol advance. The actual Timing Advance value
+	is set using SETTA control command from MS. By default, it's set to 0.
+
+	=== Path loss simulation - burst dropping
+
+	In some cases, e.g. due to a weak signal or high interference, a burst
+	can be lost, i.e. not detected by the receiver. This can also be
+	simulated using FAKE_DROP command on both control interfaces:
+
+	  - burst_{dl|ul}_drop_amount - the amount of DL/UL bursts
+	      to be dropped (i.e. not forwarded towards the MS/BTS),
+
+	  - burst_{dl|ul}_drop_period - drop every X DL/UL burst, e.g.
+	    1 - drop every consequent burst, 2 - drop every second burst, etc.
+
+	"""
 
 	def __init__(self, bts_link, bb_link):
 		self.bts_link = bts_link
 		self.bb_link = bb_link
 
+		# Randomization of RSSI
+		randomize_dl_rssi = False
+		randomize_ul_rssi = False
+
+		# Randomization of ToA
+		randomize_dl_toa256 = False
+		randomize_ul_toa256 = False
+
+		# Init default parameters
+		self.reset_dl()
+		self.reset_ul()
+
+	# Initialize (or reset to) default parameters for Downlink
+	def reset_dl(self):
+		# Unset current DL freq.
+		self.bts_freq = None
+
+		# Indicated RSSI / ToA values
+		self.toa256_dl_base = 0
+		self.rssi_dl_base = -60
+
+		# RSSI / ToA randomization threshold
+		self.toa256_dl_threshold = 0
+		self.rssi_dl_threshold = 0
+
+		# Path loss simulation (burst dropping)
+		self.burst_dl_drop_amount = 0
+		self.burst_dl_drop_period = 1
+
+	# Initialize (or reset to) default parameters for Uplink
+	def reset_ul(self):
+		# Unset current DL freq.
+		self.bb_freq = None
+
+		# Indicated RSSI / ToA values
+		self.rssi_ul_base = -70
+		self.toa256_ul_base = 0
+
+		# RSSI / ToA randomization threshold
+		self.toa256_ul_threshold = 0
+		self.rssi_ul_threshold = 0
+
+		# Path loss simulation (burst dropping)
+		self.burst_ul_drop_amount = 0
+		self.burst_ul_drop_period = 1
+
+		# Init timeslot filter (drop everything by default)
+		self.ts_pass = None
+
+		# Reset Timing Advance value
+		self.ta = 0
+
 	# Converts TA value from symbols to
 	# units of 1/256 of GSM symbol periods
 	def calc_ta256(self):

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

Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I6b1bf41cf22f01a7e7ecc91c625fb0d2bf4bfeac
Gerrit-Change-Number: 12181
Gerrit-PatchSet: 1
Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com>
Gerrit-Reviewer: Jenkins Builder (1000002)
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Vadim Yanitskiy <axilirator at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181207/8595c9ef/attachment.htm>


More information about the gerrit-log mailing list