aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2020-01-03Bump version: 1.1.1.38-9f2b-dirty → 1.2.01.2.0Pau Espin Pedrol4-5/+57
Change-Id: I9009eb44e7d8100294da139300480fc3a2f6b616
2019-12-20Transceiver.cpp: Introduce and use new logging categoriesPau Espin Pedrol3-35/+56
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
2019-12-19uhd: use value already cached in tmp variablePau Espin Pedrol1-1/+1
Change-Id: I4568eaed6db3da12f83f2f503a50032f7bfb482c
2019-12-03trx: exit() on unsupported positional arguments on command lineHarald Welte1-0/+5
Change-Id: Ifeea65a359e9ca307efb2c721fd0fb6f0959e976
2019-11-27Transceiver: Fix wrong response upon CMD HANDOVER failurePau Espin Pedrol1-1/+1
Change-Id: I9d3f120b1696a9ce92c81097d04e81dbb717287d
2019-10-21vty: Simplify filler burst settings and improve help and readability.Alexander Chemeris3-75/+81
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
2019-10-17Fix common misspellings and typosMartin Hauke34-40/+40
Change-Id: I4ec7accb1912c052b446be7c399bed32a8c62253
2019-10-15vty: Don't enable random filler bursts automatically with EDGE.Alexander Chemeris1-1/+0
The EGPRS switch in the VTY config enables 8-PSK burst detection on uplink. Enabling it shouldn't turn on filler bursts. Change-Id: I2786c768e038b769a80c8b78fe58cfa09eb322a9
2019-10-09Use new libosmocore logging lock APIPau Espin Pedrol4-63/+5
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
2019-09-30radioInterfaceMulti: write frequency offset direction (rx/tx) in log linePau Espin Pedrol1-2/+2
Change-Id: I7b89426e5d7d5e7570d4ef800a30c7b74bd09b82
2019-09-20radioInterface: Atomically fetch and change underrun variablePau Espin Pedrol8-20/+62
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
2019-09-20Move multi-ARFCN chan amount modification from UHDDevice to parent classPau Espin Pedrol2-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
2019-09-20radioInterface: Mark setRxGain as virtualPau Espin Pedrol1-2/+2
Otherwise the parent function is always called even if the iface is radioInterfaceMult. Change-Id: Ie41efab1e60b88677bbd1ec333ea656794503a5a
2019-09-20Transceiver: Fixed copying of history into and from channelizer buffer.Timo Jacobus1-1/+1
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
2019-09-13radioInterface{Multi,Resamp}: Fix successful writeSamples() masking underrun ↵Pau Espin Pedrol2-2/+6
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
2019-09-13UHDDevice: Drop unneeded MULTI_ARFCN checksPau Espin Pedrol1-12/+0
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
2019-09-13radioInterfaceMulti: Override setTxGain() to avoid chan!=0 callsPau Espin Pedrol3-1/+19
Change-Id: I7e67f660c3b0b009db59b405de603f6058021802
2019-09-13radioDevice: Introduce getTxGain() APIPau Espin Pedrol5-0/+25
It will be used in later commits by radioInterfaceMulti. Change-Id: Ie3caca8971ed1e5370dfed6fb60716a24e7d82a5
2019-09-13radioInterface: Remove unusued getRxGain()Pau Espin Pedrol2-8/+0
Only the radioDevice->getRxGain() is called from inside radioInterfaceMulti, so the API in radioInterface is not used at all. Change-Id: Icc4e9a7ebfdafe7c72c535752a5e379d12592c9a
2019-09-13LMSDevice: Return previous txGain/rxGain if setting value failedPau Espin Pedrol2-6/+10
Change-Id: I11e853e11bec99fc88e81642f9b2cd87d5815398
2019-09-13USRPDevice: Return previous txGain if setting value failedPau Espin Pedrol2-2/+5
Change-Id: I0d8fd51586ef01141d4e5896f0fc3029a22743f8
2019-09-13USRPDevice: Fix setRxGain return on error and getRxGain() returning always 0Pau Espin Pedrol1-2/+3
field rxGain is set to 0 during constructor and never set after that point. Change-Id: I7fae7a315e5ab98a15c27628a88a92226ef89469
2019-09-13radioInterfaceMulti: Check equals zero explicitlyPau Espin Pedrol1-1/+1
It's not a pointer check or a boolean expression, in here we really check chan index is 0, so it's more clear doing so this way like it's done in all other places. Change-Id: I83b14487d14ba8272f58796f640f58a88891e532
2019-09-13radioInterface: Rename mRadio to mDevicePau Espin Pedrol4-37/+37
Previous naming is ready confusing, because "Radio" is actually the common term between radioInterface and radioDevice, and it looks like it's referring to radioInterface rather than radioDevice. On the other hand, mDevice cleary states it refers to the radioDevice item. Change-Id: I708bb1992a156fb63334f5590f2c6648ca27495e
2019-09-09Transceiver: Don't stop TRX if pulling from OFF timeslotPau Espin Pedrol2-9/+17
BTS may have any timeslot disabled, or may have not yet sent initial SETSLOT cmd to properly configure the timeslot. Change-Id: Icf62e5d1200c7a440f255bb46023cdbf61532b7f
2019-09-09Transceiver: pullRadioVector(): Fix use of uninitialized value bi->tnPau Espin Pedrol1-13/+13
Change-Id: Ia0f2b5a51040663d7e8219e6ed51e0513b876548
2019-09-06Transceiver: Log error condition no burst in pullRadioVector()Pau Espin Pedrol1-1/+3
Change-Id: I4f180cc852582b131ba28a8139215335f7ba567d
2019-09-06Transceiver: Use LOGCHAN in logRxBurst to unify log formatPau Espin Pedrol1-2/+1
Change-Id: Iec33ab73a9bf90fd0bff9ba453c32ea11bf0670e
2019-09-06Transceiver: Fix logging TN and versionPau Espin Pedrol1-4/+4
Since tn is declared as uint8_t, it's actually a char, and by default c++'s ostream& operator<<(ostream&, unsigned char) tries to print chars with its ASCII visible character instead of numeric value. Change-Id: I534158e8e1719ad19a9cde7c747a8f8ad5a01a2b
2019-08-26device: Use LOGCHAN in set_antennas()Pau Espin Pedrol1-4/+4
Change-Id: I3099498e3a3f26b53d55a96a36cc056f7b25b27a
2019-08-26lms: Log available antennas if requested antenna failsPau Espin Pedrol2-2/+23
Related: OS#3343 Change-Id: Icd328e85b0a75ef67f371a7ed72638053b1854f9
2019-08-26Transceiver: Enable EDGE detection only on PDCH timeslotsPau Espin Pedrol1-6/+2
Related: OS#3664 Change-Id: Id16248a1c03f9bc9f323c707857cdf3bf34c4e3e
2019-08-26Transceiver: exit process when BTS drops connectionPau Espin Pedrol2-30/+53
We don't want to keep osmo-trx running in a started state once the BTS controlling it becomes unavailable. If a socket towards the BTS fails, it means the BTS is gone and the best thing to do is to stop the process (alternatively we could go back to stopped state instead, and wait for BTS to re-connect, fur so far this action is good enough). Related: OS#4170 Change-Id: I2ccbe3c17b39fb792ea7810f840235c348054d66
2019-08-26Transceiver: Fix idle ul burst indications being droppedPau Espin Pedrol1-1/+2
pullRadioVector() should return true on idle frames because those indications may be handled by upper layers (TRXDv1). Clarify return code in function documentation. Change-Id: If592ed1c04cf7e995f656b313f60edd4d40d1bfd
2019-08-26Transceiver: Clean up receival of downlink burstsPau Espin Pedrol2-25/+31
Use a packed structure to clearly indicate what is contained in the received buffer. Change-Id: I4d8c0e3c0c717699889f79e50c778d14b6058f2d
2019-08-26Transceiver: Check return value when binding IP addr for clock socketPau Espin Pedrol1-0/+2
No need to continue further since anyway we'll end up exiting. Change-Id: Id8b38b40df5744beb705d560defb06532cf0fd44
2019-08-26Transceiver: fix segfault during init if IP addr binding failsPau Espin Pedrol1-3/+5
If osmo-trx is started and IP addr binding fails (ie because the IP address is not assigned in the system), it will try to access a heap-allocated Thread instance which was not initialized (because init() function returned earlier). Fixes: OS#4147 Change-Id: I19f9745cd026c0ff6581895a66bf91b40113b07d
2019-08-21Drop old setPriority related codePau Espin Pedrol8-32/+0
This code is not needed anymore since we are setting SCHED_RR scheduler with a real time priority in main thread during startup, so all threads will inherit same rt priority, which should be enough to keep the process working reliably even on high system loads (from non rt processes). osmo-trx was tested to be reliable during test with stress-ng as explained in related ticket below. Related: OS#2344 Change-Id: I3a88946dd71e9aeeaac9d19d396e2236c302b608
2019-08-14osmo-trx: log to stderr on signal receivedPau Espin Pedrol1-2/+2
Since osmo-trx it's a big multithreaded process and shutdown sequence can be complex, better use stderr to log signal received events to make sure log is outputted straigh away and not buffered. In general stdout is usually line-buffered, but buffering strategy can be more conservative if output is for instance redirected to a file. Change-Id: I70ba86919d1f7df41ef3db4916317d27697a025c
2019-08-08Bump version: 1.1.0-dirty → 1.1.11.1.1Pau Espin Pedrol2-1/+7
Patch release to have debian/patches/build-for-debian8.patch applying correctly again. Change-Id: I27caf077abc400e9661549886bb8f7827dd299bb
2019-08-07Bump version: 1.0.0.104-72a7 → 1.1.01.1.0Pau Espin Pedrol1-0/+126
Change-Id: Ifd5abfb03015e9233814eb9d843ce2e218987283
2019-08-07Require newer version of libosmocore to avoid build failurePau Espin Pedrol2-4/+4
Older commit started using osmo_timerd_* APIs which are only available starting libosmocore 0.12.0, but configure.ac still states 0.11.0 is accepted, which is incorrect. Fixes: 4456b6f132437a95833e3a3d3353836331b9c8a0 Change-Id: I71743b8a10edb10af51ad8e9289c53e432199b97
2019-08-07Transceiver: Add missing include netinet/in.hPau Espin Pedrol1-0/+1
Previous commit started using IPPROTO_UDP without including required include. Newer versions of libosmocore's osmocom/core/socket.h include that header so the define is present, but older versions of libosmocore (such as 0.12.0) don't, so let's include it explicitly (the correct thing to do). Fixes: b9d2515704ac83cacd88d0a73ecba30323df0b2d Change-Id: I67ddf550f3a7fc6a650e1e1d9bde0bbb28785104
2019-08-01Drop old README information, provide new updated READMEPau Espin Pedrol4-137/+67
Previous content in README file is actually a description of the TRXD and TRXC protocols, and it has already been moved to the User Manual some time ago. INSTALLATION contained README related information, but it was really out of date. So this commit basically drops those two files and provides a new README.md with content taken from Osmocom's OsmoTRX project wiki page. Change-Id: I3df00799ce80aa4af43225e69a408ba2cbc444db
2019-08-01Move std_inband.rbf under device/usrp1/ dirPau Espin Pedrol4-7/+7
This file is only used by USRP1, so let's move it there and avoid processing it in Makefiles if build for USRP1 is not requested at configure time. Change-Id: Ibb40ba487581e76d2ae3e8a420d631670f876cf0
2019-08-01Move README.DFEsymbolspaced to utils/matlabPau Espin Pedrol1-0/+0
Change-Id: Icccc18688ee54e669cf3452b08747b3509042fa2
2019-08-01Move Transceiver52/README to UserManualPau Espin Pedrol3-37/+27
Change-Id: Ib5a56cfe0c27d027bc0c60abda89e646a80849de
2019-08-01Move matlab files under utils/matlabPau Espin Pedrol2-0/+0
Change-Id: I15b687fbf436d662b264cb00f72b367ccd64b962
2019-08-01Move inband-signaling-usb documentation to UserManualPau Espin Pedrol3-314/+305
Change-Id: I4d6ef1f54f3d6c5a73ce00dc4640bd698f96842b
2019-08-01lms: Drop rx_underruns rate ctr, add tx_drop_* rate ctrPau Espin Pedrol8-53/+104
After discussion in [1] and further look at the code, it became obvios rx_underrun events are not happening in general for any SDR (don't exist), so let's drop that counter. Instead, add Tx Dropped Packet counters, which were not accounted prior to this commit. [1] https://github.com/osmocom/osmo-trx/commit/bde55afd29fc9aae10eb11f6515821afa39b772d Change-Id: Iff1535c219a4695a511d383d7c4b06ef6eff959d