Commit Graph
406 Commits
Author SHA1 Message Date
Raghavendra Dinavahi 798ceeeef2 SL PSBCH: MAC->PHY cfg, PSBCH scheduler + supporting functions + enable system testing & scope
- Phy config update and Sidelink frame parameters initialisation
	- PSBCH scheduler to trigger TX PSBCH/RX PSBCH actions
	- Sidelink indication with rx ind to trigger send SL-MIB to MAC
	- Enable Scope for PSBCH use -d or --dqt
	- Enable system testing of PSBCH for example using RFSIMULATOR:

		- UE1 is a SYNCRONISATION SOURCE UE which transmits PSBCH

		  started using command -
		  sudo ./nr-uesoftmodem --sl-mode 2 --sync-ref 4 --rfsim --rfsimulator.serveraddr server

		- UE2 syncs onto UE1 during sidelink search, gets the timing and continues to receive PSBCH

		  started using command -
		  sudo ./nr-uesoftmodem --sl-mode 2 --rfsim --rfsimulator.serveraddr 127.0.0.1

		- In the default use case 2 Sidelink SSBs sent over 16 frames.

		- In case SL-SSB configuration needs to be changed use -O option in the above command like

		-O ../../../targets/PROJECTS/NR-SIDELINK/CONF/sidelink_preconfig_1txpool.conf
2024-06-21 09:40:16 +02:00
Robert Schmidt 37f3f0b6a4 nr-uesoftmodem: don't set priority, check for SYS_NICE
The main thread of nr-uesoftmodem (executing main()) is mostly working;
it is thus not necessary to set high priority. Instead, the threads
created with threadCreate() will receive higher priority, if possible
(as determined by the availability of SYS_NICE capability).

To inform if SYS_NICE is not present, print a warning in main().
2024-06-03 14:00:49 +02:00
Robert Schmidt 6b37d183ce Remove set_latency_target(), add lock_memory_to_ram()
set_latency_target() attempts to set keep "low latency" by
- writing a specific latency to /dev/cpu_dma_latency
- setting manually the minimum CPU processor frequency to be the maximum

There is no functionality to undo this after stopping the softmodem(s),
and most users are probably not even aware that OAI does this. It is
generally preferable to set this beforehand using a governor or by
disabling sleep states (as outlined in the tutorial, and in a follow-up
commit in the performance tuning docs).

The previous mlockall() call, to lock memory to RAM, is retained in a
new function. There were additional mlockall() calls, which have been
replaced with lock_memory_to_ram(), where necessary.
2024-06-03 13:59:41 +02:00
Robert Schmidt a25b209e7f Remove Check if fedora and inside kernel
It's completely unclear what this is supposed to do.
2024-06-03 12:37:33 +02:00
Robert Schmidt 12517b55f6 Merge remote-tracking branch 'origin/gnb-tx_timestamp-compute-bug' into integration_2024_w10 2024-03-08 18:57:05 +01:00
Laurent THOMAS 1ab3b8dd8e add version signature in core files to be able to compare with the ELF one 2024-03-08 16:29:54 +01:00
Robert Schmidt 70be05381f remove unused UE_PF_PO and ue_pf_po_mutex
They use 4G NUMBER_OF_UE_MAX, which is not supposed to be present in 5G.
Further, the mutex and variable are global state; for Paging, we should
use F1.
2024-03-07 09:56:20 +01:00
Laurent THOMAS 7466297568 move command line sample offset and 3/4 sampling option at top level, as it is common option for 4G,5G xNB and UE 2024-03-04 10:07:07 +01:00
francescomani 71790ccbdf remove noS1 condition to init pdcp in phy-test mode 2024-02-20 15:58:48 +01:00
francescomani 3443248322 reworking NOS1 bearer configuration to take info from file 2024-01-23 10:24:41 +01:00
francescomani 08f0283c43 improvements in initializing multiple instances of MAC and RRC 2024-01-19 11:33:27 +01:00
Robert Schmidt df20a35601 Merge remote-tracking branch 'origin/episys/enabling-multi-ues' into integration_2023_w51 2023-12-21 16:14:11 +01:00
Melissa Elkadi c4c1daeb16 Moving init of NRUE threads to nr-uesoftmodem.c 2023-12-20 21:58:01 +00:00
francescomani 284b072184 procedure to indicate the release of the RRC connection to upper layers 2023-12-20 11:30:01 +01:00
Jaroslava Fiedlerova cf97acb8c7 Add T2 LDPC encoding/decoding offload 2023-11-28 09:37:37 +01:00
Laurent THOMAS 99ca87a1c1 Refactor LDPC API to make common API with various implementations 2023-11-28 09:37:37 +01:00
francescomani c6e5ead2a9 some more RRC cleanup 2023-11-21 11:07:21 +01:00
francescomani 4d8bb4ef25 unify handling of reconfiguration with sync 2023-11-20 12:14:59 +01:00
Laurent THOMAS f50d5f5a9b make multiple config instead of one implicit global 2023-11-10 10:23:11 +01:00
Robert Schmidt a828da1b3f Merge remote-tracking branch 'origin/itti-no-threads' into integration_2023_w43 2023-10-30 10:22:16 +01:00
Laurent THOMAS a198239084 Introduce no-thread mode in ITTI
Introduce a --no-itti-threads command line option to disable threading
in ITTI, and call message handlers in the current thread. This is being
introduced in order to increase repeatability when testing the nrUE with
the IQPlayer. Without this feature, runs with the IQPlayer will end up
differently, depending on the timing of ITTI threads, mostly when
sending messages to RRC and NAS.
2023-10-27 13:02:36 +02:00
Robert Schmidt 9546166ebc Create files to handle E1AP messages at CU-UP 2023-10-27 09:07:51 +02:00
Laurent THOMAS 206aa36a47 Make read-only globals const, additional fixes
- Global variables that are never written to are marked const
- Remove some EXTERN declaration
- Remove unused `log_mem_multi` from logging module
2023-08-18 14:20:37 +02:00
Robert Schmidt 9f45f1d769 Deprecate NR-UE --rrc_config_path, use --r{e,b}config-file instead
Config options --reconfig_file and --rbconfig-file have been introduced
to modify the filenames of reconfig.raw and rbconfig.raw (e.g., in the
case of multiple UEs). These filen*ames* were to be prepended with
--rrc_config_path to set the path. In summary, three options were
necessary, when two are sufficient.

