Commit Graph
27864 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova 9b1ccbf3de Merge remote-tracking branch 'origin/hide-overflow' into integration_2024_w46 (!3107)
Clip the input for -32768 because this will make different result in...

Clip the input for -32768 because this will make different result in
mult_complex_vectors() compared to C version
2024-11-15 18:51:26 +01:00
Jaroslava Fiedlerova 981173f43b Merge remote-tracking branch 'origin/T-tracer-float-support' into integration_2024_w46 (!3109)
T tracer: support float types in traces
2024-11-15 18:50:36 +01:00
Jaroslava Fiedlerova b18f39312a Merge remote-tracking branch 'origin/ci-fixes-dora' into integration_2024_w46 (!3104)
Trigger deregistration only in SA mode

Upon press of ^C, the UE triggers a NAS deregistration. This does not work
in do-ra or phy-test modes, because there is no NAS. Therefore, in non-SA
modes, just stop the UE directly.

This can potentially improve the 5G RFsim CI test case, because together with
a high RFsim timeout, the chances of the last HARQ status line being without
retransmissions is much higher. If that does not help, we can further increase
the retx threshold.
2024-11-15 18:49:12 +01:00
Jaroslava Fiedlerova 45be0a5604 Merge remote-tracking branch 'origin/fix-ulsch-bsr' into integration_2024_w46 (!2991)
fix BSR report malformed, add SHORT BSR when it can (instead of LONG BSR)...

fix BSR report malformed, add SHORT BSR when it can (instead of LONG BSR)
simplify the code and make the code more explicit, but the may structure
remain (nr_write_ce_ulsch_pdu interface is complex, merging it into the
called would make simpler and more interstandable code), fix some asserts
related to this part of code
2024-11-15 18:43:26 +01:00
Robert Schmidt 7d2b7c2ba3 Prevent segfault in RRC
Similar to the previous commit, prevent the same segfault in RRC.
2024-11-15 17:58:50 +01:00
Raghavendra Dinavahi db629e6b58 NTN FDD FR1 bands added
Added support for NTN FDD FR1 bands 254, 255, 256 as specified in 3GPP TS 38.101-5
Conf files added for 15Khz, 5Mhz and 30Khz, 10Mhz configurations added for these bands
2024-11-15 16:23:22 +01:00
Cedric Roux 0eb0325b96 T tracer: support float types in traces 2024-11-15 16:02:52 +01:00
Robert Schmidt 268d409b5b Prevent segfault in nr_mac_clean_cellgroup()
In some runs of a multi-UE deployment, we see segfaults because
cell_group->spCellConfig is NULL. We should not segfault in that case,
so check for spCellConfig.
2024-11-15 15:37:03 +01:00
Robert Schmidt a319cbfb19 Prevent segfault when trying to schedule MAX_MOBILES_PER_GNB UEs
When the UE list is full, the iterator will run through all
MAX_MOBILES_PER_GNB UEs. It expects that eventually the pointer is NULL,
which is not the case if we have MAX_MOBILES_PER_GNB (or it simply
depends on the following memory). So give one array entry more, to
ensure that the last one is NULL.
2024-11-15 15:37:03 +01:00
Laurent THOMAS 362eba7e27 Clip the input for -32768 because this will make different result in mult_complex_vectors() compared to C version 2024-11-15 13:15:30 +01:00
Bartosz Podrygajlo fe10c90250 Avoid passing gNB pointer to nr_pusch_antenna_processing 2024-11-15 12:35:07 +01:00
5605b0c0c6 Parallelize the PUSCH channel estimation
- add new data structures for antenna processing.
- create arrays that keep track of certain values (max_ch, noise_amp2, nest_count and delay) per each antenna. These values are processed in order to determine one final output.
- add time processing measurements for each antenna, and prints them in nr_ulsim.
- make num_antennas_per_thread configurable in nr_ulsim and the gNB config file.

