Commit Graph
100 Commits
Author SHA1 Message Date
Robert Schmidt 1cefbdb87f F1AP for gNB-DU config update & ack in CU 2024-05-06 11:34:01 +02:00
Robert Schmidt cdd629de89 gNB-DU config update in DU 2024-05-06 11:22:57 +02:00
Robert Schmidt aa18edb8ac gNB-DU config update msg def and handle in CU 2024-05-06 11:18:43 +02:00
Robert Schmidt f247373474 Refactor TDD/FDD config reading into functions 2024-05-06 11:18:10 +02:00
Robert Schmidt 1c747e8223 RRC stats: show DU info 2024-05-06 11:17:51 +02:00
Robert Schmidt 1bd6018f91 Add extract_sys_info(): refactor DU cell sys_info handling in own function 2024-05-06 11:17:20 +02:00
Robert Schmidt 00f85d54c5 Remove dead code 2024-05-06 11:14:17 +02:00
Robert Schmidt c8539aeef5 Remove misleading comment 2024-05-06 11:14:09 +02:00
Robert Schmidt 590afc811f Correct F1 criticality 2024-05-06 11:11:32 +02:00
Robert Schmidt e64e687fcd Use --continuous-tx for F1 SABox test for B200 2024-04-30 12:11:48 +02:00
Robert Schmidt 18951f04e6 Update assertfatal message 2024-04-26 10:59:49 +02:00
Robert Schmidt 593191b51a Memory sanitizer patch not required anymore
Also, the check for clang is done in CMakeLists.txt; sleep is useless
2024-04-18 14:16:09 +02:00
Robert Schmidt 507e08cd39 Memsan uninitialized read: Initialize array to zero 2024-04-18 14:16:09 +02:00
Robert Schmidt 42254e6267 Memory sanitizer: unitialized read
Reset all the circular buffer to zero; this ensures that we cannot read
uninitialized data. Since this is RFsimulator, performance is not a
problem here either (and zeroing out happens only once).
2024-04-18 14:16:09 +02:00
Robert Schmidt c114d2f547 Fix memory sanitizer warning: uninitialized read
Memsan complains that uninitialized reads originate because of these
warnings. Most of the corresponding variables are actually read into
through by libconfig; nevertheless, initializing them should not have a
bad side-effect (because the initialized value is overwritten).
2024-04-18 14:16:09 +02:00
Robert Schmidt ed89498c4f Use standard C initializer list syntax
Fix clang warning

  warning: use of GNU old-style field designator extension [-Wgnu-designator]
2024-04-18 14:16:09 +02:00
Robert Schmidt 24baf08c87 Load unaligned data for SIMD processing to avoid segv
We access G_N at indexes that are not necessarily 32-byte aligned,
leading to segfaults. Use simde_mm256_loadu_si256() to load from memory
at an unaligned memory address to avoid the segfault.

Discovered using clang; it is unclear why gcc did not encounter the same
segfault.
2024-04-18 14:06:05 +02:00
Robert Schmidt 8e7ecaa73a Compile using -rdynamic with clang
-rdynamic is necessary for clang as well to properly link shared
executables. Add furthermore an option to ignore unused command line
arguments, to suppress warning

  clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]