In this commit, change to the options --reconfig-file and
--rbconfig-file (slight change for harmonization with other options,
which mostly use dashes) to give the full path to the corresponding
files, and avoid to surprise users who would not expect to have three
options.

--rrc_config_path has been deprecated and an error will be printed if a
user attempts to use it.
2023-08-09 17:32:45 +02:00
Sagar Parsawar f64179039e Applied clang formatting 2023-08-08 18:35:05 +02:00
Sagar Parsawar 3f6ed8d14a Fix for multiple gNB SSB decode in UE phy-test mode 2023-08-08 18:29:14 +02:00
francescomani 40b07ec483 remove scc and scc_SIB from mac structure 2023-07-31 17:30:29 +02:00
francescomani f65ce8c4fa handle BCH indication 2023-07-24 09:46:37 +02:00
Robert Schmidt 4ae73af46f Merge remote-tracking branch 'origin/cmake-refactor' into integration_2023_w27 2023-07-08 13:29:55 +02:00
Robert Schmidt ddf549b1f3 Move radio CMakeLists.txt to subdirectory
- move following radios: AW2S, BladeRF, IRIS, LMSSDR, RFsimulator, USRP
- move following transports: Ethernet, benetel4g, benetel5g
- for each: create independent cmake variable to switch compilation
  on/off, in order: OAI_AW2S, OAI_BLADERF, OAI_IRIS, OAI_LMSSDR,
  OAI_SIMU, OAI_USRP, OAI_ETHERNET, OAI_BENETEL4G, OAI_BENETEL5G
- Remove RF_BOARD variable, allows to compile multiple boards at once
- where applicable: remove USERSPACE/LIB in path, i.e., move files up to
  directories, as all are userspace libraries

Note that with the above, it is now mandatory to enable a radio
implementation before compiling it, e.g., for USRP:

./build_oai -w USRP
cmake .. -DOAI_USRP=ON && ninja oai_usrpdevif
2023-07-07 08:35:28 +02:00
Daniel Andrade aed0cfe2af Bugfix for getting band and numerology from command line for OAI UE 2023-06-23 14:35:20 +01:00
Robert Schmidt 555a54f85e Add Sidelink (SL) carrier frequency
1. Adding a "SL" frequency for Sidelink mode. The
   importance of this variable is to ensure that
   when we are in mode 1 (UE+UE+gNB), that the slot
   configuration and frequencies do not overlap. This
   SL frequency is important for rotation and allows
   us to utilize the OFDM modulation and demodulation
   functions that already exist in OAI.
