Attention is currently required from: fixeria.
pespin has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/osmo-trx/+/43116?usp=email )
Change subject: Transceiver52M: implement TRXDv2 support
......................................................................
Patch Set 5: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/43116?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: Ie6a33e3980b3ca4ab05a3d4221d5a8ba0132233d
Gerrit-Change-Number: 43116
Gerrit-PatchSet: 5
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Aug 2026 19:15:06 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Attention is currently required from: pespin.
Jenkins Builder has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/osmo-trx/+/43116?usp=email )
Change subject: Transceiver52M: implement TRXDv2 support
......................................................................
Patch Set 5:
(4 comments)
File Transceiver52M/Transceiver.h:
Robot Comment from checkpatch (run ID ):
https://gerrit.osmocom.org/c/osmo-trx/+/43116/comment/b4f33084_ff628b8c?usp… :
PS5, Line 213: bool sendBurstInd(size_t chan, const struct osmo_trxd_burst_ind *bi);
please, no spaces at the start of a line
Robot Comment from checkpatch (run ID ):
https://gerrit.osmocom.org/c/osmo-trx/+/43116/comment/5176746f_7a5b79c0?usp… :
PS5, Line 217: bool queueBurstIndBatched(size_t chan, const struct osmo_trxd_burst_ind *bi);
please, no spaces at the start of a line
Robot Comment from checkpatch (run ID ):
https://gerrit.osmocom.org/c/osmo-trx/+/43116/comment/710c12a2_c580e9ab?usp… :
PS5, Line 220: bool flushBurstIndBatch(size_t chan);
please, no spaces at the start of a line
Robot Comment from checkpatch (run ID ):
https://gerrit.osmocom.org/c/osmo-trx/+/43116/comment/71728bc2_36aa8cc1?usp… :
PS5, Line 223: bool handleBurstReq(size_t chan, const struct osmo_trxd_burst_req *br);
please, no spaces at the start of a line
--
To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/43116?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: Ie6a33e3980b3ca4ab05a3d4221d5a8ba0132233d
Gerrit-Change-Number: 43116
Gerrit-PatchSet: 5
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Aug 2026 17:59:57 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Attention is currently required from: Hoernchen, pespin, tnt.
Jenkins Builder has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/osmo-trx/+/43115?usp=email )
Change subject: Transceiver52M: migrate to libosmo-trx
......................................................................
Patch Set 5:
(3 comments)
File Transceiver52M/Transceiver.h:
Robot Comment from checkpatch (run ID ):
https://gerrit.osmocom.org/c/osmo-trx/+/43115/comment/4beecc5a_9d34acbc?usp… :
PS5, Line 158: char data[OSMO_TRXC_MSG_BUF_SIZE];
please, no spaces at the start of a line
Robot Comment from checkpatch (run ID ):
https://gerrit.osmocom.org/c/osmo-trx/+/43115/comment/67a3562f_145c7ee2?usp… :
PS5, Line 210: int pullRadioVector(size_t chan, struct osmo_trxd_burst_ind *ind);
please, no spaces at the start of a line
Robot Comment from checkpatch (run ID ):
https://gerrit.osmocom.org/c/osmo-trx/+/43115/comment/dbd92392_f856290a?usp… :
PS5, Line 277: void logRxBurst(size_t chan, const struct osmo_trxd_burst_ind *bi);
please, no spaces at the start of a line
--
To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/43115?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: I458ec85c56e2101d073c8c35f11c147191c4ea0c
Gerrit-Change-Number: 43115
Gerrit-PatchSet: 5
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: Hoernchen <ewild(a)sysmocom.de>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-CC: tnt <tnt(a)246tNt.com>
Gerrit-Attention: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Attention: tnt <tnt(a)246tNt.com>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Aug 2026 17:59:52 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Attention is currently required from: pespin.
fixeria has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/osmo-trx/+/43111?usp=email )
Change subject: libosmo-trx/ep: add TRX endpoint module
......................................................................
Patch Set 4:
(1 comment)
File libosmo-trx/src/trx_ep.c:
https://gerrit.osmocom.org/c/osmo-trx/+/43111/comment/e55dae76_6b070fec?usp… :
PS3, Line 66: char *laddr, *raddr; /* local/remote IP address */
> one field per line in the struct pleaseeeee
Done
--
To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/43111?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: I767fa43a9ca88be40c385f6dcb9de22891a6afc3
Gerrit-Change-Number: 43111
Gerrit-PatchSet: 4
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Aug 2026 17:50:37 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: pespin.
fixeria has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/osmo-trx/+/43116?usp=email )
Change subject: Transceiver52M: implement TRXDv2 support
......................................................................
Patch Set 5:
(1 comment)
File Transceiver52M/Transceiver.cpp:
https://gerrit.osmocom.org/c/osmo-trx/+/43116/comment/4b6ac3e6_052181e9?usp… :
PS1, Line 1200: } while (br.flags & OSMO_TRXD_F_BATCH_IND);
> I wonder whether we can end in a infinite loop here with req_parse returning eg. rc=0 above.
I've modified the check above to return early on `rc <= 0`. So if for whatever reason `osmo_trxd_burst_req_parse()` returns 0 (e.g. somebody changes it some day), we're safe.
--
To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/43116?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: Ie6a33e3980b3ca4ab05a3d4221d5a8ba0132233d
Gerrit-Change-Number: 43116
Gerrit-PatchSet: 5
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Aug 2026 17:50:25 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: Hoernchen, pespin, tnt.
fixeria has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/osmo-trx/+/43115?usp=email )
Change subject: Transceiver52M: migrate to libosmo-trx
......................................................................
Patch Set 4:
(6 comments)
File Transceiver52M/Transceiver.cpp:
https://gerrit.osmocom.org/c/osmo-trx/+/43115/comment/be111e64_cada4a94?usp… :
PS4, Line 764: bi->rssi = (int8_t) lround(-(20.0 * log10(rxFullScale / avg) + rssi_offset));
> so there's no nois calculation now?
Noise calculation was moved to `Transceiver::logRxBurst()`.
It's not needed for TRXD BURST.ind because it's never sent over the wire.
> I find this line quite difficult to read with all the operations, parenthesis and casts. Can you split it into ...
Moved the calculation into an inline function.
https://gerrit.osmocom.org/c/osmo-trx/+/43115/comment/85477170_0e078302?usp… :
PS4, Line 801: bi->toa256 = (int16_t) lround(ebp.toa * 256.0);
> I wonder whether doing the multiplication before rounding is correct here. @tnt@246tNt. […]
It's correct. With the current logic, e.g. `ebp.toa = -0.3` becomes `-77` (`-0.3 * 256.0 = -76.8`). If you multiply after `lround()`, you loose the fractional part: `ebp.toa = -0.3` becomes `0 * 256.0 = 0`.
https://gerrit.osmocom.org/c/osmo-trx/+/43115/comment/94133de8_9a477ab1?usp… :
PS4, Line 815: bi->burst, float_soft_bit_to_sbit);
> Can you pass an inline static func to a std::transform?I also wonder whether the change from a loop […]
`std::transform` is a template function, and at least with `-O2` the compiler does inline `float_soft_bit_to_sbit()` (I checked). That `inline` itself is not necessary, since it's up to the compiler, but it does not hurt either.
This whole construction should be equivalent to a plain for-loop in terms of performance.
https://gerrit.osmocom.org/c/osmo-trx/+/43115/comment/64bb5437_904b4815?usp… :
PS4, Line 1200: double noise_dbfs = 20.0 * log10(rxFullScale / mStates[chan].mNoiseLev) + rssi_offset;
> aah noise calculation happens here now, it's only needed for logging, fine.
Done
https://gerrit.osmocom.org/c/osmo-trx/+/43115/comment/db6dc920_7aa8bd2a?usp… :
PS4, Line 1244: msgb_free(msg);
> Since you are doing a synchrnonous write here: Why allocating and freeing a msgb every time? Can't y […]
Good idea. Changed to pre-allocate msgbs for each channel.
https://gerrit.osmocom.org/c/osmo-trx/+/43115/comment/5dc8b3ef_45e66dec?usp… :
PS4, Line 1311: char command[64];
> why was this changed? Looks like not really related to this patch or at least can be done in a separ […]
This change was unintentional, reverted back.
--
To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/43115?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: I458ec85c56e2101d073c8c35f11c147191c4ea0c
Gerrit-Change-Number: 43115
Gerrit-PatchSet: 4
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: Hoernchen <ewild(a)sysmocom.de>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-CC: tnt <tnt(a)246tNt.com>
Gerrit-Attention: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Attention: tnt <tnt(a)246tNt.com>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Aug 2026 17:50:19 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: fixeria, pespin.
Hello Jenkins Builder, pespin,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-trx/+/43111?usp=email
to look at the new patch set (#4).
The following approvals got outdated and were removed:
Code-Review+1 by pespin, Verified-1 by Jenkins Builder
Change subject: libosmo-trx/ep: add TRX endpoint module
......................................................................
libosmo-trx/ep: add TRX endpoint module
Add the osmo_trx_ep module, encapsulating the clock/ctrl/data UDP
socket management of the TRX protocol on top of osmo_io. One endpoint
serves an (optional) clock socket plus N channels, each channel being
a ctrl + data socket pair.
The module is role-neutral: struct osmo_trx_ep_cfg carries a mode
(OSMO_TRX_EP_MODE_{L1,TRX}) selecting which side of the protocol the
endpoint implements. The mode is needed to parse datagrams received
on the data sockets, as the wire format alone does not identify the
direction (BURST.ind vs BURST.req). All local and remote ports are
derived from a single base port (default: 5700).
To avoid indirect calls on the hot path, the decoded Rx handlers
(osmo_trx_ep_rx_*) are plain function prototypes bound at link-time,
not function pointers. The library provides weak default stubs to
stay link-complete (-no-undefined), so applications only implement
the handlers for the directions they consume, overriding the stubs.
The Tx path implements TRXDv2 PDU batching for burst requests:
osmo_trx_ep_send_burst_req() accumulates PDUs until it is called
with br == NULL (the batching breaker), like in osmo-bts-trx.
osmo-trx itself will not adopt this module: its per-channel/thread
socket ownership model (dedicated blocking-read threads per socket)
is incompatible with osmo_io's single-select-loop dispatch. It is
meant for osmo-bts, osmocom-bb/trxcon, and the upcoming C rewrite
of fake_trx.
Change-Id: I767fa43a9ca88be40c385f6dcb9de22891a6afc3
---
M .gitignore
M libosmo-trx/include/Makefile.am
A libosmo-trx/include/osmocom/trx/ep.h
M libosmo-trx/src/Makefile.am
A libosmo-trx/src/trx_ep.c
M tests/libosmo-trx/Makefile.am
A tests/libosmo-trx/trx_ep_test.c
A tests/libosmo-trx/trx_ep_test.err
A tests/libosmo-trx/trx_ep_test.ok
M tests/testsuite.at
10 files changed, 1,016 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/11/43111/4
--
To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/43111?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: I767fa43a9ca88be40c385f6dcb9de22891a6afc3
Gerrit-Change-Number: 43111
Gerrit-PatchSet: 4
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Attention is currently required from: fixeria, pespin.
Hello Jenkins Builder, pespin,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-trx/+/43116?usp=email
to look at the new patch set (#5).
The following approvals got outdated and were removed:
Code-Review+1 by pespin, Verified-1 by Jenkins Builder
Change subject: Transceiver52M: implement TRXDv2 support
......................................................................
Transceiver52M: implement TRXDv2 support
TRXDv2 was proposed and implemented in osmo-bts a while ago, but
osmo-trx was still stuck at TRXDv1. This patch implements TRXDv2
and UL/DL burst batching using libosmo-trx API.
DL: driveTxPriorityQueue() now loops over osmo_trxd_burst_req_parse()
to handle datagrams potentially containing multiple batched BURST.req,
dispatching each via the new handleBurstReq().
UL: accumulate BURST.ind PDUs for the same FN into one msgb per channel
and flush as a single datagram once the next frame's PDU arrives or
the channel stops; TRXDv0/v1 channels keep sending one PDU per
datagram via sendBurstInd(). Batching is unconditional for now;
making it configurable is left as a follow-up.
Change-Id: Ie6a33e3980b3ca4ab05a3d4221d5a8ba0132233d
Related: OS#5283
---
M Transceiver52M/Transceiver.cpp
M Transceiver52M/Transceiver.h
2 files changed, 173 insertions(+), 56 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/16/43116/5
--
To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/43116?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: Ie6a33e3980b3ca4ab05a3d4221d5a8ba0132233d
Gerrit-Change-Number: 43116
Gerrit-PatchSet: 5
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>