Attention is currently required from: Hoernchen, Timur Davydov, fixeria, laforge, osmith.
pespin has posted comments on this change by Timur Davydov. ( https://gerrit.osmocom.org/c/osmo-trx/+/42198?usp=email ) Change subject: feat(usdr): add USDR backend support (osmo-trx-usdr) ...................................................................... Patch Set 5: (40 comments) File Transceiver52M/device/usdr/USDRDevice.h: https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/471c550a_e5761512?usp=email : PS4, Line 12: This program is distributed in the hope that it will be useful, > Added the `*` prefix. and the indentation still differs from the the lines above. https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/f2a82332_9a4aa5a4?usp=email : PS4, Line 46: struct DeviceParameters { > Yes, replaced with `struct dev_desc` for consistency with the other devices. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/4f8422fd_5ab50155?usp=email : PS4, Line 48: * time correction for TX timestamp, in seconds, to align it with RX timestamp, which is needed to achieve correct > Fixed, wrapped to stay under 120 chars. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/a1ead6bb_441d4300?usp=email : PS4, Line 54: using DeviceParametersMap = std::map<std::string, DeviceParameters>; > Yes, replaced with `dev_map_t` for consistency with the other devices. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/de9c7bca_dcdef9eb?usp=email : PS4, Line 86: public: > Reordered the class members to match the structure used in the other device > classes (public section […] Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/644d6824_42434013?usp=email : PS4, Line 115: /** > Removed trailing whitespace. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/f70ef8e2_893ba916?usp=email : PS4, Line 116: * @brief Read samples from the USDR. > Ack. […] Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/096ba097_1347a43d?usp=email : PS4, Line 126: bool *underrun = nullptr); > Aligned as suggested. Done File Transceiver52M/device/usdr/USDRDevice.h: https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/4f484909_a53aac39?usp=email : PS3, Line 54: int txsps; ///< samples count per GSM symbol for Tx > Replaced with `tx_sps` and `rx_sps` from `RadioDevice` Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/b7f10edb_6afd13dc?usp=email : PS3, Line 60: int timeTxCorr = 0; ///< time correction for TX timestamp, in samples, to align it with RX timestamp, which is needed to achieve correct timing of the transmitted signal. This is a device-specific parameter that can be configured via dev_args and defaults to 0 if not specified. > Done Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/3cc3340a_949321a6?usp=email : PS3, Line 63: TIMESTAMP ts_last_recv = 0; > Fixed indentation throughout the file Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/62a9520e_10e54542?usp=email : PS3, Line 90: Read samples from the USDR. > Fixed comments throughout the file Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/311fa05a_4ce46b10?usp=email : PS3, Line 100: TIMESTAMP timestamp = 0xffffffff, bool *underrun = NULL); > Fixed indentation throughout the file Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/0b5e83b1_0deddbd0?usp=email : PS3, Line 121: > Fixed whitespaces throughout the file Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/a876a8be_93671360?usp=email : PS3, Line 132: TIMESTAMP initialReadTimestamp(void) { return ts_initial;} > Fixed indentation throughout the file Done File Transceiver52M/device/usdr/USDRDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/bac9759b_0fd0ecd1?usp=email : PS3, Line 49: {"limemini", {tx_offset: 86.769us}}, /* 94 samples at 1083333.33333 sps corresponds to 86.769 us */ > Thanks, good catch — I indeed lost xSDR in that section. […] Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/f653d980_0f9b118c?usp=email : PS3, Line 52: enum { > Replaced the enum with #define constants as suggested Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/7d6b5694_b0e53434?usp=email : PS3, Line 85: std::string msg = std::string("Error creating USDR device with connection string '") + connection_string + "' res: " + std::to_string(res) + "(" + strerror(res) + ")"; > Reformatted the file to ensure all lines are within the 120-character limit Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/02b41a8a_c8939e46?usp=email : PS3, Line 180: dev = NULL; > Fixed indentation throughout the file Done File Transceiver52M/device/usdr/USDRDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/7ea8e927_577d51c6?usp=email : PS4, Line 191: const int loglevel = parse_config(args, "loglevel", 3); > I’ve added a logging callback similar to the other backends. […] Ack, fine. https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/28da068b_0e6c779f?usp=email : PS4, Line 199: const double rate = 0.27083333333e6 * tx_sps; > It comes from 1083333.33333 sps / 4. […] Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/e716211c_775c711d?usp=email : PS4, Line 203: uint64_t val; > I've moved the variable declarations to the top of the function, except for > const ones in some funct […] Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/f643e89a_41df4ba3?usp=email : PS4, Line 221: usdr_dme_set_uint_exception(dev, "/dm/sdr/0/tx/gain", 0); > Added the suggested macros and replaced the hardcoded paths accordingly. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/a85b9b60_4c86ab55?usp=email : PS4, Line 228: const char* fmt = "ci16"; > Moved it to a #define at the top of the file. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/d95d074a_b34067c2?usp=email : PS4, Line 246: usdr_dms_sync_exception(dev, "rx", ped.size(), ped.data()); > Replaced the remaining hardcoded strings with defines. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/c909c799_7310ba57?usp=email : PS4, Line 260: if (dev) { > Implemented as suggested. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/357dcc50_1169f130?usp=email : PS4, Line 269: return false; > Added an error message. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/1866d804_334efc44?usp=email : PS4, Line 296: return !started; > Implemented as suggested. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/0290b35e_e83b0182?usp=email : PS4, Line 327: double USDRDevice::setTxGain(double dB, size_t chan) > Removed all unused functions. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/f8dcbd92_80861407?usp=email : PS4, Line 382: try { > Reworked it to follow the other backends: values are now cached per channel > in arrays (rx_gains, tx_ […] Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/dca9c323_be9e8e78?usp=email : PS4, Line 392: TIMESTAMP timestamp, bool *underrun) > Fixed the indentation. Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/86153742_bcaf52f6?usp=email : PS4, Line 394: if (!started) > Replaced the check with the same bufs. […] Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/69188723_e0f9b0ed?usp=email : PS4, Line 421: bool *underrun, TIMESTAMP timestamp) > Fixed Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/fcecb741_2a71b9bc?usp=email : PS4, Line 475: std::string USDRDevice::getTxAntenna(size_t chan ) > Removed Not removed ;) https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/2b5e005a_9307955e?usp=email : PS4, Line 492: return GSM::Time(6,7); > Added space Done https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/3268480a_2f30223f?usp=email : PS4, Line 610: return new USDRDevice(iface, cfg); > I don’t think additional device-specific checks are needed here. […] Done File debian/osmo-trx-usdr.install: https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/f38b6ad5_542ad2da?usp=email : PS4, Line 3: /usr/bin/osmo-trx-usdr > It surprised me as well. […] @[email protected] CC File doc/manuals/chapters/trx-backends.adoc: https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/81873d67_72d8b6ae?usp=email : PS3, Line 86: where multiple small SDRs are combined to present one or more TRX instances > Updated the documentation according to your remarks. SO IIUC that means you didn't actually yet try/succeed to run multi-trx BTS with these devices, correct? File doc/manuals/chapters/trx-devices.adoc: https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/b71db28d_36b06576?usp=email : PS3, Line 102: scale the number of TRX instances. > Good point, thanks. […] As mentioned in the other comment, multi-trx for a given BTS running multiple osmo-trx processes is not supported nowadays. Can you actually provide information on how did you test such a setup? Otherwise please update the documentation in this file. File doc/manuals/chapters/trx-devices.adoc: https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/da8c8ccb_8fdf65ed?usp=email : PS4, Line 127: instances. The current _osmo-trx-usdr_ backend operates in single-channel mode. > Added the missing newline at the end of the file. Done -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/42198?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: I5d1d25921514954c4929ae6e7352168b3ceb05df Gerrit-Change-Number: 42198 Gerrit-PatchSet: 5 Gerrit-Owner: Timur Davydov <[email protected]> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <[email protected]> Gerrit-CC: Hoernchen <[email protected]> Gerrit-CC: fixeria <[email protected]> Gerrit-CC: laforge <[email protected]> Gerrit-CC: osmith <[email protected]> Gerrit-Attention: osmith <[email protected]> Gerrit-Attention: Hoernchen <[email protected]> Gerrit-Attention: laforge <[email protected]> Gerrit-Attention: fixeria <[email protected]> Gerrit-Attention: Timur Davydov <[email protected]> Gerrit-Comment-Date: Mon, 02 Mar 2026 10:59:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin <[email protected]> Comment-In-Reply-To: Timur Davydov <[email protected]>
