145 Commits
Author SHA1 Message Date
francescomani 45fffcff71 remove include mac_proto in f1ap file 2025-03-26 11:49:03 +01:00
Guido Casati 3b11764d1d Minor comments 2024-09-27 17:38:38 +02:00
Guido Casati 1a8ed8642f Use F1AP lib for UL RRC Message Trasfer in stack 2024-09-27 11:22:03 +02:00
Guido Casati 1d0d7e7baf Use F1AP lib for DL RRC Message Transfer in stack 2024-09-27 11:22:03 +02:00
Robert SchmidtandGuido Casati 57ecb11d53 Use F1AP lib Init UL RRC Msg in stack
Co-authored-by: Guido Casati <hello@guidocasati.com>
2024-09-27 11:22:03 +02:00
Robert Schmidt 2fbb41ddc5 Move GTP UE ID update out of message decoder 2024-03-15 09:51:13 +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 3f46a71157 SCTP assoc_id: Make it sctp_assoc_t, project-wide 2023-09-22 08:22:15 +02:00
Robert Schmidt 7456cf945d Refactor F1 Setup Req: Reorganize cellIDs_t and rename to f1ap_served_cell_info_t 2023-09-21 12:49:20 +02:00
Robert Schmidt 4f7ae5dd2a No double instance book keeping 2023-09-21 12:49:20 +02:00
Robert Schmidt 96e300dabd F1AP: remove default stream ID, we never use anything else but 0 2023-09-21 12:49:20 +02:00
Robert Schmidt 7a298e73cd Repair reestablishment and make it work via F1
This commit repairs the reestablishment after the introduction of the CU
UE ID in the CU, different from the DU UE ID. Now, the CU uses an
identifier different from the RNTI, used in the MAC, to refer to UEs.

To repair the reestablishment, a number of changes needed to be
introduced:

- Handle old_gNB_DU_UE_id in MAC

The MAC handles the old_gNB_DU_UE_id field in the DL RRC Message. The
commit adds encoding/decoding of the field. The MAC will drop the old
UE, but retain the CellGroup of the corresponding UE(!). Because a UE
releases the spCellGroup on reestablishment, the MAC does the same; it
needs to reapply the old configuration after a reconfiguration. For the
latter, introduce new variables to keep a "future" CellGroupConfig to be
applied (reconfigCellGroup) and a flag (expect_reconfiguration) that
applies the CellGroupConfig if a DL RRC Message transfer on DCCH, which
is assumed to be the reconfiguration.

- Add RNTI change in RLC

The RLC needs to reuse the old UE context. Hence, we simply change the
RNTI in the old context, and delete the new one.

- No PDCP UE ID change

The previous implementation of the PDCP used the RNTI; hence, the ID
needed to be switch (as above for the RLC). Since the PDCP now also uses
the CU UE ID, no identifier change is needed, and we remove all
corresponding code.

- No MAC modifications/update from CU

As foreseen by the spec, the CU does not modify or change the
cellGroupConfig in the RRC during reestablishment. This change will be
generalized in the future to all of the RRC.  Also, the
nr_rrc_mac_remove_ue() function has been removed: the MAC handles any UE
changes autonomeously, without being triggered from the RRC explicitly.

- Remove reestablish_rnti_map

The RRC does not use RNTIs for UE identification. Hence, a
reestablish_rnti_map to link two UEs to each other is not necessary
anymore.
2023-08-12 11:48:17 +02:00
Robert Schmidt eca89e20b0 Remove F1 module UE handling
The UE had a list of known UEs. With the introduction of a separate
module for F1 UE ID handling that is also used in monolithic (to
separate CU UE ID from DU UE ID), this functionality is not needed, and
deleted in this commit.
2023-08-11 17:38:12 +02:00
Robert Schmidt d220ee23e2 UL RRC Message has CU/DU UE IDs 2023-08-11 17:38:12 +02:00
Robert Schmidt 0943891005 Use CU/DU UE ID in DL RRC Message Transfer, manage at DU, refactor
- The CU/DU UE ID is used in DL RRC Message Transfer
- Note: The CU UE ID currently is still the RNTI
- on every DL RRC Message, the DU verifies that the UE exists
- Refactor RRC: common function to forward protected SRB PDUs
2023-08-11 17:38:12 +02:00
Robert Schmidt 0a0f6b7952 Initial UL RRC Message: manage DU UE ID at CU 2023-08-11 17:38:12 +02:00
Robert Schmidt c5b9962954 Remove unnecessary dl_rrc_message_transfer_direct() 2023-08-11 15:20:47 +02:00
Robert Schmidt 26a69234b2 Fix UB problems in F1: right TEID conversion, which is unsigned 2023-06-26 11:22:58 +02:00
Robert Schmidt 3ff394490a Merge remote-tracking branch 'origin/fix-du-config-update' into integration_2023_w22 2023-06-02 17:29:36 +02:00
Cedric Roux c0c3a737ed asn1c: use better version of asn1c
We don't work much on asn1c. The version we use has several bugs.
There is an active community out there that fixes bugs and improves
asn1c. Let's use their version.
2023-06-01 18:26:00 +02:00
Robert Schmidt 48f82a63aa F1: do not assert on unknown F1 message
Previously, in f1ap_decoder.c, we asserted if we did not know a message.
Apart form decoding, we did not do anything in that file.

