Commit Graph
3853 Commits
Author SHA1 Message Date
batuhan duyuler cec6b8925a Preparation of Neighbour Configuration & Measurement Configuration | Parsing the configuration
- neighbour_config.conf file includes neighbour and measurement related parameters
Neighbour List:
 - nr_cellid: the identity of existing cell who has neighbour
 - neighbour_cell_configuration(list): includes the identity parameters
   of the neighbour cell such:
    - gNBID (incase of N2 Handover / to be identified from AMF)
    - nr_cell_id (target gNB needs to consider)
    - physical_cellId (needed for measurement reporting)
    - absoluteFrequencySSB (needed for measurement reporting)
    - subcarrierSpacing (needed for measurement reporting)
    - plmn / tracking area code (incase of N2 Handover / needed for AMF
      to identify / allow HO)

NR Measurement Configuration
 - Periodical
    - enable (default is 0, 1 enables the reporting)
    - includeBeamMeasurements, maxNrOfRS_IndexesToReport (configurable
      reporting parameters)
 - A2
    - enable (default is 0, 1 enables the reporting)
    - threshold , timeToTrigger (configurable reporting parameters)
 - A3
    - cell_id (the nr_cellid of neighbour cell. So this A3 parameters
      will be used for the neighbour
        - [-1] means default. so it can be applied to any neighbour if
          there is no specific config
        - Neighbour specific A3 Threshold can be used or default can be
          selected depending to the neighbour planning
        - The neighbour-config.conf specifies, apply default A3 for
          neighbours 3 and 4 | apply specific one for neighbour 2

    - offset, hysteresis, timeToTrigger (configurable reporting parameters)

the neighbour_config.conf can be included in the gNB.conf file. Example
is given: gnb.sa.band78.106prb.rfsim.neighbour.conf

A sequence array container is used for neighbour cell configuration. RRC
structure has this container.  A Measurement configuration structure is
defined. This structure has Periodical / A2 Event structures and also a
sequence container for A3 Event List.

These structures are filled during the initialization. While F1 Setup
Response is coming from DU to CU, the intra frequency / inter frequency
neighbour decision is given for the existing cell. Also new neighbours
could be added here if needed.
2024-06-04 07:54:00 +02:00
batuhan duyuler e5afdcdd43 Move cell-value lookup functions (SSB ARFCN, ...) to rrc_gNB_du.c
The functions are needed in a later commit in both rrc_gNB_du.c and
rrc_gNB.c, so move to the rrc_gNB_du.c file concerned with DUs (cells).
2024-06-04 07:43:54 +02:00
Raymond Knopp 15488a18e3 added parameter to limit the maxMIMO-layers on DL (i.e. to 2 for 4x4) 2024-05-29 14:46:50 +02:00
Robert Schmidt 1f6d4a6cfe Merge remote-tracking branch 'origin/hotfix-uint8_t-size' into integration_2024_w21c 2024-05-27 12:18:26 +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 1127a9850b Merge remote-tracking branch 'origin/Fix_array_for_debug_ongoing_transactions' into integration_2024_w21c 2024-05-25 12:34:46 +02:00
Raymond Knopp 70444f133a power control changes for deltaMCS mode and force_ul256qam_off
- addition of control of deltaMCS if enabled in configuration file.
- introduce separate parameter to disable 256QAM in UL
- put min_grant_prb configuration back in pf_ul() as default prb size.
2024-05-24 09:25:44 +02:00
luis_pereira87 db6710f853 Fix debug for ongoing transactions, it is limited to 3 but the maximum number of ongoing transactions can be 4 (NR_RRC_TRANSACTION_IDENTIFIER_NUMBER):
TS 36.331: RRC-TransactionIdentifier ::= INTEGER (0..3)
2024-05-16 12:36:21 +01: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 8d225a7e10 NGAP Release Cplt: indicate release PDU sessions
We can optionally indicate the PDU session IDs. At least with OAI 5GC,
that should help it clean up.
2024-05-06 12:00:26 +02:00
Robert Schmidt 3e2d5f8820 Handle PDU sessions in NG UE context setup request
In the case of PDU sessions in the NG UE context setup request, we first
have to set up security. Hence, in this commit, implement the "delayed"
set up of theses PDU sessions, and acknowledge the setup request after
reconfiguration, as requested by O-RAN.WG5.C.1-v11.
2024-05-06 11:59:59 +02:00
Robert Schmidt 1fc16077ff Correctly trigger NGAP UE Context Setup Response
Trigger UE ctxt setup response for the case of "registration request"
(no PDU sessions in UE Context setup response), as mandated by
O-RAN.WG5.C.1-v11.
2024-05-06 11:59:55 +02:00
Robert Schmidt cbf446e267 Trigger UE context setup req after E1 bearer setup resp
As of this commit, since we now send the UE security command as a DL NAS
message, there is no F1 UE Context setup request. Hence, instead of
sending a UE context modif request, send the UE context setup request
after the E1 bearer setup response (which logically also makes more
sense, as the E1 setup procedure comes before the F1 setup procedure).
2024-05-06 11:59:51 +02:00
Robert Schmidt 179ecb8e84 Revert "Delay PDU session resource setup request if necessary"
This reverts commit 0f100a6e94, which
introduced a hack to possibly wait with a PDU session setup at the RRC
in case a RRC UE capability transaction (requesting UE capabilities from
a UE) was ongoing. This happened, as we delayed the UE capabilities to
after the first RRC reconfiguration; in that case, certain UEs were
requesting the next PDU session, and if RRC did not delay the new PDU
session (as requested from the core), this procedure might occur while
UE capability enquiry was ongoing, leading to failures in these
transactions.
2024-05-06 11:58:31 +02:00
Robert Schmidt c7a2471542 Remove unused function for "default" RRC reconfiguration
The default RRC reconfiguration was previously sent after the security
mode command as a "first" RRC reconfiguration. However, it is simply not
needed, as it will be triggered through a subsequent reconfiguration
that also sets up DRBs.

Move the Measurement Config to the "other/dedicated" RRC
reconfiguration.

This reconfiguration would have forwarded a NAS PDU (typically a
registration accept). This is now done by a dedicated forwarding of NAS.
2024-05-06 11:58:21 +02:00
Giulio Carota 388942b5d3 Revert "Send RRC UECapabilityEnquiry after reconfig, trigger UE update if necessary"
This reverts commit 4a7d7975ce.

Trigger the UE capability right after security mode complete, as
specified in O-RAN WG5.C.1-v11. Also, there is no "need" for the
"default" RRC Reconfiguration (it will come once PDU sessions are
requested), so remove this as well.
2024-05-06 11:58:15 +02:00
Giulio Carota 7340abc6f4 Refactor Security Mode Command procedure: send in RRC DL transfer
Previously, the CU sent the Security Mode Command as part of a UE
context setup request. This was done "because it was possible", not
because there was an inherent need to do this. However the LiteOn DU
does not like this, as it expects to also have a DRB in the UE context
setup request procedure, which is not always the case.

Hence, send the Security Mode Command in a normal DL RRC msg transfer
over F1. As of this commit, there is not UE context Setup Request (so it
might not work with all DUs), but the OAI DU is cool and does not care,
so RFsim still works.

This also aligns the CU's behavior with O-RAN.WG5.C.1-v11.

Finally, as of this commit, we do not trigger a UE context setup
request, so we cannot handle PDU sessions inside the initial UE context
setup request at the same time as the security mode command (which was
done previously before reaching this point). This will be fixed in a
later commit.
2024-05-06 11:56:57 +02:00
Giulio Carota 46e27ba445 Add UE Context Setup/Modification functions in RRC 2024-05-06 11:55:19 +02:00
Robert Schmidt 956df365de Refactor F1 Setup Req/DU config update: transport slices via F1 and read config
In the DU, read slice information from the DU config file. Handle
multiple slices within the F1 Setup Request structure representation,
and forward it via F1 to CU. The DU slice information is stored in the
setup request structure.
2024-05-06 11:54:41 +02:00
Robert Schmidt 177ddaa079 Fill RRC MeasConfig with correct SSB values from DU 2024-05-06 11:45:18 +02:00
Robert Schmidt 00cb7efa2a Use MeasurementTimingConfiguration to look up SSB ARFCN when needed
MeasTimingConfig may not come with F1 Setup Request: some DUs send it
with the DU configuration update. Handle this gracefully by checking for
MTC before using it.
2024-05-06 11:44:33 +02:00
Giulio Carota 2f81f190d1 Generate TimingMeasurementConfig at DU, store at CU 2024-05-06 11:44:32 +02:00
Robert Schmidt aaaa00378a Do not send UE Context modif only with successful reconfig
The OAI DU does not use this message, and could not roll-back. The
LiteOn DU does not seem to like it. It is useless (as of now), so remove
it
2024-05-06 11:35:16 +02:00
Giulio Carota ae66ba7a7b fix(du/cu/rrc): use the correct MIB data structure
Use the correct MIB data structure, MIB_t. This is required by 38.473,
and the LiteOn DU sends only that. So our CU needs to handle it, so
align the OAI DU as well.
2024-05-06 11:34:29 +02:00
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 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
Jaroslava Fiedlerova b915482e9b Merge remote-tracking branch 'origin/nr-pdcp-suspend' into integration_2024_w17 2024-04-30 09:01:28 +02:00
Guido Casati 2b859cd7e2 Remove PDCP Suspend from nrUE
- according to clause 5.3.7.2 of 3GPP TS 38.331
  PDCP Suspend is not required during RRCReestablishment
2024-04-30 08:40:56 +02:00
Guido Casati f010058e45 Re-establish RLC for SRB1 only when receiving RRCReestablishmentRequest
- according to 5.3.7.4 of TS 38.331: 1> re-establish RLC for SRB1;
- gNB:
1) re-establish RLC for SRB1 in nr_rlc_update_id
2) re-establish RLC for remaining RBs concurrently with RRCReconfiguration

