aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2019-04-25lms: flush_recv: alloc buf on stack instead of heapPau Espin Pedrol1-3/+1
No need to use the heap here since buffer is only used as a temporary trash. Using the stack is quicker. Change-Id: Iede8dc0903ee3865a52c8e2fd811bcde444fee33
2019-04-17lms: properly call close if set_antennas() fails, add some commentsJoachim Steiger1-1/+4
Change-Id: I9ebe986ee3a15842a15853424ee98e9a2fa6a5df
2019-04-17lms: add device type detection and device specific gainsJoachim Steiger3-58/+40
add device dependant max gain setup - limesdr mini and limenet micro need slightly reduced maximum gains to get a PASS on phase error measurements rework clock reference setup - external clock needs to be selected before calling LMS_Init(), internal can only be set after. remove now unused compat_LMS_VCTCXO* functions - we do not set the VCTXCO directly anymore Change-Id: I3cf905b0a84bc1ec200891762a6646141ee37181
2019-04-17lms: move LMS_GetLPFBWRange and LMS_Calibrate calls from open to startJoachim Steiger2-27/+50
bandwidth, freqency, gain stages need to be set before calibration can be successful Change-Id: I1090effdf0f43e5183a402e4c1a1ffe5abdefd37
2019-04-17lms: move LMS_EnableChannel from Start/Stop to Open/Close deviceJoachim Steiger1-8/+14
move enable: it is important that channels are actually enabled before applying any configuration (besides external clock) move disable: move to close, so channels are not disabled and not enabled again while osmotrx is active. Change-Id: I82878913254ce15a85db8d006e13d5eb639793e9
2019-04-17lms: Remove wrong unused code copied from -uhdJoachim Steiger1-5/+2
Change-Id: I2bc7fcfa429d1f82c2d8e95d31dfed367f2b3f9d
2019-04-16use BSC_FD_READ and not OSMO_FD_READHarald Welte1-1/+1
We haven't even released any tagged version of libosmocore yet which includes support for the renamed OSMO_FD_READ constant. Let's avoid any breakage and use the new constants only with considerable delay, at the very least only when released libosmocore versions provide it. Change-Id: Idb57077b2a4b2a71dd5d75a24ded8bb5887da188
2019-04-11doc/configuration.adoc: fix incorrect number of physical RF channels for B210Vadim Yanitskiy1-1/+1
Change-Id: I58e2bf5dd99e1655ebd2ad80f6ed2bb178f0e88d
2019-04-11multi-ARFCN: fix maximum number of carriers limitationTom Tsou3-4/+16
Maximum number of carriers is fixed to 3 channels on a single physical RF channel in multi-ARFCN mode. For some reason, it was limited to 5. Let's fix this, and also follow this limitation in the following VTY command handlers: - cfg_multi_arfcn_cmd, - cfg_chan_cmd. Change-Id: I66a1462f368458afd313ee6f0bc0abc496dde817
2019-04-02osmo-trx: Check return code of osmo_fd_registerPau Espin Pedrol1-1/+4
Fixes Coverity CID 197513. Change-Id: I93fbcb062439a547379aaecba283d107fdc9cb59
2019-03-29osmo-trx: Use signalfd to serialize signals in main thread ctxPau Espin Pedrol1-5/+46
This should avoid prolematic scenarios where different signal handlers are running on different thread in parallel. Furthermore, we make sure those signals are always run by main loop thread. Change-Id: I9b9d9793be9af11dbe433e0ce09b7ac57a3bdfb5
2019-03-29osmo-trx: Avoid handling signals after shutdown triggeredPau Espin Pedrol1-0/+6
Recently a blocked osmo-trx process was found after ending SIGTERM to it. Apparently one thread was handling SIGTERM and calling fprintf() (grabbing libc lock) while another thread was handling another signal and also grabbing similar lock. Both thread looked deadlocked there. Probably this change doesn't fix the block on its own, but at least simplifies scenarios inside signal ctx which can go wrong. Change-Id: If91621913b8b03d8a0f4c863be0b0d479f97e8a1
2019-01-24tests: Re-enable the convolve_test by defaultSylvain Munaut1-2/+0
Change-Id: Ia26ef75bb11482fc0db3b790db1c93c8b74229d1 Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-01-24tests: Rework the convolve_testSylvain Munaut4-167/+925
Besides just general cleanup, the major changes are : - Fully internal generation of reference data that doesn't depend on glibc or even on any floating point math - Golden results are included in a .h Due to varying precision of different implementation or architecture, any kind of textual compare is impossible, so we include golden values and compare results of both the 'base' implementation the potentially 'optimized' one again this set of values with a small error tolerance Change-Id: I4e203d2c4b778af77d630ed15d4cef6b0c0eb76d Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-01-24VTY: add extended (11-bit) RACH detection toggleVadim Yanitskiy5-10/+36
Since I838c21db29c54f1924dd478c2b34b46b70aab2cd we have both TS1 and TS2 synch. sequences, in addition to "default" TS0. Let's finally introduce the VTY configuration parameter, that can be used to toggle optional detection of both TS1 and TS2. Note: we keep this optional because of potentially bad impact on performance. There's no point in paying the performance penalty unless upper levels (BTS, PCU) actually make use of it. Change-Id: I1aee998d83b06692d76a83f79748f9129a2547e8 Related: OS#3054
2019-01-21convolve: Remove support for step, offset parametersSylvain Munaut11-166/+124
- Those are not used any where - Those are not supported by the sse/neon accelerated versions - And I see very little use cases for those. Change-Id: Ic850269a0ed5d98c0ea68980afd31016ed555b48 Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-01-21arm/convolve: Fix the vfp4 real convolution for h_len=12Sylvain Munaut1-2/+2
Change-Id: Ic73f0746edd3f1f22bb1d79d4c64aa740691dd48 Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-01-20Bump version: 0.4.0.125-7c78 → 1.0.01.0.0Harald Welte1-0/+146
Change-Id: Ibb888f55a1ab27088d5f21ee8ad699f4f747abde
2019-01-11cosmetic: Don't call the SDR "USRP" in error messageHarald Welte1-1/+1
Transceiver.cpp is used for all SDR hardware we support, not just USRP. Change-Id: I9b7ddb0d679f111407704048ef3ddd964db49441
2019-01-11usrp1: Fix formatting of log message (missing space)Harald Welte1-2/+2
Change-Id: I378a8081a224acda3ee2af9b6aa0d680de884695
2019-01-11usrp1: Remove uninitialized skipRx logicHarald Welte2-9/+3
There appears to have been some logic to operate a USRP1 in transmit-only GSM mode. This is achieved using the skipRx member of the transceiver object. However, there's nobody that ever initializes it properly, and hence the feature is not possible to use anyway. I don't think this has any valid use case, so let's remove it. Change-Id: I616193f1e9aaefbf4ceb26761657811093f28b6f
2018-12-17LMSDeviceTest: fix link errors on OBSOliver Smith1-1/+2
Link LMSDeviceTest against LMS_LIBS, so it does not only compile on Debian, but also on Ubuntu and openSUSE. Thanks to roox for figuring this out. Related: OS#3654 Change-Id: I6980d4290f623485a77db10fea6d17de0321c092
2018-12-14configure.ac: check boost only if USRP1 support is enabledPau Espin Pedrol1-3/+2
boost is only used in USRPDevice class. It looks like it can be removed entirely quite easily, since only boost::shared_ptr is used for 2 variables. That's left for somebody with the device and willingness to test the changes. Change-Id: I4c3fa3ff58fd552d0cb4c4cf2033615d84c07c96
2018-12-14lms: Fix build against LimeSuite > 18.10Pau Espin Pedrol2-2/+34
LimeSuite dc124e4e2ed9b549b142410af172f0592f9f0c23 > 18.10 broke API compatibility. OS#3729 Change-Id: Idf500a5b39a857233f728c6a4316c00a99374556
2018-12-13TimevalTest: Make test deterministic with fake timePau Espin Pedrol1-7/+18
Change-Id: I74e577a0142fb6d1ef3630e02aff9910b191bff9
2018-12-13Timeval: Move to osmo_clock_gettimePau Espin Pedrol2-1/+10
Change-Id: I24da3e1136c5396062662be1d10b07b4d97cfc2e
2018-12-13Timeval: Move implementation to use clock_gettime and timespecPau Espin Pedrol2-28/+28
According to gettimeofday manual: "Applications should use the clock_gettime() function instead of the obsolescent gettimeofday() function." Furthermore, it may be desirable in the future to use other clocks such as monotonic. Change-Id: I2286998c5eefbf3c3dfb105c223daec7a1083803
2018-12-13Timeval: passed() returns true if time is equalPau Espin Pedrol1-1/+1
Change-Id: I96a9d26657f85447609693bc6932d218d354b84a
2018-12-13LMSDevice: make use of dev-args in osmo-trx.cfgOliver Smith5-2/+98
Allow selecting a specific LimeSDR device by setting dev-args in the config file. Split up the given dev-args address by comma and select the device where all substrings can be found. I could not test this with real hardware, but I have added a test case to make sure this works as expected. Related: OS#3654 Change-Id: Ib9aaa066a01bf9de3f78234d7ada884d6f28c852
2018-12-12osmo-trx.cpp: move comma_delimited_to_vector() to Utils.cppOliver Smith4-15/+63
Make the "opt" argument const. This function will also be used by LMSDevice.cpp in a follow-up commit. Related: OS#3654 Change-Id: If3f0f682ca453c2b0a06175ec9626567932cfce6
2018-12-07lms: Do {under,over}run checks even if LMS_RecvStream failsPau Espin Pedrol1-1/+1
Under failure, it could still be that stream status is updated, so let's father that in all cases. Change-Id: I4e2b8be06d2993db1bab233948a8ee774b8ac4ee
2018-12-07lms: Move {under,over}run checks into separate methodPau Espin Pedrol2-11/+16
Change-Id: I7f450aa79f6285d14826c40ecfdd9490d00509ef
2018-12-07transceiver: Log TRXCTRL iface responses towards osmo-bts-trxPau Espin Pedrol1-1/+2
Change-Id: I8128c42e63ab1fcd2a58812f3b7cf94435b5bbd8
2018-12-07Add TRXCTRL log categoryPau Espin Pedrol3-7/+14
This log category is applied to messages related to TRX CTRL socket interface, and it's printed in yellow, same color used in osmo-bts-trx for TRX category (so same messages are printed with same color in both sides). Change-Id: I98ec5e416272783ad3fbadf70478a4e48ae64983
2018-12-06contrib: fix makedistcheck with disabled systemdOliver Smith1-1/+5
EXTRA_DIST files need to be distributed, no matter if the systemd option is configured or not. Change-Id: I2e417f4c453987df1ac04f0ff41bf000da4b5c49
2018-12-05transceiver: log chan on CTRL command receivedPau Espin Pedrol1-1/+1
Change-Id: Ia3b2a35e03a8aaddd6efebc8db2ccca872f51f20
2018-12-05lms: Improve Set{Rx,Tx}{Gain,Freq} loggingPau Espin Pedrol1-6/+10
Change-Id: I6713a27c5f74beb7fcfdd712fcf695afccbc3d76
2018-12-05lms: Allow setting Tx/RxFreq for lchan!=0Pau Espin Pedrol1-11/+0
Related: OS#3346 Change-Id: I9dd0bb41d1863111d28947fc0d7c7e7ecfaf5fa8
2018-12-05lms: Allow setting Tx/RxGain for chan!=0Pau Espin Pedrol1-10/+0
Related: OS#3346 Change-Id: I5fae92a7ed5e2d92be12b9dfd33fc56195030c0b
2018-12-05SigProcLib: Improve Vector buffer allocation messPau Espin Pedrol6-47/+52
Original issue: In order to use SSE instructions, 16-byte aligned memory chunks are needed, and C++ version < C++11 doesn't provide for a native new/delete store. For that reason, memalign() must be used in the implementation of convolve_h_alloc() for some buffers. On the other side, The C++ code relies on C++ "new T[]" operator to allocate a chunk of memory containing an array of class instances. As classes are complex types, they cannot be allocated through C structures (calling malloc). Experimentally can be seen too that it's unreliable and the process will crash during startup if malloc() is used and then a Complex<> deferred from it. Previous implementation allowed for use of convolve_h_alloc or new[] based on how the (signal)Vector is called, because then the buffer is not going to be managed internally. But that's unreliable since resize() calling resize() on it could use "delete" operator on a malloc'ed buffer, and end up having a new new[] allocated buffer. It was also found that some of the callers were actually leaking memory through ASan (because the buffer is not managed by the Vector instance). IMHO best option would be to rewrite all this code using C structures and malloc/free exclusively, since it would make all this cod eeasier to maintain. But for now, let's extend the Vector class to allow specifying an external alloc/free function and let the Vector instance take care of the ownership of the buffer in all scenarios. Change-Id: Ie484a4762a7f77fe1b105188ea03a6f025730b82
2018-12-05jenkins.sh: run "make distcheck"Oliver Smith1-3/+6
Run distcheck in CI to be consistent with other Osmocom projects. Change-Id: I7d3fa0fe12e13ca13d3330158425718e5c34d00d
2018-12-05contrib/jenkins.sh: build and publish manualsOliver Smith1-1/+21
Add new environment variables WITH_MANUALS and PUBLISH to control if the manuals should be built and uploaded. Describe all environment vars on top of the file. When WITH_MANUALS is set, install osmo-gsm-manuals like any other dependency and add --enable-manuals to the configure flags (for "make" and "make distcheck"). Add the bin subdir of the installed files to PATH, so osmo-gsm-manuals-check-depends can be used by ./configure. Related: OS#3385 Change-Id: I54fdd18e405b2c84762ea06d91359867ceec8184
2018-12-04lms: Close device on LMS_Init failurePau Espin Pedrol1-1/+1
Change-Id: I0b307452a9e122a0ea39a46f096423c9a5293d30
2018-12-04osmo-trx: Change some lines to use libosmocore logging instead of coutPau Espin Pedrol1-5/+5
Change-Id: I66e3c37014ba12cd002e5b678bc0a6026f5dfc7e
2018-12-04lms: Make sure LMS_Close is called when Device is torn downPau Espin Pedrol2-0/+11
This change fixes lots of memory leaks inside libLimeSuite as announced by ASan after exiting the osmo-trx process (throgh CTRL+C for instance). This way also we make sure libLimeSuite can communicate with the HW and close whatever subsystems were enabled during LMS_Open time. Change-Id: I56ffb87079e34aa2d0322fd2ca6429742f9f7640
2018-12-04Fix DISTCHECK_CONFIGURE_FLAGS overrideOliver Smith1-1/+1
Set AM_DISTCHECK_CONFIGURE_FLAGS in Makefile.am instead of DISTCHECK_CONFIGURE_FLAGS. This is the recommended way from the automake manual, as otherwise the flag can't be changed by the user anymore. Related: OS#3718 Change-Id: I725026cd2dda333085a263c503058aac4305197d
2018-12-03PointerFIFO: Fix memleak of ListNodePau Espin Pedrol2-0/+20
Found by ASan. when PointerFIFO::release() is called, alloicated node being released is actually stored into an internal list for later-reuse without having to access memory allocator. However, nodes from this list are never freed. Change-Id: I40e5e28603cde67005d9d92772967b05465ea2b8
2018-12-03radioInterface: Fix memleak during close()Pau Espin Pedrol1-0/+8
destructors of pointers created through "new" must be destroyed manually through "delete". Change-Id: I10d37579f16bec89cc762f200a8951218305c708
2018-12-03lms: Destroy streams on device stopPau Espin Pedrol1-0/+4
They are recreated during start(). Actually, if they are not stopped here, during start() after stop(), LMS_SetupStream() will fail because it will detect the streams are already opened. Change-Id: I70d47c287aabdabc5dc1304a942d130aeb10bdc5
2018-12-03lms: Fix start after stop of devicePau Espin Pedrol1-0/+6
Change-Id: I56358a1d1601853bc6dd2e6bb5f80798d0ba84b2