Commit Graph
25635 Commits
Author SHA1 Message Date
Robert Schmidt 6ba8716700 Add Slot Indication to monitoring 2024-02-12 12:04:55 +01:00
Robert Schmidt e9d6081abc Add slot indication timing 2024-02-12 12:04:55 +01:00
Raymond Knoppandkiran d52b81798b Introduce separate thread to handle gNB TX processing
This commit introduces a separate thread (l1_tx_thread) that processes
gNB DL/TX slots. It receives a message from the ru_thread when a new
slot started, and starts processing.

The DL part of the scheduler is run in the l1_tx_thread.  Therefore,
only call UL indication (for scheduler) in UL slots.  The UL indication
previously triggered the DL scheduler -- hence, it had to be called in
every slot. Now, since the DL scheduler is moved into the DL thread, we
don't have to call the scheduler in every slot anymore.

The reorder thread is removed, as reordering with this scheme is not
necessary anymore.

The main advantage of this version is that the TX can be scheduled
earlier (sl_ahead). Further, there can no longer be race conditions in
the TX path, since the scheduler/L2, TX L1 processing and the RU tx
function are all execute in the same thread (L1_tX_thread).

Also, the scheduler prepares PRACH/PUSCH/PUCCH FAPI PDUs. As of this
commit, the scheduler runs in the TX processing chain, whereas these
PDUs are destined for RX processing.  Thus, too avoid data races,
instead of triggering the RX processing at the same time as TX
processing in the RU thread, this commit changes the code to trigger RX
processing after the scheduler has been run in TX processing to avoid
data races.

Finally, we synchronize RU and L1 threads. This is important for
rfsimulator, since unlike most radios, rfsimulator can run slower or
faster, depending on I/O and CPU (it does not have a stable "tick").

Co-authored-by: kiran <saikiran@iitj.ac.in>
2024-02-12 12:04:55 +01:00
Raphael Defosseux 4ca52ef456 fix(ci): PACKAGE_VERSION is missing from nr-cuup executable
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2024-02-12 11:48:52 +01:00
Robert Schmidt fb69d9c635 Remove unused UL_INFO_mutex
The UL_INFO_mutex is used in only one place, and therefore useless.
Also, the scheduler uses a lock internally to prevent concurrent access.
Hence, the UL_INFO_mutex is not needed.

Remove kill_gNB_proc(), as it is now dead code.
2024-02-12 11:25:30 +01:00
Robert Schmidt 88852dc9af Introduce slot indication tick to run (DL) scheduler
The next commit introduces a separate gNB TX processing thread. To
properly separate DL scheduler (for scheduling decisions) from UL
indication handling (for UL packets), this commit introduces a slot
indication "tick" to run the DL scheduler which will be put into the gNB
TX processing chain instead of the UL indication.
2024-02-12 11:25:26 +01:00
Robert Schmidt d5f11902b7 Handle PUCCH frame/slot mismatches gracefully
For different reasons, the frame/slot numbers might jump (e.g., gNB and
RU machines not properly synced). The scheduler would assert for PUCCH
allocations. Handle this gracefully by printing an error message, and
resetting the PUCCH structure.
2024-02-09 13:38:12 +01: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
Jaroslava Fiedlerova 223c63826d Merge remote-tracking branch 'origin/handle_issue_730' into integration_2024_w06 2024-02-09 12:39:03 +01:00
Jaroslava Fiedlerova c3e7cb7e35 Merge remote-tracking branch 'origin/update-rc-sm' into integration_2024_w06 2024-02-09 12:37:12 +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
Raymond Knopp 4f7464d010 Print additional information if TBS is too small for SIB1 2024-02-09 12:15:52 +01:00
Jaroslava Fiedlerova 638acd6040 Merge remote-tracking branch 'origin/NR_UE_msg3_buffer' into integration_2024_w06 2024-02-09 12:07:48 +01:00
Jaroslava Fiedlerova 83d46bb516 Merge remote-tracking branch 'origin/NR_UE_rework_LC_config' into integration_2024_w06 2024-02-09 12:06:36 +01:00
Robert Schmidt 702c608ca1 O-RAN 7.2 doc: explain layer mapping, streamline start gNB section 2024-02-09 11:49:47 +01:00
Robert Schmidt b612e5f021 O-RAN 7.2 doc: make section Configuration, DPDK before gNB config
The gNB configuration depends on DPDK (e.g., PCI addresses). Therefore,
put DPDK config before, to keep it logically ordered.
2024-02-09 11:42:49 +01:00
Raphael Defosseux cf183f4349 chore(ci): force rebuild of ran-base for integration branches
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2024-02-08 16:01:10 +01:00
francescomani f3c61b12fe remove pointer to logicalChannelConfig in LC ordered info and store actual values in the list 2024-02-08 15:16:56 +01:00
francescomani 29ddb924e3 do not call RCconfig_NR_L1 twice in monolithic mode 2024-02-08 13:59:28 +01:00
francescomani c093e4ed4f reworking configuration of LogicalChannelConfig at MAC UE 2024-02-08 13:19:48 +01:00
Robert Schmidt 4085544f28 O-RAN 7.2 patch: don't ignore user's PKG_CONFIG_PATH 2024-02-08 10:13:39 +01:00
Robert Schmidt fd3c50b6c8 O-RAN 7.2 doc: Correct NUMA node capitalization 2024-02-08 10:13:39 +01:00
Robert Schmidt 970e7855c4 O-RAN 7.2 doc: describe how to interpret counters 2024-02-08 10:13:39 +01:00
Robert Schmidt a22335a89f FH 7.2: ignore packets with no payload instead of asserting 2024-02-08 10:13:28 +01:00
luis_pereira87 60af0f1af2 Tutorials: replace oai-spgwu-tiny by oai-upf
Replace oai-spgwu-tiny by the new oai-upf