issue: gNB) in nr_rlc_update_id the gNB is re-establishing RLC for all
            RBs at the same time when receiving RRCReestablishmentRequest
            from UE
        UE) according to the specs, the UE is re-establishing RLC for
            SRB1 with RRCReestablishmentRequest the other RBs are
            re-established during RRCReconfiguration (in our case in
            nr_rrc_ue_process_RadioBearerConfig) when receiving
            reestablishRLC IE in rlc_BearerToAddModList
    RLC TX) this leads to RLC counters mismatch after re-establishment:
            control PDUs discarded until max nb of retx is reached
            and then UL failure occurs
2024-04-30 08:40:56 +02:00
Jaroslava Fiedlerova 94474ac660 Merge remote-tracking branch 'origin/NR_UE_RRCRelease_improvements' into integration_2024_w17 2024-04-29 10:00:12 +02:00
Jaroslava Fiedlerova c4b1966fc5 Merge remote-tracking branch 'origin/NR_bw_index_fix' into integration_2024_w17 2024-04-26 15:46:50 +02:00
francescomani da26eacfd4 improvements in handling RRC Release 2024-04-21 09:05:56 +02:00
Guido Casati 7a9b3485b1 Remove hardcoding of 5G-S-TMSI on nrUE 2024-04-19 10:58:09 +02:00
Guido Casati ab65bc3b08 Refactor PDCP Reestablishment of DRBs according to 5.3.5.6.5 of 3GPP TS 38.331
- remove PDCP reestablishment for DRBs from RRCReestablishment message generation
- do PDCP reestablishment and CUUP notification calls after reception or RRCReestablishmentComplete
- this is necessary to make it consistent with the RRCReconfiguration message that contains
  RadioBearerConfig with the list of bearers to add/release
  which is followed by PDCP re-establishment at UE
