- 27 Jan, 2025 8 commits
-
-
Robert Schmidt authored
E1 Setup enc/dec library and unit test This MR is adding a library for E1 Setup enc/dec functions: - E1 CU-UP Setup Request - E1 CU-UP Setup Response - E1 Setup Failure and relevant unit tests
-
Robert Schmidt authored
F1AP IDs: Add update, fix concurrency bug I suspect a concurrency bug: For instance, during reestablishment, the CU needs to update the DU UE ID under which the UE is identified in the DU. Previously, the CU would remove, then add the DU UE ID info. At the same time, the PDCP thread might look up the information. This can lead to asserts. Modify the code to do the update under (one) lock. Also, refactor some code.
-
Robert Schmidt authored
Avoid huge calloc by alloc'ing TBs independently Fix real-time problems on smaller machines due to big calloc(). See the commit(s) for more details.
-
Jaroslava Fiedlerova authored
Merge remote-tracking branch 'origin/remove-most-of-m64-type-usage' into integration_2025_w04 (!3209) Remove most of m64 type usage MMX instructions were first SIMD version, the registers management is complex (_mm_empty()) so, it is better to remove it now and use more recent instructions anyway, gcc/clang should replace it automatically as long as we enable sse2, that should always be the case but for code understanding and for ARM porting for example, it is better to explicitly remove it
-
Jaroslava Fiedlerova authored
Add a small FAPI Hex parser utility Adds a small FAPI hex parser utility nfapi_hex_parser, that takes in a FAPI message hexdump, either from the command line or a file, unpacks it and prints the contents out to the console. The functions to print the data to the console were added alongside the existing utility functions, for both P5 and P7 messages. This allows the user to quickly check if a message has the valid format to be unpacked in OAI. The file examples.md contains some examples of execution and output. This utility is compiled alongside the NFAPI_LIB, as such, it is compiled whenever we compile nr-softmodem, or any other target that uses the NFAPI_LIB.
-
Jaroslava Fiedlerova authored
As per https://gitlab.eurecom.fr/oai/openairinterface5g/-/issues/896#note_148540, these logs can be ignored. Closes: #896
-
Robert Schmidt authored
Prior to this this commit, the structure NR_UE_info_t is 4881632 bytes. On some machines, e.g., one of the CI systems, this can lead to realtime problems when doing the initial calloc() of the data structure. Commit e586efb2 ("Enable 32 HARQ Processes in DL, UL") introduced the real-time problems by increasing the number of HARQ processes. The reason NR_UE_info_t is that big is that it contains buffers for DL HARQ data that might need to be retransmitted (the L1 is stateless, it cannot store this for the L2). To reduce the size, dynamically allocate the DL HARQ buffers when they are needed. This also reduces the size of NR_UE_info_t to 15840 bytes. Encapsulate transportBlock in byte_array and accessory functions, and allocate in big chunks of multiple of ~32kB. Reported-By:
Cedric Roux <cedric.roux@eurecom.fr> Fixes: e586efb2 Closes: #875
-
Robert Schmidt authored
ran_func_kpm.c uses cp_ba_to_str(), but it is not defined in OAI. Define it so we can link properly, instead of relying on FlexRIC (where it was defined).
-
- 24 Jan, 2025 15 commits
-
-
Robert Schmidt authored
Introduce function cu_update_f1_ue_data() which does remove+add under one lock. This fixes a concurrency bug. For instance, during reestablishment, the CU needs to update the DU UE ID under which the UE is identified in the DU. Previously, the CU would remove, then add the DU UE ID info. At the same time, the PDCP thread might look up the information. This can lead to asserts. Use the above addmod functionality to do the remove-add under a mutex. Modify test to verify this works as expected.
-
Jaroslava Fiedlerova authored
minor improvements in T hacks
-
Robert Schmidt authored
-
Laurent THOMAS authored
-
Robert Schmidt authored
This reverts commit 6d5e29f5.
-
Jaroslava Fiedlerova authored
use ML receiver for 64 QAM UL-MIMO Change condition on MMSE/ML selection to include 64QAM for ML UL-MIMO receiver. Only 256QAM will now use MMSE UL-MIMO receiver.
-
Jaroslava Fiedlerova authored
fix(nrLDPC_coding_t2): Miscellaneous fixes related to T2 1. HARQ combined offset: The offset provided for each code block in the HARQ combined input and output buffer shall not be above 512. A modulus was performed on the offset of the TB in the buffer to avoid this situation. But the offset of the code block was added afterward so that the total offset was sometimes going above 512.This commit performs the modulus after adding the code block offset. Usually this issue was triggering a segfault after less than 2 minutes of an iperf test on some setup using T2. The same iperf test was successfully performed during 10 minutes on the same setup with this change. 2. Properly stop LDPC coding in gNB and UE: LDPC coding was yet not properly stopped by using free_nrLDPC_coding_interface in gNB and UE. This was not causing major issue until now. It was especially not causing any issue with T2 LDPC coding using the PF. But using T2 VFs, if the coding library is not properly stopped then the VF cannot be used anymore unless the admin app is restarted. So this MR adds the missing free_nrLDPC_coding_interface.
-
Jaroslava Fiedlerova authored
fix nr phy-test mode in ntn Following SIB19 MR !3019 (merged), the phy-test mode is no longer working In this MR we update the handling NTN-Config from ServingCellConfigCommon to be the same as when NTN-Config is received in SIB19 More details: !3019 (comment 145103)
-
Guido Casati authored
* add const atttribute to input message * use malloc_or_fail
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
-
Rúben Soares Silva authored
Add examples of UL_TTI.request to examples.md Small fix on printing RNTI on DL_TTI.request PDSCH PDU on RNTI field
-
Jaroslava Fiedlerova authored
Remove unused code
-
Jaroslava Fiedlerova authored
Merge remote-tracking branch 'origin/fix-bug-usrp-constant-derive' into integration_2025_w04 (!3023) usrp constant and slow derive timestamp Sample write reorder function doesn't handle properly the clock shift. It keeps the same time origin forever, so, if the clock sifts in one direction, we finish to reach the maximum time shift that was designed for slot to slot maximum shift. We may also consider if this function is useful: gNB and UE currently ensure Tx in order because there are other issues above if we let Tx preparation run out of order in separate threads Closes #893
-
- 23 Jan, 2025 17 commits
-
-
Laurent THOMAS authored
-
Laurent THOMAS authored
-
Jaroslava Fiedlerova authored
- Refactor SCTP Association Response Handling - Unified function for both CU-CP and CU-UP handling - CU-CP: Notifies RRC of E1 connection loss with CU-UP - CU-UP: Initiates a new SCTP association request to regain E1 connection - this fix will prevent issue #878 from happening - Send list of PDU Session Resources to Failed Setup in the (PDU Session Resource/Initial Context) Setup Response - depending on different failure scenarios - e.g. (#878) when No CU-UP is associated and still the CU-CP receives a PDU Session Setup Request - add relevant functions to handle NGAP Setup Response messages with failed list of items - this is an extra failure handling to make #878 is handled if it ever happens again - NGAP Cause Refactoring - Refactor struct for NGAP cause group and value - Add extended radio network cause enumeration values - Refactor redundant code into a new NGAP cause encoding function - Minor logging, function descriptions improvements Closes #878
-
Jaroslava Fiedlerova authored
Merge remote-tracking branch 'origin/remove-legacy-compile-option' into integration_2025_w04 (!3198) A user on the mailing list was confused by a wrong flag in CMakeList.txt so, I remove this and a set of others that are known not working.
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
-
Cedric Roux authored
-
Cedric Roux authored
Useful to debug realtime issues, for example when calling a periodical routine, if it's not programmed carefully enough, it may be that the first call takes way longer than the next ones (for example it uses some memory that is not mapped in the process, leading to many page faults the first time it's executed). Having a periodic log for the timing of this routine with min/avg/max/count will reveal that a call is way longer than average and will help in finding where exactly in the code the time is spent, thanks to the ease of use of the T tracer; you put T(T_XX, T_INT(1)) just before the code you want to measure, you put T(T_XX, T_INT(0)) just after and time_meas will show the delta time between those events. Then you cut the routine in smaller pieces, measure with T(1)/T(0), and you finally reach the small guilty part that takes too long.
-
Cedric Roux authored
In time_meas.c, when getting 0 for the event, we log delta time with previous 1 for the event. "start_valid" was not cleared, so receiving a second 0 without 1 in between may lead to wrong logging. Should not happen in practice, but still, little bug. (Note: we don't protect against streams of 1, but this case should also not happen.)
-
Cedric Roux authored
-