Co-authored-by: Nada Bouknana <bouknana@eurecom.fr>
Co-authored-by: Brice Robert <brobert@valiha.com>
2024-11-15 12:35:06 +01:00
Bartosz Podrygajlo 25dde24d1e Fix formatting in nr_ul_channel_estimation.c 2024-11-15 12:34:04 +01:00
Jaroslava Fiedlerova ca119de036 Merge remote-tracking branch 'origin/ue-default-ssb-config' into integration_2024_w46 (!3095)
UE: Set default SSB config

After initial sync the UE sets the ssb index bitmap in nrUE_config with
index obtained in initial sync. This allows UE to continue decoding PBCH
and stay synched with the gNB till SIB1 is received.
2024-11-15 11:51:15 +01:00
Bartosz Podrygajlo caac4157c7 Fix a small bug with total_res in gNB PUSCH symbol processing
Replaced total_res with res_per_task when deciding whether to start a threadpool task or not.
This does not have big impact on the software as the nr_pusch_symbol_processing will recheck
ul_valid_re_per_slot anyway but it may reduce the number of thread pool tasks created.
2024-11-15 06:37:58 +01:00
Robert Schmidt 029cf83918 Trigger registration only in SA mode
Upon press of ^C, the UE triggers a NAS deregistration. This does not
work in do-ra or phy-test modes, because there is no NAS. Therefore, in
non-SA modes, just stop the UE directly.
2024-11-14 12:13:45 +01:00
francescomani f3bee8ed25 L1 beam allocation for CSI-RS 2024-11-14 08:41:14 +01:00
francescomani 0993eb4ed8 MAC beam allocation for CSI-RS 2024-11-14 08:41:14 +01:00
francescomani c0f2d24471 L1 beam allocation from symbol bitmap
This is required because CSI-RS may not be allocated in consecutive symbols within a slot
2024-11-14 08:41:14 +01:00
Robert Schmidt eee4a0c652 UE: signal RLF to RRC 2024-11-13 14:25:01 +01:00
Robert Schmidt f380a48a3b RLC: add per-UE RLF callback
If the RLC cannot retransmit a package, 3GPP specs say that we should
declare radio link failure (RLF). Up to this commit, the code did
nothing though. In this commit, add a per-UE RLF callback; the RLC will
call into this function to signal that RLF has been detected through
maximum retransmissions on a particular RLC bearer.
2024-11-13 14:25:01 +01:00
francescomani 6beeb6eef1 handle rlf with re-establishment or going to idle 2024-11-13 14:25:01 +01:00
francescomani 4f884ab172 bugfix: unlocking RLC manager in nr_rlc_get_lcid_from_rb function 2024-11-13 14:25:01 +01:00
Laurent THOMAS 2348b3c065 select LCG that contains the highest priorit LC with data to transmit instead of the LC with maximum waiting data size 2024-11-13 14:23:23 +01:00
Laurent THOMAS d641a76196 fix BSR report malformed, add SHORT BSR when it can (instead of LONG BSR) simplify the code and make the code more explicit, but the may structure remain (nr_write_ce_ulsch_pdu interface is complex, merging it into the called would make simpler and more interstandable code), fix some asserts related to this part of code 2024-11-13 14:15:30 +01:00
Robert Schmidt f54ca5714e Merge branch 'integration_2024_w45' into 'develop'
Integration: `2024.w45`

See merge request oai/openairinterface5g!3097

* !3048 Cleanup and refactoring at gNB initialization
* !3077 Address most thread safety issues in NR UE
* !3089 Improve cross-compile documentation
* !3092 Remove Interop-F1/Accelleran-CU testing pipeline
* !3096 Remove x86-specific instructions from telnet server
* !2949 Better polar decode
* !3070 CI: Add test with 4 DL layers, 60 MHz BW to SA-2x2 pipeline
* !3098 nr rlc: hotfix: test allocation valid before use
* !3090 Add UL PRBs Blacklist section to NR_SA_Tutorial_COTS_UE.md
* !3082 fix blocking bugs in command nr_dlsim -n100 -e27 -s35 -b 273 -R273 -x4 -y4 -z4
* !3100 CI: Remove 5g_l2sim files
* !3024 Set SA mode as default
* !3087 Remove some usage of the old CI sshConnection class
* !3074 CI: cleanup of cls_physim.py
2024-11-13 11:59:27 +00:00
Bartosz Podrygajlo 70849816c4 Test for init_RA
Extract nr_ra_procedures.c into a separate library and add a testcase for init_RA function.

