Commit Graph

1061 Commits

Author SHA1 Message Date
Pau Espin c5f623f966 doc: Introduce documentation for osmo-trx-ipc and its IPC interface
Related: SYS#6861
Change-Id: Id6863731f9398720030b16efaaf559e05f2444ed
2024-03-27 13:35:39 +01:00
Pau Espin 8fd51cb7c9 code-architecture.adoc: Fix missing alignment in digraph
Change-Id: I9077590f6786833c9a86c3e844fc2dd07b404d58
2024-03-26 18:14:55 +01:00
Harald Welte e6dc78e5c5 README.md: Remove stray apostrophe
Change-Id: I236a3aa66824759bf23b4331a22fa1d9ec25c5bf
2024-03-23 12:31:16 +01:00
Harald Welte 9982b33597 Add funding link to github mirror
see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository

Change-Id: If81f350017e51733cf13934e8481095eafe44a4f
2024-03-23 12:30:10 +01:00
Harald Welte 52ef221657 README.md: Add Forum and Issue Tracker links
Change-Id: Ib85f4e82d314cbab1c844497fb82dbda230589a5
2024-03-23 12:29:40 +01:00
Harald Welte ec13193cae README.md: Improve markdown formatting
Change-Id: Ic5764aab323db87015da8c461dec136e57dd9c8f
2024-03-23 12:29:25 +01:00
Eric Wild 3d8598d460 ms: disabe uhd ms build
This won't build, and has been in a untested non working state for a
year, but might still be useful after fixing it up in the future in case
someone needs it.

Change-Id: I9db1740b5c399a02a41b1d07792c645cf7d1bd1b
2024-03-21 09:55:16 +01:00
Eric Wild 1d7f5a9175 ms: update osmocom-bb submodule
Change-Id: I0140f0a5333469f356c85a95660e10bbdd67cd25
2024-03-18 18:11:44 +01:00
Oliver Smith 511d62733e contrib/jenkins: add --with-bladerf
Related: OS#6409
Depends: docker-playground I3c3fe95d8ebb21f7691a491144885c7deb8049a5
Change-Id: I1300aa107fd1031cf921fafc3566f0f64f9cdd72
2024-03-18 16:18:54 +01:00
Eric Wild 8f19df3bd7 ms: fix up template deduction failure
clang and gcc disagree, so just use a real var with the right type.

Change-Id: I590060d201445ad25cf5eb73c4b1360eaf6a6cea
2024-03-18 16:18:54 +01:00
Oliver Smith b7cde0f6a2 contrib/jenkins: make configure args diff friendly
Removing new lines in DISTCHECK_CONFIGURE_FLAGS again is needed, as it
otherwise fails with:
  enable-sanitize
  /bin/bash: line 1: enable-sanitize: command not found

Change-Id: I049af384eccdb6f8e5b305ca35de106eeaca3fa8
2024-03-18 16:14:38 +01:00
Oliver Smith 25590be470 debian: add osmo-trx-ms-blade
Related: OS#6409
Change-Id: I85d24355975f292610bcde61a8917aec852043ca
2024-03-18 13:46:44 +01:00
Oliver Smith f1ce0e7692 debian/rules: make configure args diff friendly
Have one arg per line, and order it mostly alphabetically while at it
(backends are still together, as recommended in review).

Change-Id: I354affacb38958efe70baedc6175aeab525190a6
2024-03-18 13:44:33 +01:00
Oliver Smith 99e0746f37 gitignore: add .version
Change-Id: Ib75781b5d473921b42936e4d3c441e6a520b9108
2024-03-18 12:34:53 +01:00
Eric Wild 1f8eb7c658 ms: add demod test tool and data
It just uses the viterbi equalizer and the sigproclib to generate and
demodulate bursts and prints the bits, only useful for
development.

Change-Id: I852e34d9667d1f12f235f8b3da1fcc0d738b2db9
2024-02-22 13:41:26 +01:00
Eric Wild d8a1dee2c9 ms: add sigproclib demod
This is basically a fixed version of ttsous ancient branch that can be
used instead of the VA. Required config option part of a future
patchset.

Change-Id: I6558992bd69f18526be5ebe7d424ca00ceb67772
2024-02-22 12:39:33 +01:00
Eric Wild 56c7b777f3 ms: hard preswapped VA gsm bits
small * 127 can still be small enough to end up 0 after casting which
breaks everything.

Change-Id: I44b95dced64208eebfb5214da034a5d49abdd0df
2024-02-21 19:38:36 +01:00
Eric Wild 989fe75038 ms: get rid of std::thread
2fc2b594da6e329577b195cb2543a8dd9e1b9ed0 changed std::thread to pthread
for proper affinity to circumvent startup issues, so just stick to
pthread instead of mixing std::thread and pthread, which made tracking
thread creation difficult due to different functions.

Change-Id: I0ba2fd958530394b9d99ed82111064d428c5870f
2024-02-21 19:38:30 +01:00
Eric Wild 8aea236c56 ms: do not set the blade tuning mode
Sophisticated users can export BLADERF_DEFAULT_TUNING_MODE=fpga which
reduces the startup time to 1 second, or (default)
BLADERF_DEFAULT_TUNING_MODE=host which always works.