This is likely because -rdynamic is only relevant for the linker, but
the corresponding option add_link_options() is only available starting
cmake 3.13, while we are still at 3.12 (for Ubuntu 18, to my
understanding).
2024-04-18 00:40:39 +02:00
Robert Schmidt 6fecb6fbfe Merge remote-tracking branch 'origin/benetel-fw' into integration_2024_w15 2024-04-15 14:36:40 +02:00
Robert Schmidt ebeb26528a Merge remote-tracking branch 'origin/NR_PSBCH_MERGE1' into integration_2024_w15 2024-04-15 14:34:36 +02:00
Robert Schmidt 3011b706ba Merge remote-tracking branch 'origin/fix-sctp-f1' into integration_2024_w15 2024-04-15 14:33:05 +02:00
Robert Schmidt a953cd0d8b Demote periodic PHY log: floods the screen, is unhelpful 2024-04-15 13:16:10 +02:00
Robert Schmidt 0c15ee9706 commands for attach/detach 2024-04-15 13:16:10 +02:00
Robert Schmidt a652a032b0 CI RFsim-4G noS1: use longer sleep
Unlike the previous commit, in noS1, we cannot use Attach(), as noS1
automatically brings up an interface, no matter whether the connection
succeeded or not. Therefore, consistently wait a bit longer to increase
the chance that the radio is really up.
2024-04-15 13:16:10 +02:00
Robert Schmidt 5fa52ecf76 CI RFsim-4G: wait for attach, instead of sleep
For various reasons, the UE might take longer to connect to the eNB. A
simple sleep might not be enough; instead, use Attach() to actively wait
that the UE gets an IP address. The added bonus of this function is that
it will also stop&restart a UE if it did not attach, i.e., it will try
multiple times to attach the UE.
2024-04-15 13:16:10 +02:00
Robert Schmidt d81b617d1c Fix MCE Name parameter reading
The code (author) confused MCE_PARAMS_DESC and MCE_NETPARAMS_DESC and
tried to read the MCE name from MCE_NETPARAMS_DESC when in reality it
should come from MCE_PARAMS_DESC. This commit fixes to use the right
array.
2024-04-15 13:16:10 +02:00
Robert Schmidt 4666cddb1a Remove IPv6/active/preference fields from eNBs.[0].target_mme_m3_ip_address array
Same reasoning as in previous commit.
2024-04-15 13:16:09 +02:00
Robert Schmidt 3596955fb0 Remove IPv6/active/preference fields from eNBs.[0].target_mce_m2_ip_address array
Same reasoning as in the previous commit.
2024-04-15 13:16:09 +02:00
Robert Schmidt 27447f94bf Remove IPv6/active/preference fields from e/gNBs.[0].target_enb_x2_ip_address array
Some reasoning as in previous commit.
2024-04-15 13:16:09 +02:00
Robert Schmidt 235567bb6a Remove IPv6/active/preference fields from gNBs.[0].amf_ip_address array
Same reasoning as in the previous commit.

Remove filling of broadcast_plmn, which does not exist in the
configuration.
2024-04-15 13:16:09 +02:00
Robert Schmidt 915c106ee3 Remove IPv6/active/preference fields from eNBs.[0].mme_ip_address array
In a previous commit, the functionality of handling IPv6 (and DNS names)
as part of the IPv4 was introduced (in IPv4 field for backwards
compatibility). This commit now removes superfluous configuration
fields:
- IPv6:  handled by IPv4 field
- active: users can just remove an entry
- preference: not needed
2024-04-15 13:16:09 +02:00
Robert Schmidt 2241ed17cf CU F1+E1 test: use some service names 2024-04-15 13:16:09 +02:00
Robert Schmidt 71486a0d7e Fixup: correct gnb-cucp AMF bind address, corresponding to docker container 2024-04-15 13:16:09 +02:00
Robert Schmidt f21c2cf822 Remove interface names from F1 and nFAPI (4G+5G) 2024-04-15 13:16:09 +02:00
Robert Schmidt fced989d60 Remove F1 config for LTE: does not exist 2024-04-15 13:16:09 +02:00
Robert Schmidt fd66d17214 Remove MMEs Network Inferface section's interface names: not used 2024-04-15 13:16:09 +02:00
Robert Schmidt 4b2a59b027 Remove AMF Network Interface sections's interface names: not used 2024-04-15 13:16:09 +02:00
Robert Schmidt f042bd7a2d Add psbchsim charts to test in physim CI tests 2024-04-13 08:54:21 +02:00
Robert Schmidt c547a4c1f8 Rename nr_psbchsim sidelink test case to harmonize with other tests 2024-04-13 08:54:21 +02:00
Robert Schmidt 21918ffd0a Include nr_psbchsim in image for physims 2024-04-13 08:54:21 +02:00
Robert Schmidt 9a2e080f77 Apply clang-format 2024-04-13 08:54:15 +02:00
Robert Schmidt dfa012162b Rewrite sctp_create_new_listener() to handle DNS, IPv6
Rewrite sctp_create_new_listener() to use getaddrinfo() to look up
IPv4/IPv6 addresses via a common interface. This allows to use e.g. DNS,
and enables the SCTP library to listen on IPv6 ports.

To support the above, the corresponding message is changed to not take
an IPv4 address on 4 bytes (and separate IPv6), but a single name that
will be resolved via getaddrinfo()

The previous init message used to allow multiple IPv4/IPv6 addresses;
since this is not used anywhere, remove the corresponding functionality.