Change UE IP network address blocks for a 'Private-Use' range. Address block 12.1.0.0/16 is for public use, so we should not use it for the UEs (https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)
2024-02-07 17:02:15 +00:00
luis_pereira87 05babdfc5c Tutorials: add link for Ettus UHD installation page and remove 'source oaienv' from instructions 2024-02-07 17:00:55 +00:00
luis_pereira87 7ee0cfc28c Tutorials: remove OAI UE SIM section
The main goal of this tutorial is to get 5G end-to-end connectivity as simple and fast as possible. For advanced topic the user should search for specific documentation.
2024-02-07 17:00:55 +00:00
luis_pereira87 e29c938130 Tutorials: simplify the pull section for the CN5G images
No need to pull every single image independently, we can pull all the images with the corresponding tag that is in the 'docker-compose.yaml' with the 'docker compose pull' command
2024-02-07 17:00:55 +00:00
luis_pereira87 99f3ef1a61 Tutorials: add FR2 SA configuration file and instructions for RFsimulator 2024-02-07 17:00:55 +00:00
luis_pereira87 6ec4918187 Tutorials: update the OAI nrUE SIM card description
This tutorial aims to achieve end-to-end connectivity as simple as possible. Let's remove this complex topic from here.
Also, if a user copy-paste the section as it was, nrUE gets a segfault because there is no imeisv here, tutorial is out-dated.
2024-02-07 17:00:55 +00:00
luis_pereira87 be08184fbe Tutorials: update UHD to v4.6.0.0 and update dependencies as described in the official Ettus website 2024-02-07 17:00:55 +00:00
Teodora 1675e6e155 Update FlexRIC commit and E2AP README 2024-02-07 17:19:18 +01:00
Teodora d7ff30db55 Enable multiple RC subscriptions
- create hash table to save ric_req_id (key) and array of ran_param_id(s) (values), per each subscription
  - create RB tree to store list of ric_req_id(s) for each ran_param_id
    => when the async event occurs, it is easier and faster to search per ran_param_id and send the indication message to all xApps (ric_req_id(s)) subscribed to the same ran_param_id
  - it is important to mention that both data structures need to be maintained, especially when unsubscription occurs (free_aperiodic_subscription)
2024-02-07 15:14:27 +01:00
Teodora 3cc3bbbabc Support RC aperiodic subscription
- subscribe to "UE RRC State Change" RAN Parameter ID
  - expected asynchronous events from E2 node
2024-02-07 14:32:23 +01:00
Raymond Knopp 94a0704e43 Update sample config gnb.sa.band41.fr1.106PRB.usrpb210.conf 2024-02-06 16:03:56 +01:00
Raymond Knopp bb044cf940 Update logs to NR_ version and add some new 2024-02-06 16:03:56 +01:00
Raymond Knopp 1ec528dbdb Remove commented code 2024-02-06 16:03:56 +01:00
Raphael Defosseux 2b796874ca fix(ci): hot-fix for E2-agent build w/ latest version of ASN1C
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2024-02-06 13:52:02 +01:00
Robert Schmidt ff1cc7b378 Merge branch 'integration_2024_w05' into 'develop'
Integration: 2024.w05

See merge request oai/openairinterface5g!2549

* !2537 Fix for UE PUSCH scheduler DURATION_RX_TO_TX assertion
* !2538 Fix for UE MAC PDU LCID handling
* !2542 Fix L1_SSB_CSI_RSRP table mapping and check validity
* !2544 NR UE RRC timers improvement
* !2546 Correcting the location of packages
* !2493 Fix for computing SSB subcarrier offset
* !2496 MCS for retransmission fix in case of dci failed detection at NR UE
* !2503 Handle PDU Sessions in NG Initial UE context Setup and forward 5G-S-TMSI to core
* enable caching in the docker build of the CI build steps
* !2541 Fix RA bug, improve overall logging
2024-02-06 10:14:17 +00:00
Raphael Defosseux ef0f33b4a1 fix(ci): the .git folder is excluded by default in the build-config pod. Adding it back
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2024-02-05 14:53:01 +01:00
Jaroslava Fiedlerova 3b2355ce4c Merge remote-tracking branch 'origin/fix-ra-reduce-logs' into integration_2024_w05 2024-02-05 13:27:12 +01:00
Robert Schmidt be3d37159f Enable some caching in CI build steps 2024-02-05 10:38:34 +01:00
Jaroslava Fiedlerova 3de71d11bf Merge remote-tracking branch 'origin/pdu-session-initial-setup' into integration_2024_w05 2024-02-05 09:27:10 +01:00
Jaroslava Fiedlerova 9af66c9ec6 Merge remote-tracking branch 'origin/NR_UE_fix_no_mcs_dci_failed_detection' into integration_2024_w05 2024-02-05 09:23:52 +01:00
Jaroslava Fiedlerova 905fb9b6fd Merge remote-tracking branch 'origin/fix_computing_ssb_subcarrier_offset' into integration_2024_w05 2024-02-05 09:21:16 +01:00
francescomani 58ea7357f8 add option to configure max MIMO layers for PUSCH TBSLBRM computation from UE capabilities 2024-02-04 11:09:58 +01:00
francescomani df867e533f formatting 2024-02-04 11:02:58 +01:00