Commit Graph
26782 Commits
Author SHA1 Message Date
Robert Schmidt 8f549a5433 Remove rb_config: it's not used by any code currently in use 2024-08-01 18:22:46 +02:00
Robert Schmidt f680babbdd Remove unused pdcp_netlink.c file 2024-08-01 18:22:45 +02:00
Robert Schmidt cf950dfa86 Remove netlink/PDCP_USE_NETLINK: it's not used
Remove netlink code, and the PDCP_USE_NETLINK macro, as there is no
known use, it makes the code more complicated, and is simply "technical
debt".

In 4G PDCP, a subtle change has been introduced, in pdcp_module_init()
of pdcp.c. Looking at the diff of this commit, it can be seen that there
is now a new "else-if (ENB_NAS_USE_TUN_W_MBMS_BIT)" branch that is under
what was the "if (PDCP_USE_NETLINK)" branch, while the code fragment was
actually inside the "else" branch of PDCP_USE_NETLINK. This seems to be
necessary: previously, if we did not use noS1 mode and we don't use any
TUN (i.e., the eNB), the else block would set up this interface. It is
important that this interface is brought up, because if we omit it,
RFsim will not work. It seems to me that this interface will regularly
create some traffic; without it, RFsim will be blocked, and the UE
cannot connect.

In short, it seems to be important to have the MBMS interface, which
injects traffic in the RFsim side, which will unblock RFsim. The change
in pdcp_module_init() preserves the total changes of the if-else
(PDCP_USE_NETLINK).
2024-08-01 18:22:45 +02:00
Robert Schmidt bfaa906a1e Remove rb_config functions from nas_config, remove unused functions, make static 2024-07-30 20:00:40 +02:00
Robert Schmidt e50978e7de 4G RLC/PDCP interface: remove function pointers
Remove function pointers that were used in the past to implement the
F1(-U) interface in 4G, i.e., to have different functions to handle
split/monolithic operations. As we don't have F1 in 4G anymore (see
commit 9dc2282249), we don't need the
function pointers anymore.

On that occasion, rename the 5G functions by prepending nr_ to them;
this allows to refactor the interface in 5G further (which is not the
focus of this changeset).
2024-07-30 20:00:40 +02:00
Robert Schmidt 3d7ab0ebc6 Remove unused SIMULATION/ETH_TRANSPORT/defs.h 2024-07-30 20:00:40 +02:00
Robert Schmidt 7ddba36279 Remove unused code in ETH_TRANSPORT/{socket,multicast_link}.{ch} 2024-07-30 20:00:40 +02:00
Robert Schmidt b2eb0f74b6 Remove unused code in openair3/UTILS: not used anywhere 2024-07-30 20:00:40 +02:00
Robert Schmidt 8365630946 Remove unused emu_transport.c 2024-07-30 20:00:40 +02:00
Robert Schmidt 6da87cf062 Remove unused Makefile 2024-07-30 20:00:40 +02:00
Robert Schmidt 9d77057775 Remove LFDS credit: we don't use it anymore 2024-07-30 20:00:40 +02:00
Robert Schmidt bd721c3bdb Merge branch 'integration_2024_w30' into 'develop'
Integration: `2024.w30`

See merge request oai/openairinterface5g!2877