The testcase redefines the following functions as stubs:
 - nr_mac_rrc_ra_ind
 - nr_write_ce_ulsch_pdu
 - mac_rlc_data_req
 - *lockGet_ul_config
 - release_ul_config
 - remove_ul_config_last_item
 - nr_ue_configure_pucch

These stubs can be used to check init_RA behavior
2024-11-13 10:09:18 +01:00
Robert Schmidt c847ac786f Merge remote-tracking branch 'origin/ci-cls-physim-cleanup' into integration_2024_w45 (!3074)
CI: Cleanup of cls_physim.py

- Remove unused code and file
- Rework functions for CUDA and T2 log analysis
- Check if test was successful for nr_ulsim and nr_dlsim in
  RAN-gNB-N300-Timing-Phytest-LDPC pipeline
2024-11-13 09:57:49 +01:00
Robert Schmidt 085d48304c Merge remote-tracking branch 'origin/remove-use-old-ssh-class' into integration_2024_w45 (!3087)
Remove some usage of the old CI sshConnection class
2024-11-13 09:57:16 +01:00
Jaroslava Fiedlerova c0e386e42d Merge remote-tracking branch 'origin/config_sa_mode' into integration_2024_w45 (!3024)
Set SA mode as default

- Set standalone (SA) mode as the default.
- Adjust commands in Docker Compose files by removing --sa flags and
  adding --nsa flags where applicable.
- Add a function to verify that only one mode is being used at a time.
- Update all relevant documentation.
2024-11-13 09:57:07 +01:00
Jaroslava Fiedlerova 9e81040a8d CI: use multiple cores for nr_ulsim/nr_dlsim tests with T2
Increase number of cores used for T2 nr_ulsim/nr_dlsim processing to ensure
a fair comparison of total gNB PHY RX/TX processing time.
2024-11-12 21:51:16 +01:00
Jaroslava Fiedlerova 94f69b8c70 Merge remote-tracking branch 'origin/remove_5g_l2sim_files' into integration_2024_w45 (!3100)
CI: Remove 5g_l2sim files

Delete the XML, conf, and YAML files related to the RAN-L2-Sim-Test-5G pipeline
that has already been removed.
2024-11-12 19:05:53 +01:00
Sakthivel Velumani 210b92338f Decode PBCH with ssb index from init sync 2024-11-12 11:54:55 -05:00
Robert Schmidt e8d8384e7e Add RHEL 9.5 to supported distributions 2024-11-12 17:50:12 +01:00
Robert Schmidt 0784d1907f ci-scripts/tests/README.md: how to run all tests 2024-11-12 17:20:14 +01:00
Robert Schmidt 9f5d82212a Remove Username/Password from cls_containerize and use GetCredentials()
In the last commits, SSHconnection class has been removed from
cls_containerize.py. We therefore don't need the username and password,
as cls_cmd uses certificates only. Remove the usage of the username and
the password, and harmonize the use of GetCredentials().
2024-11-12 17:20:14 +01:00
Robert Schmidt 6a36db4569 Repair and refactor proxy build function
Recent refactoring replaced the CreateWorkspace function call with a
dedicated XML step (for clarity, and because it avoids needless
recreation of workspaces). In the proxy function, the same
CreateWorkspace xml step has been added, cloning the OAI RAN repo, when
we actually need the repository for the proxy. Hence, fix this by
calling the CreateWorkspace() function manually, but only when
necessary, to build the proxy. (It would only be a problem if the
pipeline would rebuild the proxy, which did not happen because not much
work is happening on the proxy repo).

Further, refactoring and simplication of the proxy build function were
done:

