Commit Graph
25308 Commits
Author SHA1 Message Date
Robert Schmidt b07691643d Merge remote-tracking branch 'origin/f1-bwp-switching' into integration_2023_w44 2023-11-13 15:10:27 +01:00
Robert Schmidt 0c51db05ad Merge remote-tracking branch 'origin/UE-rrc-coarse-cleaning' into integration_2023_w44 2023-11-13 15:10:20 +01:00
Robert Schmidt ad93072e0a Merge remote-tracking branch 'origin/ci-aw2s-add-ues' into integration_2023_w44 2023-11-13 15:10:09 +01:00
Cedric Roux e98acd7c5a T: set dependancies for generated files
This commit follows the previous one and adds a dependancy for the
generated .h files so that when we change T_messages.txt to add a
T trace, the compilation succeeds when using ninja in
cmake_targets/ran_build/build.
2023-11-12 14:07:11 +01:00
Cedric Roux 1111eccac6 T: isolate generated .h files when using make
When using the make system to generate T files, if you change
T_messages.txt you may have problems compiling the gnb with ninja.

If you want to see the problem:
First run: cd cmake_targets; ./build_oai --ninja --gNB
Then: cd common/utils/T
edit T_messages.txt, add a trace, for example:
---
ID = ENB_PHY_UL_TOCK
    DESC = eNodeB uplink tick - one tick per ms at start of uplink processing
    GROUP = ALL:PHY:GRAPHIC:ENB
    FORMAT = int,eNB_ID : int,frame : int,subframe
---
then run: make
then: cd cmake_targets/ran_build/build; ninja nr-softmodem
You should have an error looking like this:
---
[3/81] Checking validity of VCD files
FAILED: common/utils/T/CMakeFiles/check_vcd /tmp/develop/cmake_targets/ran_build/build/common/utils/T/CMakeFiles/check_vcd
cd /tmp/develop/cmake_targets/ran_build/build/common/utils/T && /tmp/develop/cmake_targets/ran_build/build/common/utils/T/_check_vcd /tmp/develop/common/utils/T/T_messages.txt /tmp/develop/common/utils/T/../LOG/vcd_signal_dumper.h
error: VCD_FIRST_VARIABLE is not correct in T_defs.h

You probably added a VCD trace (variable or function) but you did not
update T_messages.txt and/or T_defs.h in common/utils/T/
[...]
---

Let's first isolate the generated T .h files when using make because
we have two versions of T_IDs.h and T_messages.txt.h when mixing
make/cmake.

