aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-05-19Add test program to verify convolution implementationPhilipp Maier3-0/+238
Convolution is a complex process and we should be able to verify if computing results change when the implementation is touched. This commit adds a test program that executes some testcases. The testcases are crafted in a way that every implmentation (several different ones for SSE) is executed once. The output can be compared against the included .ok file. Change-Id: Ic702ecb356c652fbcd76bee689717fb5d3526fe9
2017-05-02cosmetic: Make parameter lists uniformPhilipp Maier2-110/+143
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
2017-05-02buildenv: Turn off native architecture buildsPhilipp Maier1-1/+1
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
2017-04-10config: Remove OpenBTS style sqlite configurationTom Tsou1-80/+4
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
2017-04-03Configuration: Fix const and signedness compile warningsTom Tsou2-2/+2
Change-Id: I701559814b2aee6f84f10e612f128da40f6a51c1
2017-04-03Transceiver: Remove unsigned negative comparesTom Tsou2-3/+3
Change-Id: I49f30699786c52736ef334dae61f7bbd65d878d5 Fixes: Coverity CID 149353, 149356
2017-04-03Resampler: Fix non-array delete for filter tapsTom Tsou1-1/+1
Change-Id: I59cdb01809da5940c74aaae9d17f413aefbf04b2 Fixes: Coverity CID 149349
2017-03-31sigProcLib: Fix negative value check on unsigned valueTom Tsou1-1/+1
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
2017-03-31sigProcLib: Check return status on downsamplingTom Tsou1-2/+6
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
2017-03-31sigProcLib: Remove unreachable code and no-effect checksTom Tsou1-6/+2
Unreachable path and negative value inspection on unsigned types. Change-Id: If53b4b03550b0a7656c808cfe96806252153eb2f Fixes: Coverity CID 165239, 165238, 165236
2017-03-31Resampler: Fix initialization return checkingTom Tsou1-1/+1
Greater-than comparison was used on boolean type. Change-Id: Ia3b71b3a06b34a6fd781bf197ecf9d5cc1711d13
2017-03-28sigProcLib: Constify demodulation functions burst argument.Alexander Chemeris2-10/+10
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
2017-03-28sigProcLib: constify signalVector arguments for detectBurst() functions.Alexander Chemeris2-23/+24
Change-Id: Ic033371a387353eb12b1827a0eb16c00c07da88a
2017-03-28Move Transceiver::demodulate() to sigProcLib to make it reusable.Alexander Chemeris4-17/+14
Change-Id: I2cad47160e53f65612bd1da8998c83a0a22bce9b
2017-03-28sigProcLib.h: Fix whitespaces. No non-whitespace changes.Alexander Chemeris1-46/+46
The file seem to be using "2 spaces" indent, bt some lines are using tabs which breaks formatting. Change-Id: I7718cca45c245c9e91250ab2877f5436d4029698
2017-03-28sigProcLib: Add operator<< to print CorrType to a string.Alexander Chemeris2-0/+25
Change-Id: I3d68cbdab8fb504d7f155029654a576d318a201e
2017-03-28Move BURST_THRESH from Transceiver.cpp to sigProcLib.h to make it reusable.Alexander Chemeris2-9/+9
Change-Id: I5a888890e26858c0fbb2ddb7ef23cb0fd66a64b4
2017-03-24Move Transceiver::detectBurst() to sigProcLib to make it reusable.Alexander Chemeris4-37/+56
Change-Id: I3cbe8e6e4f39dde02c945e6c9086c040e276845c
2017-03-24sigProcLib: rename signalError type to SignalError.Alexander Chemeris1-1/+1
Change-Id: I1a5ae6e87d4c69945053fdefec185d0fb1a26399
2017-03-24Move CorrType type from Transceiver to sigProcLib.Alexander Chemeris3-12/+12
Required to move Transceiver::detectBurst to sigProcLib. Change-Id: I3e0e74a98bbca4d19657f50a5fb447f078663c9b
2017-03-24vector: Introduce shrink() function to shrink vector size without loosing data.Alexander Chemeris1-0/+7
Change-Id: I9c0ac2715aea1a90c9e6ebcd982522b80a547099
2017-03-24vector: Introduce segmentMove() method to move data inside of a vector.Alexander Chemeris1-0/+15
Change-Id: I2f3f4267b4137a0bc031f27e0f896fba9b9f3433
2017-03-24signalVector: Implement segment().Alexander Chemeris2-0/+8
Change-Id: I6fe3aae53fb2fa5bb7637e976de6059eabe08202
2017-03-22BitVector: Convert SoftVector from 0..1 to -1..+1 soft bits.Alexander Chemeris2-13/+13
This makes code simpler and will allow us send -127..127 soft bits towards osmo-bts instead of 0..255 bits. Change-Id: I16ecc3d4c829dcf0f619ad995bc9d4a4ed8af0a4
2017-03-22BitVector: Remove convolutional codec - we don't use it in osmo-trx.Alexander Chemeris3-411/+1
Now we have more fexibility in how we represent SoftVector, since we no longer depend on the particular convolutional codec implementation. Change-Id: I3006b6a26c5eff59dbe9c034f689961802f1d0d0
2017-03-22CommonLibs: Print soft bits with less confidence to console when printing a ↵Alexander Chemeris1-0/+4
soft vector. We use other symbols to show that these bits has less confidence: o and . for 0 with less confidence | and ' for 1 with less confidence Change-Id: I747a17568ee48f1f3163e8dfab2e450af85e6435
2017-03-22Call vectorSlicer() right before packing bits for transmission to osmo-bts.Alexander Chemeris2-3/+3
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
2017-03-22sigProcLib: Slice SoftVector instead of signalVector for GMSK demod.Alexander Chemeris2-26/+22
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
2017-03-22sigProcLib: Rename demodulateBurst() to demodGmskBurst() for clarity.Alexander Chemeris3-6/+6
Change-Id: Ibcef8d7d4a2c06865bed7e4091ccc8dbbd494d77
2017-03-22sigProcLib: make energyDetect() simpler by returning actual energy.Alexander Chemeris3-17/+9
Change-Id: I9bf97f2dc03fea9bebcf43198dfb05f6e4694e9c
2017-03-20sigProcLib: Fix documentation, sync argument names in .cpp and .h files.Alexander Chemeris2-47/+49
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
2017-03-20radioBuffer: Remove extra ; at the end of inline function definitions.Alexander Chemeris1-4/+4
Change-Id: I8911adf0a0bb1ae828ac9cdf1a76c904639f6c06
2017-03-20sigProcLib: Typo sybols -> symbolsAlexander Chemeris1-1/+1
Change-Id: I8cbef852374d0458c4f4ad4be0df0aa998e3796a
2017-03-20CommonLibs: Remove unused files.Alexander Chemeris17-1313/+49
Change-Id: I2bfb45a1c7d01785bdb30204dba38c683a4288a9
2017-03-14Add autoconf-archive to dependenciesMax1-0/+1
We use AX_EXT in ./configure for checking CPU features anyway, so it's better to add it as explicit dependency. Related: OS#1923 Change-Id: I7ba48e1df4ede8b477574da3faa15fd02e15c69b
2017-03-07uhd: Increase MC-BTS FPGA clock rate to 51.2 MHzTom Tsou1-10/+13
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
2017-03-07uhd: Add support for UHD-3.11 logging controlTom Tsou2-7/+16
The logging API changes in UHD-3.11, which causes build failure if not properly handled. Change-Id: I223ebb9fae3f4061e0cb37c05263c1b569e8f628
2017-01-26Fix building against sqlite3Max7-11/+12
* 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
2017-01-24Remove embedded sqlite3Max6-145782/+1
Previous patch switches to using system-wide sqlite3 so it's safe to remove local copy now. Change-Id: Ie8e751cc62132fe1f7748ccd78c5d48469027329
2017-01-24Do not embed sqlite3 when buildingRuben Undheim2-2/+1
Change-Id: If5edadc04c3ff953b451676e55ad3d00d4e43c82
2017-01-24Integrate Debian packaging changesMax3-24/+182
debian/control: * restructure to make it easier to incorporate further changes * update package descriptions * update project URL debian/rules: * use proper hardening syntax debian/copyright: update to match Debian format Change-Id: I9a89e7311c8632ae26ac2e6c02d1e427d94b1608 Related: OS#1694
2017-01-24Add gerrit settingsMax1-0/+3
Make it simple to setup and use this repo with 'git review' command. Change-Id: I6bbe65cc09e086685995f084a07a646a7d60b93c
2017-01-24debian: Require fftw3 header files for osmo-trxHolger Hans Peter Freyther1-1/+1
Install missing development package to get osmo-trx to build. Change-Id: Id80937724d5e4da4ed555cbabfcd3e2457cb2a19
2017-01-19Revert "uhd: Set minimum supported version to 3.9.0"Tom Tsou2-2/+11
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>
2017-01-11uhd: Add X300 sample timing for 4 SPSTom Tsou1-0/+1
Previously only 4/1 and 1/1 configurations Tx/Tx samples-per-symbol were supported. Change-Id: I9153171fe3af95e1cb0d9d35a9287dfde155d184
2016-10-26transceiver: Fix mismatched allocations and deallocationspierre.baudry3-4/+6
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
2016-10-25uhd: Set minimum supported version to 3.9.0Tom Tsou2-11/+2
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>
2016-10-25transceiver: Fix command build warningTom Tsou1-2/+3
Place conditional brackets on handover table reset. Reset table only on successful start or restart. Change-Id: I74032b49785bd68835a0a68cb0f14cdaab4fcd26
2016-10-18uhd: Add missing B200 sample timing for 4 SPS receiveTom Tsou1-1/+2
Only B210 timing was previously set in the timing table. Change-Id: Idc8d1be8201ad086c57dd9b3d6d72d277306cd2b
2016-10-17add contrib/jenkins.sh, for gerrit build botNeels Hofmeyr1-0/+7
Change-Id: If8887525b0062090e9445a35e32b03e3b8e7eede