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/.
fixeria gerrit-no-reply at lists.osmocom.orgfixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/14585
Change subject: trx_toolkit/fake_trx.py: add basic TRXD version 0x01 support
......................................................................
trx_toolkit/fake_trx.py: add basic TRXD version 0x01 support
Change-Id: I164f5ae4ce7694d6e324aab927a04e96d489ebd8
---
M src/target/trx_toolkit/ctrl_if_trx.py
M src/target/trx_toolkit/data_if.py
M src/target/trx_toolkit/fake_trx.py
3 files changed, 71 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/85/14585/1
diff --git a/src/target/trx_toolkit/ctrl_if_trx.py b/src/target/trx_toolkit/ctrl_if_trx.py
index 26a844f..f343215 100644
--- a/src/target/trx_toolkit/ctrl_if_trx.py
+++ b/src/target/trx_toolkit/ctrl_if_trx.py
@@ -4,7 +4,7 @@
# TRX Toolkit
# CTRL interface implementation (common commands)
#
-# (C) 2016-2018 by Vadim Yanitskiy <axilirator at gmail.com>
+# (C) 2016-2019 by Vadim Yanitskiy <axilirator at gmail.com>
#
# All Rights Reserved
#
@@ -147,6 +147,18 @@
return (0, [str(meas_dbm)])
+ # Protocol version negotiation
+ if self.verify_cmd(request, "SETVER", 1):
+ log.debug("(%s) Recv SETVER cmd" % self.trx)
+
+ ver = int(request[1])
+ if not self.trx.data_if.set_hdr_ver(ver):
+ log.error("Protocol version 0x%02x is not supported" % ver)
+ return -1
+
+ log.info("Using protocol version 0x%02x on DATA interface" % ver)
+ return 0
+
# Wrong / unknown command
else:
# We don't care about other commands,
diff --git a/src/target/trx_toolkit/data_if.py b/src/target/trx_toolkit/data_if.py
index 027fd85..5dcb5d1 100644
--- a/src/target/trx_toolkit/data_if.py
+++ b/src/target/trx_toolkit/data_if.py
@@ -4,7 +4,7 @@
# TRX Toolkit
# DATA interface implementation
#
-# (C) 2017-2018 by Vadim Yanitskiy <axilirator at gmail.com>
+# (C) 2017-2019 by Vadim Yanitskiy <axilirator at gmail.com>
#
# All Rights Reserved
#
@@ -29,9 +29,29 @@
class DATAInterface(UDPLink):
def __init__(self, *udp_link_args):
+ # Default header version (legacy)
+ self._hdr_ver = 0x00
+
UDPLink.__init__(self, *udp_link_args)
log.debug("Init TRXD interface (%s)" % self.desc_link())
+ def set_hdr_ver(self, ver):
+ if not ver in DATAMSG.known_versions:
+ return False
+
+ self._hdr_ver = ver
+ return True
+
+ def match_hdr_ver(self, msg):
+ if msg.ver == self._hdr_ver:
+ return True
+
+ log.error("Rx unexpected version %u message "
+ "from R:%s:%u, we need version %u"
+ % (msg.ver, self.remote_addr,
+ self.remote_port, self._hdr_ver))
+ return None
+
def recv_raw_data(self):
data, _ = self.sock.recvfrom(512)
return data
@@ -64,6 +84,13 @@
"from R:%s:%u" % (self.remote_addr, self.remote_port))
return None
+ if msg.ver != self._hdr_ver:
+ log.error("Rx unexpected version %u message "
+ "from R:%s:%u, we need version %u"
+ % (msg.ver, self.remote_addr,
+ self.remote_port, self._hdr_ver))
+ return None
+
return msg
def send_msg(self, msg, legacy = False):
diff --git a/src/target/trx_toolkit/fake_trx.py b/src/target/trx_toolkit/fake_trx.py
index 928333f..12bcb80 100755
--- a/src/target/trx_toolkit/fake_trx.py
+++ b/src/target/trx_toolkit/fake_trx.py
@@ -35,6 +35,7 @@
from app_common import ApplicationBase
from burst_fwd import BurstForwarder
from transceiver import Transceiver
+from data_msg import Modulation
from clck_gen import CLCKGen
from trx_list import TRXList
from fake_pm import FakePM
@@ -98,6 +99,7 @@
TOA256_BASE_DEFAULT = 0
RSSI_BASE_DEFAULT = -60
+ CI_BASE_DEFAULT = 0 # FIXME!
def __init__(self, *trx_args, **trx_kwargs):
Transceiver.__init__(self, *trx_args, **trx_kwargs)
@@ -105,11 +107,14 @@
# Actual ToA / RSSI / TA values
self.toa256_base = self.TOA256_BASE_DEFAULT
self.rssi_base = self.RSSI_BASE_DEFAULT
+ self.ci_base = self.CI_BASE_DEFAULT
+ self.tsc = 0 # FIXME!
self.ta = 0
# ToA / RSSI randomization threshold
self.toa256_rand_threshold = 0
self.rssi_rand_threshold = 0
+ self.ci_rand_threshold = 0
# Path loss simulation (burst dropping)
self.burst_drop_amount = 0
@@ -137,6 +142,17 @@
rssi_max = self.rssi_base + self.rssi_rand_threshold
return random.randint(rssi_min, rssi_max)
+ @property
+ def ci(self):
+ # Check if randomization is required
+ if self.ci_rand_threshold is 0:
+ return self.ci_base
+
+ # Generate a random RSSI value in required range
+ ci_min = self.ci_base - self.ci_rand_threshold
+ ci_max = self.ci_base + self.ci_rand_threshold
+ return random.randint(ci_min, ci_max)
+
# Path loss simulation: burst dropping
# Returns: True - drop, False - keep
def sim_burst_drop(self, msg):
@@ -156,10 +172,24 @@
# simulates RF path parameters (such as RSSI),
# and sends towards the L1
def send_data_msg(self, src_trx, msg):
+ # Override header version
+ msg.ver = self.data_if._hdr_ver
+
# Complete message header
msg.toa256 = self.toa256
msg.rssi = self.rssi
+ # Version specific fields
+ if msg.ver >= 0x01:
+ # Hard-coded values
+ msg.mod_type = Modulation.ModGMSK
+ msg.nope_ind = False
+ msg.tsc_set = 0
+
+ # Configurable values
+ msg.tsc = self.tsc
+ msg.ci = self.ci
+
# Apply optional Timing Advance
if src_trx.ta is not 0:
msg.toa256 -= src_trx.ta * 256
--
To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/14585
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I164f5ae4ce7694d6e324aab927a04e96d489ebd8
Gerrit-Change-Number: 14585
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <axilirator at gmail.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190624/f1040691/attachment.htm>