Commit Graph
2048 Commits
Author SHA1 Message Date
Thomas Schlichter 0eb409f114 NR_UE: Perform autonomous timing advance to compensate for fast time drift with relatively large RTT
As we don't have SIB19 with continuously updated ta-Common and ta-CommonDrift values yet, the UE can only adapt it's UL timing according to it's DL drift.
This is required for the UE to keep UL sync with fast time drift and relatively long RTT (e.g. LEO satellite).
We should replace this with the standard compliant way as soon as we have SIB19 with continuously updated contents.
2024-08-23 14:57:48 +02:00
Thomas Schlichter e662721310 NR_UE: make NTN parameter ta_CommonDrift_r17 configurable via command line parameter --ntn-ta-commondrift
While we don't have SIB19 support yet, UE gets this parameter from command line, just like --ntn-koffset and --ntn-ta-common.
We use this value to initialize the UE's time-tracking PI controller accumulator.
This allows to correctly track the time even if the delay is changing significantly (e.g. due to LEO satellite movement).
We also use it to compensate for the time drift that happenes while performing the initial sync.
2024-08-23 10:26:18 +02:00
Thomas Schlichter 4039473a70 NR_UE: add PI controller to time sync
this allows to compensate larger continuous time drift in DL (e.g. large Doppler from LEO satellite)
2024-08-23 10:26:18 +02:00
Thomas Schlichter 8ab7f1dd68 change returned value of UE_dl_preprocessing() in case no sampleShift change from 0 to INT_MAX
This now allows to indicate "there was a new sampleShift calculation, and the actual value is 0"
additionally to "there was no new sampleShift calculation".
2024-08-23 10:25:00 +02:00
Jaroslava Fiedlerova 6529863af2 Merge remote-tracking branch 'origin/ue-cleanup-2' into integration_2024_w33 2024-08-16 18:54:59 +02:00
Jaroslava Fiedlerova d1a272be1b Merge remote-tracking branch 'origin/fix-gnb-ue-memory-leaks' into integration_2024_w32 2024-08-12 18:12:38 +02:00
Guido Casati 7c788be9e0 Cleanup of unused parallel/worker thread configuration in NR
* In LTE there is logic that checks the thread configurtion with the
  getters `get_thread_parallel_conf()` and `get_thread_worker_conf()`
  in NR these getters are not used, only setters, which have no impact
2024-08-12 14:59:03 +02:00
Guido Casati b1609e0534 Fix memory leak in nr-uesoftmodem
* strdup is returning a malloced string that needs to freed after use

> Direct leak of 90 byte(s) in 1 object(s) allocated from:
    >0 0x7ffff745b9a7 in __interceptor_strdup ../../../../src/libsanitizer/asan/asan_interceptors.cpp:454
    >1 0x555556c7b341 in main /executables/nr-uesoftmodem.c:461
    >2 0x7ffff5e29d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
2024-08-12 10:06:54 +02:00
Guido Casati a59a69d5e5 Fix strdup-related memory leak in nr-softmodem
* strdup is returning a malloced string which needs to be freed after use

> Direct leak of 90 byte(s) in 1 object(s) allocated from:
	> 0 0x7ffff745b9a7 in __interceptor_strdup ../../../../src/libsanitizer/asan/asan_interceptors.cpp:454
	> 1 0x5555591598a3 in main /executables/nr-softmodem.c:667
	> 2 0x7ffff5e29d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
2024-08-12 10:03:20 +02:00
Robert Schmidt 3779483b1b Merge remote-tracking branch 'origin/refactor-nas-config' into integration_2024_w31 2024-08-05 10:20:23 +02:00
Robert Schmidt 335fa3fc50 Merge remote-tracking branch 'origin/NR_UE_data_inactivity_timer' into integration_2024_w31 2024-08-05 10:11:23 +02:00
Jaroslava Fiedlerova fc9c5084eb Merge remote-tracking branch 'origin/nr-ue-pdsch-time-stats-fix' into integration_2024_w31 2024-08-02 16:27:58 +02:00
Robert Schmidt 168582b5a1 Remove netlink_init.c, and move remaining functionality to tun_if.c
Remove openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c, and move TUN
interface creation functionality to tun_if.c.

