Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
Change-Id: I8b593d792a992973e76dd19f7b678c9caa9c5e16
|
|
Change-Id: I674d51fdcab2691853681f661b441364ed75207a
|
|
Change-Id: I9f2c15adff96e71a806ef09f17152c11d7c043aa
|
|
Change-Id: Ib072b01451084e055882d2867b558a5f8ede95ea
|
|
Change-Id: Iec2ca94ed8b6cf96d8797540cff43af6542e6437
|
|
Change-Id: I2e8a93389cf2f6fc0b9a591f800c019427cf37e6
|
|
Change-Id: If523884e76166c11e88944bb7633ff3b54a3a88b
|
|
Change-Id: I057e272623b41421f442206f550bcc8c60f4a747
|
|
Change-Id: I6ddfd792ea42655e12fae0b195e362c98792b96f
|
|
Change-Id: I86cd659e74ebdbf43c4352e83e5adb78f8fe6de5
|
|
Change-Id: I01b2dce8e04cdc21872e5bbc3eec7e0a5e3d1b0b
|
|
Change-Id: Id2dc21e884991b3cca9f617aece12ac35959c1b2
|
|
Change-Id: I0e56539f699c39ab6e3546c96973184552da4d5f
|
|
Total size was previously only as large as sizeof(struct
ipc_shm_raw_stream) + sizeof(uint32_t)*num_buffers....
Change-Id: I1205b56a4b11bdf32fbdbfb82b67da36965a7981
|
|
Change-Id: Ia2631a869e23af520b9eade192dfdb032174c689
|
|
Change-Id: Ice63d3499026293ade8aad675ff7a883bcdd5756
|
|
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
|
|
Change-Id: I03800ae094c35c306fa4ca29f84e71d958ffdbdc
|
|
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
|
|
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
|
|
Change-Id: Id1f6766572fd313463201e6d03964965f227db25
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Change-Id: Ieebdbd3d5082a02aea2441e6737783370511cbc1
|
|
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
|
|
Change-Id: I511abe2c333443b978a3767bd7b7e320e07c4930
|
|
Change-Id: I95fadac15b9ad337ebc7cfb44a20dcf803ff8a47
|
|
Change-Id: Iaf3361ed29dd552e5e52b62bc738fa20c6b583fe
|
|
Change-Id: I135a2ff4a419775169452be1128c7b30f7d638ad
|
|
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
|
|
Change-Id: If5aba28aaf8a3312d89b3e963184f9f20966d199
|
|
Change-Id: I36f1ff7d425a2144fb512ff393af02741eb4a3d4
|
|
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
|
|
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
|
|
Change-Id: I4568eaed6db3da12f83f2f503a50032f7bfb482c
|
|
Change-Id: Ifeea65a359e9ca307efb2c721fd0fb6f0959e976
|
|
Change-Id: I9d3f120b1696a9ce92c81097d04e81dbb717287d
|
|
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
|
|
Change-Id: I4ec7accb1912c052b446be7c399bed32a8c62253
|
|
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
|
|
Change-Id: I7b89426e5d7d5e7570d4ef800a30c7b74bd09b82
|
|
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
|
|
This way switch is applied correctly to parent structures and features
can be used later by other children classes (other devices).
Change-Id: I24d6c66bb3195ba2513b4a67daa14cdfbacdce6d
|
|
Otherwise the parent function is always called even if the iface is
radioInterfaceMult.
Change-Id: Ie41efab1e60b88677bbd1ec333ea656794503a5a
|
|
In multi arfcn mode, osmo-trx would drop some bursts because it couldn't detect it
and would emit idle burst instead. Specificaly detection of peak in correlation
vector failed. Correcting copying of history in pullBuffer method fixes this issue.
[Re-worked by Pau Espin Pedrol <pespin@sysmocom.de>]
Fixes: 57df2362f0eca0a330aad3e18906046dfadb9c8b
Change-Id: I93e43f6868cd67e69fc59d2980a03550d2505bf8
|
|
from readSamples()
The only who should be setting class instance value "underrun" to false
is isUnderrun().
Similar fixes were already applied lately to radioInterface.cpp.
Change-Id: I3239b1df4536c080365106b3e4daa523b57f5dff
|
|
After previous changes, radioInterfaceMulti is expected to handle channel
conversion correctly, so it will always use chan 0 for all these
functions. This simplifies code in radioDevice avoiding need to add
checks to all devices supporting multi-arfcn in the future.
Change-Id: Ib2cd50a6ceaeedc6aaf3e1bb51d33b52911b6eba
|