Modify all uses of this ITTI message to copy te SCTP init bind addr into
ITTI message.
2024-04-13 05:15:11 +02:00
Robert Schmidt 0d128f9cad Rewrite sctp_handle_new_association_req() to handle hostnames and IPv6
Use getaddrinfo() to look up IP (v4/v6) addresses. The old
interface of separately specifying IPv4 and IPv6 addresses is
preserved, but both fields allow to specify types of addresses, and we
will remove one field in the future.
2024-04-13 05:14:55 +02:00
Robert Schmidt e65cb0cf42 Introduce additional option to bind on separate IFs for F1-C/U in DU
After the last commit, it is not possible to bind on separate interfaces
for F1-C and F1-U. In other words, it is for instance not possible to
have the F1-C on one subnet on one physical interface, and F1-U on
another subnet on another physical interface. This commit introduces a
second option MACRLCs.[0].local_n_address_f1u to allow to bind F1-U on
an alternative address; if it is not specified, the interface of F1-C is
reused.

The above only works for the DU; no corresponding option exists for the
CU. For the CU, use separate CU-CP and CU-UP.

Use it in the CI.
2024-04-13 05:14:55 +02:00
Robert Schmidt a193518579 Revert "F1AP SCTP: don't bind local address"
This reverts commit 284116522b.

The problem is that (1) we don't really support multi-homing, but (2) on
some system, if the other IP addresses that the operating system
considers part of the multi-homed connection are HEARTBEAT'ed (e.g.,
docker), they answer with SCTP ABORT, which breaks the entire
connection.

In other words, force single-homing by binding. For F1-U uses, another
option will be introduced that allows to bind to a separate interface
for F1-U (separate from F1-C), if necessary.

Closes #727
2024-04-13 05:14:55 +02:00
Robert Schmidt 4062d3dcb3 Add channel emulation to 5G CU-DU F1 RFsim test
Add AWGN channel with some noise and additional path loss.
2024-04-12 15:53:38 +02:00
Robert Schmidt 4895cf14c1 Reduce iperf throughput in 5G F1 RFsim test
The next commit adds channel emulation in RFsim, so we have to reduce
the iperf, as the machine might not be fast enough.
2024-04-09 13:56:29 +02:00
Robert Schmidt e290b2ab1b Merge remote-tracking branch 'origin/ci-iperf3-analysis-fix' into integration_2024_w14 2024-04-09 08:09:05 +02:00
Robert Schmidt e66588b556 Merge remote-tracking branch 'origin/e2-setup' into integration_2024_w14 2024-04-08 17:58:54 +02:00
Robert Schmidt 442af3c943 Merge remote-tracking branch 'origin/pucch2_polar_rx_dynamic_range_fix' into integration_2024_w14 2024-04-08 17:58:46 +02:00
Robert Schmidt 6719c376e2 Merge remote-tracking branch 'origin/dockerfiles-improvements-2024-03' into integration_2024_w14 2024-04-08 17:57:35 +02:00
Robert Schmidt 4b8bcf7efd Merge remote-tracking branch 'origin/replace-a-malloc-by-stack' into integration_2024_w14 2024-04-08 17:55:54 +02:00
Robert Schmidt 4f5b7fcb9e Merge remote-tracking branch 'origin/fix-msg2-gnb' into integration_2024_w14 2024-04-08 17:53:54 +02:00
Robert Schmidt e3747ab592 Check if Msg3 start&length can be accommodated in mixed slot
Prior to this commit, it might happen that the gNB used TDA 0 (Start 0
len 13) for mixed slot, in which case the UE could not send msg3
(because a mixed slot has less than 13 symbols).
2024-04-08 17:30:37 +02:00
Robert Schmidt 8940400aa6 Define subband power avg through MAX_ANT, is bigger 2024-04-08 14:19:35 +02:00
Robert Schmidt fdb993279e Add more nr_pucchsim tests for 273 PRBs 2024-04-08 12:54:42 +02:00
Robert Schmidt e289c11b1b Order nr_pucchsim options alphabetically in help 2024-04-08 12:54:42 +02:00
Robert Schmidt 171d9950a1 Merge remote-tracking branch 'origin/perf_improv_polar_encoder' into integration_2024_w14 2024-04-08 08:29:29 +02:00
Robert Schmidt 5f652b1716 Merge remote-tracking branch 'origin/resolve-duplicate-nas' into integration_2024_w14 2024-04-08 08:29:23 +02:00
Robert Schmidt 680c6b69e1 Remove duplicated NAS message send, already done above
Closes: #775
2024-04-05 09:56:06 +02:00
Robert Schmidt 5951caa91e Avoid concurrent write while filling RX/CRC.indication
We observe these asserts while running concurrent UL traffic on many
UEs:

  Assertion (crc->rnti == rx->rnti) failed!
  In handle_nr_ulsch() ../../../openair2/NR_PHY_INTERFACE/NR_IF_Module.c:193
  mis-match between CRC RNTI 7221 and RX RNTI 35cf

