Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
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
|
|
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
|
|
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
|
|
Related: OS#4912
Change-Id: Ibacb11da37acfd324cee37068099627136717781
|
|
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
|
|
Change-Id: I4b3a76e41d4abbb08046a241ae9b7c079ce990ae
|
|
* use https for hyperlinks
* explicitly mention the primary use case with OsmoBTS
* fix spelling in title
Change-Id: I4f20ad8666dcc6bbc23d78b40b7c73ddd7e6eacc
|
|
Change-Id: I35282b38a1d560fb3440fe0aa9a27808d9d116cc
|
|
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
|
|
Change-Id: Idd272959e335c46ca88e348dd792e15ddb317d61
|
|
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
|
|
Change-Id: Ic8c8c418e123fbdff625556a900b19650deefe0b
Depends: libosmocore.git Idb89ba7bc7c129a6304a76900d17f47daf54d17d
|
|
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
|
|
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
|
|
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
|
|
Change-Id: I7fb228c63f3246f443ece67106abba0432b1659e
|
|
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
|
|
Change-Id: Id653ee058b208ddc105947319adad8da667be11f
|
|
Change-Id: I8e44f771cbd03629c066bc24c3186997761f93f1
|
|
Change-Id: I70d9b16fd2b1c2cbaafc978724369cd2c9679cbd
|
|
Change-Id: I7a28bede8fd7d68b3afe9deec381fc93e46d65a9
|
|
Change-Id: Idca1a2beab07ef4df9ae5c55658cab80f7cc7565
|
|
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
|
|
Change-Id: I164d66aad04d77957300b07e83b085f43a3ee8c1
|
|
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
|
|
Change-Id: Ie54c45fdcc8660f37f8db2367b53404b189b3ffc
Depends: Ie2022a7f9e167e5ceacf15350c037dd43768ff40
Related: SYS#4910
|
|
This is device-independent code, so it should not be here.
Change-Id: I1ffc3431a9a1a46c74c354b3f8a256684bfcbe73
|
|
Change-Id: I4329801c502db73efa946f15c103b2c081cee5a7
|
|
Change-Id: I6aedb72306461ebb944fc13a795b0bf3121ea275
|
|
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
|
|
Change-Id: Ie093dea96ec8990368695c0c5824e0fe44fb8540
|
|
Change-Id: I98b3f9525954d6882f7488d650038a8e28f7b769
|
|
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
|
|
Change-Id: Ifb43cb11f3e7a69b0a88f632f0a0c90ada7f939e
|
|
Change-Id: I32925b35126bcd4ef7b5e1315dde28869c2b4b86
Related: OS#4421
|
|
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
|
|
Change-Id: I6dfdedc081eb8c3d53913f6fa38591920c8b3b43
Related: SYS#4937, OS#1601
|
|
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
|
|
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
|
|
Change-Id: I12d7c466a9a428a384233c4377627e262f165401
Related: OS#4636
|
|
Change-Id: I99cf10662232b1f6845d4019dd3b9be45a82d85b
|
|
Change-Id: I3addb844a79a8f4e8af03323fc50e57b8a3590a8
|
|
Change-Id: If608627a77c39b5faabc72c7dd72d00fae8697a9
|
|
Change-Id: Ia7740b45611dbf09a406b3fd9f0a810d46c96bde
|
|
Related: SYS#4920
Change-Id: I39983d026ad54c479aa224968e9491d01f30dc35
|
|
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
|
|
"""
error: 'for' loop initial declarations are only allowed in C99 or C11 mode
"""
Change-Id: I97cb9a0a3ecf64e3e5fcfca75431f8fe2a07bd10
|
|
Change-Id: I75792c5defff63b7deaeb533b6818deaac3e0fd3
|
|
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
|