* !2830 NR feature set update
* !2868 Fix support for USRP UHD Versions => 4.5.0.0
* !2870 fix(docker): base image for target oai-gnb-aw2s shall be jammy
* !2874 Fix memory leaks in gNB PDU Session Setup Request processing
* !2866 RRC: reject PDU sessions if security is not active
* !2829 Automatic update of USRP RX gain during initial search using --agc option
* !2878 USRP: add a T trace to record the TX IQ data on antenna 0
* !2633 Handle F1 Reset at DU, and ensure state re-init on F1Setup
* !2864 Fix an assert in power control
* !2754 Introduce gold sequence cache
2024-07-30 16:24:27 +00:00
Robert Schmidt 82c0b441e5 Merge remote-tracking branch 'origin/simplify-faster-gold-sequences' into integration_2024_w30 2024-07-30 15:05:40 +02:00
Robert Schmidt b8089ba9a6 Remove empty file nr_gold.c 2024-07-30 14:58:12 +02:00
Laurent THOMAS bb766be0c3 Reformatting and cleanup 2024-07-30 14:57:17 +02:00
Laurent THOMAS 8e92df78de Use gold cache in PUCCH decoding 2024-07-30 14:57:10 +02:00
Laurent THOMAS 803b0289a6 Use gold cache in code word (un)scrambling 2024-07-30 14:57:06 +02:00
Laurent THOMAS f207ac12be Use gold cache in UCI 2024-07-30 14:57:01 +02:00
Laurent THOMAS 00cb43bac3 Use gold cache for PRS decoding 2024-07-30 14:55:35 +02:00
Robert Schmidt 7563937af8 Use gold cache for CSI-RS decoding 2024-07-30 14:53:30 +02:00
Laurent THOMAS e445ba2d1a Use gold cache PUSCH decoding
Harmonize nr_gold_pusch() and nr_gold_pdsch(), as the gold sequence
calculation for PUSCH and PDSCH is the same.
2024-07-30 14:52:06 +02:00
Laurent THOMAS 745ea1c1dd Use gold cache for PDSCH decoding 2024-07-30 14:50:57 +02:00
Laurent THOMAS 99c8dd420a Use gold cache for PDCCH decoding, scrambling, unscrambling 2024-07-30 14:49:46 +02:00
Laurent THOMAS 0316431e27 Use gold cache for PBCH encoding&decoding 2024-07-30 14:48:36 +02:00
Robert Schmidt 9d81708b49 takeout 2024-07-30 14:44:31 +02:00
Jaroslava Fiedlerova bb9af4c7dc Merge remote-tracking branch 'origin/fix-assert-in-pc' into integration_2024_w30 2024-07-30 10:18:20 +02:00
Robert Schmidt 686f1816d0 Merge remote-tracking branch 'origin/impl_f1reset_and_fix_f1setup' into integration_2024_w30 2024-07-29 12:02:50 +02:00
Xin Zhe Khooi 52bd1ad7c6 Update FEATURE_SET.md with F1 Reset (DU-only) 2024-07-29 07:44:31 +02:00
Robert Schmidt 2b44e5252d Add log statement that DU sends F1 Setup Request, as done in other functions 2024-07-29 07:44:31 +02:00
Xin Zhe Khooi 52f077c478 Initialized DU UE states on F1SetupResponse
38.473 requires to reset UE-related contexts in F1 Setup Request, so do
it.

However, avoid resetting UE states in phy_test: it has preconfigured UE
which we should not reset. Note that if NSA/phy-test used F1, we could
likely reset the UE state here, as the F1 UE context setup would come
afterwards.
2024-07-29 07:43:14 +02:00
Jaroslava Fiedlerova f30e354b77 Merge remote-tracking branch 'origin/T-usrp-tx-sample-trace' into integration_2024_w30 2024-07-26 18:07:42 +02:00
Jaroslava Fiedlerova d0daf03089 Merge remote-tracking branch 'origin/NR_UPDATE_RXGAIN' into integration_2024_w30 2024-07-26 18:07:22 +02:00
Laurent THOMAS 59086151e0 Add generic usage-based gold cache
Add gold sequence cache with dynamic size, private to each thread. It
periodically reorders by call rate. To free the gold sequences after end
of life time of a thread, use the pthread API.
2024-07-26 16:39:28 +02:00
Jaroslava Fiedlerova fbf257f6ba Merge remote-tracking branch 'origin/pdu-session-no-security' into integration_2024_w30 2024-07-26 14:13:17 +02:00
Jaroslava Fiedlerova 5692217c29 Merge remote-tracking branch 'origin/fix-gnb-memory-leaks' into integration_2024_w30 2024-07-26 14:12:55 +02:00
Cedric Roux 181ec25a23 USRP: add a T trace to record the TX IQ data on antenna 0 2024-07-26 12:54:55 +02:00
Robert Schmidt 9c1a8733c1 nr_pusch_dmrs_rx(): const input 2024-07-26 12:15:36 +02:00
Robert Schmidt fc5258962f nr_gen_ref_conj_symbols()/nr_ptrs_cpe_estimation(): const input 2024-07-26 12:14:59 +02:00
Robert Schmidt 46ca521042 nr_pdc/sch_dmrs_rx(): make non-changing input parameter const ptr 2024-07-26 12:14:29 +02:00
Robert Schmidt 9e0bcb7fe4 nr_modulation(): make non-changing input parameter const ptr 2024-07-26 12:04:35 +02:00
Bartosz Podrygajlo 48d68f7d90 Fix a bug where if BWP size is not exactly maximum BWP size for a bandwidth power control code asserts.
This assert and assumption is incorrect, according to 38.101-1 UE channel is defined only by the BWP size
and BWP size can be any value supported by the RRC parameters defining the BWP.
To determine the UE channel the smallest bandwidth supporting the BWP is selected. This is an assumption based
on references in the same document to UE channel bandwidth being equal to one of the values in set
 {5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 100}.
Also:
 - calculated P_CMIN during BWP setup since the parameter doesn't depend on DCI.
 - initiialize uniqCfg structure in test_nr_ue_power_procedures main function which enables LOG prints during tests