Defaulting to fpga mode has the unfortunate side effect that the blade
can get stuck in a weird invalid mode when supplying wrong parameters
that breaks sample streaming until it is power cycled or "reset" by
using host tuning once. So, let's do the safe thing, and not default to
fpga mode.

Change-Id: I109f925f07a198d1fb33fe793e91e455fea05a96
2024-02-01 12:22:37 +00:00
Vadim Yanitskiy a2d76f1d2f doc/examples: fix missing config files in release tarballs
All config file examples must be listed in EXTRA_DIST unconditionally.
Adding them conditionally results in incomplete release tarballs,
containing only some '*.cfg' files and failing to build.

Change-Id: Iffb6d7577de175fc5d14642f0af6852508d74e69
Related: OS#6349
2024-01-28 23:46:26 +07:00
Vadim Yanitskiy a118d98ec3 build: include version files into the release tarball
Change-Id: I818b645737bed35495cb4bad35667b369fd5ea6c
2024-01-26 23:45:28 +07:00
Vadim Yanitskiy c7fc94dff6 Transceiver::ctrl_sock_handle_rx(): fix copy-pasted comments
Change-Id: If31c0de0b3562c06220dcb9ad6f0c13d8621f6e3
2024-01-23 04:12:20 +07:00
Andreas Eversberg 06c0810e98 Use uniform log format for default config files
Related: OS#6272
Change-Id: If9466e925a405d35deed2e81f25a0a1677de0f3c
2023-12-01 11:54:01 +01:00
Harald Welte 6ee9dccddb osmo-trx-uhd: Make sure HOME environment variable is set
It turns out that uhd versions >= 4.0.0.0 *require* that either the
HOME or the XDG_CONFIG_HOME variables are set, and otherwise will
terminate the program.

Change-Id: I1816013c507da28719590f063da0a397da656a10
Closes: OS#6269
2023-11-24 10:38:34 +01:00
Eric Wild 242ceb25d1 devices: fix wrong gain to power mapping
The dev type was set too early, but the actual dev is only being
discovered during open, so update it. This broke the gain to power
mapping by defaulting to a wrong device.

Change-Id: I1dda6023ca6f15bc063c3dfbc704db2410ff7c98
2023-11-09 09:51:07 +00:00
Eric Wild b52650f157 ms: init blade with fpga control
Blade 1 defaults to fpga tuning, but the blade 2 code defaults to host,
which does 8000 register reads and writes. The only way to speed this up
is to set the env var, which reduces opening the blade device from 10 to
1 seconds.

Change-Id: I32fe31f1e11f4ceb3c864ec8739d177e780d0a7e
2023-11-03 20:37:51 +01:00
Eric Wild 992a49e586 ms: reduce rx burst queue size
This should be fine, because we can at most receive 1.5 bursts of data
at once and produce 2 bursts with previous data, so if this is insufficent the usb buffers are late or the upper layer is stuck and we're in trouble anyway.

Change-Id: Ifb8bf2894c87e4234e3d3f65d66c1e98c8f63c53
2023-10-04 12:53:18 +00:00
Vadim Yanitskiy ad9b8b4211 osmo-trx-ms: bump osmocom-bb submodule commit
The new revision contains an important fix [1] for GPRS scheduling.

Change-Id: Ibb57b29bb0424a40836819c15d25d1133f554d32
Related: [1] osmocom-bb.git I439615639b8e840b9fd4f3af6934d9f298f32216
Related: OS#5500
2023-10-03 23:57:24 +07:00
Eric Wild 0f4381d480 ms: adjust ts advance
..and fix the delay warning.

I'd rather have a proper fn advance of 1, but that breaks gprs, but just
slightly increasing the ts number is sufficient to fix issues with late
tx bursts that then get silently dropped by the sdr.

The mobile app does not care, and will happily work even with fn+3.

Change-Id: I46b3ea6b0094026bd50709739df464438f9e54c4
2023-09-20 15:19:13 +02:00
Pau Espin 2ada887367 Bump version: 1.5.0.50-5042-dirty → 1.6.0
Change-Id: I718c6223d0b1a2ffb68887c159546b78e141dffa
2023-09-12 15:56:58 +02:00
Pau Espin 5042156437 ms: update osmocom-bb submodule
Change-Id: I5e1a5f385e7d5e041142e665181d68ad5bb22230
2023-09-06 13:45:28 +02:00
Vadim Yanitskiy 70ed3d586e ms: logging: print category, level, and extended timestamp
Change-Id: I14da3c9e77681268e4f575a6ca7220eedbf2a7a5
Related: osmocom-bb.git Ie3d259f3255d8af80e6780f850b808fa243f97b4
2023-09-06 02:28:41 +07:00
Eric Wild 3dfbb6d9f6 ms: bump osmocom-bb submodule to current head
Change-Id: I9a16de0dce2e89fb522271ba63d908e33a1d7cde
2023-08-31 17:23:12 +02:00
Eric Wild 58294fde4b ms: fix a few coverity complaints related to initialization
Change-Id: I203f4da7a4418fc5053d26901bec649d04fad096
2023-08-30 13:54:22 +02:00
Eric Wild d372eb2f0b ms: fix thread prio startup issue
This fixes the 20 second startup delay caused by tx/control threads
getting temporarily stuck while trying to set their own priority.