2. Adding sl_mode to the command line for proper UE
   deployment when in SL mode. sl_mode can be set to 0,
   1, or 2. sl_mode 0 indicates no-Sidelink at all,
   mode 1 is gNB, UE, and UE (3GPP defines mode numbers).
   sl_mode 2 indicated UE to UE communications with no
   gNB at all.
3. New functions for calculating the carrier frequency
   for SL mode.
2023-06-16 11:11:44 +02:00
Robert Schmidt f2bdb6bb93 Merge remote-tracking branch 'origin/NR_UE_timers_and_constants_functions' into integration_2023_w23 2023-06-08 18:24:16 +02:00
Vijay Chadachan 836469e849 CPPCHECK fixes for printf issues
Fix for following CPPCheck warnings
- invalidPrintfArgType
Rebased with latest develop branch w21.
Reverted modifications unrelated to printf issues.
2023-06-01 12:07:26 +02:00
francescomani 527c016421 tick for timing at RRC 2023-05-18 10:07:28 +02:00
Sakthivel Velumani a03864ee8c Fix printing help message 2023-04-03 10:24:26 -04:00
Robert Schmidt 51fe9b84dd Merge remote-tracking branch 'origin/pdcp-callbacks-simplify' into integration_2023_w13 2023-03-31 18:03:40 +02:00
Robert Schmidt 5268dbf3f8 Merge remote-tracking branch 'origin/deregistration' into integration_2023_w13 2023-03-31 18:01:00 +02:00
Roberto Louro Magueta cf8dff2093 Implementation to update the RRC timers at UE 2023-03-28 18:52:48 +01:00
Robert Schmidt 40c06fa8d5 Custom handler in NRUE to first send deregistration before stopping 2023-03-28 14:12:05 +02:00
Robert Schmidt a6486909ca Reimplement itti_wait_tasks_end() to allow custom wait handlers
In the UE, we wish to handle ^C in the UE to send a message before
terminating, so we allow custom wait handlers to implement such
functionality. Use itti_wait_tasks_unblock() to unblock
itti_wait_tasks_end().

Also, implement itti_wait_tasks_end() using semaphores, as signals are
not async-signal-safe (and therefore should not be used in a signal
handler).
2023-03-28 14:12:05 +02:00
Robert Schmidt 4700dde2ae Trigger deregistration 2023-03-28 14:12:05 +02:00
Robert Schmidt 09ea970b34 Stop UE with ^C 2023-03-28 14:12:05 +02:00
Robert Schmidt 2ac2a7f074 Make separate header for nr_pdcp instead of using 4G pdcp
Creates function that have nr_pdcp_ prepended to their name, and change
the signature of some functions for the 5G PDCP:

- nr_pdcp_layer_init()
- nr_pdcp_data_req()
- nr_pdcp_remove_UE()
- nr_pdcp_config_set_security()
- nr_pdcp_remove_UE()
- Make separate functions for nr_pdcp_data_req_srb/drb()
2023-03-27 16:39:24 +02:00
francescomani bc73e73c26 improve UE state machine 2023-03-14 11:06:32 +01:00
Robert Schmidt 3f0833b140 Merge remote-tracking branch 'origin/no-platform-const-asn-dep' into integration_2023_w10 2023-03-08 19:04:22 +01:00
Robert Schmidt e90ef3bc68 Split phy_init.h into two files (for LTE/NR) 2023-03-06 20:05:38 +01:00
Robert Schmidt 8a15fb7c63 RC: forward declarations and link physims better
The simulators have been changed: due to linker errors that would arise
otherwise, a lot of functions are defined in them to avoid such errors.
Some functions are also defined in header files; in this commit, we
define most functoins in nr_dummy_functions.c, which is compiled in, not
by including the C file, but by adding it to the target in
CMakeLists.txt

- nr_dlsim+nr_ulsim need NR_IF_Module_init(), so it cannot be in
  nr_dummy_functions, but the others need it
- Link correcr NR_IF_Module_init() into these simulators, and reduce
  overall link list
- Correctly link remaining simulators
2023-03-06 20:04:38 +01:00
Bruno Mongazon-Cazavet 490e230b75 merge last develop 2023-02-27 10:32:36 +01:00
Bo Zhao 4d0762e43d First implementation for KPI GUI with Qt5
Authors: Bo Zhao, Marwan Hammouda, Thomas Schlichter (Fraunhofer IIS)

- CMakeLists modification: add QtWidgets library, add new source files, MOC (Meta-Object Compiler) on the given source file
- build_oai modification
- Activate new GUI with Qt on the UE side
- 2 x 3 widget with I/Q sample for PDSCH
- Drop-down list implementation
2023-02-23 17:46:27 +01:00