Feature #5755
openio_uring support in osmo-bsc
80%
Description
Once libosmocore provides the new API for the upcoming io_uring backend (#5751) we will need to port osmo-bsc over to this new API.
Some I/O is done directly by osmo-bsc, while other I/O is done via libaries such as libosmo-sigtran, libosmo-netif, libosmo-mgcp-client. There are separate tickets for porting over those libraries. Once that has happened, there might also be API changes for osmo-bsc to catch up with.
Currently we're using the following code-paths for I/O
osmo-bsc function | I/O function | provided by |
---|---|---|
bsc_sccplite_mgcp_proxy_cb | recv | - |
bsc_sccplite_rx_mgcp | send | - |
cbsp_srv_cb/cbsp_client_read_cb | osmo_cbsp_recv_buffered | libosmocore |
cbsp_tx_decoded | osmo_stream_{cli,srv}_send | libosmo-netif |
Abis interface | - | libosmo-abis |
A+Lb interface | - | libosmo-sigtran |
VTY interface | - | libosmo-vty |
CTRL interface | - | libosmo-ctrl |
We need to analyze each of those and migrate, if possible.
There is also some other I/O like meas_feed, pcu_sock rf_ctrl which are not performance critical and hence can stay like they are and are not further discussed here.
Checklist
- A+Lb interface via libosmo-sigtran
- Abis interface via libosmo-abis
- CBSP interface
Related issues
Updated by laforge over 1 year ago
- Related to Feature #5751: io_uring support in libosmocore added
Updated by laforge about 2 months ago
- Related to Feature #6357: run (some?) tests with io_uring backend for osmo_io added
Updated by laforge 26 days ago
- % Done changed from 50 to 80
CBSP interface patches are submitted for review in https://gerrit.osmocom.org/c/libosmocore/+/36145 and https://gerrit.osmocom.org/c/osmo-bsc/+/36146
They pass all BSC_Tests_CBSP tests of our test suite on my local system, at least when running with the classic poll backend (io_uring testing will be next).