aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M (follow)
Commit message (Collapse)AuthorAgeFilesLines
* IPCDevice.h: remove limesuite includeOliver Smith2020-05-271-1/+0
| | | | Change-Id: I3808dcc69dd3ccc8372852c622660b7056c1be8a
* 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
* 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-278-0/+1830
| | | | 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
* 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
* 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
* transceiver: check the right vectorEric2020-04-141-2/+2
| | | | Change-Id: I03800ae094c35c306fa4ca29f84e71d958ffdbdc
* 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-251-2/+2
| | | | Change-Id: Id1f6766572fd313463201e6d03964965f227db25
* 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-152-25/+117
| | | | | | | | | | | | | | | | | | | | 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
* lms: Change radioDevice constructor arg name to avoid masking instance attrPau Espin Pedrol2020-01-136-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
* lms: Improve smpl_buf error loggingPau Espin Pedrol2020-01-131-2/+3
| | | | Change-Id: I511abe2c333443b978a3767bd7b7e320e07c4930
* smpl_buf: Fix str_code() param and print unknown error valPau Espin Pedrol2020-01-132-3/+5
| | | | Change-Id: I95fadac15b9ad337ebc7cfb44a20dcf803ff8a47
* lms: Drop unused definePau Espin Pedrol2020-01-071-1/+0
| | | | Change-Id: Iaf3361ed29dd552e5e52b62bc738fa20c6b583fe
* lms: Move initialization of field started to constructorPau Espin Pedrol2020-01-071-3/+1
| | | | Change-Id: I135a2ff4a419775169452be1128c7b30f7d638ad
* radioInterfaceMulti: Fail to tune on freq not following multi-arfcn restrictionsPau Espin Pedrol2020-01-072-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
* uhd: Improve some logging lines printing UHD pretty-print outputPau Espin Pedrol2020-01-071-3/+6
| | | | Change-Id: If5aba28aaf8a3312d89b3e963184f9f20966d199
* uhd: Use DEVDRV log category and support UHD >=3.11 logging frameworkPau Espin Pedrol2020-01-071-12/+48
| | | | Change-Id: I36f1ff7d425a2144fb512ff393af02741eb4a3d4
* Make logging category DLMS generic and reusable for other backendsPau Espin Pedrol2020-01-072-2/+2
| | | | | | | | | 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
* Transceiver.cpp: Introduce and use new logging categoriesPau Espin Pedrol2019-12-201-35/+35
| | | | | | | | | 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
* uhd: use value already cached in tmp variablePau Espin Pedrol2019-12-191-1/+1
| | | | Change-Id: I4568eaed6db3da12f83f2f503a50032f7bfb482c
* trx: exit() on unsupported positional arguments on command lineHarald Welte2019-12-031-0/+5
| | | | Change-Id: Ifeea65a359e9ca307efb2c721fd0fb6f0959e976
* Transceiver: Fix wrong response upon CMD HANDOVER failurePau Espin Pedrol2019-11-271-1/+1
| | | | Change-Id: I9d3f120b1696a9ce92c81097d04e81dbb717287d
* vty: Simplify filler burst settings and improve help and readability.Alexander Chemeris2019-10-211-3/+3
| | | | | | | | | | | | | In the command line options time, filler table/filer burts settings were a bit difficult to undertand because the number of one-letter settings was limited. Now, with VTY configuration, there is no reason to keep it so difficult. Also, after the previous commit it was no longer posible to enable random 8-PSK filler bursts. With this patch you can configure all supported filler bursts in a simple and logical way. Change-Id: I752eb2c1162d084e8769181f2fcd6c0877663448
* Fix common misspellings and typosMartin Hauke2019-10-1720-24/+24
| | | | Change-Id: I4ec7accb1912c052b446be7c399bed32a8c62253
* Use new libosmocore logging lock APIPau Espin Pedrol2019-10-091-4/+1
| | | | | | | | | | | | | Since libosmocore Id7711893b34263baacac6caf4d489467053131bb, a new API log_enable_multithread() is available which takes care of protecting logging infrastructure from us (and actually does it correctly since we cannot protect internal libosmocore structures from osmo-trx). Let's drop all mutex related code from osmo-trx logging infra and simply rely on libosmocore's. Related: OS#4088 Change-Id: I519d0f30bce871005ca26b90177ea4aa4839360a
* radioInterfaceMulti: write frequency offset direction (rx/tx) in log linePau Espin Pedrol2019-09-301-2/+2
| | | | Change-Id: I7b89426e5d7d5e7570d4ef800a30c7b74bd09b82
* radioInterface: Atomically fetch and change underrun variablePau Espin Pedrol2019-09-205-10/+16
| | | | | | | | | | | | | | | | | | | | | | Otherwise, it could happen that underrun events are lost: TxLower (isUnderrun): RxLower (pullBuffer): read(underrun) read(underrun) write(underrun, |val) [maybe underrun becomes TRUE] write(underrun, false) Similary, it could happen the other direction if atomic was only applied to isUnderrun: TxLower (isUnderrun): RxLower (pullBuffer): read(underrun) -> true read(underrun)-> true write(underrun, false) write(underrun, true|val) where val=false So in here isUnderrun would return true twice while it should only return one. Change-Id: I684e0a5d2a9583a161d5a6593559b3a9e7cd57e3
* Move multi-ARFCN chan amount modification from UHDDevice to parent classPau Espin Pedrol2019-09-202-3/+7
| | | | | | | This way switch is applied correctly to parent structures and features can be used later by other children classes (other devices). Change-Id: I24d6c66bb3195ba2513b4a67daa14cdfbacdce6d
* radioInterface: Mark setRxGain as virtualPau Espin Pedrol2019-09-201-2/+2
| | | | | | | Otherwise the parent function is always called even if the iface is radioInterfaceMult. Change-Id: Ie41efab1e60b88677bbd1ec333ea656794503a5a