AgeCommit message (Collapse)AuthorFilesLines
2020-05-06ipc: add master socket number/path parametershoernchen/ipcEric3-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
2020-05-06shm: fix alignmentEric1-4/+4
Change-Id: I8b593d792a992973e76dd19f7b678c9caa9c5e16
2020-04-22ipc: gain settingEric1-6/+25
Change-Id: I674d51fdcab2691853681f661b441364ed75207a
2020-04-22ipc: make ipc server uhd output more verboseEric1-0/+6
Change-Id: I9f2c15adff96e71a806ef09f17152c11d7c043aa
2020-04-22ipc: print received path delay valueEric1-0/+2
Change-Id: Ib072b01451084e055882d2867b558a5f8ede95ea
2020-04-29ipc: adjust over/underflow reportingEric1-5/+14
Change-Id: Iec2ca94ed8b6cf96d8797540cff43af6542e6437
2020-04-29ipc: remove intermediate class used for debuggingEric4-261/+16
Change-Id: I2e8a93389cf2f6fc0b9a591f800c019427cf37e6
2020-04-29ipc: update the licensesEric12-29/+145
Change-Id: If523884e76166c11e88944bb7633ff3b54a3a88b
Change-Id: I057e272623b41421f442206f550bcc8c60f4a747
2020-04-20scaling valEric2-0/+2
Change-Id: I6ddfd792ea42655e12fae0b195e362c98792b96f
2020-04-20add kernel style .clang-format with 120 chars per line limitEric1-0/+521
Change-Id: I1dc6610d7adfa1a52f3d41ad04544806c2be2c39
2020-04-20spawn the client as a threadEric8-55/+131
Change-Id: I86cd659e74ebdbf43c4352e83e5adb78f8fe6de5
2020-04-19silence warningsEric1-6/+6
Change-Id: I01b2dce8e04cdc21872e5bbc3eec7e0a5e3d1b0b
2020-04-16no undefined behavior by adding/substracting values != 0 from null ptrEric1-6/+7
Change-Id: Id2dc21e884991b3cca9f617aece12ac35959c1b2
2020-04-16shm: fix warningsEric1-4/+4
Change-Id: I0e56539f699c39ab6e3546c96973184552da4d5f
2020-04-15ipc: fix shm size calculationEric1-5/+5
Total size was previously only as large as sizeof(struct ipc_shm_raw_stream) + sizeof(uint32_t)*num_buffers.... Change-Id: I1205b56a4b11bdf32fbdbfb82b67da36965a7981
2020-04-15WIP: commentsPau Espin Pedrol1-0/+41
Change-Id: Ia2631a869e23af520b9eade192dfdb032174c689
2020-04-15WIP: osmo-trx-ipcPau Espin Pedrol9-0/+1831
Change-Id: Ice63d3499026293ade8aad675ff7a883bcdd5756
2020-04-14transceiver: get rid of the ctrl threadsEric3-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
2020-04-14doc: apply an rssi-offset of 28 by default.Philipp Maier1-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
2020-04-14transceiver: check the right vectorEric1-2/+2
Change-Id: I03800ae094c35c306fa4ca29f84e71d958ffdbdc
2020-04-11configure.ac: fix libtool issue with clang and sanitizerEric1-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
2020-04-01doc: do not set the base-port of the trxPhilipp Maier4-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
2020-03-25debug: use LOGL_NOTICE for log category DDEVPhilipp Maier1-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
2020-03-12radioDevice: Drop unused isControl param from WriteSamples APIPau Espin Pedrol7-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
2020-03-12radioDevice: Drop unused RSSI param from readSamples APIPau Espin Pedrol7-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
2020-02-25cosmetic: fix several typos found by codespellPau Espin Pedrol3-4/+4
Change-Id: Id1f6766572fd313463201e6d03964965f227db25
2020-02-19debug.h: Fix print format of chan in CLOGCHANPau Espin Pedrol1-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
2020-02-19debug.h: Avoid printing pthread_t typePau Espin Pedrol3-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
2020-02-19contrib/jenkins.sh: Reorder sanity checksPau Espin Pedrol1-7/+14
Change-Id: Idfe12148aa7a8030bdaf56d11c1547ebc3f56d14
2020-01-15lms: Initial multi-arfcn supportPau Espin Pedrol1-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
2020-01-15lms: Make ts_offset and smpl rate coefs device-specificPau Espin Pedrol1-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
2020-01-15lms: Store device type specific parameters in one placePau Espin Pedrol4-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
2020-01-15lms: Move rx_buffers allocation to constructorPau Espin Pedrol1-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
2020-01-15lms: Make reference to std::vector unambiguousPau Espin Pedrol1-1/+1
Change-Id: Ieebdbd3d5082a02aea2441e6737783370511cbc1
2020-01-13lms: Change radioDevice constructor arg name to avoid masking instance attrPau Espin Pedrol6-9/+9
channel number mangling based on multi-arfcn feature being enabled was moved to generic radioDevice() to reuse code. Hence, the generic parent constructor sets this->chans to 1 if multi-arfcn feature is requested. However, LMSDevice constructor argument had same name as the class instance attribute, taking preference. As a result, if multi-arfcn is enabled in LMSDevice, the generic constructor first sets this->chans=1 but afterwards LMSDEvice constructor keeps calling .resize() with the argument value "chans" instead of using this->chans. Let's rename the argument in all radioDevice child class constructors to avoid potential future bugs in all of them. Change-Id: Id6c837e9133f22783dd92a81dfcc493e51bf2d21
2020-01-13lms: Improve smpl_buf error loggingPau Espin Pedrol1-2/+3
Change-Id: I511abe2c333443b978a3767bd7b7e320e07c4930
2020-01-13smpl_buf: Fix str_code() param and print unknown error valPau Espin Pedrol2-3/+5
Change-Id: I95fadac15b9ad337ebc7cfb44a20dcf803ff8a47
2020-01-07lms: Drop unused definePau Espin Pedrol1-1/+0
Change-Id: Iaf3361ed29dd552e5e52b62bc738fa20c6b583fe
2020-01-07lms: Move initialization of field started to constructorPau Espin Pedrol1-3/+1
Change-Id: I135a2ff4a419775169452be1128c7b30f7d638ad
2020-01-07doc: Update vty reference xml filePau Espin Pedrol1-46/+135
Change-Id: Ib2707204cbba6df813ffc08d7098093cf4393da0
2020-01-07radioInterfaceMulti: Fail to tune on freq not following multi-arfcn restrictionsPau Espin Pedrol2-22/+59
multi-arfcn feature uses a hardcoded disposition of logical channels on a physical channel. Logical channels in the phisical channel are separated by MCBTS_SPACING Hz, that is 4 GSM ARFCNs. As a result, multi-arfcn restricts the TRX ARFCN setup to the following: ARFCN(TRX0)=N, ARFCN(TRX1)=N+1*4, ARFCN(TRX2)=N+2*4, ... Let's make sure radioInterfaceMulti verifies the requested Rx/Tx frequencies for each logical channel over TRXC match the restriction explained above. It will check freq going to be set is indeed separated by MCBTS_SPACING from already set channels, making sure the ARFCN series is consistent. Otherwise, before this patch, one could set in osmo-bsc: ARFCN(TRX0)=N, ARFCN(TRX1)=N+2 and osmo-trx would silently ack the related Rx/TxTUNE TRXC commands, but actually still transmit on ARFCN N+4 instead. As a result, in this scenario TRX!=0 were unusable with multi-arfcn. Related: OS#4207 Change-Id: I2f3d66a611d3a489b3e4d9431994f4ec77b4460f
2020-01-07doc: clarify number of channels on B210 with multi-arfcn enabledPau Espin Pedrol1-4/+5
Change-Id: I082d4d8c346f1be1569fe63baa856029e439cb2c
2020-01-07uhd: Improve some logging lines printing UHD pretty-print outputPau Espin Pedrol1-3/+6
Change-Id: If5aba28aaf8a3312d89b3e963184f9f20966d199
2020-01-07uhd: Use DEVDRV log category and support UHD >=3.11 logging frameworkPau Espin Pedrol2-12/+51
Change-Id: I36f1ff7d425a2144fb512ff393af02741eb4a3d4
2020-01-07Make logging category DLMS generic and reusable for other backendsPau Espin Pedrol5-6/+9
Make sure old configs using "logging level lms <level>" are still accepted. Initialization order of VTY componenets need to be resorted since newly introduced command requires logging VTY node to be already setup beforehand. Change-Id: Ia195a74a62a8a3dd6267fb1359acaa5628208d8e
2020-01-03Bump version: → Espin Pedrol4-5/+57
Change-Id: I9009eb44e7d8100294da139300480fc3a2f6b616
2019-12-20Transceiver.cpp: Introduce and use new logging categoriesPau Espin Pedrol3-35/+56
Take the chance to clean up logging lines in this file: * Use LOGCHAN in more places where chan is useful * Replace inherited (old osmo-trx) categories such as WARNING with osmocom ones. Change-Id: Ic8c218f050f35d48046ccf1561fb0bfc505d4f63
2019-12-19uhd: use value already cached in tmp variablePau Espin Pedrol1-1/+1
Change-Id: I4568eaed6db3da12f83f2f503a50032f7bfb482c
2019-12-03trx: exit() on unsupported positional arguments on command lineHarald Welte1-0/+5
Change-Id: Ifeea65a359e9ca307efb2c721fd0fb6f0959e976