Commit Graph
27 Commits
Author SHA1 Message Date
Robert Schmidt 0b3d098654 Merge remote-tracking branch 'origin/fhi-f-release' into integration_2024_w49 (!3147)
Fronthaul xran library update to F release (2. and final step towards M-plane integration)

- xran library support -> both E and F releases
- RU delay profile removed -> not used in neither of the releases
- DU delay profile updated
- one-way delay measurements support is improved/fixed in the F release.
  However, not implemented here as it depends on the RU capabilities
2024-12-08 21:07:05 +01:00
Teodora 2b007b5d59 Add warning that E release support will be removed 2024-12-05 23:00:07 +01:00
Teodora 574b3eb348 Fronthaul xran library F release support
Major improvements:
  1) bbu_offload - enable packet handling on BBU cores
  2) dlCpProcBurst - DL CP processing on one or more symbols
  3) SRS CP processing - depends on the RU capabilities that can be
    retreived via M-plane (if RU is CAT B)
  4) nSecDesc - the number of section descriptors per symbol; it was hardcoded to 0 in E release;
    depends on the RU capabilities that can be retreived via M-plane
  5) RunSlotPrbMapBySymbolEnable - enable PRB mapping by symbol with multisection;
    depends on the RU capabilities that can be retreived via M-plane
  6) DSS (Dynamic Spectrum Sharing) support - depends on the RU capabilities that can be retreived via M-plane

Minor fixes in F that exist in E:
  1) prach_config->nPrachFilterIdx - explained in commit ID f3045396
  2) T1a_min_cp_dl - explained in the commit under title "Clarification on DU delay profile"
  3) fh_config->nULRBs - explained in commit under title "Further clarification on xran E release parameters"

Removed const for prb_conf argument in oran_allocate_cplane_buffers()
function, as F release requires the not const struct for
xran_init_PrbMap_by_symbol_from_cfg() and xran_init_PrbMap_from_cfg()
even though the struct is not modified inside of these functions.
2024-12-05 22:59:58 +01:00
Teodora 698245c7e9 Further clarification on xran E release parameters
- remove xran parameter io_cfg->port logging => this parameter
    is filled within xran library in both E and F releases
  - PRACH offset explanation; not limited to >= max(Ntx, Nrx);
    workaround done in xran to support PRACH eAxC IDs same as PUSCH eAxC IDs
  - DL PRB not used in xran; UL PRB used in xran F release, therefore
    removed from the patch
  - these fixes should have been done in the commit ID f3045396
2024-12-05 22:59:58 +01:00
Teodora dd4ffe3439 Clarification on One-Way Delay Measurements 2024-12-05 22:59:47 +01:00
Teodora 83c88affec Clarification on DU delay profile
- explanation on DU delay parameters used in E and F xran releases
2024-12-04 18:59:16 +01:00
Teodora 68a3435689 Remove RU delay profile
- xran E release (and later F) doesn't use them
  - update fhi_72 section in fronthaul config files by removing
    unnecessary RU delay parameters
2024-12-04 18:59:16 +01:00
21dafbcde7 New threadpool
- removed some whitespace noise.
 - cleaned up CMakeLists.txt
 - reintegrated task_manager.c into thread-pool.c
 - cleaned up some unnecessary code

Co-authored-by: Cedric Roux <cedric.roux@eurecom.fr>
Co-authored-by: Mikel Irazabal <mikel.irazabal@openairinterface.com>
2024-12-04 17:54:51 +01:00
Teodora f30453968f xran integration improvements
- identification of each parameter in fh_init and fh_config structs
  - identification of unused parameters in xran library
  - identification of parameters used for CAT A O-RU
  => CAT B not supported in this release
2024-11-22 12:51:39 +01:00
Robert SchmidtandTeodora 530f96278d Rearrange FHI architecture to support M-plane
Co-authored-by: Teodora <teodora.vladic@openairinterface.org>
2024-11-21 13:37:46 +01:00
Robert SchmidtandSagar Arora 68c28a4828 Modify default xran DPDK socket memory/limit to 0
The default values set by xran for DPDK socket memory/limit is 8192. It
is changed when the variable for the memory size, given down to xran, is
non-zero (cf also previous patch). Since the last patch, if nothing is
given in OAI configuration, OAI will pass down a size of 8192. However,
a configuration value of 0 is a valid choice (it is a pre-allocation,
DPDK will allocate dynamically), so modify the default in xran to be 0
so that all sizes, including 0, can be given to DPDK.

Note that the currently used implementation of xran will always try to
allocate this memory on NUMA node 0. If you want to use another one,
this field has to be set to 0 (no pre-allocation), and DPDK will
allocate it dynamically.