Remove SIMU_ETH target.
2024-08-02 15:31:04 +02:00
Robert Schmidt 2e804f53c0 Remove useless LINK_ENB_PDCP_TO_IP_DRIVER option 2024-08-02 15:31:04 +02:00
Robert Schmidt 32d9e75dc5 Remove --nokrnmod option, as we never use the kernel anyway 2024-08-01 18:22:46 +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
francescomani a9902d883c creation of a separate .h file for L2_interface_ue 2024-08-01 16:39:34 +02:00
Bartosz Podrygajlo d465ed2fbc NR UE: Cleanup global variables used for command line parameter storage
Variables moved to nrUEParams:
vcdflag, rx_gain_off, usrp_args, tx_subdev, rx_subdev, reconfig_file, rbconfig_file, uecap_file,
tx_gain, rx_gain

Variables removed:
rx_gain_mode
2024-08-01 09:50:29 +02:00
Bartosz Podrygajlo b0b8818549 Remove unused command like parameter rrc_config_path 2024-08-01 09:48:54 +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 7ddba36279 Remove unused code in ETH_TRANSPORT/{socket,multicast_link}.{ch} 2024-07-30 20:00:40 +02:00
Bartosz Podrygajlo b242a483f1 Rewrite NR UE PHY cpu measurements 2024-07-30 19:23:54 +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
Raghavendra Dinavahi 95a8767383 Automatic update of USRP RX gain during initial search using --agc option
- if search fails, keeps increasing the rx gain (set by --ue-rxgain) by
  3 db until USRP max rx gain
- if initial sync is success, sets the rxgain to the value of
  (TARGET_RX_POWER (50) - pbch digital power in dB/RE)
2024-07-25 15:33:44 +02:00
Jaroslava Fiedlerova 2cb95d5505 Merge remote-tracking branch 'origin/fix-segfault-srs-antenna-ports' into integration_2024_w29 2024-07-22 15:52:55 +02:00
Guido Casati 101f178c3e Verify UE capabilities at RRC UE initialization
* number of configured SRS antenna ports M <= N (number of physical antenna ports)
2024-07-22 10:46:45 +02:00
Jaroslava Fiedlerova 561119a2d6 Merge remote-tracking branch 'origin/cleanup-nr-ue-executable' into integration_2024_w29 2024-07-22 08:25:18 +02:00
Jaroslava Fiedlerova 84568102de Merge remote-tracking branch 'origin/fix-7.2-mem-leak' into integration_2024_w29 2024-07-19 16:39:26 +02:00
andrewse 3dd0d45907 7.2 xran: notification generation code in ru_thread excluded from compilation 2024-07-18 15:24:14 +02:00
Bartosz Podrygajlo 93280a3e75 Remove unused nr_dlsch_demod_shift command line parameter from NR UE 2024-07-18 09:31:37 +02:00
Bartosz Podrygajlo b2a46e3b76 Remove unused variables from softmodems, focusing on NR UE: chain_offset, card_offset, numerology,
oaisim_flag, dumpframe, rx_input_level_dBm, emulate_rf
2024-07-18 09:31:37 +02:00
Bartosz Podrygajlo 19033ca822 Remove num_missed_slots from softmodems and some extra unused functions from NRUE. 2024-07-18 09:31:37 +02:00
Bartosz Podrygajlo ead066d630 Remove unused abstraction_flag from NR UE 2024-07-18 09:31:37 +02:00
Bartosz Podrygajlo 2ff1253321 Move init_nr_bler_table out of nr-uesoftmodem.c 2024-07-18 09:31:37 +02:00
Bartosz Podrygajlo dc91550e2c Remove unused flag single_thread_flag from softmodems. 2024-07-18 09:31:29 +02:00
Bartosz Podrygajlo 1f7ec847bc Remove tddflag. Frame type depends on band. 2024-07-18 08:28:54 +02:00
Florian Kaltenberger 2bee8edcab making nvIPC thread more configurable + cleanup
making aerial shm prefix configurable (so we can use muliptle VNFs per PNF)
making the nvipc thread affinity configurable and using threadCreate.
removing aerial_vnf_nr_aerial_p7_start_thread
2024-07-16 17:27:50 -04:00
Robert Schmidt e8a083767a Merge branch 'integration_2024_w28' into 'develop'
Integration: `2024.w28`

See merge request oai/openairinterface5g!2856