Additionally, in f1ap_handlers.c, we were also checking for an unknown
message, and printing a warning if a handler is not known.

This commit moves the F1AP message decoding to f1ap_handlers.c, and
deletes f1ap_decoder.c. In summary, we don't assert on an unknown
message, and compile less files. The rest is unchanged.
2023-05-30 13:48:50 +02:00
Robert Schmidt b3ff033e29 Do not decode RRC Container in DL RRC message
The RRC container is transparent for the DU. Hence, we should not decode
it.
2023-03-20 16:57:58 +01:00
Robert Schmidt 8263ac09ec Merge remote-tracking branch 'origin/dead-code-f1-removal' into integration_2023_w10b 2023-03-10 15:13:08 +01:00
Robert Schmidt 8b0ad24dcd Merge remote-tracking branch 'origin/f1ap-minor-fixes' into integration_2023_w10b 2023-03-10 14:47:29 +01:00
Robert Schmidt 9826c81808 Make F1AP-related log messages less verbose 2023-03-09 19:06:07 +01:00
francescomani 2385bc364a fixing most warning when compiling nr-softmodem 2023-03-09 19:01:46 +01:00
laurent 61f49be3eb dead-code-f1-removal 2023-03-09 17:03:41 +01:00
Robert Schmidt 9dc2282249 Remove 4G F1 2023-02-20 11:38:53 +01:00
laurent 9f8a468d94 remove eNB threads for RRC and MAC, MAC thread was only for DRX config (useless) and RRC thread has many race conditions with MAC+PHY 2023-02-15 13:50:44 +01:00
laurent 9a789dbb8a ASN_SEQUENCE_ADD return code was checked only in 0.5% of calls, existing errors not detected by sanitize address 2023-01-11 09:59:39 +01:00
laurent 75a18c33cd change name of single var that may be corenetwork ue id or RAN rnti 2022-12-14 15:46:53 +01:00
laurent 1e8719c183 first-fix-rrc-mac-interface 2022-12-02 16:47:21 +01:00
Robert Schmidt 18a68387c4 Transfer Initial UL RRC Message through internal F1 2022-08-07 20:03:04 +02:00
Robert Schmidt f75cdbcad7 Use F1 DL RRC message transfer internally for RRCSetup 2022-08-07 19:49:08 +02:00
Robert Schmidt 0b91791f67 Use (std) bool instead of custom bool types
OAI is riddled with boolean_t, FALSE, TRUE, etc. This makes no sense, as
there is a standard bool type, and could lead to nasty bugs if a
definition of a bool is non-standard (0 == false, true == !false). This
commit removes all non-standard bools in the whole project.
2022-06-27 10:07:48 +02:00
matzakos e5899e2f74 Merge remote-tracking branch 'origin/develop' into F1C_extensions_develop 2022-01-17 13:19:45 +01:00
Laurent THOMAS 2d105be71e fix CU assert and bugs discovered after 2021-12-28 11:29:26 +01:00
matzakos 6a1ac14447 Include mandatory transaction ID field in F1 initial UL RRC message transfer 2021-11-10 18:31:08 +01:00
matzakos 3105a23248 Address two remaining review comments 2021-10-06 13:39:29 +02:00
Laurent Thomas f9bb4150cb astyle only 2021-10-03 22:04:17 +02:00
Laurent THOMAS c739058c5b enhanced macros for asn1c 2021-09-28 11:38:59 +02:00
Laurent THOMAS 686e585666 replace protobuf in 4G F1 split, first step: UL packets 2021-09-21 10:30:46 +02:00
Laurent THOMAS b94aee2e97 fixing F1-U 2021-09-13 15:54:01 +02:00
Laurent Thomas b5f300171d change instance id to 3GPP length 2021-09-09 11:37:00 +02:00
Laurent Thomas 1a43c21b12 remove a race F1AP->NR RRC 2021-08-19 12:09:06 +02:00
Laurent THOMAS 18fce2b173 fix several bugs, remain critical design mistakes 2021-08-17 14:55:44 +02:00
Laurent OpenCells a03ee3548f merge latest develop 2021-07-26 15:03:47 +02:00
Laurent THOMAS afcbf7b6cc remove most of globale variables, remain data model inconsistency and race conditions 2021-07-06 09:49:47 +02:00
Laurent THOMAS 6ce958f7ed Coarse grain cleanup: a lot of errors fixed 2021-07-03 16:32:20 +02:00
rmagueta 282fe1063e Fix build 2021-06-30 18:48:45 +01:00