Commit Graph
579 Commits
Author SHA1 Message Date
Robert Schmidt d6d7064c0b A3 Event is for a PCI: Rename variable to make this clear 2024-09-06 10:20:08 +02:00
Roberto MaguetaandLuis Pereira 327baf2938 Bugfix: an A3 configuration is for a specific PCI
Co-authored-by: Luis Pereira <lpereira@allbesmart.pt>
2024-09-06 10:20:08 +02:00
Robert Schmidt 44d427bf7b Rename RRC_BUF_SIZE for 5G to increase size
A maximum RRC buffer size of 1024 might be very small. We should
increase it, but then the 5G RRC_BUF_SIZE does conflict with other
definitions. To make it unique, also rename to NR_RRC_BUF_SIZE.
2024-09-06 10:20:08 +02:00
Bartosz Podrygajlo f325d02d33 Fix several ASN.1 message related memory leaks in NR 2024-07-03 07:29:02 +02:00
batuhan duyuler c51b2a64fb Prepare Measurement Configuration according to neighbour measurement configuration
Neighbor configuration can be given by gNB.conf

get_MeasConfig function is extended as it will prepare A2 / A3 Report
Configs. Single Meas Obj is used for all.

rrc_gNB_process_MeasurementReport function is extended to process A2 /
A3 measurement events.  helper functions are written to fetch neighbour
cell informations from sequence containers.
(get_neighbour_cell_information, get_neighbour_config)
2024-06-04 07:54:00 +02:00
Cedric Roux 31274f6c64 bugfix/cleanup: remove uint8_t to encode size plus some cleanup
The starting point was the function do_NR_DLInformationTransfer() which
may deal with more than 256 bytes.