CRC and RX indication need to be pairwise for one UE, when here we have
each for different UE. However, investigation seemed to indicate that
both arrays for CRC and RX indication contained only one PDU; it seemed
the RNTI changed while writing the CRC/RX.indication messages in
nr_fill_indication().

In this patch, we change the logic to mark a ULSCH free AFTER calling
nr_fill_indication(). It is difficult to say if this makes the assertion
disappear, but preliminary tests did not exhibit the same failure
states.

Closes #773
2024-04-04 19:00:57 +02:00
Robert Schmidt e6e25275ed Bugfix: make preamble_list an array
- It is only a couple of bytes
- It hid a bug: if two preambles, L1_nr_prach_procedures() overwrote the
  preamble of the first with the second one
2024-04-04 18:55:53 +02:00
Robert Schmidt 0f1f76878e NRUE: print RA RNTI when receiving RAPID 2024-04-04 18:55:53 +02:00
Robert Schmidt 087480084b increase response_window in multi-UE test 2024-04-04 18:55:53 +02:00
Robert Schmidt 0e2c9e8ebb Do not reduce RACH.ind count in loop
if we reduce, we will never do all rach indications. Go one-by-one
instead.
2024-04-04 18:55:53 +02:00
Robert Schmidt c9f58179e4 Improve Preamble detection log and reformat code 2024-04-04 18:55:53 +02:00
Robert Schmidt 0716d1d6c0 gNB: Msg2: print used RAPID 2024-04-04 18:55:53 +02:00
Robert Schmidt b63762f9fe Improve RA logs 2024-04-04 18:55:53 +02:00
Robert Schmidt ca1ca5f5af Check beam before allocating Msg2/harmonize with Msg3 retx 2024-04-04 18:54:04 +02:00
Robert Schmidt d534e444f0 Check Msg3 TDA before committing to Msg2 allocation 2024-04-04 18:54:04 +02:00
Robert Schmidt 876b2ce8f6 Refactor Msg3 TDA selection in own function 2024-04-04 18:54:04 +02:00
Robert Schmidt defc97ec16 check Msg2 allocation frame/slot in DL scheduler
Move decision of Msg2 allocation time instant from instance we receive
RA indication (only containing preamble time information) to actual RA
scheduler (containing current DL slot time). This has the advantage:

- if Msg2 cannot be sent, we might try in a later slot
- no timing-based problems were a RACH.indication FAPI message might
  come late, we calculate a Msg2 frame/slot, but this instant has
  already passed in the DL scheduler
- no assumption about slot_ahead (an L1 constant)

The previous code calculated and verified an SSB index; I am not sure
this code is correct or used. I leave the function
ssb_index_from_prach() (hence the gcc attribute), but remove any checks.
Similarly, the beam association list might be wrong. I deleted the
corresponding code.
2024-04-04 18:54:04 +02:00
Robert Schmidt 8d37fde91f Refactor: store Msg.1 parameters in RA process
- the preamble is needed to detect when we are outside of the RA window,
  so store it
- store the rest of Msg1 variables together in struct
2024-04-04 18:54:04 +02:00
Robert Schmidt 7364d9bde7 Move find_monitoring_periodicity_offset_common() to RA file 2024-04-04 18:54:04 +02:00
Robert Schmidt 7873292f28 Reduce indentation in nr_generate_msg2(): no functional changes 2024-04-04 18:54:04 +02:00
Robert Schmidt 205cc66546 Refactor former find_nr_RA_id() to static function 2024-04-04 18:54:04 +02:00
Robert Schmidt 8f747d7aa2 Simplify nr_initiate_ra_proc()
- create function to find free RA process
- reorganize function to put Msg1 related processing first, Msg2 second
2024-04-04 18:54:04 +02:00
Robert Schmidt 6658eb28f0 Simplify nr_clear_ra_proc() 2024-04-04 18:54:04 +02:00
Robert Schmidt 3289189a2d Fix: Configure TDD beam association only in FR2; set to NULL otherwise
Before this commit, there was data that was not initialized, resulting
in Msg2 remaining unscheduled.
2024-04-04 18:53:33 +02:00
Robert Schmidt 897e499d55 Use normal/non asan images for 5G RFsim E1 2024-04-02 11:12:09 +02:00
Robert Schmidt 9b8479488f Provide additional troubleshooting documentation for QtScope
On Wayland (e.g., Gnome on Ubuntu 22), additional steps might be
necessary to make QtScope run. Describe them in the doc.