Apparently the only sane way for core affinity+priority is to set both
as attributes during thread creation using pthreads.

This switches the cmd queue to the timeout version, too, to ensure the
thread doesn't get stuck waiting for messages, and allows cleaner exits.

Change-Id: I7e2f83a9b9df024acaf9076c58189cb6b7bcc34b
2023-08-30 13:54:18 +02:00
Eric Wild 287ae681b7 ms/va: make ancient gcc < 8 happy
Change-Id: Ib94b9b073a0d2af84ce5791b5f40c63cd7ef9329
2023-08-30 11:54:26 +02:00
Eric Wild cca5d93f66 transceiver: add experimental viterbi equalizer support
The VA is already being used by the ms side and is part of the original
gsm design. It only works for gmsk, 4sps, and needs a bit of rx burst
scaling and burst shifting.

Change-Id: I9d7a4ff72e323832a94d885d5714fcde01ceeb3d
2023-08-25 13:18:04 +00:00
Eric Wild a5a2275a08 ms: restructure the va code to add rach support
This commit adds support for rach bursts to the viterbi equalizer, which
is currently only being used by the ms side, so the equalizer can be used
by the osmo-trx network side, too. The difference is that rach bursts are
shorter than any other burst type (due to unknown TA) and start with
diffrent tail bits.

This drops the multiversioning which was only working for x86 anyway because
it can't be combined with no_ubsan.

Change-Id: I4a5cedc8c9a3289c75ce7b914eac286e601ebed0
2023-08-25 13:17:56 +00:00
Eric Wild 1499f0343a ms: update osmocom-bb
..and sync the log levels.

Change-Id: I6f9fca7a4d6a02e82bf406fd136c5bde96bb93af
2023-08-25 13:17:56 +00:00
Eric Wild 8c1d59086e trx: fix dev-args issue
osmo_talloc_replace_string used by the vty needs a talloc string.

Change-Id: Ifed8fd42dc7464899de69985f3b5f5b47c88a7d1
2023-08-24 11:43:47 +02:00
Eric Wild f57a86131e ms: drop the tx burst padding
useless.

Change-Id: Ied5c3ab5dde975e11b0ef6d9cbc86be19173c4e8
2023-07-28 12:19:41 +00:00
Eric Wild 7d5c16590c ms: fix blocking logging
Change-Id: I0f5dcb13d1bd9e626e1eeab6ca767ca1b5ae43b8
2023-07-25 18:25:49 +02:00
Eric Wild f8c7a52521 devices: add freq/gain override for uhd
This allows using arbitrary gain and frequencies.

Change-Id: I3c1b9a067cafc6d696b9aa2da8ee0480ec1e094f
2023-07-25 18:25:49 +02:00
Eric Wild c0f78a37ed devices: unify band handling
This is basically common, but optional code.

Change-Id: I64f5a462451e967d4750d8e4f1d5832cbab41cff
2023-07-25 18:25:49 +02:00
Eric Wild 19e134a626 transceiver: pass cfg struct instead of args
Passing 7 args is a bit much, just pass the config struct instead.

Change-Id: I48386900d15ff4d770c70a4efc246d32f921904b
2023-07-25 18:25:49 +02:00
Oliver Smith a98521ac05 USRPDevice:updateAlignment: remove byteswap code
After upgrading our CI environment to use Debian 12 with GCC 12, the
byteswap code fails the build with the following. I've talked to Eric
about this and he recommended to just remove the code as practically
nobody will use osmo-trx with a big endian system.

USRPDevice.cpp:591:30: error: 'data' is used uninitialized [-Werror=uninitialized]
  591 |   *wordPtr = host_to_usrp_u32(*wordPtr);
      |              ~~~~~~~~~~~~~~~~^~~~~~~~~~

Related: OS#6057
Change-Id: I806d8c1432cb20efca1830a2752a4cbc70384b54
2023-07-13 14:34:59 +02:00
Eric Wild df4520df77 ms: make init call less confusing
Change-Id: I122b0c8cf97e5efcbc60cd95e8bd06a50d57eb57
2023-07-07 19:16:40 +02:00
Eric Wild 2f40abd8f5 ms: sch: drop intermediate softvector
Change-Id: Iadc8f224f9e43282339197b11f388fc574656299
2023-07-07 19:16:40 +02:00
Eric Wild 6a3e4b32f0 ms: flexible template for value_type buffer sum
Manual attempts to get the number of complex and single samples right
turned out to be a bit error prone at times...

Change-Id: I3c9953073555e3a7f70b78b0946dfdf949175a82
2023-07-07 19:16:40 +02:00
Eric Wild c3e515a28b ms: rearrange code to allow clean exits
This allows gracefully terminating the application by introducing queue
timeouts.

Change-Id: I0b8deebc63cf4d936666fd68e1666d1917e89a5d
2023-07-07 19:12:39 +02:00