Commit Graph
29708 Commits
Author SHA1 Message Date
Robert Schmidt 2ea3ab5050 Introduce UE release request grace period
It might happen that the CU does not answer a release request. In that
case, the MAC would never free the UE context, potentially blocking the
DU. Avoid this by introducing a "grace period" after which a UE context
is automatically freed at the MAC (and RLC), currently at 10s after the
30s UL failure timer.
2025-07-04 09:40:26 +02:00
Robert Schmidt 67e9c9c263 RRC: auto-generate release request when no AMF
Mark non-existing AMF UE NGAP ID through invalid INT64_MAX number
(permitted range is up to 2^40-1). Check for this range in the RAN
function, as we might otherwise pass the invalid AMF UE NGAP ID to the
agent, which would assert with

   nr-softmodem: /oai-ran/openair2/E2AP/flexric/src/lib/3gpp/enc/enc_gnb.c:83: enc_gNB_UE_asn: Assertion `gnb->amf_ue_ngap_id < 1UL << 40' failed.

In other words, don't send KPM messages for a UE which has no valid AMF
UE NGAP ID yet (which follows from the fact that the spec requires an
AMF UE NGAP ID; the previous behavior of simply sending 0 could be
considered a bug, because it's not the UE's true AMF UE NGAP ID).
2025-07-04 09:40:26 +02:00
Robert Schmidt 75be2a1a59 When freeing UE contexts, check in both possible lists 2025-07-02 17:42:00 +02:00
Reem Bahsoun 249812e10d Clarify HO doc: describe where to put neighbour configuration 2025-06-28 11:49:32 +02:00
Robert Schmidt a6c319e84b Update handover documentation
Point out that an error message is expected, after user feedback
pointing out this somewhat confusing behavior.
2025-06-28 11:49:32 +02:00
Robert Schmidt cd1aaab014 Remove only UEs belonging to DU that disconnected
The previous condition was wrong: if a UE did not have the assoc_id of
the DU that connected (i.e., it was connected to another DU then the one
disconnecting), it was marked for deletion. Instead, skip those UEs.
2025-06-28 11:49:32 +02:00
Robert Schmidt 69d1d5fb5f Merge branch 'integration_2025_w25' into 'develop'
Integration: `2025.w25`

Closes #970 and #969

See merge request oai/openairinterface5g!3485

* !3083 Speed up ubuntu22 image build
* !3428 NR UE fallback to RRCSetup from RRCReestablishment
* !3479 Suspend RBs at UE
* !3446 DL NAS Transport: Fix Message Type retrieval on too short message
* !3445 Finalize FAPI dump functions, add Digital Beamforming Table and Precoding Matrix Table to CONFIG.request
* !3447 NAS Registration Reject: Add bounds and lengths checks
* !3481 RNTI information printed in UE stats
* !3484 gNB RRC: handle optional measResultQuantity fields independently
* !3480 USRP lib: fix incorrect config check for time_source fallback
* !3483 UE segfault in DLInformationTransfer
* !3367 Enabling usage of ulsyncvalidityDuration timer in SIB19
* !3482 CI: Add "may_fail" step to execute flaky steps
2025-06-19 11:31:22 +00:00
Robert Schmidt 1750d4052f Merge remote-tracking branch 'origin/ci-may-fail' into integration_2025_w25 (!3482)
CI: Add "may_fail" step to execute flaky steps

Add a generic may_fail CI XML step option that indicates the CI step may
fail, but the CI would still be marked as succeeded (instead of skipping
all steps and mark as failed). The cause of this failure depends on the
specific step, e.g., Iperf failing because of low throughput. This
allows to clean up some code and e.g. remove the command_fail option of
Custom_Command, which is then superfluous (and less generic). An
inconvenience is that those may_fail steps will be marked as "failed" in
the HTML. Later cleanup can correct this.

The may_fail is used for executing FHI7.2 testing to push 700 Mbps in DL
(close to the maximum).

Fix some bugs and add some clean up, see commit messages.
2025-06-19 08:26:33 +02:00
Robert Schmidt f5a07f17f1 Merge remote-tracking branch 'origin/NR_NTN_ulsyncduration' into integration_2025_w25 (!3367)
Enabling usage of ulsyncvalidityDuration timer in SIB19

ntn-UlSyncValidityDuration in SIB19 from Spec 38.331 v17.12 A validity
duration configured by the network for assistance information which
indicates the maximum time duration (from epochTime) during which the UE
can apply assistance information without having acquired new assistance
information. The unit of ntn-UlSyncValidityDuration is second. Value s5
corresponds to 5 s, value s10 indicate 10 s and so on.

    ntn-UlSyncValidityDuration-r17 ENUMERATED{ s5, s10, s15, s20, s25, s30, s35,s40, s45, s50, s55, s60, s120, s180, s240, s900}

Implementation of epochtime is under discussion.

It can be configured in configuration file according to the above
enumeration. For GEO - 240s, MEO - 20s, LEO-5s can be used.
2025-06-19 08:25:28 +02:00
Robert Schmidt 54af637997 Merge remote-tracking branch 'origin/issue_969' into integration_2025_w25 (!3483)
UE segfault in DLInformationTransfer

Closes #969
2025-06-19 08:22:54 +02:00
Jaroslava FiedlerovaandAlexandre Serio alexandre.j.serio@altice.pt a679a4fb7a Merge remote-tracking branch 'origin/fix-usrp-lib-time-source' into integration_2025_w25 (!3480)
USRP lib: fix incorrect config check for time_source fallback

Corrected a logic bug in usrp_lib.cpp where the code mistakenly checked
openair0_cfg[0].clock_source instead of time_source when a time_source
was already specified in usrp_args.

Also improved the warning log to clarify that the config value is being
ignored in favor of the explicit user-provided usrp_args.

Co-authored-by: Alexandre Serio alexandre.j.serio@altice.pt
2025-06-18 12:43:02 +02:00
Jaroslava Fiedlerova 8d340fca6e Merge remote-tracking branch 'origin/issue-970-meas-quantity' into integration_2025_w25 (!3484)
gNB RRC: handle optional measResultQuantity fields independently

Closes: #970
2025-06-18 12:41:14 +02:00
Jaroslava Fiedlerova 6cb9db1a9b Merge remote-tracking branch 'origin/RNTI_UE_stats' into integration_2025_w25 (!3481)
RNTI information printed in UE stats
2025-06-18 12:40:42 +02:00
Jaroslava Fiedlerova b03619ea51 Merge remote-tracking branch 'origin/reg-reject-len-check' into integration_2025_w25 (!3447)
NAS Registration Reject: Add bounds and lengths checks

This change adds lengths checks to the received registration reject
message and also performs a bounds check for the received cause.
Since the cause is not checked, any string in the memory can be
dereferenced, possibly leading to DoS.

Signed-off-by: Eduard Vlad eduard.vlad@rwth-aachen.de
2025-06-18 11:33:20 +02:00
Jaroslava Fiedlerova 5580dd21cf Merge remote-tracking branch 'origin/nfapi_dump_functions' into integration_2025_w25 (!3445)
Finalize FAPI dump functions, add Digital Beamforming Table and Precoding Matrix
Table to CONFIG.request

This MR finalizes the addition of dump utility functions for the PARAM.response,
CONFIG.request, CONFIG.response, TX_DATA.request and UCI.indication messages.

These functions are intended to be used to aid in debugging FAPI messages between
the VNF and the PNF by printing out every parameter in a more readable form,
instead of a simple hexdump. These are also used by the nFAPI Hex Parser utility,
to be able to debug an Hex dump provided from elsewhere.

Furthermore, this MR also adds the necessary logic to send/receive the Digital
Beamforming Table and Precoding Matrix Table, this in the CONFIG.request message.
This is achieved by the addition of 2 Vendor Extension TLVs (0xA002 and 0xA003),
in order to be able to reuse existing logic to pack/unpack the data. Note: The
present implementation predicts the existence of multiple instances of the
Precoding Matrix Table via the parameter num_pm_idx, whic is not present in the
SCF specification. Note: The created TLVs are only used to ease the pack/unpack
procedure, by allowing to reuse already existing logic for other TlVs, the tag
and length are not sent.

The necessary additions to the utility functions are done to account for these
table. The CONFIG.request unitary test is changed to fill these tables with
randomized data to test transport and copy.
2025-06-18 11:30:32 +02:00
Jaroslava Fiedlerova d35270bfd0 Merge remote-tracking branch 'origin/dl-nas-transport-len-check' into integration_2025_w25 (!3446)
DL NAS Transport: Fix Message Type retrieval on too short message

The change addresses the SM message type retrieval for DL NAS Transport
messages. The assumption of an offset 17 = 7 (MM Sec) + 3 (MM Plain) + 1
(IEI) + 2 (Len) + 4 (SM) is correct.

However, if the DL NAS Transport is received in a plain header, the
lengths would not add up anymore. (This is not complying with the
standard, so not allowed, but possible). The check for the length is
necessary to not process arbitrary memory contents beyond the
pdu_buffer.
2025-06-17 23:39:02 +02:00
Jaroslava Fiedlerova 547b2eaf52 Merge remote-tracking branch 'origin/UE_RB_suspend' into integration_2025_w25 (!3479)
Suspend RBs at UE

In case of suspended radio bearer (by RRC), the MAC needs to discarded received
PDUs and avoid to transmit using LCID related to that RB
2025-06-17 23:37:25 +02:00
Robert Schmidt 7fb44bdb86 CI FHI7.2/VVDN: add test step to test high throughput
This test may fail, so mark it as such.
2025-06-17 19:21:21 +02:00
Robert Schmidt 02608313fb CI: remove useless Iperf test description
"multi-ue profile" was a specific iperf option to do iperf across
multiple UEs. However, this is not necessary anymore, the Iperf
handling multiple UEs "implicitly" (based on the number of UEs).
2025-06-17 19:21:21 +02:00
Robert Schmidt 79448178cb Remove "command_fail" option from Custom_Command/Custom_Script
As of the parent commit, there is a generic "may_fail" option through
which we could still ignore an error. Thus, command_fail is superfluous,
and avoids some extra code.

Further, in all these cases, we should better be informed about any
error, so let's not use may_fail for these tests.
2025-06-17 19:21:21 +02:00
Robert Schmidt 97d0b6534a Implement generic CI step "may_fail" option
There might be various occasions where a CI step should be attempted to
be executed, despite a chance of failing.  For instance, we might want
to try executing an instable Iperf test, and still mark the CI as
passing if it fails.

This commit introduces a generic "may_fail" option that will mark any CI
test as succeeded, despite having failed.

Ideally, we would print a warning in the HTML code, but this is not
possible because each step emits its own HTML code, instead of the main
loop handling this. We can improve this in the future.
2025-06-17 19:21:21 +02:00
Raghavendra Dinavahi 7877e38890 UE changes: Handle T430 expiry in RRC, MAC
SPEC 38.331 section 5.2.2.6
Inform MAC that UL SYNC got lost because of T430 expiry
- Send message NR_MAC_RRC_CONFIG_RESET with cause UL_SYNC_LOST_T430_EXPIRY to MAC
Reacquire SIB19 after T430 expiry

This is not checked in this commit
- RACH needs to be performed through probably PDCCH order to reobtain UL-SYNC
- system usecase involving Recovery from T430 expiry not tested yet as that requires changes on gNB side.
2025-06-17 13:50:00 +02:00
Raghavendra Dinavahi 6fc02164c5 UE changes: Handling of ulsyncvalidityduration IE in sib19
Spec 38.331 section 5.2.2.4.21 indicates this
1> start or restart T430 for serving cell with the timer value set to ntn-UlSyncValidityDuration for the serving cell
from the subframe indicated by epochTime for the serving cell;
NOTE: UE should attempt to re-acquire SIB19 before the end of the duration indicated by ntn-UlSyncValidityDuration and epochTime

Epochtime IE
When explicitly provided through SIB, or through dedicated signaling, the EpochTime is the starting time of a DL
sub-frame, indicated by a SFN and a sub-frame number signaled together with the assistance information.
For serving cell, the field sfn indicates the current SFN or the next upcoming SFN after the frame where the message indicating the epochTime is received.
This field is mandatory present when ntn-Config is provided in dedicated configuration.

gNB implementation related to epochtime will be done in a separate merge request.
2025-06-17 13:49:55 +02:00
Robert Schmidt aca48aa9f8 gNB RRC: handle optional measResultQuantity fields independently
Closes: #970
2025-06-17 11:30:11 +02:00
Rúben Soares Silva ba4608d46b Remove unnecessary checks on P7 free utility functions 2025-06-17 10:09:31 +01:00
Rúben Soares Silva 625fd54ae2 Remove unnecessary checks on P5 free utility functions 2025-06-17 10:09:31 +01:00
Rúben Soares Silva 923cfc9cd2 Finish dump procedure for UCI.indication message
Remove unnecessary checks on free_uci_indication
2025-06-17 10:09:31 +01:00
Rúben Soares Silva c9835a13e7 Finish dump procedure for TX_DATA.request message 2025-06-17 10:09:31 +01:00
Rúben Soares Silva d3205ea09a Finish dump procedure for CONFIG.response message
Remove unnecessary checks on free_config_response
2025-06-17 10:09:31 +01:00
Rúben Soares Silva 018d456a2a Add pack/unpack for CONFIG.request Precoding Matrix table
Adds the packing and unpacking functions needed for the PM Table in CONFIG.request
This table tag is specified in SCF222.10.06(0x104B), previous versions didn't have a tag for this table, and this version of the spec introduces the parameter `num_pm_idx`, previously not present.
A struct nfapi_nr_pm_tlv_ve_t is added to represent this TLV in order to be able to use the pack_nr_tlv function.
The necessary additions to the utility functions are done to account for this table.
The unitary test is changed to fill this table with randomized data to test transport and copy.
2025-06-17 10:09:31 +01:00
Rúben Soares Silva 8519c748d1 Add pack/unpack for CONFIG.request Beamforming Table
Adds the packing and unpacking functions needed for the DBT Table in CONFIG.request
This table tag is specified in SCF222.5.0 (0x1043) and this tag is used to transport the table, previous versions did not include a tag for the table.
A struct nfapi_nr_dbt_tlv_ve_t is added to represent this TLV in order to be able to use the pack_nr_tlv function.
The necessary additions to the utility functions are done to account for this table.
The unitary test is changed to fill this table with randomized data to test transport and copy.
2025-06-17 10:09:29 +01:00
Rúben Soares Silva 5016fc75c6 Finish dump procedure for CONFIG.request message
Remove unnecessary checks on free_config_request

Added logic to fill random data for PNF addresses and port TLVs to test dumping function
2025-06-17 10:08:16 +01:00
Rúben Soares Silva 5a30abc29e Finish dump procedure for PARAM.response message
Remove unnecessary checks on free_param_response
2025-06-17 10:08:16 +01:00
Jaroslava Fiedlerova 6878550557 Merge remote-tracking branch 'origin/NR_RRC_UE_fallback_to_Setup_from_Reestablishment' into integration_2025_w25 (!3428)
NR UE fallback to RRCSetup from RRCReestablishment

Implementation of the procedure to handle reception of RRCSetup as response
to RRCReestablishment request
2025-06-17 10:33:15 +02:00
Jaroslava Fiedlerova 9146879207 Merge remote-tracking branch 'origin/fast-u22-build' into integration_2025_w25 (!3083)
Speed up ubuntu22 image build

Speed up softmodems build by means of:
- Avoiding the copying the repo (using bind instead)
- Creating cache directories for:
  - ccache cache
  - CPM cache
  - Same technique applied to FlexRIC build
- Make ubuntu ran-base image docker build cache friendly
2025-06-17 10:31:43 +02:00
francescomani d8c7123a8a preventing segfault in DLInformationTransfer at RRC UE 2025-06-17 10:07:37 +02:00
francescomani 499cdc62d9 do not transmit data for a logical channel corresponding to a radio bearer that is suspended 2025-06-17 09:50:41 +02:00
Robert Schmidt bb9fa2c6a0 CI: Remove double Custom_Command Step
Step 004000 appears double in the XML description. Remove one to avoid
that it is executed twice (because the Python code goes through the list
of test descriptions and executes all that match the current ID =>
double if appears twice).
2025-06-17 08:12:20 +02:00
Robert Schmidt 65f85d55db Correct b2xx_fx3_utils path on nepes 2025-06-17 08:09:40 +02:00
Robert Schmidt 2902967740 Remove useless sleep in CI footer creation 2025-06-16 19:01:20 +02:00
francescomani 2b4b3fcd00 discard rx PDU if RB is suspended 2025-06-16 16:39:41 +02:00
francescomani 3331a43b95 add option to suspend/resume RBs at MAC upon signaling from RRC 2025-06-16 16:36:19 +02:00
Guido CasatiandAlexandre Serio a41be56b2a USRP lib: fix incorrect config check for time_source fallback
Corrected a logic bug in usrp_lib.cpp where the code mistakenly checked
openair0_cfg[0].clock_source instead of time_source when a time_source
was already specified in usrp_args.

Also improved the warning log to clarify that the config value is being
ignored in favor of the explicit user-provided usrp_args.

Co-authored-by: Alexandre Serio <alexandre.j.serio@altice.pt>
2025-06-16 11:25:30 +02:00
francescomani 38bac5376b fix in multi-UE RFsim action description 2025-06-16 10:13:20 +02:00
francescomani cce685323a adding RNTI information to stats printed at UE 2025-06-15 17:38:45 +02:00
francescomani f2e06a8b12 store RB information in LCID structure at UE 2025-06-13 16:46:21 +02:00
francescomani cad681e626 renaming structure for LCID to RB mapping 2025-06-13 16:46:21 +02:00
Robert Schmidt 8c0641c676 Merge branch 'integration_2025_w24' into 'develop'
Integration: `2025.w24`

Closes #965

See merge request oai/openairinterface5g!3476

* !3354 Preparation Work for N2 Handover
* !3383 Add configurable values of NR RLC and NR PDCP to the configuration file
* !3468 Resolve "SSB frequency at gnb.sa.band78.fr1.24PRB.usrpb210.conf is invalid"
* !3466 YAML related updates
* !3460 SRS configuration
* !3474 Fix AMF selection fallback by PLMN ID when no UE identity is present or matching
* !3473 Fix various bugs and inconsistencies in config read, SCTP, ITTI, GTP
* !3169 NR RU improvements for analog beamforming
* !3456 CI: update config for AW2S pipeline
* !3369 Add Security Mode Reject lib/unit test and adopt in stack
* !3457 Fix NR reestablishment
* !3412 [E2 agent] E2AP README update and OAI-FlexRIC CI pipeline improvements
2025-06-13 14:31:54 +00:00
luis_pereira87 736ea530f7 Only reestablish RLC while processing reconfiguration complete after a RRCReestablishment and not for every RRCReconfiguration 2025-06-13 12:05:34 +01:00
Robert Schmidt 5b9d770960 Merge remote-tracking branch 'origin/e2-fixes-updates' into integration_2025_w24 (!3412)
[E2 agent] E2AP README update and OAI-FlexRIC CI pipeline improvements

- E2AP README - add OSC nearRT-RIC section; update with proper FlexRIC
  links, and explanations on prerequisites, as well as for xApps
- OAI-FlexRIC CI - use separate containers for xApps
- add reference files for CU-UP/CU-CP
- add logging for KPM NSSAI condition
2025-06-13 10:40:29 +02:00