Then why not cleanup all the functions in the same file.
(And do a bit of formattting fixing while we're here.)

Then cleanup the callers of those functions.

Then, because of do_SIB23_NR() let's also cleanup in some
structures.

Not all the codebase was cleaned up, there surely remain some uint8_t
(and char/short/uint16_t) which are wrong.
2024-05-27 09:45:22 +02:00
Robert Schmidt 9fd1b9ac69 Correct buffer size for do_NR_DLInformationTransfer()
uper_encode_to_buffer() of asn1c returns the number of BITS that have
been encoded; if we use this, we need to calculate the resulting number
of bytes (rounding up) to get the right buffer size.

Note that do_NR_ULInformationTransfer() uses
uper_encode_to_new_buffer() which returns the number of BYTES, hence, in
this similar function, we should not modify the return value.
2024-05-16 11:59:55 +02:00
Robert Schmidt 177ddaa079 Fill RRC MeasConfig with correct SSB values from DU 2024-05-06 11:45:18 +02:00
Guido Casati 7a9b3485b1 Remove hardcoding of 5G-S-TMSI on nrUE 2024-04-19 10:58:09 +02:00
francescomani 1fa6be2a3d fix procedure after T300 expiry 2024-03-19 09:55:05 +01:00
francescomani bb19306797 transmission of RRCReestablishmentRequest message 2024-03-13 17:57:28 +01:00
francescomani 1b9f674572 clean asn1_msg from mod_id 2024-01-19 11:33:27 +01:00
francescomani 90c8e7dfd1 improvements in UE detachment, including sending a message from NAS and signaling to MAC and fixing some memory leaks when terminating UE 2024-01-04 14:28:49 +01:00
sriharsha f248b2fdff fix: avoid freeing rlc config structure 2023-11-16 09:07:05 +01:00
Laurent THOMAS dd059343d9 ue-rrc-coarse-cleaning 2023-11-10 17:43:59 +01:00
Robert Schmidt 91a30e9a2a Correct return type of do_RRCSetupRequest() 2023-10-10 15:40:26 +02:00
Robert Schmidt f3910e7707 MeasConfig: give SSB ARFCN, not Point A
The UE should measure on the SSB, otherwise it does not see anything.
Hence, this commit fixes the meas-config to request the UE to measure
on the right frequency.
2023-10-03 11:19:09 +02:00
Robert Schmidt 6f8a222698 Free default MeasConfig 2023-09-22 08:22:15 +02:00
Robert Schmidt 885a029abc Fix memory leaks in do_NR_DLInformationTransfer() 2023-09-22 08:22:15 +02:00
Robert Schmidt a4c75620ee Fix memory leaks in do_NR_RRCRelease() 2023-09-22 08:22:15 +02:00
Robert Schmidt a3382f8faa Fix memory leaks in do_RRCSetup() 2023-09-22 08:22:15 +02:00
Robert Schmidt 1b171e798d Fix memory leaks in do_RRCReconfiguration() 2023-09-22 08:22:15 +02:00
Robert Schmidt c325c6a232 Correctly free memory in do_NR_SA_UECapabilityEnquiry() 2023-09-22 08:22:15 +02:00
Robert Schmidt c69e8b6895 Clean up do_RRCReconfiguration() 2023-09-22 08:22:15 +02:00
Robert Schmidt 3982cc2e23 Forward UE capabilities to DU and use for CellGroupConfig
- Forward UE capabilities in F1 handlers
- Store at MAC
- Update CellGroupConfig with UE Capabilities of the UE
2023-09-22 08:22:15 +02:00
Robert Schmidt c930563929 Move radio configuration parameters to MAC, SIB1 not initialized!
!SIB1 is not correctly filled! This commit does not work with COTS UEs!
The next commit fixes this.

- Move radio config (e.g., minRXTXTIME, SIB1 TDA, do_SRS, etc) down to
  MAC.
- Some parameters in MAC are redundant: delete them.
- Remove call to nr_mac_config_scc() from RRC and simulators, the MAC
  initialization routine calls it implicitly
2023-09-22 08:22:15 +02:00
Robert Schmidt 2b29531591 Move ServingCellConfigCommon to MAC
Note: the reestablishment is broken, and a later commit fixes it.

The ServingCellConfigCommon is an inherently radio-related
configuration. As such, it should be handled by the DU, not the CU.
Therefore, move it "down" to the MAC.
2023-09-22 08:22:15 +02:00
Robert Schmidt f709ee815b Move physCellId to MAC
The PCI is given to the CU from the DU in the F1 Setup Request message.
It is a part of the DU, so move it "down".
2023-09-22 08:22:15 +02:00
Robert Schmidt a460794792 Delete dead code 2023-09-21 12:49:20 +02:00
Robert Schmidt 792cd56f63 Cleanup after RRC reestablishment 2023-08-12 11:48:17 +02:00
Robert Schmidt 4574a19fc9 Rename primary RRC UE ID gNB_ue_ngap_id to rrc_ue_id
The RRC uses gNB_ue_ngap_id as its primary ID; the following commits
will introduce the usage of the (F1) gNB CU UE ID. This commits renames
the gNB_ue_ngap_id to rrc_ue_id to better reflect its usage as the RRC's
primary UE ID.

It will be used as the NGAP and F1 (CU) UE IDs.
2023-08-11 15:20:47 +02:00
Robert Schmidt d906c3c9b5 Merge remote-tracking branch 'origin/remove-duplications-of-srb-list' into integration_2023_w22 2023-06-02 17:54:33 +02:00
Robert Schmidt fdb2abebd0 Add cmake option to select asn1c, and test asn1c parameters
CMake now takes the option ASN1C_EXEC to select an asn1c to use for
compilation. For instance, run with
cmake .. -GNinja -DASN1C_EXEC=/opt/asn1c/bin/asn1c
or
./build_oai --cmake-opt -DASN1C_EXEC=/opt/asn1c/bin/asn1c
to select the alternative asn1c. For instance, this is important for the
CI to allow to build multiple versions of OAI in parallel that might use
different commits of OAI.

Further, this patch introduces functionality to check for the support of
asn1c options that we require, and alerts the user if they are missing,
alongside a message of how to resolve the problem.
2023-06-02 10:42:02 +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
laurent c70f0a1d57 cleanup srb data structure 2023-05-29 15:15:53 +02:00
mir c9012298de OSA SECU harmonization 2023-05-26 12:35:33 +02:00
Angelo Athanassopoulos f4845eb5a0 ASN1 - MCG Config
Fill the right DRBs for Master Cell Group Config and drop the bearer_id_start, nb_bearers_to_setup
2023-05-10 16:30:59 +02:00
laurent 84fa481e72 remove pdu session duplicated structs 2023-04-28 15:55:12 +02:00
Robert Schmidt 94185df93e Merge remote-tracking branch 'origin/bugfix-interop-accelleran' into integration_2023_w16b 2023-04-22 07:49:06 +02:00
Cedric Roux bf10230185 bugfix: use correct index in array
Accelleran CU configures DRB ID 4, not 1, so we need to take index 3
in the array 'priority', not 0.

So let's use i-1 as it was before.
2023-04-15 20:20:10 +02:00
Robert Schmidt b62474bd83 Move fill_default_secondaryCellGroup() and change signature
fill_default_secondaryCellGroup() is moved to nr_rrc_config.c.
Furthermore, the signature is changes to return the NR_CellGroupConfig
from the functions, instead of filling a pre-allocated structure (which
is, in all cases, allocated just before calling
fill_default_secondaryCellGroup().

There is a problem with this function: the function also fills the
ServingCellConfig (a parameter to this function). This behavior has not
been changed.
2023-04-11 10:33:27 +02:00
Robert Schmidt c1a2b65697 Delete nr_DRB_preconfiguration() and replace with existing functions
nr_DRB_preconfiguration() does a "pre-configuration" for the default DRB
for "noS1" mode, i.e., when there is no connection to core network. In
this case, there is no PDU session to be set up, and hence we need to
preconfigure the DRBs.

We replace this function with partially existing functions and a new
function fill_nr_noS1_bearer_config() which returns a bearer
configuration for the noS1 case, also better reflected in the function
name. It has also been moved to asn1_msg.c, away from the actual PDCP
layer.
2023-04-11 10:33:27 +02:00
Robert Schmidt d021fbd0b6 Reuse get_DRB_RLC_BearerConfig() to get RLC-BearerConfig
For nr_DRB_preconfiguration() and fill_default_secondaryCellGroup(),
there is duplicated code to generate and RLC-BearerConfig, when calling
the existing get_DRB_RLC_BearerConfig() (with the right parameters)
yields a similar configuration (see exceptions below).

Differences:
- We do not support reestablishmentRLC, so we don't set it
- Set prioritisedBitrate to 8kbps instead of infinity (we don't
  prioritize anything, anyway)
- bucketSizeDuration is 50ms instead of 100ms
2023-04-11 10:17:07 +02:00
Robert Schmidt 395ca4b4b0 Refactor update_cellGroupConfig() 2023-04-11 10:17:07 +02:00
Robert Schmidt 44d5b37890 Refactor get_initial_cellGroupConfig() 2023-04-11 10:17:07 +02:00
Robert Schmidt 88e6d9df09 Refactor SIB1 handling 2023-04-11 10:17:07 +02:00
Robert Schmidt 7cb50288ef Refactor MIB handling 2023-04-11 10:17:07 +02:00
Robert Schmidt b9293754b8 Change rrc_coreset_config() to return new coreset config 2023-04-11 10:07:07 +02:00
Robert Schmidt c744b01566 Remove ServingCellConfig from RRC Setup-related functions: is not needed 2023-04-11 10:07:07 +02:00
Robert Schmidt f7181caf65 Remove commented code 2023-04-11 10:07:07 +02:00