2024-04-17 16:17:37 +02:00
Guido Casati 5610ce0738 Fix PDCP re-establishment of SRB1 and SRB2
- SRB1 shall be re-established at the time of RRCReestablishmentRequest
  according to 5.3.7.4 of 3GPP TS 38.331
- SRB2 shall be re-established when creating srb-ToAddModList
  according to 5.3.5.6.3 of 3GPP TS 38.331
2024-04-16 22:04:42 +02:00
Jaroslava Fiedlerova 829d8c3c1b Merge remote-tracking branch 'origin/NR_more_UE_fixes' into integration_2024_w15 2024-04-12 09:20:12 +02:00
francescomani 19a51f67b2 flag for detach after RRCrelease at UE 2024-04-11 16:46:36 +02:00
francescomani a0c5a3604a fix incorrect bw index evaluation for UE capabilities 2024-04-10 14:06:41 +02:00
francescomani 13d33163e9 nullPointer 2024-04-09 16:55:51 +02:00
francescomani 8404da759f nullPointerRedundantCheck 2024-04-09 16:55:51 +02:00
francescomani 1e1679b668 memleak 2024-04-09 16:44:56 +02:00
francescomani 2b90061669 resourceLeak 2024-04-09 16:44:56 +02:00
francescomani 686da85d05 invalidPrintfArgType_sint 2024-04-09 16:44:56 +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
Jaroslava Fiedlerova 8a9b69984b Merge remote-tracking branch 'origin/NR_SRS_remove_assertion' into integration_2024_w14 2024-04-05 11:19:09 +02:00