aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2020-08-26ipc: fix driver test restartewild/nextEric1-1/+2
Change-Id: Id21f773d365f2e70129e1d463cf87b1213718be7
2020-08-26ipc: remove uhd depEric2-5/+4
Change-Id: I950b9bd3cb52caf83c469fc424783d21750baa2a
2020-08-26ipc: manually poll chan sock fdsEric2-17/+62
We can't wait, we're in select, but we need to wait for a response from the other side of the ipc interface -> only select our channels, so other registered osmo fds are left alone, and we don't accidentally handle stuff that should happen afterwards. Change-Id: I4ffc8d825e5b4eba0fca8ea821b1d84e2b923266
2020-08-26devices: reset internal smart sample buffers upon stopEric4-2/+22
They are too smart, they keep the timestamps. Change-Id: Idb4b8f03eb5ffdfd6d3fdbc137b20e3ddc4cfa65
2020-08-26ipc:remove unused functionEric1-1/+0
Change-Id: Ie5c3828df5187f0e93970bd05c82d97ef1d51102
2020-08-26ipc: print initial tsEric1-1/+1
Change-Id: I9be02583e54592f27748918c16a7fa502bf88c47
2020-08-26ipc: device, reorder includesEric1-6/+8
Change-Id: Iefb2298bcf89ee6e19a825b4774f9d6de9bff48b
2020-08-26ipc: shm unused cleanupEric1-2/+0
Change-Id: I7a68a0325ec788823c5d984efff03ee68a1b6f4d
2020-08-26ipc: increase read timeout, flush proper buf numberEric1-2/+7
The other side might want to do a PPS sync on startup which is cutting it close with one second of read timeout. Additionally the number of buffers read to ensure proper flushing was previously not updated with the actual number of buffers, which led to stale buffers with wrong timestamps being stuck in the ipc interface. Change-Id: I2ec8d422ef31f45e97d9091e5d814429b101ffe8
2020-08-26ipc: proper tx attenuationEric8-114/+174
Change-Id: Ifac4d689d1007e021cf6765bba1bbef1fde19bb2 squashme2 Change-Id: I1bb22a8f722b49e7f71d4d993957a6f26c420552
2020-08-26ipc: fix per channel start/stop, ipc uhd backendEric5-25/+120
Start/stop was previously fixed to channel 0, so proper multichannel operation without using the mcbts mode was not possible. UHD multichannel is rather annoying due to the alignment dance which returns 0 reads, which may not be submitted to the ipc interface, since empty buffers are treated as errors. Change-Id: I441b1977e30a6c6c96b2e0543cedb3ce54d3ce31
2020-08-26ipc: fix the log messages for the channelsEric1-3/+9
Change-Id: If9a4eab0dccfde6740a3669a7c1d34226b3912d1
2020-08-26contrib/osmo-trx.spec.in: add osmo-trx-ipcOliver Smith1-2/+35
Change-Id: Ib57980e8e102d6f77d0bffa47faafd929c82a288
2020-08-26contrib/systemd/osmo-trx-ipc.service: new fileOliver Smith2-1/+17
Change-Id: Ic2ba7616c6909bd0a7e642554ecffa4939935b01
2020-08-26IPCDevice.h: remove limesuite includeOliver Smith1-1/+0
Change-Id: I3808dcc69dd3ccc8372852c622660b7056c1be8a
2020-08-26configure.ac: add --with-ipcOliver Smith1-0/+6
Change-Id: Ie7b1b07479b81366cebaa081d80917ae868992b4
2020-08-26gitignore: add new binariesOliver Smith1-0/+4
Change-Id: I9fd0b6cdb0b9d66b37e813cc8d35a28b9c9dc539
2020-08-26ipc: add master socket number/path parametersEric3-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-08-26shm: fix alignmentEric1-4/+4
Change-Id: I8b593d792a992973e76dd19f7b678c9caa9c5e16
2020-08-26ipc: gain settingEric1-6/+25
Change-Id: I674d51fdcab2691853681f661b441364ed75207a
2020-08-26ipc: make ipc server uhd output more verboseEric1-0/+6
Change-Id: I9f2c15adff96e71a806ef09f17152c11d7c043aa
2020-08-26ipc: print received path delay valueEric1-0/+2
Change-Id: Ib072b01451084e055882d2867b558a5f8ede95ea
2020-08-26ipc: adjust over/underflow reportingEric1-5/+14
Change-Id: Iec2ca94ed8b6cf96d8797540cff43af6542e6437
2020-08-26v1Eric22-897/+2305
Change-Id: I057e272623b41421f442206f550bcc8c60f4a747
2020-08-26spawn the client as a threadEric8-55/+131
Change-Id: I86cd659e74ebdbf43c4352e83e5adb78f8fe6de5
2020-08-26silence warningsEric1-6/+6
Change-Id: I01b2dce8e04cdc21872e5bbc3eec7e0a5e3d1b0b
2020-08-26no undefined behavior by adding/substracting values != 0 from null ptrEric1-6/+7
Change-Id: Id2dc21e884991b3cca9f617aece12ac35959c1b2
2020-08-26shm: fix warningsEric1-4/+4
Change-Id: I0e56539f699c39ab6e3546c96973184552da4d5f
2020-08-26ipc: 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-08-26WIP: commentsPau Espin Pedrol1-0/+41
Change-Id: Ia2631a869e23af520b9eade192dfdb032174c689
2020-08-26WIP: osmo-trx-ipcPau Espin Pedrol9-0/+1831
Change-Id: Ice63d3499026293ade8aad675ff7a883bcdd5756
2020-08-14add kernel style .clang-format with 120 chars per line limitEric1-0/+521
Change-Id: I1dc6610d7adfa1a52f3d41ad04544806c2be2c39
2020-08-13debian/control: change maintainer to the Osmocom team / mailing listVadim Yanitskiy1-1/+1
Change-Id: Ida1a3583749a004e2a6c92cfed0b6806a5b83c78
2020-07-31Use new libosmovty cpu sched config featuresPau Espin Pedrol11-7/+32
Using the new libosmovty features allow for: * Setting different cpu-affinity masks for each thread in the process, both at startup through .cfg file as well as changing it at runtime. * Unified VTY interface to change the scheduling policy of the process inherited by all osmocom processes enabling the feature. Depends: libosmocore.git Change-Id If76a4bd2cc7b3c7adf5d84790a944d78be70e10a Depends: osmo-gsm-masnuals.git Change-Id Icd75769ef630c3fa985fc5e2154d5521689cdd3c Related: SYS#4986 Change-Id: I3798603779b88ea37da03033cf7737a6e4751d6e
2020-07-27Transceiver: Add several rate_ctr for rx error conditionsPau Espin Pedrol4-5/+33
Since there's now a rate counter, we can drop log level for those events which can be bursty and hence print lots of output in short periods of time, which may affect performance. This way setting them to INFO it's enough to avoid getting them in stderr unless explicitly configured by the user (for instance to debug stuff), while still allowing a good enough level to be enabled for other targets such as gsmtap. Related: OS#4679 Change-Id: I000f7112e35ac68d3d922444f78468b1ea74cbba
2020-07-27Transceiver: Check log level before generating burst str representationPau Espin Pedrol1-1/+1
Avoid entering the logRxBurst() function and running a long loop even if not used. Change-Id: I67408bc8643d5d97355f277c4a2007064a83ae90
2020-07-17Transceiver: Lower some log levels which have an associated counterPau Espin Pedrol1-5/+5
They are left as INFO instead of DEBUG since they show possible timing/performance issues in the setup. Change-Id: I8aab10054ac89c29b871259fdbe59636723ddfb6
2020-07-17Introduce CTR log categoryPau Espin Pedrol3-19/+26
This way i most usual rate_ctr related internal logging is disabled by default (notice), and it can b eeasily enabled by switching the category to info or debug. Change-Id: Id6c36432da7e7ce673c585bcae6772a695028ec5
2020-07-17trx_rate_ctr: Lower some log levelsPau Espin Pedrol1-6/+6
Change-Id: I1b5a63e6cc09ac02305c31ea7e94aff53ac0e5c2
2020-07-17Transceiver: Restrict conditions where FN gaps are detectedPau Espin Pedrol1-1/+1
In pushRadioVector, like we did for driveTxPriorityQueue already, gaps are possible in any channel for TRX!=0, since TRX0 is the only one expected to be always transmitting. Since we always need to transmit there, it makes no sense to check for channel being not NONE. Change-Id: I3b4b85b9100f69dfa113c54a4357120bd11ec86f
2020-07-15Transceiver: Use already obtained value from Rx msg structurePau Espin Pedrol1-1/+1
Change-Id: I3854f284e6d6a561b3816b467985f59e690a282b
2020-07-15Transceiver: Provide initial value for TransceiverState::mFiller in constructorPau Espin Pedrol1-1/+1
Fixes: Coverity CID#211258 Change-Id: Ic00cc5939ca46407cb5bf8b6fcbcf3dc677041a2
2020-07-10Add rate counter for missing Txbursts when scheduled towards the radioInterfacePau Espin Pedrol5-6/+20
Related: OS#4487 Change-Id: Ibb2c492b3c67cbab11fbb936ae3a090fb5756aa8
2020-07-10Transceiver: Fix race condition obtaining Dl burst from Upper layerPau Espin Pedrol3-23/+17
The queue was being accessed sequentially obtaining and releasing the mutual exclusion zone twice. First in getStaleBurst() dropping all FN<currTime, then in getCurrentBurst() trying to obtain FN=currTime. However, since in between the mutex is released, it could happen that for instance upper layer would introduce currTime-1 in the queue, which would make then getCurrentBurst() detect that one instead of potential currTime in the queue and return NULL. By holding the mutex during the call to both functions we make sure the state is kept during the whole transaction. Related: OS#4487 (comment #7) Change-Id: If1fd8d7fc5f21ee2894192ef1ac2a3cdda6bbb98
2020-07-10Introduce rate counters to detect issues in received Dl bursts from TRXDPau Espin Pedrol6-10/+80
This ones together with rate counters already available in lower layers allows to understand better the source of the problem with stalled tx bursts. Change-Id: Ia34f7e7d780ad1e12f24638a07f05fe91f2afea5
2020-07-10trx_rate_ctr: Fix locking wrong mutexPau Espin Pedrol1-1/+1
It was notcied due to sometimes causing deadlock at shutdown time. Fixes: 92ba59dacffe79f4c987154bc63c6eacd8c3605f Change-Id: I49bea4b0ae469794b5c80ee8fa4f275914a5194c
2020-07-01doc/manuals: Update thread documentation after dropping CTRL sock threadsPau Espin Pedrol1-10/+5
Per-ARFCN CTRL threads managing CTRL socket loops were dropped a while ago, but it was forgotten to udpate the documentation. Change-Id: I34d117325e60b04b075c205d21bb0b827a5e8c52
2020-07-01TransceiverState: Initialize ctrs field in constructorPau Espin Pedrol1-0/+1
Coverity dixit: "Non-static class member field "ctrs.tx_stale_bursts" is not initialized in this constructor nor in any functions that it calls." Fixes: CID#211258 Change-Id: I4643a0500e9cad09938c05fab2f358167f72ffa9
2020-06-29Introduce rate counter tx_stale_burstsPau Espin Pedrol6-7/+73
This allows checking if there's timing issues on the downlink side between osmo-bts-trx and osmo-trx. This counter is useful to find information about osmo-bts-trx 'fn-advance' setting, since this counter basically counts if burstrs from it arrived too late to osmo-trx. Change-Id: Id6df00da81f6d6884f4dddc5a2c4b354dca3af97
2020-06-29Rename device specific rate counter multi-thread helpersPau Espin Pedrol2-49/+49
RadioInterface ones will be added in next commit, so let's differentiate the structs required for each one. Change-Id: Ib0e142a1dd4bedefdb4c5f15c34132da872c0975