2024-07-26 11:15:49 +02:00
Jaroslava Fiedlerova eab8dfa4c4 Merge remote-tracking branch 'origin/fix-aw2s-image-base' into integration_2024_w30 2024-07-26 10:31:41 +02:00
Jaroslava Fiedlerova bad93150ff Merge remote-tracking branch 'platini/develop' into integration_2024_w30 2024-07-26 10:29:39 +02:00
Jaroslava Fiedlerova 4acb9be7c0 Merge remote-tracking branch 'origin/NR_UE_feature_set_update' into integration_2024_w30 2024-07-26 10:21:13 +02:00
Xin Zhe Khooi 23a865db77 Implement DU F1 Reset handlers 2024-07-26 08:53:32 +02:00
Xin Zhe Khooi a92ab368f2 Decouple UEContextReleaseComplete message generation from MAC UE release
The next commit implements the release of all UEs following the F1 Reset
message. It uses nr_mac_release_ue(), which as of now, triggered a
release complete message automatically, which we don't want in the case
of F1 Reset.

This commit refactors the code to split UE release at MAC/RLC and
release complete message sending to allow to release UEs without sending
the complete. Corresponding users are updated.
2024-07-26 08:48:10 +02:00
Xin Zhe Khooi 03c2f6277d Implement encoder/decoder for F1 Reset at DU 2024-07-26 08:42:37 +02:00
Xin Zhe Khooi 2cb6fd0890 Stubs for F1 Reset 2024-07-26 08:42:34 +02:00
Guido Casati 2d6aef5183 Fix memory leak in PDU Session Setup Request decoding
* aper_decode allocates memory for for local pointer `pdusessionTransfer`, in `decodePDUSessionResourceSetup`
* this memory seems not to be freed but its members are by:
  `ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceSetupRequestTransfer,pdusessionTransfer);`
  which btw in its header says: "AVOID using it in the application code; Use a safer ASN_STRUCT_RESET() instead"
* the following mem leak was detected by ASAN:

```
Direct leak of 72 byte(s) in 1 object(s) allocated from:
   *0 0x7ffff74b4a57 in __interceptor_calloc /src/libsanitizer/asan/asan_malloc_linux.cpp:154
   *1 0x55555cb306df in SEQUENCE_decode_aper /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/constr_SEQUENCE_aper.c:36
   *2 0x55555ca9fa28 in aper_decode /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/aper_decoder.c:78
   *3 0x55555b99bae6 in decodePDUSessionResourceSetup /openair2/RRC/NR/rrc_gNB_NGAP.c:273
   *4 0x55555b99fec2 in trigger_bearer_setup /openair2/RRC/NR/rrc_gNB_NGAP.c:357
   *5 0x55555b9b54bf in rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ /openair2/RRC/NR/rrc_gNB_NGAP.c:830
   *6 0x55555b936871 in rrc_gnb_task /openair2/RRC/NR/rrc_gNB.c:2428
   *7 0x7ffff5e94ac2 in start_thread nptl/pthread_create.c:442
```

* This commit replaces ASN_STRUCT_FREE_CONTENTS_ONLY with ASN_STRUCT_FREE, which will free the memory allocated for the entire struct and its members
2024-07-25 16:46:22 +02:00
Guido Casati c78b8dda56 Fix memory leak in PDU Session Setup Request
* fill_DRB_configList_e1 is filling `DRB_configList->list` then passing to PDCP
* the contents of the struct are allocated but seem not to be freed
* the following mem leak was detected by ASAN

```
Direct leak of 32 byte(s) in 1 object(s) allocated from:
   *0 0x7ffff74b4c38 in __interceptor_realloc /src/libsanitizer/asan/asan_malloc_linux.cpp:164
   *1 0x55555caa6a3e in asn_set_add /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/asn_SET_OF.c:27
   *2 0x55555c8b8bb6 in fill_DRB_configList_e1 /openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c:42
   *3 0x55555c8be6eb in e1_bearer_context_setup /openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c:189
   *4 0x55555d329668 in cucp_cuup_bearer_context_setup_direct /openair2/RRC/NR/cucp_cuup_direct.c:31
   *5 0x55555b9a2c37 in trigger_bearer_setup /openair2/RRC/NR/rrc_gNB_NGAP.c:437
   *6 0x55555b9b54bf in rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ /openair2/RRC/NR/rrc_gNB_NGAP.c:830
   *7 0x55555b936871 in rrc_gnb_task /openair2/RRC/NR/rrc_gNB.c:2428
   *8 0x7ffff5e94ac2 in start_thread nptl/pthread_create.c:442
```

* using ASN_STRUCT_RESET to free the memory used by the members of the structure
  without freeing the structure pointer which is allocated on the stack
2024-07-25 16:46:17 +02:00