aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-04-16gitignore: remove non-existing 'doc/manuals/osmomsc-usermanual.xml'2021q1Vadim Yanitskiy1-1/+0
Change-Id: If0fef3f12f15780ed3a3e33db25cd29082ff142a
2021-03-01ipc: Makefile.am: Clean LDADD variablePau Espin Pedrol1-1/+2
Change-Id: I26c942496ab12883a4a1e0d549cb462642570636
2021-03-01Threads: Avoid printing pthread_self()Pau Espin Pedrol1-2/+2
The type used to represent a thread ID is implementation specific, and may be an opaqe structure, making it unsuitable to be printed by standard means. Let's use osmo_gettid() instead. Change-Id: Iaa4d0eaf52b901fff06cc67f8dd8b61ac6084911 Related: OS#5032
2021-03-01Drop logging pthread IDPau Espin Pedrol2-11/+6
new libosmocore osmo-trx already depends on does support printing thread ID as prefix to all messages (confgiurable through VTY), so there's no use in printing it in osmo-trx unconditionally. Moreover, The type used to represent a thread ID is implementation specific, and may be an opaqe structure, making it unsuitable to be printed by standard means, so in any case we should be better printing system's TID instead. Related: OS#5032 Change-Id: Ie98a21246230c946afc47f4f5b9c6618eefde494
2021-03-01Threads.cpp: Fix missing extern C around libosmocore includePau Espin Pedrol1-0/+2
Change-Id: I76975ed71382ff2afa8cfaff2950e23ff750201e
2021-02-28Bump version: 1.3.0.1-e2404 → 1.3.11.3.1Harald Welte1-0/+6
Change-Id: I559b8d8608b3e492ae1ba0d5a54e226ab424b23b
2021-02-28mark uhddev_ipc.cpp as BUILT_SOURCESHarald Welte1-2/+3
fixes "make dist-bzip2" on a clean checkout Closes: OS#5052 Change-Id: Ieb4cefb16c8f43e708a96353c13342fe40ffdb54
2021-02-23Bump version: 1.2.0.132-3b8f-dirty → 1.3.01.3.0Pau Espin Pedrol6-14/+164
Change-Id: I92b99ebab1d54e9cbdc8469d76105c55bcb03f36
2021-02-21Add a (hidden) VTY parameter for Rx/Tx freq. shiftingVadim Yanitskiy4-3/+22
Change-Id: I360e8ba91471757210c7f096c04928a6fbb91c61 Related: SYS#4454
2021-02-19tests: Replace deprecated API log_set_print_filenamePau Espin Pedrol1-1/+1
Change-Id: I3cc0a92da39ab2594b3a7cefb314e2f2ecb628e2
2021-02-19tests: Explicitly drop category from logPau Espin Pedrol1-0/+2
Let's disable category here since we don't care about its formatting here. In any case, every test relying on logging output validation should always explicitly state the config to avoid issues in the future if default values change. Change-Id: Iaa77f8a7d3f752173507afd988bd76a8aa632082 Related: OS#5034
2021-02-17Replace my_gettid with libosmocore osmo_gettid APIPau Espin Pedrol5-39/+7
The API was moved to libosmocore, let's use it instead of defining our own here with all the complexity in build system involved. Depends: libosmocore.git Change-Id Id7534beeb22fcd50813dab76dd68818e2ff87ec2 Related: OS#5027 Change-Id: I19e32fbc47bd88a668e0c912e89b001b0f8831dd
2021-02-17Threads.cpp: Use already existing gettid wrapper functionPau Espin Pedrol1-7/+1
A wrapper function with better support already exists in debug.c and announced in debug.h. Let's use that one instead. Related: OS#5027 Change-Id: I2ccf94f95a531d5873da2a4681cf89cbc5b31422
2021-02-04sigProcLib: fix C/I computation for 8-PSK modulated burstsSylvain Munaut3-17/+38
Change-Id: I860af60bc0fbd36dfb38316fad65ddd3a5827a8f Related: Ib4ceec553f2e5f77bf3f6777724968456a180f5e Related: OS#4006, OS#4373
2021-01-28configure.ac: set -std=gnu11Oliver Smith1-0/+2
Change-Id: Ie95876d1d2ebf31ff588999d85584f6981522fa8
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