Age | Commit message (Collapse) | Author | Files | Lines |
|
The underrun parameter in radioDevice's readSamples() is not a "Rx
Underrun" event, but rather it's used to retrieve a "Tx Underrun" which
on some SDRs (like USRP1) seems to be (so far) available only at
readSamples() times.
Thus, underrun parameter for both readSamples() and writeSamples() is
actually flagging the same event, and should be ORed in pushBuffer() as
it's already done in pullBuffer(). Otherwise if implementation is
setting the underrun pointer to false, it could erase the flag being
marked by the counterpart function before isUnderrun() is called (which
is the one responsible to clear the flag).
Change-Id: Id549489fc1485e0d762818c8e682aaddd5041f1c
|
|
autoreconf is used instead, as done in all of the osmocom projects.
Change-Id: I87676cdf6818b4250f478962baf96ad5f28564d5
|
|
We already have debian/changelog for same purpose. This file is empty
and doesn't exist on other osmocom projects.
Change-Id: I5a90107476ca116bebc8569f4eb1db0fa25807a6
|
|
Change-Id: If9de32eed8170038c8c177c8996c78846dddb624
|
|
TransceiverChannel naming was misleading there. It's simply a data type
used to pass 2 parameters through the void* of the thread entry
function, so let's clearly specify is a storage for thread params.
Furthermore, we don't need a full C++ class for that, let's simply use a
struct.
Change-Id: I6e3898a8a66520cc5b2a7df9b9ae01b0b272387f
|
|
The setting is negotiatied by osmo-bts-trx on each channel, so let's
keep and use state per channel instead of overwriting the state from
different channels.
Take the chance to change related log lines to also print the channel
number.
Change-Id: If9cf95e89d38d0155ab48b8c0977ca5f381c2aad
|
|
Before this commit, osmo-trx was always setting its CTRL socket to
listen on 127.0.0.1.
Change-Id: I61a06c1b9c20a906e7030f824a93370d041be7b9
|
|
Related: OS#3515
Change-Id: I3719bd8dc015569ecd81928fc079e27593cdca09
|
|
Change-Id: Ifafb68353960fc5046661854ccfb8d783b0efb14
|
|
Change-Id: I36b8b8be48ae8676688786f39008d08b61011ede
|
|
Those paths were moved into a subdir a while ago, but this file was not
updated at the time.
Change-Id: I1857338b7a19e2a37f62386ceb4a1fad988272ba
|
|
Change-Id: I5cfbbafd411e580421f86df6817f91261aceda7e
|
|
Change-Id: I7264ef35dbe6d3522858eae5b47d150aa1ffe334
Closes: CID#169594
|
|
Change-Id: Ia72395f8805e9e2cd700ad1e559a8aa62124aaec
Closes: CID#149371
|
|
Change-Id: I8c047c8f98e928a62dca1d7b8c003502727c086e
Closes: CID#149374
|
|
Change-Id: I866505f29ed56d8f3ba3aaba70c0d82479987c64
Closes: CID#149361
|
|
The header version field is 4 bit long, so the mask 0x07 == 0b111
is wrong, it should actually be 0x0f == 0b1111.
Change-Id: I290931559ce01cf6e43470b18855c46808d6c2a5
|
|
Change-Id: I974c91be7cc119b44c2fb0c53d08009c87de7bf1
Related: CID#202038
|
|
Doing so should make Coverity happy:
>>> CID 200212: Uninitialized members (UNINIT_CTOR)
>>> Non-static class member "mExtRACH" is not initialized in this constructor nor in any functions that it calls.
The current status is actually harmless since the field will be set
during init() time, and the variable is never used before init() is
called.
Fixes: Coverity CID#200212
Change-Id: I17286570a9a6db695a75147e5cbb18c9da7d0fe6
|
|
Change-Id: If25c2171f7d1ab98d65f0dbf93d0d8a5a635caf7
|
|
Change-Id: I17abf95f5e23236abccc50476cd59931580f5cd3
|
|
Change-Id: If6a93e2b7fc9ada55edbdd16352cd4f7040e3d2a
|
|
Change-Id: I8396004616754f84fb465c972fde9e91b18cc49b
|
|
Related: OS#4006
Change-Id: I53db2678458a7377c87875b58b58b76a1b900517
|
|
Only old v0 is supported so far.
Related: OS#4006
Change-Id: If9fc22f9987238a5ff870df7718de4efc9e04289
|
|
Only old v0 is supported so far. TRXD protocol related data/logic is
moved to its own file out of Transceiver class. Code is refactored so it
can be re-used later by TRXDv1.
Related: OS#4006
Change-Id: I5786dd44b076202c6f1a6e82405670e8605797ed
|
|
This way the C++ logging API can still be used while allowing for C
files to use the same mutex.
Change-Id: I473e57479f8ae98a84ad00b76ff338f79f732236
|
|
Related: OS#4006
Change-Id: Ib4ceec553f2e5f77bf3f6777724968456a180f5e
|
|
This value will be sent in TRXDv1 protocol.
Related: OS#4006
Change-Id: I603b7b52f957cf897b036dbaeb22c01a55de08c3
|
|
Currently we have 2 out parameters, but in forthcoming commits will add
a third one. All those functions already have too many parameters, so
let's put together all the output params in a struct to pass them easily
and make it easier to understand they are the estimated output values.
Related: OS#4006
Change-Id: I05cfa0ceaa2e633a5e6e404e2eae497ff4442dea
|
|
Change-Id: I5ab9b9c7c47d0d6e674c1f5242e2b3a05006293e
|
|
Related: OS#3047
Change-Id: I6d541b47e68f5a8a61ac139a3ea85a9cb33856c1
|
|
This logic will be used once we support TRXDv1, where idle indications
are sent through the socket.
Related: OS#4006
Change-Id: I46404f6e4055b6d3af3afffb0dfe4a19502917aa
|
|
This will be needed upon forthcoming refactor to support idle frames,
which will add a goto return. Otherwise compiler complains:
error: jump to label ret_idle [-fpermissive]
note: crosses initialization of unsigned int max_toa
Change-Id: Icd2793adc7b73a795184639b95fb5da336909b59
|
|
We get rid of one branch and simplify code logic.
Change-Id: I026e35262bfe42c3d23ebdc06d84e4908a8380e2
|
|
Makes code easier to follow and will help in forthcoming refactoring
once idle frames are supported.
Change-Id: I56c84e9684ca460efd6c983d7e95d8e455bcac69
|
|
We have a good socket API in libosmocore, let's drop osmo-trx socket API
and use libosmocore's one instead of maintaining the two of them.
Change-Id: Ib19856a3e0a7607f63436c4a80b1381a3f318764
|
|
Make the interface using trx_ul_burst_ind more implementation agnostic
as well as easier to use. For instance, we don't care about SoftVector
size one returned from pullRadioVector(); we want to use nbits instead.
As a result, we no longer spend time normalizing guard periods. While at
it, change vectorSLicer to return void since it always returns true.
Change-Id: I726e5a98a43367a22c9a4ca5cbd9eb87e6765c7a
|
|
Use of that class is really not needed since we don't need to do any
calculation with those values, so we can simply store the final values
in the struct.
Related: OS#4006
Change-Id: Iadf2683d7f52138a2248598641f3b702252f325d
|
|
That's where all the filling logic happens, while in driveReceiveFIFO we
mostly want to take the burst, generate a message and sent it over the
socket.
Related: OS#4006
Change-Id: Ibfb48877af4ff5ef0f56390901669c8353beaf48
|
|
pullRadioVector()
That's where all the filling logic happens, while in driveReceiveFIFO we
mostly want to take the burst, generate a message and sent it over the
socket.
In pullRadioVector this way we always provide normalized values based on
user configuration (VTY rssi-offset).
Related: OS#4006
Change-Id: I1ee28daf21dc287bec564d45d58086d63655c0f6
|
|
That's where all the filling logic happens, while in driveReceiveFIFO we
mostly want to take the burst, generate a message and sent it over the
socket.
Related: OS#4006
Change-Id: Ib1df10c40d737954904290f57d58b1c77d65f82e
|
|
That field is actually never used. Furthermore, if pullRadioVector()
returns false, then the caller should consider the 'trx_ul_burst_ind'
structure as uninitialized. Moreover, RSSI is mandatory - we cannot send
burst indications without it.
Related: OS#4006
Change-Id: Ia109298aebe8ba4750a39338ba7962555903cd82
|
|
A new struct trx_ul_burst_ind is introduced, which will handle
information filled by lower layers upon decoding of uplink bursts.
Methods pullRadioVector() and logRxBurst() are adapted to use that
struct. This way it's easier to understand in/out parameters and it's
also easier to add further parameters to be filled in in the future.
Related: OS#4006
Change-Id: I7e590fb1c0901de627e782f183251c20f4f68d48
|
|
This will ease adding new protocol versions in the future.
Related: OS#4006
Change-Id: I67ffede171eddde436f9057191ed76015a8ea6eb
|
|
Take the chance to improve text with author, SPDX tag and fix incorrect
copyright dates.
Related: OS#3515
Change-Id: Ic745312ed07db205b1cdc0f2fa130000319354c5
|
|
License of this file doesn't match the license stated in COPYING and in
most source code files (GPLv3 vs AGPLv3). Furthermore, we don't really
maintain this file, so let's drop it to avoid non-up-to-date content
which may introduce confusion.
Related: OS#3515
Change-Id: I536a145cb7696af8e9dbd3065ee5e5f493217ac6
|
|
Change-Id: Id752f6b5ce9a96a67cd1ff835687ce0e03d3a50d
|
|
osmo-trx will validate over time that those thresholds are not reached.
If they are reached, osmo-trx will die. As a result, osmo-bts-trx will
notice and will end up notifying the BSC about it (for instance because
it will also restart its process).
For instance:
"""
ctr-error-threshold rx_drop_events 2 minute
ctr-error-threshold rx_underruns 10 second
"""
In those cases above, osmo-trx will die if rate_ctr rx_drop_events went
to a value higher than 2 per minute, or it will die to if rx_underruns
went higher than 10 per second.
Change-Id: I4bcf44dbf064e2e86dfc3b8a2ad18fea76fbd51a
|
|
It was initially thought that underruns/overrun fields were
increasing-over-time values.
However, after reading LimeSuite code, it seems overrun and
underrun fields are actually reset upon every call to
LMS_GetStreamStatus().
Related: osmo-trx.git 928177125654c1e596ec3450a68882c031ebb929
Related: https://github.com/myriadrf/LimeSuite/issues/265
Change-Id: I677232a7b12ee83d26aa34d92f76a91d4b5a63a6
|