fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/28761 )
Change subject: trx_toolkit: do not auto power on/off child MS Transceivers ......................................................................
trx_toolkit: do not auto power on/off child MS Transceivers
By default, powering on/off a parent transceiver (child_idx=0) will automatically power on/off its child transceivers (if any). This behavior is desirable for the BTS, but not for the MS Transceivers.
Additional MS Transceivers are going to be used by ttcn3-bts-test for spawning multiple DCCH components in parallel. We don't want situations when one component powers off transceivers of the other DCCH components - they must be independent.
Change-Id: I0cd6bac616273bed0e246ad48edc44fff484c589 --- M src/target/trx_toolkit/fake_trx.py M src/target/trx_toolkit/transceiver.py 2 files changed, 12 insertions(+), 5 deletions(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved
diff --git a/src/target/trx_toolkit/fake_trx.py b/src/target/trx_toolkit/fake_trx.py index 5bfc956..0daecb4 100755 --- a/src/target/trx_toolkit/fake_trx.py +++ b/src/target/trx_toolkit/fake_trx.py @@ -409,7 +409,7 @@ self.append_trx(self.argv.bts_addr, self.argv.bts_base_port, name = "BTS")
# Init TRX instance for BB - self.append_trx(self.argv.bb_addr, self.argv.bb_base_port, name = "MS") + self.append_trx(self.argv.bb_addr, self.argv.bb_base_port, name = "MS", child_mgt = False)
# Additional transceivers (optional) if self.argv.trx_list is not None: diff --git a/src/target/trx_toolkit/transceiver.py b/src/target/trx_toolkit/transceiver.py index 168d3db..385c38d 100644 --- a/src/target/trx_toolkit/transceiver.py +++ b/src/target/trx_toolkit/transceiver.py @@ -65,8 +65,9 @@ (trx_2) ctrl=5705, data=5706. ...
- As soon as the first transceiver is powered on / off, - all child transceivers are also powered on / off. + By default, powering on/off a parent transceiver (child_idx=0) will + automatically power on/off its child transceivers (if any). This + behavior can be disabled by setting "child_mgt" param to False.
== Clock distribution (optional)
@@ -126,6 +127,7 @@ self.bind_addr = bind_addr self.base_port = base_port self.child_idx = kwargs.get("child_idx", 0) + self.child_mgt = kwargs.get("child_mgt", True)
# Meta info self.name = kwargs.get("name", None) @@ -222,8 +224,13 @@ return None
def power_event_handler(self, poweron: bool) -> None: - # Update self and child transceivers - for trx in [self, *self.child_trx_list.trx_list]: + # If self.child_mgt is True, automatically power on/off children + if self.child_mgt and self.child_idx == 0: + trx_list = [self, *self.child_trx_list.trx_list] + else: + trx_list = [self] + # Update self and optionally child transceivers + for trx in trx_list: trx.running = poweron if not poweron: trx.disable_fh()
2 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one.