Age | Commit message (Collapse) | Author | Files | Lines |
|
Stealing Bits.
This bug only affects generation of normal bursts filled with random bits which
are used in test mode. It doesn't affect operation of osmo-trx during normal
operation. That's why it has stayed unnoticed for so long.
Each Normal Burst has 3 tail bits, not 4.
Also it's better to set stealing bits to 0 for maximum compatibility. We may want to
introduce a selector for each bit whether to set it to 0, to 1 or to a random number.
Change-Id: I0377029556c8b681b3ba3b635bf19572b34546ea
|
|
The 'diversity' option was an experimental 2 antenna receiver
implementation for UmTRX. The implementation has not been
maintained and current working status is unknown.
In addition to code rot, Coverity is triggering errors in the
associated code sections.
Removal of code cleans up many cases of special handling that
were necessary to accommodate the implementation.
Change-Id: I46752ccf5dbcffbec806081dec03e69a0fbdcdb7
|
|
The osmo-trx binary outputs no info about its SSE support status.
This commits adds some putput that informs about the SSE of the
binary and also tells which of the SSE levels the CPU supports.
Change-Id: Iacc83fd668c31644e0efb3e18962cf2870ed1daf
|
|
Currently we find SSE3 and SSE4.1 code mixed togehter along with
generic code in one file. This introduces the risk that the
compiler exidantly mixes SSE4.1 instructions into an SSE3, or
even worse into a generic code path.
This commit splits the SSE3 and SSE4.1 code into separate files
and compiles them with the matching target options.
Change-Id: I846e190e92f1258cd412d1b2d79b539e204e04b3
|
|
The ARM and the X86 implementation of the conversion functions share
the same, non cpu specific implementation in separate files.
This commit removes the code duplication by putting the generic
implementation into a convert_base.c, similar to to convolve_base.c
Change-Id: Ic8d8534a343e27cde79ddc85be4998ebd0cb6e5c
|
|
The current implementation can select the SSE support level during
compiletime only.
This commit adds functionality to automatically detect and switch
the SSE support level and automatically switch the Implementation
if the CPU does not support the required SSE level.
Change-Id: Iba74f8a6e4e921ff31e4bd9f0c7c881fe547423a
|
|
The non-sse implementation and the sse implementation of the convert
and convolve functions have different parameter lists. This makes it
difficult to use function pointers in order to select the right
function depending on the SSE-Level and CPU.
This commit uniformizes the parameter lists in preparation for
planned runtime cpu detection support
Change-Id: Ice063b89791537c4b591751f12f5ef5c413a2d27
|
|
The compiler option -march=native instructs the compiler to auto-optimize
the code for the current build architecture. This is fine for building
and using locally, but contraproductive when generating binary packages.
This commit replaces -march=native with $(SIMD_FLAGS), which contains a
collection of supported SIMD options, so we won't loose the SSE support.
Change-Id: I3df4b8db9692016115edbe2247beeec090715687
|
|
OpenBTS relies on reading in configuration values from the OpenBTS.config
sqlite3 database. This configuration method is not maintained and not
recommended for Osmocom or OpenBTS use. Command line setup is the
recommended approach.
Note that when the osmo-trx logging mechanism is replaced, the sqlite
dependency will be removed.
Change-Id: I95d7b771fde976818bee76f89163e72c3a44ecdd
|
|
Change-Id: I49f30699786c52736ef334dae61f7bbd65d878d5
Fixes: Coverity CID 149353, 149356
|
|
Change-Id: I59cdb01809da5940c74aaae9d17f413aefbf04b2
Fixes: Coverity CID 149349
|
|
Convert negative value check on unsigned value to zero check
to avoid potential divide-by-zero error condition.
Change-Id: Ib0d7d1bceb5fe66e69345db93a74e3e0773a2257
Fixes: Coverity CID 165059
|
|
Improper length values will cause the polyphase resampler
rotation to fail. Check return and return NULL on error.
Change-Id: I3ad22f9fd7a20754f589c04258dcca3770474a9b
Fixes: Coverity CID 165235
|
|
Unreachable path and negative value inspection on unsigned
types.
Change-Id: If53b4b03550b0a7656c808cfe96806252153eb2f
Fixes: Coverity CID 165239, 165238, 165236
|
|
Greater-than comparison was used on boolean type.
Change-Id: Ia3b71b3a06b34a6fd781bf197ecf9d5cc1711d13
|
|
demodCommon() used to scale input vector in place which changed original data.
That's a bad practice and is not really necessary, so I've changed the code to
scale burst after it's copied to a new vector during a delay operation.
Change-Id: Ic45f71b634e48808356d68925bb9f5783e0bf0d3
|
|
Change-Id: Ic033371a387353eb12b1827a0eb16c00c07da88a
|
|
Change-Id: I2cad47160e53f65612bd1da8998c83a0a22bce9b
|
|
The file seem to be using "2 spaces" indent, bt some lines are using
tabs which breaks formatting.
Change-Id: I7718cca45c245c9e91250ab2877f5436d4029698
|
|
Change-Id: I3d68cbdab8fb504d7f155029654a576d318a201e
|
|
Change-Id: I5a888890e26858c0fbb2ddb7ef23cb0fd66a64b4
|
|
Change-Id: I3cbe8e6e4f39dde02c945e6c9086c040e276845c
|
|
Change-Id: I1a5ae6e87d4c69945053fdefec185d0fb1a26399
|
|
Required to move Transceiver::detectBurst to sigProcLib.
Change-Id: I3e0e74a98bbca4d19657f50a5fb447f078663c9b
|
|
Change-Id: I6fe3aae53fb2fa5bb7637e976de6059eabe08202
|
|
vectorSlicer() converts soft-bits from -1..+1 to 0..1 while we want
to keep SoftVector in -1..+1 mode until the last minute, because at some
point we'll want to transmit -1..+1 to osmo-bts instead of converting it
from 0..1 back to -1..+1 on the osmo-bts side.
Plus it removes code duplication - we call it once instead of twice.
Change-Id: Idd6ddd7ac219afb0df055a692632678b66373764
|
|
This makes it similar to 8-PSK demod and also saves a bit of lines ofcode and
should give us a tiny improvement in performance.
Ideally we need to remove vector slicing at all, because in osmo-bts-trx
we convert back to +-1.0 again (actually to +-127, but it doesn't mater).
So we should rather transmit +-1.0 values to avoid double conversion.
Change-Id: If9ed6f0f80fbe88c994b2f9c3cae91d0d57f4442
|
|
Change-Id: Ibcef8d7d4a2c06865bed7e4091ccc8dbbd494d77
|
|
Change-Id: I9bf97f2dc03fea9bebcf43198dfb05f6e4694e9c
|
|
Documentation in sigProcLib.h was noticeably out of sync with the actual
implementation - e.g. not all arguments were documented and arguments
which are already removed are still in the documentation. Also argument
names were different between declaration in .h and implementation in .cpp
which was confusing.
I've fixed this for detect*Burst() functions.
Change-Id: I4dfd07125d9a1e9a42a78b79faff539f003deb16
|
|
Change-Id: I8911adf0a0bb1ae828ac9cdf1a76c904639f6c06
|
|
Change-Id: I8cbef852374d0458c4f4ad4be0df0aa998e3796a
|
|
Addresses following issues where UHD 3.9 and likely other UHD versions
would report a master clock (FPGA) rate error. Update MC-BTS FPGA clock
for B200 and B210 to 51.2 MHz, which is supported by all UHD versions.
Only B200/B210 is supported for MC-BTS operation.
https://osmocom.org/issues/1963
https://osmocom.org/issues/1648
ALERT UHDDevice.cpp:548:set_master_clk: Failed to set master clock rate
ALERT UHDDevice.cpp:549:set_master_clk: Requested clock rate 3.2e+06
ALERT UHDDevice.cpp:550:set_master_clk: Actual clock rate 5e+06
Change-Id: I78fb2c0959abd0e666628ba39f433162aafb067e
|
|
The logging API changes in UHD-3.11, which causes build failure if
not properly handled.
Change-Id: I223ebb9fae3f4061e0cb37c05263c1b569e8f628
|
|
* Explicitly check for sqlite3 at configure stage, remove old include
dir, fix header inclusion.
* Use configure results for linking instead of hardcoded linker option
for sqlite.
* Add dependency on -dev package for .deb
Change-Id: I6d7f697d67651f02ceb77fc4da4317b64fa47f9e
Fixes: OS#1928
|
|
This reverts commit 93ca09ea61d044e5f8662b28bf084c808cac4f2c.
Ettus Research recommends the use of 3.9 series of UHD releases,
but requiring this version has lead to issues with broken OBS and
packaged binaries by Debian, Ubuntu, and other distributions.
Change-Id: Ie6b175ac6d46d091937380c79fdd0125b16ec75f
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
Previously only 4/1 and 1/1 configurations Tx/Tx samples-per-symbol
were supported.
Change-Id: I9153171fe3af95e1cb0d9d35a9287dfde155d184
|
|
The behaviour of a mismatched pair of allocation and deallocation is undefined
Also fixes a memory leak if malloc fails (which stops the application anyway)
Change-Id: I9c8bbade8531e8c9c02dcd43bac38cb954b3c89f
|
|
Versions of UHD prior to 3.9.0 are no longer supported.
Rather then backport and ifdef UHD version specific API and
behavioral changes, set minimum support to the current LTS
release, which is 3.9.0.
Change-Id: Id7d15b52cd4e45f1d856a6ef3a84832a28f2dd04
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
Place conditional brackets on handover table reset. Reset table
only on successful start or restart.
Change-Id: I74032b49785bd68835a0a68cb0f14cdaab4fcd26
|
|
Only B210 timing was previously set in the timing table.
Change-Id: Idc8d1be8201ad086c57dd9b3d6d72d277306cd2b
|
|
Invert the initial and trailing diffential bits in the 4 sps
GMSK modulator to fix power-time mask irregularity at start
and end of burst. GSM tail bits are always zero, so we can
safely use fixed bit values.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
Requires changing the radioInterface API to pass in Rx side SPS
value. Update the (deprecated) diversity configuration to match
as well.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
Agilent E4406A measurement of TSC synchronized RF envelope measurement.
showed failing power levels at the tail end of EDGE bursts. Regression
traced back to following commit.
Commit d2b070369dd5341ac42ec091370d8bcd5a8ac5ee
"uhd: Correct timing alignment in 8-PSK and GMSK downlink bursts"
In the patch, the EDGE burst was delayed one symbol, but erroneously
truncated at the tail end causing the failing RF envelope measurement.
The missing tail symbol did not appear to affect end-to-end EGPRS tests.
This patch corrects the truncation.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
The time-of-arrival (TOA) value out of sigProc is specified
in symbols or, equivalently, 1 sample per symbol and does
not need to be normalized.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
Input burst construction was declared static causing the first
downlink burst from upstream to determine subsequent burst size
and modulation. Consequently, fixed sequence EGPRS tests would
pass, however, switching between 8-PSK and GMSK bursts would
fail with only one modulation type being transmitted.
Internally generated test sequences '-r' option were not affected
because the bursts are not received through the socket interface.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
Unlike earlier versions of UHD, the current release (3.9.2)
does not automatically select on-board GPSDO as the reference
source. Modify the command line settings to allow explicit
selection of GPS in addition to the external setting.
Simultaneous GPS and external reference settingis disallowed.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
Only EDGE mode is currently supported. Traditional 1 SPS Rx / 4 SPS Tx
mode requires different sampling rates which is not currently working.
RF performance is also sub-optimal and requires more tuning.
|
|
Discrete RF multi-channel was using hard coded buffer index
on the channel iteration for transmit sample conversion. End
result was segmentation fault on dual RF channel devices with
both channels active (Ettus B210 and UmTRX).
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
Previous checks on multi-channel TSC and ARFCN settings would fail
if channels were initialized out of order. Namely, if channel 0
was not configured first, osmo-trx would error on the control
interface leading osmo-bts to fail.
Allow global TSC setting on all channels with added logging notice.
Notify if channel frequency is unexpected - which may happen if
channels are setup out of order - but do no report as error.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|