aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-01-27Transceiver: use proper factor for amplitude scalingVadim Yanitskiy1-1/+1
In Transceiver::addRadioVector() we scale the I/Q samples by scaling the output voltage of the DAC. A relative factor/divisor/ration in the voltage domain cannot be used 1:1 in the power domain. There exist two similar formulas: a) X_dB = 10 * log10(X_lin / X_ref) b) Y_db = 20 * log10(Y_lin / Y_ref) both of them are correct, and according to [1]: a) If you convert a quantity X that relates to power or energy, => the factor is 10. b) If you convert a quantity Y that relates to amplitude, => the factor is 20. Therefore we should be using 20 instead of 10. This change makes osmo-trx apply per-lchan attenuation values correctly. Otherwise it would double the values indicated in TRXD messages. [1] https://dspillustrations.com/pages/posts/misc/decibel-conversion-factor-10-or-factor-20.html Change-Id: I98bc00bd25df4913d45e55eb008d715aca76fc7c Related: SYS#4918
2021-01-21Transceiver: fix integer division in addRadioVector()Vadim Yanitskiy1-1/+1
By default, C/C++ compiler does assume integer division. The lack of explicit cast to 'double' causes the transceiver to ignore non-decimal attenuation values (x % 10 > 0): txFullScale * 10 ^ ( -3 / 10) == txFullScale * 10 ^ 0 == txFullScale * 1.0 txFullScale * 10 ^ ( -8 / 10) == txFullScale * 10 ^ 0 == txFullScale * 1.0 txFullScale * 10 ^ (-10 / 10) == txFullScale * 10 ^ -1 == txFullScale * 0.1 txFullScale * 10 ^ (-18 / 10) == txFullScale * 10 ^ -1 == txFullScale * 0.1 Change-Id: I85b1063f57f630d90c6da32827bec4a05afc6514 Related: SYS#4918
2021-01-18ChannelizerBase: Fix memory leakPau Espin Pedrol1-0/+1
The memory leak was reported by ASan: Direct leak of 32 byte(s) in 1 object(s) allocated from: #0 0x7f23b488e459 in __interceptor_malloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:145 #1 0x558e83e39e3c in ChannelizerBase::initFilters() /osmo-trx/Transceiver52M/ChannelizerBase.cpp:84 #2 0x558e83e3a8a0 in ChannelizerBase::init() /osmo-trx/Transceiver52M/ChannelizerBase.cpp:188 #3 0x558e83e2d263 in RadioInterfaceMulti::init(int) /osmo-trx/Transceiver52M/radioInterfaceMulti.cpp:197 #4 0x558e83de76d2 in makeRadioInterface(trx_ctx*, RadioDevice*, int) /osmo-trx/Transceiver52M/osmo-trx.cpp:115 #5 0x558e83dea663 in trx_start /osmo-trx/Transceiver52M/osmo-trx.cpp:600 #6 0x558e83dead6f in main /osmo-trx/Transceiver52M/osmo-trx.cpp:695 #7 0x7f23b2576151 in __libc_start_main (/usr/lib/libc.so.6+0x28151) Change-Id: Ibc4c7edeb9bba517db08fce152d863e6cc0c7bbb
2021-01-17radioInterfaceMulti: Fix memory leak upon close()Pau Espin Pedrol1-0/+4
The leak was reported by ASan. Direct leak of 48 byte(s) in 1 object(s) allocated from: #0 0x7fd9c9c29f41 in operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cpp:99 #1 0x55bd63ae2364 in RadioInterfaceMulti::init(int) /git/osmo-trx/Transceiver52M/radioInterfaceMulti.cpp:209 #2 0x55bd63a9c6d2 in makeRadioInterface(trx_ctx*, RadioDevice*, int) /git/osmo-trx/Transceiver52M/osmo-trx.cpp:115 #3 0x55bd63a9f663 in trx_start /git/osmo-trx/Transceiver52M/osmo-trx.cpp:600 #4 0x55bd63a9fd6f in main /git/osmo-trx/Transceiver52M/osmo-trx.cpp:695 #5 0x7fd9c7910151 in __libc_start_main (/usr/lib/libc.so.6+0x28151) Change-Id: Ia4f9d4e47caa86ada98054763573e652d281992c
2021-01-13contrib/jenkins: don't build osmo-gsm-manualsOliver Smith1-1/+0
Related: OS#4912 Change-Id: Ibacb11da37acfd324cee37068099627136717781
2021-01-08osmo-trx.spec: move ipc-driver-test into package ipc-testAlexander Couzens1-1/+13
Allow to drop the uhd runtime dependency of osmo-trx-ipc. uhd is only required for the driver-test utility. Related: SYS#5266 Change-Id: Iff91e09684167247c9c7de0141451a5b9344aa0d
2021-01-07manual: Fix typo OsmTRX -> OsmoTRXHarald Welte1-1/+1
Change-Id: I4b3a76e41d4abbb08046a241ae9b7c079ce990ae
2021-01-06README updateHarald Welte1-10/+8
* use https for hyperlinks * explicitly mention the primary use case with OsmoBTS * fix spelling in title Change-Id: I4f20ad8666dcc6bbc23d78b40b7c73ddd7e6eacc
2020-12-10ipc-driver-test: Allow setting dir prefix for UD socketPau Espin Pedrol2-10/+23
Change-Id: I35282b38a1d560fb3440fe0aa9a27808d9d116cc
2020-12-08vty: fix swapped documentation for 'filler type' commandVadim Yanitskiy1-1/+1
vty_cmd_string_from_valstr() expands the given 'struct value_string' sequentionally, so the order of entries in both filler_{types,docs} shall match (regardless of the value assigned). Change-Id: Ieb3bbc4fb30f303c47555ca77d03a9e965bc72b5
2020-12-07ipc: Fix wrong reference to BTS in log linePau Espin Pedrol1-1/+1
Change-Id: Idd272959e335c46ca88e348dd792e15ddb317d61
2020-11-25main: generate coredump and exit upon SIGABRT receivedPau Espin Pedrol1-0/+11
Previous code relied on abort() switching sigaction to SIG_FDL + retriggering SIGABRT in case the signal handler returns, which would then generate the coredump + terminate the process. However, if a SIGABRT is received from somewhere else (kill -SIGABRT), then the process would print the talloc report and continue running, which is not desired. Change-Id: I3a3ff56cb2d740a33731ecfdf76aa32606872883 Fixes: OS#4865
2020-11-11Use osmo_fd_*_{disable,enable}Harald Welte5-17/+18
Change-Id: Ic8c8c418e123fbdff625556a900b19650deefe0b Depends: libosmocore.git Idb89ba7bc7c129a6304a76900d17f47daf54d17d
2020-11-04doc/manuals: generate XML VTY reference at build-timeVadim Yanitskiy6-1413/+70
Unfortunately, we cannot re-use the existing Makefile rules from: $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc because they do not allow to generate the list of $(DOCBOOKS) from a template, and require the project to store everything in separate folders with specific names. Also, those rules expect that the target PDFs contain only a single word in their names (for example, 'osmoapp-vty-reference', not 'osmo-app-vty-reference'), while in a project with multiple similarly named targets this would reduce readability (imagine 'osmotrxuhd-vty-reference'). Change-Id: I798ea3b7417b8ca3e9c7d50911158c5413526237 Depends: I6aac73d998c5937894233631e654a160d5623198 Related: SYS#4937, SYS#4910
2020-11-04main: use logging API to print SIMD info instead of printf()Vadim Yanitskiy1-29/+33
Otherwise these logging lines end up in the automatically generated XML VTY reference (stdout), so this breaks further XML processing. Change-Id: I8e0fd728d406e2452c9c0ddad5bce5f6b17fab42 Related: SYS#4937, SYS#4910
2020-11-04vty: fix documentation for 'ext-rach (disable|enable)'Vadim Yanitskiy1-1/+3
Do not use 'extended' because it's not the same 11-bit Access Burst, as it was assumed before. Add missing docs for 'enable'/'disable'. Change-Id: I80b5a584e554eb7cc2416017b10fee032202b372
2020-11-02vty: auto-generate cmd and doc strings for cfg_filler_type_cmdVadim Yanitskiy1-14/+21
Change-Id: I7fb228c63f3246f443ece67106abba0432b1659e
2020-11-02vty: remove groundless statement about filler type 'dummy'Vadim Yanitskiy1-2/+1
Dummy bursts have nothing to do with A5/x encryption, and I see no reason why (and how?!?) would using that filler type break encryption in osmo-bts-trx. I asked the author of this code back in August 2020 [1], and so far didn't get any response. [1] https://lists.osmocom.org/pipermail/openbsc/2020-August/013208.html Change-Id: Iae513d7acbb8ef682e1744ac8726cbd6ece8bd87
2020-11-02vty: fix documentation for 'multi-arfcn (disable|enable)'Vadim Yanitskiy1-1/+2
Change-Id: Id653ee058b208ddc105947319adad8da667be11f
2020-11-02vty: cosmetic: use VTY_IPV4_CMD in 'bind-ip' / 'remote-ip'Vadim Yanitskiy1-2/+2
Change-Id: I8e44f771cbd03629c066bc24c3186997761f93f1
2020-11-02vty: fix documentation for 'rx-sps (1|4)' and 'tx-sps (1|4)'Vadim Yanitskiy1-2/+6
Change-Id: I70d9b16fd2b1c2cbaafc978724369cd2c9679cbd
2020-10-30vty: fix documentation for 'egprs (disable|enable)'Vadim Yanitskiy1-1/+3
Change-Id: I7a28bede8fd7d68b3afe9deec381fc93e46d65a9
2020-10-30vty: fix documentation for 'swap-channels (disable|enable)'Vadim Yanitskiy1-1/+3
Change-Id: Idca1a2beab07ef4df9ae5c55658cab80f7cc7565
2020-10-25Transceiver: explicitly init m{Rx,Tx}LowerLoopThreadVadim Yanitskiy1-0/+1
Coverity warns us that a non-static class members: - mRxLowerLoopThread, and - mTxLowerLoopThread, are not initialized in this constructor nor in any functions that it calls. I don't think it's critical, because we do initialize them in Transceiver::start(), but let's make them nullptr. Change-Id: If9e06aa7965f17383ab6599c15945e8ce2703bbf Fixes: CID#214952
2020-10-24Transceiver: use size_t and ARRAY_SIZE() in constructorVadim Yanitskiy1-2/+2
Change-Id: I164d66aad04d77957300b07e83b085f43a3ee8c1
2020-10-24device: drop unreasonable LIBOSMO{CTRL,VTY}_{CFLAGS,LIBS}Vadim Yanitskiy6-9/+7
Neither VTY nor CTRL API is used in device specific code, excluding the 'uhd' where osmo_cpu_sched_vty_apply_localthread() is called. Change-Id: I568b443da4b96c005734d749faa22b9c7440f951
2020-10-24main: add --vty-ref-mode, use vty_dump_xml_ref_mode()Vadim Yanitskiy1-14/+36
Change-Id: Ie54c45fdcc8660f37f8db2367b53404b189b3ffc Depends: Ie2022a7f9e167e5ceacf15350c037dd43768ff40 Related: SYS#4910
2020-10-24device/common/Makefile.am: remove $(LMS_CFLAGS) from AM_CXXFLAGSVadim Yanitskiy1-1/+1
This is device-independent code, so it should not be here. Change-Id: I1ffc3431a9a1a46c74c354b3f8a256684bfcbe73
2020-10-24device/lms: get rid of 'using namespace std'Vadim Yanitskiy1-3/+1
Change-Id: I4329801c502db73efa946f15c103b2c081cee5a7
2020-10-24device/lms: fix missing semicolon in LMSDevice::assign_band_desc()Vadim Yanitskiy1-1/+1
Change-Id: I6aedb72306461ebb944fc13a795b0bf3121ea275
2020-10-24device/lms: fix: 'trx_vty.h' header requires C linkageVadim Yanitskiy1-1/+1
Otherwise, the linker fails to produce osmo-trx-lms binary: LMSDevice.cpp:493: undefined reference to `get_value_string(value_string const*, unsigned int)' LMSDevice.cpp:237: undefined reference to `osmo_panic(char const*, ...)' Change-Id: I2fef166c13136af7b7aaa744d39427d76ad11769 Fixes: OS#4828
2020-10-19Use osmo_fd_setup() wherever applicableHarald Welte3-14/+3
Change-Id: Ie093dea96ec8990368695c0c5824e0fe44fb8540
2020-10-18ipc: Use OSMO_FD_* instead of deprecated BSC_FD_*Harald Welte4-25/+25
Change-Id: I98b3f9525954d6882f7488d650038a8e28f7b769
2020-10-14Calculate RSSI offset based on RxGain configurationPau Espin Pedrol16-70/+187
Prior to this patch, osmo-trx relied totally on proper VTY configuration being set in "rssi-offset" together with the RxGain set through TRXC in order to provide correct Uplink RSSI measurements to bts-trx. With this patch, RSSI is now by default calculated (in LMS and UHD backends) based on the currently set RxGain, by providing empirically discovered values. Still, for backward compatibility, the old "rssi-offset" command will overwrite completely the per-default calculated rssi offset. A new optional parameter "relative" is added at the end of the "rssi-offset" VTY command to flag the value as relative to the newly per-default calculated value. This way specific setups (like adding a LNA / RF fronted) can still be expressed while still keeping the automatic per-default offset. Related: OS#4468 Change-Id: I8ef78fd20c22c60d61bfb18d80a4a36df4fd6c20
2020-10-14Transceiver: Pass config struct instead of large list of paramsPau Espin Pedrol5-117/+88
Change-Id: Ifb43cb11f3e7a69b0a88f632f0a0c90ada7f939e
2020-10-12contrib/jenkins: Enable parallel make in make distcheckPau Espin Pedrol1-2/+2
Change-Id: I32925b35126bcd4ef7b5e1315dde28869c2b4b86 Related: OS#4421
2020-10-09osmo-trx: add commandline option --vty-ref-xmlPhilipp Maier1-3/+15
The commandline option --vty-ref-xml is needed to enable automatic generation of the VTY reference manual. Change-Id: I34dd36183e013ab005f39b235c4ab561590befb7 Related: SYS#4937, OS#1601
2020-10-08vty: add attributes to VTY commands indicating when they applyPhilipp Maier1-12/+14
Change-Id: I6dfdedc081eb8c3d53913f6fa38591920c8b3b43 Related: SYS#4937, OS#1601
2020-09-18arch: x86: Fix convolve optimizations breaking signalPau Espin Pedrol1-4/+4
This patch fixes MS failing to even see the network, and only RACHs of 1 zeroed byte being seen in GSMTAP. The issue seems to only appear on some specific machines; others have been running fine for weeks without this memset being an issue. Fixes: 7a52e42ee0676f47e801dd348b478302de5d2e50 Change-Id: I98ad885a5d71e7775973a4d881c0f1cd665ea711
2020-09-12radioDevice: fix set_antennas(): consider MULTI_ARFCN modeVadim Yanitskiy1-0/+14
In the multi-ARFCN mode, if the Tx/Rx antenna names are explicitly set in 'chan N' sections of the configuration file: trx ... multi-arfcn disable chan 0 tx-path TX/RX rx-path RX2 chan 1 tx-path TX/RX rx-path RX2 chan 2 tx-path TX/RX rx-path RX2 osmo-trx would crash, because radioDevice::set_antennas() would attempt to configure antenna names for all N physical channels, while USRP devices usually have 2 or even 1 available. The easiest approach is to remove both 'tx-path'/'rx-path' from all 'chan N' sections excluding 'chan 0', so it would work fine. This makes sense, because in the multi-ARFCN mode we actually use only one physical channel. However, let's still make sure that explicit configuration of the Tx/Rx antenna names would not crash osmo-trx and skip N > 0 in radioDevice::set_antennas(). Change-Id: I09f316f181cbbc2214e8913b73f7c1fcea4e8c05 Related: OS#4636
2020-09-12vty: add multi-ARFCN specific warning for chan N > 0Vadim Yanitskiy1-0/+12
Change-Id: I12d7c466a9a428a384233c4377627e262f165401 Related: OS#4636
2020-09-11proto_trxd: cosmetic: 'if' is not a function, add spaceVadim Yanitskiy1-1/+1
Change-Id: I99cf10662232b1f6845d4019dd3b9be45a82d85b
2020-09-11[cosmetic] radioIntefaceMulti: Fix whitespace / indentHarald Welte1-6/+5
Change-Id: I3addb844a79a8f4e8af03323fc50e57b8a3590a8
2020-09-11[cosmetic] radioInterfaceMulti: More commentsHarald Welte1-0/+9
Change-Id: If608627a77c39b5faabc72c7dd72d00fae8697a9
2020-09-04transceiver: initialize reorder flag so we don't miscountEric1-1/+1
Change-Id: Ia7740b45611dbf09a406b3fd9f0a810d46c96bde
2020-09-01Add support for TRXC MUTE commandPau Espin Pedrol2-2/+16
Related: SYS#4920 Change-Id: I39983d026ad54c479aa224968e9491d01f30dc35
2020-08-27Fix build on Debian8Harald Welte1-2/+4
We cannot use C99 or higher features in C code! Last lines of build log: [ 265s] for (unsigned int i = 0; i < decoded_region->num_chans; i++) [ 265s] ^ [ 265s] ipc-driver-test.c:473:3: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code [ 265s] Makefile:580: recipe for target 'ipc_driver_test-ipc-driver-test.o' failed [ 265s] make[5]: *** [ipc_driver_test-ipc-driver-test.o] Error 1 Change-Id: I80c9cbd77f1cdf323ad2b492de7e9a177840c383
2020-08-26ipc: fix var declaration in for loopPau Espin Pedrol1-1/+2
""" error: 'for' loop initial declarations are only allowed in C99 or C11 mode """ Change-Id: I97cb9a0a3ecf64e3e5fcfca75431f8fe2a07bd10
2020-08-25jenkins.sh: Verify distro-specific patches applyPau Espin Pedrol1-0/+6
Change-Id: I75792c5defff63b7deaeb533b6818deaac3e0fd3
2020-08-25debian: Update debian8 osmo-trx specific patchPau Espin Pedrol1-9/+9
Recent commit adding osmo-trx-ipc didn't update the patch, which fails to apply now due to files having changed its contents. Change-Id: I6fa50e82320330f83c9753352418755e8b414edf