* !2847 UE setting wrong frequency in 5G rfsimulator SA test
* !2850 NR UE MAC DCI 00 BWP handling
* !2852 \[E2 agent\] Move UE RRC_CONNECTED state signaling
* !2851 Minor code cleanup and fixes
* !2842 UE assertion for msg1_SubcarrierSpacing in RA
* !2831 PUSCH power control state
* !2838 NR UE UL FAPI PDU length fix
* !2723 add initial NTN support for NR UE
* !2764 Adding 7.2 containerfiles and docker-compose
* !2827 Increase RX_DATA.indication PDU Length to 32 bits
2024-07-15 06:00:37 +00:00
Robert Schmidt 4cd82e7c47 Fix array size orror in parent commit
Correct the array by taking out a verification entry in the verification
array that led to runtime error

  Assertion (numparams == (sizeof(cmdline_CheckParams)/sizeof(*(cmdline_CheckParams)))) failed!
  In get_common_options() /home/richie/openairinterface5g/executables/softmodem-common.c:109
  Error in arrays size (41!=42)
2024-07-13 20:15:18 +02:00
Thomas Schlichter 394431a594 remove nrqtscope 2024-07-13 11:22:36 +02:00
Thomas Schlichter 75efcf49b9 NR UE: add NTN specific parameter ta-Common and use it for initial timing advance, RA_contention_resolution_timer and RA_window_cnt
The value for this parameter can be set via UE command line parameter `--ntn-ta-common` in milliseconds.
2024-07-11 13:33:30 +02:00
Thomas Schlichter 021f97cf10 NR UE: increase DURATION_RX_TO_TX by cellSpecificKoffset_r17 2024-07-10 15:56:05 +02:00
Thomas Schlichter 26175c5413 NR UE: add NTN specific parameter cellSpecificKoffset_r17 and use it for UL scheduling
According to the RRC specification, cellSpecificKoffset is:
Scheduling offset used for the timing relationships that are modified for NTN (see TS 38.213 [13]).
The unit of the field K_offset is number of slots for a given subcarrier spacing of 15 kHz.
If the field is absent UE assumes value 0

This parameter `cellSpecificKoffset_r17` can be set via UE command line parameter `--ntn-koffset`.
2024-07-10 14:42:42 +02:00
Robert Schmidt 78b48a1e59 Merge remote-tracking branch 'origin/multiple-nr-ues' into integration_2024_w27 2024-07-09 12:07:30 +02:00
Robert Schmidt 9f86e33ec2 Merge remote-tracking branch 'origin/t2-offload-mr4.1' into integration_2024_w27 2024-07-09 07:54:08 +02:00
Bartosz Podrygajlo bcfe3a6733 Initialize number of NR UEs equal to --num-ues parameter 2024-07-01 17:13:05 +02:00
Bartosz Podrygajlo d5a4272177 Add parameter --num-ues to NR UE 2024-07-01 17:11:27 +02:00
Bartosz Podrygajlo 83f66f2ade Replace 0 with module id for NR UE
Add UE id to several LOG macros
2024-07-01 17:10:39 +02:00
Jaroslava Fiedlerova 6bec8779c6 Enhance T2 Offload for gNB and UE
- Reworked nrLDPC_decoder_offload.c to process all segments in a TB with a single call to LDPCdecoder() or LDPCencoder().
- Perform CRC checks on the T2.
- Modified nr_ulsch_decoding (gNB decoder) to:
  - Count processed segments.
  - Properly perform CRC checks.
- Created a constant NR_LDPC_MAX_NUM_CB to define the maximum number of codeblocks.
- Conditional library loading:
  - On gNB: Load ldpc_t2 library if offload is enabled using the --ldpc-offload-enable flag.
  - On UE: Load both ldpc_t2 and ldpc libraries since only encoder offload is supported.
- General cleanup of nrLDPC_decoder_offload.c for improved readability and maintainability.
- Modified the structure of LDPC encoder/decoder/offload parameters:
  - Introduced a structure for code block (CB) related parameters.
  - Removed parameter E from the encoder and offload parameter structures for clarity.
  - Replaced E with perCB->E_cb in the UE encoder code.
2024-06-27 14:40:41 +02:00
Bartosz Podrygajlo 28489a29ba Remove references to unused library OML 2024-06-26 10:12:28 +02:00