Co-authored-by: Sagar Arora <sagar.arora@openairinterface.org>
2024-09-21 07:12:07 +02:00
Robert Schmidt 645e9dd3cd fhi_72: allow to provide dpdk_mem_size to xran
xran has a mechanism to request DPDK to allocate a configurable amount
of bytes for huge pages. We set it to 0 until now; expose this variable
through configuration, and provide a meaningful default 8192 MiB.
Provide documentation.
2024-09-21 07:12:06 +02:00
Raymond KnoppandRobert Schmidt 7e18293c70 Changes for multi-RU support in fhi72
Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2024-08-27 15:40:15 +02:00
andrewse 3dd0d45907 7.2 xran: notification generation code in ru_thread excluded from compilation 2024-07-18 15:24:14 +02:00
Robert Schmidt a9718835d4 7.2 FH: auto-compute FFT size 2024-06-06 12:36:40 +02:00
Robert Schmidt 489824fdcf Enforce gcc/g++-11 when building 7.2 FHI through xran 2024-06-05 17:01:35 +02:00
Robert Schmidt 98e9129d69 Allocate sufficient buffers for 1x1 config
xran's xran_bm_init() uses rte_pktmbuf_pool_create() to allocate DPDK
buffers. For a 1x1 configuration, the number of buffers might be too
small, and rte_pktmbuf_pool_create() might fail. This commit ensures
that we increase the number of buffers to have enough even in a 1x1
configuration. This works by chosing the next power of two, which is
recommended as per DPDK documentation.

Closes-Bug: #750
2024-06-05 17:01:35 +02:00
Robert Schmidt f7917abb28 Print xran headers version used during compilation 2024-06-05 17:01:35 +02:00
Robert Schmidt cd5822e927 Update FHI 7.2 ORAN patch: unaligned access, detect/handle PRACH packets 2024-06-05 17:01:35 +02:00
francescomani 686da85d05 invalidPrintfArgType_sint 2024-04-09 16:44:56 +02:00
Robert Schmidt c5211b0f8c O-RAN 7.2: modify patch to switch of DPDK telemetry, bump version
Disable DPDK telemetry to skip creation of one/two threads (depending on
DPDK version). To force users to do this, bump the version of the patch
checked by cmake.

More information on DPDK telemetry:
https://doc.dpdk.org/guides/howto/telemetry.html

Closes: #732 (suggestion 2)
Suggested-by: Andrew Sergeev <andrew.sergeev@adtran.com>
2024-02-09 13:22:26 +01:00
Robert Schmidt b5ba3a69f1 O-RAN 7.2: set CPU affinity for ru_thread explicitly
Force the CPU affinity for ru_thread explicitly to ru_thread_core. It is
already done via threadCreate(), but force again as per change request.

Delete commented 7.2 code that did the equivalent. We cannot set it in
the driver, as we don't have access to variable ru->ru_thread_core.

Closes: #732 (suggestion 2)
Suggested-by: Andrew Sergeev <andrew.sergeev@adtran.com>
2024-02-09 13:02:50 +01:00
Robert Schmidt b32b9e836f O-RAN 7.2: make DPDK system core configurable
system_core is the core reserved for DPDK control threads. It was
hardcoded to 0, but it seems that one some systems, CPU 0 cannot be
reasonably isolated from kernel threads. Make it therefore configurable
(default: 0)

Closes: #732 (suggestion 1)
Suggested-by: Andrew Sergeev <andrew.sergeev@adtran.com>
2024-02-09 12:42:21 +01:00
Raymond Knopp 0fb0a9a48e O-RAN 7.2: Set PRACH filter index correctly for FR2 2024-02-09 12:20:44 +01:00
Raymond Knopp 8dd12ba2bf O-RAN 7.2: use configured values instead of hardcoded
Use configured
- FFT size
- numerology
- slot number

Necessary for FR2 operation and different FFT sizes (as opposed to
FR1/4096).
2024-02-09 12:18:31 +01:00
Robert Schmidt a22335a89f FH 7.2: ignore packets with no payload instead of asserting 2024-02-08 10:13:28 +01:00
baea11c35c Add O-RAN 7.2 FHI library
- Add the O-RAN 7.2 FHI library, interfacing with OSC xRAN library (E
  release)
- Add Findxran.cmake to detect the library and headers, including
  version information
- Test for numa and DPDK presence
- Add patch for OSC xRAN to make interworking possible
- Add sample config files for LiteOn, Benetel, and VVDN units.

Documentation is provided in the next commit.

Co-authored-by: Raymond Knopp <raymond.knopp@eurecom.fr>
Co-authored-by: Cedric Roux <cedric.roux@eurecom.fr>
Co-authored-by: Manish Kumar Singh <manish1.kumar@amd.com>
Co-authored-by: thamizhselvan.k <thamizhselvan.k@vvdntech.in>
Co-authored-by: rajeshwari.p <rajeshwari.p@vvdntech.in>
Co-authored-by: Hongzhi Wang <hongzhi.wang@openairinterface.org>
Co-authored-by: Sofia Pison <Sofia.Pison@eurecom.fr>
2024-01-23 13:50:49 +01:00