- never tag proxy with develop, that makes no sense
- overwrite CreateWorkspace() info after having created and used the
  workspace (the "if" to build the proxy)
- simplify copying of logs
- add simple unit test
- remove check for ubuntu; the dependcy is "docker". Simplify the code
  to not obscure with a class variable.
2024-11-12 17:20:14 +01:00
Robert Schmidt cf576fc255 Remove Create_Workspace() in xml: follow up step removes it
The first thing Build_Proxy does is to remove the repository. Further,
Build_Proxy does not use the OAI RAN repo, but the proxy repo. The
Create_Workspace() is therefore completely useless.
2024-11-12 17:20:14 +01:00
Robert Schmidt a103be619a Remove use of old sshConnection class, use cls_cmd instead 2024-11-12 17:20:14 +01:00
Robert Schmidt e7225e12cb Remove CheckAndAddRoute(), replace with scripts on machines
Remove CheckAndAddRoute(), as it is complicated to read, uses a
multitude of hostname/IP/password combinations. Replace with scripts on
the machines, which, as of this commit, are:

- porcepix: ~/after-reboot.sh
- ofqot: ~/after-reboot.sh
- nepes: ~/after-reboot.sh
- obelix: ~/how-to-resetup-obelix-out-of-reboot.sh
2024-11-12 17:20:14 +01:00
Robert Schmidt 171530c067 cls_oaicitest.py: use new cls_cmd.getConnection() instead of old SSHconnection class
It is clearer in CI logs to use absolute paths, and that is also a
"preference" of the new SSH class (cls_cmd.py) in the sense that some
functions don't handle "cd" gracefully (because of underlying Python
library paramiko).

For zip, though, we should change to have nice relative paths in the
archives, so use cd <path> && zip ... to achieve that, instead of
changing to a directory. This way, the path on which we operate is still
visible in the logs in each line.
2024-11-12 17:18:28 +01:00
Robert Schmidt cd25064fb1 Enable VLA Cxx extension in clang build
The clang build fails with

    /oai-ran/openair1/PHY/MODULATION/gen_75KHz.cpp:16:23: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension]
       16 |     complex<double> t[len];
          |                       ^~~
    /oai-ran/openair1/PHY/MODULATION/gen_75KHz.cpp:16:23: note: function parameter 'len' with unknown value cannot be used in a constant expression

So ignore this warning (and make the build pass), since OAI uses VLAs in
various places.
2024-11-12 17:15:22 +01:00
Robert Schmidt 3991f15c89 Reorder compile options to have user-defined last
The previous version would put the user-defined options first. However,
the default options include e.g., -Wall. If a user tries to override
(see for instance the next commit) -Wall or other options might override
this and not honor the user choice.

To always have the user have the last work, put user-defined compile
options last.
2024-11-12 16:46:55 +01:00
Robert Schmidt 0443759716 Remove Num_Threads_PUSCH options: it's not used 2024-11-12 13:55:49 +01:00
Reem Bahsoun a2056a3055 Add nsa flag in docker-compose and xml files 2024-11-12 13:55:49 +01:00
Reem Bahsoun 1b02b6327b Remove non existing volumes in /5g_f1_rfsimulator/docker-compose.yaml 2024-11-12 13:55:49 +01:00
Reem Bahsoun 7dcf80398a Update docs and README files to align with modifications in config files 2024-11-12 13:55:49 +01:00
Reem Bahsoun dc7e6e5638 remove sa param from some targets/PROJECTS/GENERIC-NR-5GC/ conf files 2024-11-12 13:55:49 +01:00
Reem Bahsoun c4d9d27702 Remove sa param from some CI conf files + remove 'sa' flag from docker-compose files 2024-11-12 13:55:49 +01:00
Robert Schmidt 5d2a1ace17 nr-{ue,}softmodem: Check for correct modes
THere are four possibilities, for the three options (phy_test, do_ra,
nsa):

- None is set -> SA
- Only one is set of each -> corresponding mode

Introduce a function softmodem_verify_mode() to check for these.
2024-11-12 13:55:49 +01:00