Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I4329801c502db73efa946f15c103b2c081cee5a7
|
|
Change-Id: I6aedb72306461ebb944fc13a795b0bf3121ea275
|
|
Otherwise, the linker fails to produce osmo-trx-lms binary:
LMSDevice.cpp:493: undefined reference to
`get_value_string(value_string const*, unsigned int)'
LMSDevice.cpp:237: undefined reference to
`osmo_panic(char const*, ...)'
Change-Id: I2fef166c13136af7b7aaa744d39427d76ad11769
Fixes: OS#4828
|
|
Change-Id: Ie093dea96ec8990368695c0c5824e0fe44fb8540
|
|
Change-Id: I98b3f9525954d6882f7488d650038a8e28f7b769
|
|
Prior to this patch, osmo-trx relied totally on proper VTY configuration
being set in "rssi-offset" together with the RxGain set through TRXC in
order to provide correct Uplink RSSI measurements to bts-trx.
With this patch, RSSI is now by default calculated (in LMS and UHD
backends) based on the currently set RxGain, by providing empirically
discovered values. Still, for backward compatibility, the old
"rssi-offset" command will overwrite completely the per-default
calculated rssi offset.
A new optional parameter "relative" is added at the end of the
"rssi-offset" VTY command to flag the value as relative to the newly
per-default calculated value. This way specific setups (like adding a
LNA / RF fronted) can still be expressed while still keeping the
automatic per-default offset.
Related: OS#4468
Change-Id: I8ef78fd20c22c60d61bfb18d80a4a36df4fd6c20
|
|
Change-Id: Ifb43cb11f3e7a69b0a88f632f0a0c90ada7f939e
|
|
Change-Id: I32925b35126bcd4ef7b5e1315dde28869c2b4b86
Related: OS#4421
|
|
The commandline option --vty-ref-xml is needed to enable automatic
generation of the VTY reference manual.
Change-Id: I34dd36183e013ab005f39b235c4ab561590befb7
Related: SYS#4937, OS#1601
|
|
Change-Id: I6dfdedc081eb8c3d53913f6fa38591920c8b3b43
Related: SYS#4937, OS#1601
|
|
This patch fixes MS failing to even see the network, and only RACHs of 1
zeroed byte being seen in GSMTAP.
The issue seems to only appear on some specific machines; others have
been running fine for weeks without this memset being an issue.
Fixes: 7a52e42ee0676f47e801dd348b478302de5d2e50
Change-Id: I98ad885a5d71e7775973a4d881c0f1cd665ea711
|
|
In the multi-ARFCN mode, if the Tx/Rx antenna names are explicitly
set in 'chan N' sections of the configuration file:
trx
...
multi-arfcn disable
chan 0
tx-path TX/RX
rx-path RX2
chan 1
tx-path TX/RX
rx-path RX2
chan 2
tx-path TX/RX
rx-path RX2
osmo-trx would crash, because radioDevice::set_antennas() would
attempt to configure antenna names for all N physical channels,
while USRP devices usually have 2 or even 1 available.
The easiest approach is to remove both 'tx-path'/'rx-path' from
all 'chan N' sections excluding 'chan 0', so it would work fine.
This makes sense, because in the multi-ARFCN mode we actually
use only one physical channel.
However, let's still make sure that explicit configuration of the
Tx/Rx antenna names would not crash osmo-trx and skip N > 0 in
radioDevice::set_antennas().
Change-Id: I09f316f181cbbc2214e8913b73f7c1fcea4e8c05
Related: OS#4636
|
|
Change-Id: I12d7c466a9a428a384233c4377627e262f165401
Related: OS#4636
|
|
Change-Id: I99cf10662232b1f6845d4019dd3b9be45a82d85b
|
|
Change-Id: I3addb844a79a8f4e8af03323fc50e57b8a3590a8
|
|
Change-Id: If608627a77c39b5faabc72c7dd72d00fae8697a9
|
|
Change-Id: Ia7740b45611dbf09a406b3fd9f0a810d46c96bde
|
|
Related: SYS#4920
Change-Id: I39983d026ad54c479aa224968e9491d01f30dc35
|
|
We cannot use C99 or higher features in C code!
Last lines of build log:
[ 265s] for (unsigned int i = 0; i < decoded_region->num_chans; i++)
[ 265s] ^
[ 265s] ipc-driver-test.c:473:3: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile
your code
[ 265s] Makefile:580: recipe for target 'ipc_driver_test-ipc-driver-test.o' failed
[ 265s] make[5]: *** [ipc_driver_test-ipc-driver-test.o] Error 1
Change-Id: I80c9cbd77f1cdf323ad2b492de7e9a177840c383
|
|
"""
error: 'for' loop initial declarations are only allowed in C99 or C11 mode
"""
Change-Id: I97cb9a0a3ecf64e3e5fcfca75431f8fe2a07bd10
|
|
Change-Id: I75792c5defff63b7deaeb533b6818deaac3e0fd3
|
|
Recent commit adding osmo-trx-ipc didn't update the patch, which fails
to apply now due to files having changed its contents.
Change-Id: I6fa50e82320330f83c9753352418755e8b414edf
|
|
There is no point in checking basic stuff ten thousand times per second
since the sizes never change, so it's enough to enable the
checks/assertions for unoptimized (debug) builds.
This significantly decreases branch mispredictions.
Change-Id: Iebd9e91b3c7f37f2dc646d3017c45139977e4d15
|
|
They are too smart, they keep the timestamps.
Change-Id: Idb4b8f03eb5ffdfd6d3fdbc137b20e3ddc4cfa65
|
|
This adds a IPC backend that uses shared memory interface
to communicate with (proprietary) devices.
Requires config file option
dev-args ipc_msock=/path/to/socket
to specify the master socket the ipc backend should connect to.
If UHD is avaialble the ipc-driver-test tool can be used to test the
backend with a uhd device, this was so far only tested with a b2xx.
Change-Id: Ice63d3499026293ade8aad675ff7a883bcdd5756
|
|
Change-Id: I1dc6610d7adfa1a52f3d41ad04544806c2be2c39
|
|
Change-Id: Ida1a3583749a004e2a6c92cfed0b6806a5b83c78
|
|
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
|
|
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
|
|
Avoid entering the logRxBurst() function and running a long loop even if
not used.
Change-Id: I67408bc8643d5d97355f277c4a2007064a83ae90
|
|
They are left as INFO instead of DEBUG since they show possible
timing/performance issues in the setup.
Change-Id: I8aab10054ac89c29b871259fdbe59636723ddfb6
|
|
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
|
|
Change-Id: I1b5a63e6cc09ac02305c31ea7e94aff53ac0e5c2
|
|
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
|
|
Change-Id: I3854f284e6d6a561b3816b467985f59e690a282b
|
|
Fixes: Coverity CID#211258
Change-Id: Ic00cc5939ca46407cb5bf8b6fcbcf3dc677041a2
|
|
Related: OS#4487
Change-Id: Ibb2c492b3c67cbab11fbb936ae3a090fb5756aa8
|
|
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
|
|
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
|
|
It was notcied due to sometimes causing deadlock at shutdown time.
Fixes: 92ba59dacffe79f4c987154bc63c6eacd8c3605f
Change-Id: I49bea4b0ae469794b5c80ee8fa4f275914a5194c
|
|
Per-ARFCN CTRL threads managing CTRL socket loops were dropped a while
ago, but it was forgotten to udpate the documentation.
Change-Id: I34d117325e60b04b075c205d21bb0b827a5e8c52
|
|
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
|
|
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
|
|
RadioInterface ones will be added in next commit, so let's differentiate
the structs required for each one.
Change-Id: Ib0e142a1dd4bedefdb4c5f15c34132da872c0975
|
|
For instance, use in VTY:
"ctr-error-threshold tx_underruns 5 per-second"
If the condition becomes true (eg 5 underruns happened in one sec), the
statement inside OSMO_MAX would become -1, but it was being handled as
an unsigned when doing the OSMO_MAX internal comparison. As a result,
OSMO_MAX((unsigned)-1, 1) was returning -1 (unsigned) stored in
threshold_timer_sched_secs which then became and int -1, which was
handled by osmo_timer_schedule as a 0, hence having an immediate
trigerring all the time.
While at it, make threshold_timer_sched_secs unsigned since it doesn't
make sense to have it as signed anyway.
Change-Id: I6ea3d64dff189a5bc924e72d846e02d50536a8ea
|
|
Change-Id: I4dc8220a6813d6ff30f1b241cc46b801adec4057
|
|
Currently configuring 3 channels in multi-ARFCN mode makes the
process crash during the Rx/Tx antenna configuration due to
uncaught UHD specific LookupError/IndexError exceptions:
terminate called after throwing an instance of 'uhd::index_error'
what(): LookupError: IndexError: multi_usrp:
TX channel 2 out of range for configured TX frontends
Let's catch them and terminate gracefully.
Change-Id: If66305f2787c6292375e4bfbd60c1d3d764cffd4
Related: OS#4636
|
|
specific TxGain
Change-Id: I3c54c61cd6dd7e40bb2831fd4962ff72130b390d
|
|
All radioDevice subclasses except USRPDevice have already been reworked
to use the new SetPowerAttenuation() methods, hence we can drop the
compatibility layer that was added to transition from the old API to the
new one, and move those functions to USRPDevice.
This way we simplify the parent abstract class with methods not needed
by most devices and not used anymore by external users of those classes.
Change-Id: Ice005cd0a07c49b6e212c06f1228ef93c24db727
|
|
Right now, according to a few measurements taken on LimeMicro devices, we
expect the Tx Gain at UHD level to relate 1:1 with the slope in Tx output
power given a specific band.
If more fine-grained results are wanted or some device doesn't follow a
1:1 slope relationship, functions TxGain2TxPower and TxPower2TxGain need
to be adapted/improved.
This patch is basically doing the same thing as was done previously for
UHDDevice in 992c9bd1cea410e2dd42ce7566299104b5648aff.
Related: OS#4583
Change-Id: If154fe4d4cd118aa30ea43c22ee7119117b77da6
|