fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/33165 )
Change subject: fake_trx.py: remove SETSLOT based burst filtering ......................................................................
fake_trx.py: remove SETSLOT based burst filtering
For the sake of simplicity and due to some performance limitations, fake_trx.py does not generate TRXD NOPE indications for osmo-bts-trx on its own. It's actually trxcon sending NOPE.req (empty Tx PDUs) when it has nothing to send, and fake_trx.py simply converting them.
In a follow-up change [1] we remove trxcon's internal clock module, making the Uplink burst scheduling being driven by Downlink bursts with the respective TDMA Fn/Tn values. Given that fake_trx.py is currently dropping bursts received for inactive timeslots, we would get NOPE.req only for a single timeslot, the one being currently active. This would break several testcases in ttcn3-bts-test.
Remove SETSLOT based burst filtering, so that trxcon would still be able to generate NOPE.req for all, active and inactive timeslots. Downlink bursts for inactive timeslots are discarded anyway.
Change-Id: Ia42550d5c2d8b49efbdf8ef0ce46b26afd1c464e Related: [1] Ic8a5b6277c6b16392026e0557376257d71c9d230 Related: OS#5500 --- M src/target/trx_toolkit/burst_fwd.py M src/target/trx_toolkit/ctrl_if_trx.py M src/target/trx_toolkit/transceiver.py 3 files changed, 27 insertions(+), 48 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/65/33165/1
diff --git a/src/target/trx_toolkit/burst_fwd.py b/src/target/trx_toolkit/burst_fwd.py index f5a6d78..6924531 100644 --- a/src/target/trx_toolkit/burst_fwd.py +++ b/src/target/trx_toolkit/burst_fwd.py @@ -58,8 +58,6 @@ # Check transceiver state if not trx.running: continue - if rx_msg.tn not in trx.ts_list: - continue
# Match Tx/Rx frequencies of the both transceivers if trx.get_rx_freq(rx_msg.fn) != tx_freq: diff --git a/src/target/trx_toolkit/ctrl_if_trx.py b/src/target/trx_toolkit/ctrl_if_trx.py index 2871f37..e6fdaf1 100644 --- a/src/target/trx_toolkit/ctrl_if_trx.py +++ b/src/target/trx_toolkit/ctrl_if_trx.py @@ -134,32 +134,6 @@ self.trx._tx_freq = int(request[1]) * 1000 return 0
- elif self.verify_cmd(request, "SETSLOT", 2): - log.debug("(%s) Recv SETSLOT cmd" % self.trx) - - # Obtain TS index - ts = int(request[1]) - if ts not in range(0, 8): - log.error("(%s) TS index should be in " - "range: 0..7" % self.trx) - return -1 - - # Parse TS type - ts_type = int(request[2]) - - # TS activation / deactivation - # We don't care about ts_type - if ts_type == 0: - # Deactivate TS (remove from the list of active timeslots) - if ts in self.trx.ts_list: - self.trx.ts_list.remove(ts) - else: - # Activate TS (add to the list of active timeslots) - if ts not in self.trx.ts_list: - self.trx.ts_list.append(ts) - - return 0 - # Power measurement if self.verify_cmd(request, "MEASURE", 1): log.debug("(%s) Recv MEASURE cmd" % self.trx) diff --git a/src/target/trx_toolkit/transceiver.py b/src/target/trx_toolkit/transceiver.py index 385c38d..ffd18ab 100644 --- a/src/target/trx_toolkit/transceiver.py +++ b/src/target/trx_toolkit/transceiver.py @@ -43,16 +43,6 @@
NOTE: CLCK is not required for some L1 implementations, so it is optional.
- == Timeslot configuration - - Transceiver has a list of active (i.e. configured) TDMA timeslots. - The L1 should configure a timeslot before sending or expecting any - data on it. This is done by SETSLOT control command, which also - indicates an associated channel combination (see GSM TS 05.02). - - NOTE: we don't store the associated channel combinations, - as they are only useful for burst detection and demodulation. - == Child transceivers
A BTS can (optionally) have more than one transceiver. In this case @@ -168,9 +158,6 @@ # Frequency hopping parameters (set by CTRL) self.fh = None
- # List of active (configured) timeslots - self.ts_list = [] - # List of child transceivers self.child_trx_list = TRXList()
@@ -264,13 +251,6 @@ "is not running => dropping..." % (self, msg.desc_hdr())) return None
- # Make sure that indicated timeslot is configured - # Pass PDUs without burst bits, they will be sent as NOPE.ind - if msg.tn not in self.ts_list and msg.burst: - log.warning("(%s) RX TRXD message (%s), but timeslot is not " - "configured => dropping..." % (self, msg.desc_hdr())) - return None - return msg
def handle_data_msg(self, msg):