aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* contrib/osmo-trx.spec.in: add osmo-trx-ipcosmith/ipcOliver Smith2020-05-271-2/+35
| | | | Change-Id: Ib57980e8e102d6f77d0bffa47faafd929c82a288
* contrib/systemd/osmo-trx-ipc.service: new fileOliver Smith2020-05-272-1/+17
| | | | Change-Id: Ic2ba7616c6909bd0a7e642554ecffa4939935b01
* IPCDevice.h: remove limesuite includeOliver Smith2020-05-271-1/+0
| | | | Change-Id: I3808dcc69dd3ccc8372852c622660b7056c1be8a
* configure.ac: add --with-ipcOliver Smith2020-05-271-0/+6
| | | | Change-Id: Ie7b1b07479b81366cebaa081d80917ae868992b4
* gitignore: add new binariesOliver Smith2020-05-271-0/+4
| | | | Change-Id: I9fd0b6cdb0b9d66b37e813cc8d35a28b9c9dc539
* ipc: add master socket number/path parametersEric2020-05-273-11/+68
| | | | | | | | | | | | osmo-trx-ipc needs to know which master socket it should talk to, so pass this path in the config device args like this: dev-args ipc_msock=/path/to/socket Additionally, add a master socket suffix number parameter to the ipc backend, ipc-driver-test -n 0 to start serving /tmp/ipc_sock0 Change-Id: I24857fbb74e5fc808b2a218957c723291de2ba04
* shm: fix alignmentEric2020-05-271-4/+4
| | | | Change-Id: I8b593d792a992973e76dd19f7b678c9caa9c5e16
* ipc: gain settingEric2020-05-271-6/+25
| | | | Change-Id: I674d51fdcab2691853681f661b441364ed75207a
* ipc: make ipc server uhd output more verboseEric2020-05-271-0/+6
| | | | Change-Id: I9f2c15adff96e71a806ef09f17152c11d7c043aa
* ipc: print received path delay valueEric2020-05-271-0/+2
| | | | Change-Id: Ib072b01451084e055882d2867b558a5f8ede95ea
* ipc: adjust over/underflow reportingEric2020-05-271-5/+14
| | | | Change-Id: Iec2ca94ed8b6cf96d8797540cff43af6542e6437
* ipc: remove intermediate class used for debuggingEric2020-05-274-261/+16
| | | | Change-Id: I2e8a93389cf2f6fc0b9a591f800c019427cf37e6
* ipc: update the licensesEric2020-05-2712-29/+145
| | | | Change-Id: If523884e76166c11e88944bb7633ff3b54a3a88b
* v1Eric2020-05-2722-847/+2382
| | | | Change-Id: I057e272623b41421f442206f550bcc8c60f4a747
* scaling valEric2020-05-272-0/+2
| | | | Change-Id: I6ddfd792ea42655e12fae0b195e362c98792b96f
* add kernel style .clang-format with 120 chars per line limitEric2020-05-271-0/+521
| | | | Change-Id: I1dc6610d7adfa1a52f3d41ad04544806c2be2c39
* spawn the client as a threadEric2020-05-278-55/+131
| | | | Change-Id: I86cd659e74ebdbf43c4352e83e5adb78f8fe6de5
* silence warningsEric2020-05-271-6/+6
| | | | Change-Id: I01b2dce8e04cdc21872e5bbc3eec7e0a5e3d1b0b
* no undefined behavior by adding/substracting values != 0 from null ptrEric2020-05-271-6/+7
| | | | Change-Id: Id2dc21e884991b3cca9f617aece12ac35959c1b2
* shm: fix warningsEric2020-05-271-4/+4
| | | | Change-Id: I0e56539f699c39ab6e3546c96973184552da4d5f
* ipc: fix shm size calculationEric2020-05-271-5/+5
| | | | | | | Total size was previously only as large as sizeof(struct ipc_shm_raw_stream) + sizeof(uint32_t)*num_buffers.... Change-Id: I1205b56a4b11bdf32fbdbfb82b67da36965a7981
* WIP: commentsPau Espin Pedrol2020-05-271-0/+41
| | | | Change-Id: Ia2631a869e23af520b9eade192dfdb032174c689
* WIP: osmo-trx-ipcPau Espin Pedrol2020-05-279-0/+1831
| | | | Change-Id: Ice63d3499026293ade8aad675ff7a883bcdd5756
* Transceiver: Log when sending of CLK indications beginsPhilipp Maier2020-05-261-0/+2
| | | | | | | | | | | | | | | When the logging category TRXCLK is set to info osmo-trx prints a logline that informs about the sending of clock indications. In practice this those log lines are often used to identify that osmo-trx and osmo-bts are running properly, so it would be helpful, even in productive use, if there would be an information in the log that the sending of clock indications has begun. However, the regular printing of the clock indication log line would soon flood the log. So, lets have an addional log line that logs only once when the transceiver starts and quickly informs at loglevel NOTICE that clock indications are now sent. Change-Id: I6aa88943b76c9a2bf7aed60d6a3d325c1f27820a Related: OS#2577
* doc: switch log levels to noticePhilipp Maier2020-05-234-4/+4
| | | | | | | Some of the example configs have loglevels set to info. This is too verbose, lets make sure all loglevels are set to notice Change-Id: Ief82b85d9ff0e0e94eaabd255ebea961396fff32
* Makefile.am: EXTRA_DIST: debian, contrib/*.spec.inOliver Smith2020-05-221-1/+4
| | | | Change-Id: Ie192c9b516ff98f2b1ab8e7927da55a0c1e9eb56
* contrib: integrate RPM specOliver Smith2020-05-193-9/+32
| | | | | | | | | | Remove OpenSUSE bug report link, set version to @VERSION@, make it build with CentOS 8 etc. Disable lms, usrp1 for CentOS 8. Related: OS#4550 Change-Id: Ie27fcc4f9033f0049507d9dcc295541ac0744c73
* contrib: import RPM specOliver Smith2020-05-191-0/+189
| | | | | | | | Copy the RPM spec file from: https://build.opensuse.org/project/show/home:mnhauke:osmocom:nightly Related: OS#4550 Change-Id: I694fcd888778ab68d13165f4d0bf65e5d6870fb4
* Use OSMO_FD_READ instead of deprecated BSC_FD_READPau Espin Pedrol2020-05-091-1/+1
| | | | | | | | | New define is available since libosmocore 1.1.0, and we already require 1.3.0, so no need to update dependenices. Let's change it to avoid people re-using old BSC_FD_READ symbol when copy-pasting somewhere else. Change-Id: I868baf575b77c448b3115701e70d439de89b0fb3
* prbs-tool: Don't require C99Harald Welte2020-05-071-2/+5
| | | | | | | | | | | from a Debian8 build: [ 256s] prbs-tool.c: In function 'apply_errors_prbs': [ 256s] prbs-tool.c:190:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode [ 256s] for (int i = 0; i < sizeof(pchan->prbs_u)-4; i++) { [ 256s] ^ Change-Id: I8541fce50405525efffb12210a269e0ab8a687ab
* utils: Ensure content of this directory is included in 'make dist'Harald Welte2020-05-021-0/+2
| | | | | | The python + matlab should be part of every source release Change-Id: I9814a9a352dbee03177ef9e8dfd19bc2baf0ca07
* prbs-tool: Add error simulation capabilitiesHarald Welte2020-05-021-12/+79
| | | | | | | | | | The tool can now simulate: * lost bursts on the TRX->BTS interface * zeroed/overwritten bursts on the TRX->BTS interface * errors in the TCH codec frames before passing them to the encoder Change-Id: I0b52c2af6d973669ac233bf9868400e497496460 TODO: Ability to introduce errors in certain classes of the bits only.
* PRBS tool sending PRBS sequence to TRXHarald Welte2020-05-024-1/+327
| | | | Change-Id: I2300f909bbfda10a7053320edfd1deaea763759a
* transceiver: get rid of the ctrl threadsEric2020-04-143-75/+124
| | | | | | | | | | | | There is no need to have n threads handle n ctrl sockets, since they all will immediately respond to commands, so handle them from the existing main osmo select loop. Care must be taken to ensure that calls from within the command handler do not block, or at least don't block too long, which currently is the case. Change-Id: I642a34451e1825eafecf71a902df916ccee7944c
* doc: apply an rssi-offset of 28 by default.Philipp Maier2020-04-141-0/+3
| | | | | | | | | | Set an rssi offset of 28 in the example configs to make sure that the power control loop gets RSSI values that match at least half way the reality when the 1800 Mhz band is used. For other bands the value will be different (See also related osmocom ticket) Change-Id: I62725fe454f54e2c7cb7550dadb1e6fc94337d78 Related: OS#4468
* transceiver: check the right vectorEric2020-04-141-2/+2
| | | | Change-Id: I03800ae094c35c306fa4ca29f84e71d958ffdbdc
* configure.ac: fix libtool issue with clang and sanitizerEric2020-04-111-0/+5
| | | | | | | | | | | | | | | | | | | | | | As pointed out at https://github.com/libexpat/libexpat/issues/312 libtool does not play nice with clang sanitizer builds at all. For those builds LD shoud be set to clang too (and LDFLAGS needs the sanitizer flags as well), because the clang compiler driver knows how linking to the sanitizer libs works, but then at a later stage libtool fails to actually produce the shared libraries and the build fails. This is fixed by this patch. Addtionally LD_LIBRARY_PATH has no effect on conftest runs during configure time, so the rpath needs to be set to the asan library path to ensure the configure run does not fail due to a missing asan library, i.e.: SANS='-fsanitize=memory -fsanitize-recover=all -shared-libsan' export CC=clang-10 ASANPATH=$(dirname `$CC -print-file-name=libclang_rt.asan-x86_64.so`) export LDFLAGS="-Wl,-rpath,$ASANPATH $SANS $LDFLAGS" Change-Id: If3d9465068b2c654b935fc3d9ab41d799d5e02e8
* doc: do not set the base-port of the trxPhilipp Maier2020-04-014-4/+0
| | | | | | | | In current config files a base port for osmo-trx is set. Lets remove this setting so that compiled-in default (which is the same value) is used. Change-Id: I105d1c51424836daa6893e83a81c83cc7ac6afd4
* debug: use LOGL_NOTICE for log category DDEVPhilipp Maier2020-03-251-1/+1
| | | | | | | | The log category DDEV ueses LOGL_INFO as debug level. This is too verbose, lets use LOGL_NOTICE instead Change-Id: I56d45ce5c3f55574491ffa6e4d902d6ba7499d46 Related: OS#2577
* radioDevice: Drop unused isControl param from WriteSamples APIPau Espin Pedrol2020-03-127-26/+18
| | | | | | | | | The out "isControl" parameter is only used by internal callers of USRPDevice, and not used at all by any user of the generic API (radioInterface*.cpp). Hence, we can get rid of it and keep it as a flag for an internal API of USRPDevice. Change-Id: I843384e24b76cdd28a95f9ee4e95e6157098e4a3
* radioDevice: Drop unused RSSI param from readSamples APIPau Espin Pedrol2020-03-127-14/+11
| | | | | | | | | | The out "RSSI" parameter is only filled by USRPDevice, and not used at all by any user of the API (radioInterface*.cpp). RSSI seems to be computed nowadays in the common path in Transceiver::pullRadioVector(). Change-Id: I06c2ea5a9891d170bc468f952bbf2a7e64d95784
* cosmetic: fix several typos found by codespellPau Espin Pedrol2020-02-253-4/+4
| | | | Change-Id: Id1f6766572fd313463201e6d03964965f227db25
* debug.h: Fix print format of chan in CLOGCHANPau Espin Pedrol2020-02-191-1/+1
| | | | | | | | | | Under armv7l arch, size_t is actually an unsigned int and not a long unsigned int, and compiler errors: CommonLibs/debug.h:28:24: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 8 has type ‘size_t {aka unsigned int}’ [-Werror=format=] Change-Id: I7f6ded5a984570b5267916d6c84eb7d019db73a8
* debug.h: Avoid printing pthread_t typePau Espin Pedrol2020-02-193-4/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | Using %lu for pthread_t was wrong on armv7l arch. Even worse, according to pthread_self() man page, pthread_t cannot be assumed to be of a simple type and hence printable: """ POSIX.1 allows an implementation wide freedom in choosing the type used to represent a thread ID; for example, representation using either an arithmetic type or a structure is permitted. """ Let's use gettid() instead. According to glibc documentation: """ The pid_t data type is a signed integer type which is capable of representing a process ID. In the GNU C Library, this is an int. """ It may not be the same on other libc's though, so let's better cast to a long int just in case. Accordign to gettid() man, the libc function was only added recently during glibc 2.30, however the system call has been around for quite some time (linux 2.4.11). Let's accomodate use udner non-glibc or older versions of it by having a direct syscall fallback. Change-Id: I40265fd4c62e550014ba3ff3335ca053c5bc01f2
* contrib/jenkins.sh: Reorder sanity checksPau Espin Pedrol2020-02-191-7/+14
| | | | Change-Id: Idfe12148aa7a8030bdaf56d11c1547ebc3f56d14
* lms: Initial multi-arfcn supportPau Espin Pedrol2020-01-151-7/+17
| | | | | | | | | | | | With current state multi-arfcn can be used (eg. I can place a call between 2 phones using TRX1 and sustain for as long as wanted), but from time to time (around every 20seconds), a burst of Tx packed dropped events from LimeSuite appears. LimeNet-micro coefficients have yet not been tested. Related: OS#4362 Change-Id: I7e67d90a8126546eeeeba376f816ec5d158d4712
* lms: Make ts_offset and smpl rate coefs device-specificPau Espin Pedrol2020-01-151-8/+12
| | | | | | | Right now the values are the same for all devices, but they will differ in forthcoming commits once multi-arfcn support is added. Change-Id: I262d3a71848fc3070473e29e42820848e7591d02
* lms: Store device type specific parameters in one placePau Espin Pedrol2020-01-154-26/+119
| | | | | | | | | | | | | | | | | | | | Add an enum containing each supported device type (LimeSDR-USB, LimeSDR-Mini and LimeNet-Micro) plus "unknown", to leave some room for yet-to-come devices to run with some generic parameters without rebuilding osmo-trx. Each device type is assigned a dev_desc structure, and all of them are put in HashMap, similar to what's already done in UHDDevice.cpp. Device type is infered from string provided by LMS_GetDeviceInfo(), as it was already done before in several places. From now on, we only need to parse the string once since we store the device type after first during open time. Later on, more fields will be moved to device-type specific structure, such as Tx timing offset, clock rate, etc. Change-Id: I7658615787c5bc41c365bab9c11733b701ac2ae5
* lms: Move rx_buffers allocation to constructorPau Espin Pedrol2020-01-151-4/+5
| | | | | | | | Release is done in destructor, so let's move allocation to constructor since there's really no need to have them in open() which is already quite complex and large. Change-Id: I8a4fd973590c4c165abd8f2837b2da8fc14a2066
* lms: Make reference to std::vector unambiguousPau Espin Pedrol2020-01-151-1/+1
| | | | Change-Id: Ieebdbd3d5082a02aea2441e6737783370511cbc1