A next commit will regenerate T_IDs.h and T_messages.txt.h when
T_messages.txt chages for the cmake system, because this commit
does not solve the problem.
2023-11-12 14:04:36 +01:00
Robert Schmidt 610a886da7 Merge remote-tracking branch 'origin/multi-config' into integration_2023_w44 2023-11-12 05:14:36 +01:00
Robert Schmidt 3fd45922b7 Merge remote-tracking branch 'origin/NR_PTRS_improvements' into integration_2023_w44 2023-11-12 05:14:25 +01:00
Laurent THOMAS dd059343d9 ue-rrc-coarse-cleaning 2023-11-10 17:43:59 +01:00
Robert Schmidt 3bede49b9b Merge remote-tracking branch 'origin/fix-double-use-cudata' into integration_2023_w44 2023-11-10 17:29:40 +01:00
Robert Schmidt 8e4ff595a0 Merge remote-tracking branch 'origin/fix-no-f1uedata-when-in-mac' into integration_2023_w44 2023-11-10 17:29:28 +01:00
Robert Schmidt 45dd4813c9 Update FEP TX precoding time threshold for 60 MHz 2x2 phytest-timing test 2023-11-10 17:29:09 +01:00
Jaroslava Fiedlerova c2255a4168 Change PRACH Configuration Index in AW2S gNB config file
- PRACH Configuration Index = 98 is not suSpported by the Amarisoft UE simulator, as a number of PRACH occasions within the PRACH slot is > 1
- for PRACH Configuration Index = 100, number of time-domain PRACH occasions within a PRACH slot is 1
2023-11-10 16:52:43 +01:00
Robert Schmidt 0d85903d09 Add build_oai/cmake option to build with thread sanitizer 2023-11-10 16:15:05 +01:00
Robert Schmidt 58edc4a57b Remove further unnecessary RRC references in gNB MAC scheduler 2023-11-10 16:01:41 +01:00
rmagueta 8551260243 Clean up previous BWP switching implementation that was not F1 compliant 2023-11-10 16:01:33 +01:00
Robert Schmidt 196e0a2c85 Rewrite F1 documentation 2023-11-10 15:29:45 +01:00
Robert Schmidt 39274212fe 5G RFsim F1 test: start 3 DUs, with 1 UE each, PING ONLY 2023-11-10 15:29:45 +01:00
Robert Schmidt 1e565f6b7b 5G RFsim F1 test: docker-compose: add two more DUs with one UE each 2023-11-10 15:29:45 +01:00
Robert Schmidt eefffef55b UndeployGenObject(): allow multiple gNBs/DUs/CUs for log file analysis, like UE 2023-11-10 15:29:45 +01:00
Robert Schmidt a6c95537fb Simplify F1 config files 2023-11-10 15:29:45 +01:00
Robert Schmidt 01a095a268 assoc_id only to be stored for DU 2023-11-10 15:29:45 +01:00
Robert Schmidt e9d91de50b RFsimulator serverport is a number 2023-11-10 15:29:45 +01:00
Robert Schmidt 41c5ea94ae Start RRC ITTI task only in CU or monolithic 2023-11-10 15:29:45 +01:00
Robert Schmidt 96dfb44ae7 Print DU information in periodic RRC stats printing 2023-11-10 15:29:45 +01:00
Robert Schmidt 59a25c48ff RRC UE context lookup by RNTI: use assoc_id 2023-11-10 15:29:45 +01:00
Robert Schmidt 6520dbc95a Implement F1 Setup Failure to originate at RRC 2023-11-10 15:29:45 +01:00
Robert Schmidt 97d574229d Check PCI/nrCellID non-overlapping 2023-11-10 15:29:38 +01:00
Robert Schmidt 7c4ec50e23 PLMN check F1 Setup: cellId does not necessarily match
Multiple DUs host cells, whose cell ID cannot match (to identify them
uniquely). Hence, don't check for equality with CU, because otherwise,
we can never connect multiple DUs.
2023-11-10 15:29:38 +01:00
Robert Schmidt ac5c4efd4e Merge remote-tracking branch 'origin/nssai-rlc-mac-if' into integration_2023_w44 2023-11-10 14:39:03 +01:00
Robert Schmidt 6fe68a574b Merge remote-tracking branch 'origin/NR_UE_resync_hotfix' into integration_2023_w44 2023-11-10 14:38:55 +01:00
Laurent THOMAS f50d5f5a9b make multiple config instead of one implicit global 2023-11-10 10:23:11 +01:00
Sakthivel Velumani 3a7f17ebb8 Create functions for getting LCID 2023-11-09 09:02:59 -05:00
Rúben Soares da Silva fff5497f45 Remove leftover comment 2023-11-09 10:18:00 +00:00
Robert Schmidt c36eb7c9b4 Hack: Prevent CU-UP UE ID management if integrated CU
This is a workaround for a problem described in #706. In short, we
cannot reuse the cu_add/remove_f1_ue_data() functions if we are in an
integrated CU-UP/CP ("CU"), but then we can also not reliably use
different UE IDs in CU-UP and CU-CP (except if using even more hacks).
2023-11-08 17:34:42 +01:00
Robert Schmidt c812cea143 Multiple DUs in a tree 2023-11-08 10:18:52 +01:00
Robert Schmidt e155080ece Assoc ID CU->DU 2023-11-08 10:18:52 +01:00
Robert Schmidt a377e5231c Set UE DU assoc_id to 0 on DU disconnect
An assoc_id of 0 is used to mark UEs whose DU is "offline" (not
connected). In this patch, if a DU disconnects, we go through all UEs
and set their assoc_id to 0 if they belong to a UE that just went
offline.
2023-11-08 10:18:52 +01:00
Robert Schmidt e5684d217c Assoc ID DU->CU 2023-11-08 10:18:52 +01:00
Robert Schmidt 843a1dc0a3 Introduce lookup functions for DUs 2023-11-08 10:18:52 +01:00
Robert Schmidt 1af4e81951 Paging: not fully implemented, make clear is dummy 2023-11-08 10:18:52 +01:00
Robert Schmidt 8cdb23639b Bugfix: on reestablishment, save new gNB DU UE ID, not RNTI 2023-11-08 10:18:52 +01:00
Robert Schmidt 3a5cff17d7 Combine rrc_gNB_process_initial_ul_rrc_message() and nr_rrc_gNB_decode_ccch() 2023-11-08 10:18:52 +01:00
Robert Schmidt 9a092c1433 Put rrcSetupRequest/rrcReestablishmentRequest handling in separate functions 2023-11-08 10:18:52 +01:00
Robert Schmidt 1153e62e45 Move rrc gNB DU handling to separate file 2023-11-08 10:18:52 +01:00
Robert Schmidt c00b287c60 Remove RRC UE context printing that depends on DU
This code printed BW masks (what is this) and number of MIMO layers. It
was dependent on the current DU, and only showed the information for the
current DU config (SCS, band). On DU disconnect, it leads to segfaults
to this dependency, and IMO is not useful in itself (it could rather be
printed when receiving the UE capabilities, for all bands etc.).
2023-11-08 10:18:52 +01:00
Robert Schmidt 4c2bfe7a1f F1AP: send() functions take assoc_id
To allow to send F1 messages to multiple DUs from the CU, we need to
send these messages via different assoc_id (SCTP association ID,
basically akin to a file descriptor). Currently, the assoc_id is stored
in a context at the F1 module and retrieved in
f1ap_itti_send_sctp_data_req().

To facilitate a later change towards indicating (from the RRC) to which
assoc_id (hence, DU) to send a message, we refactor all
CU_send_*()/DU_send_*() functions to take the assoc_id as a parameter to
which to send messages. In this commit, we then pass the assoc_id from
the context. A later commit changes this (at the CU) to pass the
assoc_id from the message to be sent.
2023-11-08 10:18:52 +01:00
Robert Schmidt 474c3507f1 Allow DUs to reconnect to CU
Previous to this commit, the CU creates an F1 instance and initializes
GTP after a successful connection establishment, and tears the F1
instance down after the DU disconnects. This does not work when trying
to connect multiple DUs, or have them reconnect, as e.g., GTP
re-initialization fails (socket already bound).

This commit makes the CU F1 instance creation and GTP init at CU task
init (only once), and also frees the F1 instance only after the CU task
exits, which is at termination of the application, typically.
2023-11-08 10:18:52 +01:00
Robert Schmidt 05aefb9aaa Correctly read PCI in F1 Setup Response 2023-11-08 10:18:52 +01:00
Robert Schmidt 808b7684a8 F1AP: Remove commented code 2023-11-08 10:18:52 +01:00
Robert Schmidt 11df08a8f0 clang-format: RB_FOREACH is a for_each macro 2023-11-08 10:18:52 +01:00