Closes: #696
2024-03-29 09:50:32 +01:00
Robert Schmidt e0b31be148 Request release for UEs if DU disconnects
38.473 section 8.2.3.1 says that upon F1 Setup Request, UE associated
signalling should be erased. In this commit, we trigger a release of all
UEs that were still connected to a DU when we received the SCTP
shutdown, i.e., when the DU disconnects.
2024-03-28 08:55:11 +01:00
Robert Schmidt e5e48bb2d8 RRC: take last UE activity time stamps 2024-03-28 08:55:11 +01:00
Robert Schmidt d9abf18dab Check If UE ID exists when handling CU RRC message transfer
Closes #762
2024-03-28 08:55:11 +01:00
Robert Schmidt 1e8f194d11 Only release UE in PDCP if in E1
Explanations: see #706. TLDR: the RRC code calls nr_pdcp_remove_ue(), so
we should not call it in the E1 handler if we do not use split mode.
2024-03-28 08:55:11 +01:00
Robert Schmidt 78f6e83f55 EXPERIMANTAL: -fstack-protector-strong 2024-03-28 08:27:47 +01:00
Robert Schmidt 03312c9102 Remove L2-Sim-Test-5G from CI ContainerParent pipeline
5G L2sim is broken since some time, and there is no time to fix it.
Remove it from the Container Parent Pipeline.
2024-03-28 08:26:53 +01:00
Robert Schmidt f86a285cb9 Improve SABOX F1+E1 radio behavior 2024-03-28 08:26:53 +01:00
Robert Schmidt 8f9c3a55de Debugging of images with core dumps: improvements
- Four mounting of files, we need the absolute path. Even if the script
  gets relative paths, realpath will give the absolute path
- Correctly recognize and handle gNB images with AW2S support
2024-03-28 08:26:53 +01:00
Robert Schmidt 4340277b3e Dockerfiles for gNB AW2S: add gdb for debugging 2024-03-28 08:26:53 +01:00
Robert Schmidt 883724b977 Merge branch 'integration_2024_w12' into 'develop'
Integration `2024.w12`

See merge request oai/openairinterface5g!2637

* !2640 Fix UPF crash at startup after latest Docker and Ubuntu updates
* !2579 Add telnetsrv_rrc for triggering RRCRelease
* !2613 NR UE fix for procedure after T300 expiry
* !2625 Changes to support 32 UEs in the gNB.
* !2632 NR fix for initialization of gold sequences for DMRS
* !2588 fix(doc): add ptp4l service configuration file in 7.2 documentation
* !2630 Move BladeRF config to right subfolder
* !2626 On RFsimulator end, close open connections
* !2628 NR UE fix double sync
* !2634 feat(phy-test): disable CQI and RSRP errors when running in phy-test mode → review to be addressed
* !2621 CI: set memory limit for docker build cache
* !2604 NR UE BSR improvements → waiting for final changes
* !2638 NR UE data scrambling fixes
* !2602 [E2 agent] KPM & RC SMs improvements
2024-03-26 13:42:55 +00:00
Robert Schmidt 4c07dca3bd Merge remote-tracking branch 'origin/kpm-rc-cleanup' into integration_2024_w12 2024-03-26 10:56:24 +01:00
Robert Schmidt 0ecd346b07 Merge remote-tracking branch 'origin/NR_UE_data_scrambling_fix' into integration_2024_w12 2024-03-26 10:41:25 +01:00
Robert Schmidt c45fb43110 Fix: handle CU-to-DU info in UE Ctxt setup Req 2024-03-23 10:21:41 +01:00
Robert Schmidt eaff52f8e8 Merge remote-tracking branch 'origin/NR_UE_MAC_UL_improvements' into integration_2024_w12 2024-03-23 10:21:32 +01:00
Robert Schmidt 3042c70d3d Merge remote-tracking branch 'origin/ci-obelix-image-cleanup' into integration_2024_w12 2024-03-22 16:35:24 +01:00
Robert Schmidt 19092a5d15 Merge remote-tracking branch 'origin/phy-test-remove-mac-error-log' into integration_2024_w12 2024-03-22 16:35:16 +01:00
Robert Schmidt c2a2e07746 Merge remote-tracking branch 'origin/NR_UE_fix_double_sync_dora' into integration_2024_w12 2024-03-22 14:58:36 +01:00
Robert Schmidt fd5596bfad Merge remote-tracking branch 'origin/fix-rfsim-bad-fd' into integration_2024_w12 2024-03-22 14:58:29 +01:00
Robert Schmidt 07750d3a98 Merge remote-tracking branch 'origin/move-bladerf-config' into integration_2024_w12 2024-03-22 10:59:30 +01:00