Commit Graph
25493 Commits
Author SHA1 Message Date
Robert Schmidt 2494a7bc7c Remove unused variables 2024-02-03 11:28:43 +01:00
Robert Schmidt 5258acbf45 Remove unused variables in RRC 2024-02-03 11:28:43 +01:00
Robert Schmidt d5257ca820 Remove superfluous function, rename variable
The function rrc_gNB_process_RRCReconfigurationComplete() does almost
nothing, we can delete it.

The variable name ue_reconfiguration_after_reestablishment_counter is
misleading, as it counts all reconfigurations; rename to make it clear.
2024-02-03 11:28:43 +01:00
Robert Schmidt 1c2e4c7118 Remove drb_active array
The drb_active array keeps track of active DRBs. However, it only
replicates some of the information in established_drbs, and could lead
to a reuse of DRB IDs when two bearers are to be set up. Consider the
following:
1. trigger first DRB creation at RRC
2. DRB ID chosen from free drb_active entry
3. trigger second DRB creation at RRC
   -> The first reconfiguration has not been acknowledged
   -> drb_active is not marked as DRB_ACTIVE
4. The second DRB ID is chosen from a free drb_active entry, which is
   the same as in 2.

By reusing established_drbs everywhere, this cannot happen, as we
1. select the DRB to be used using next_available_drb() and then
2. use generateDRB(), which marks the DRB used
all from within fill_DRB_configList, which gives a new DRB.

The logic is still overly complex, though.
2024-02-03 11:28:43 +01:00
Robert Schmidt 37929dca6c Remove SRBs variable: it is simply not used 2024-02-03 11:28:43 +01:00
Robert Schmidt 3d0a7ecf28 DRB: do not activate in RRC, this is done through E1 2024-02-03 11:28:43 +01:00
Robert Schmidt 4b3b6b1e5e createDRBlist(): return NULL if no active DRB
If there are no active bearers, the function previously returned an
empty list. Return NULL if there are no bearers, so it is safe to call
this function even when no bearers are present. We can also pass it
every time to do_RRCReconfiguration(), which will not add an empty list
for DRBs.
2024-02-03 11:28:43 +01:00
Robert Schmidt 34b5e592f0 Add function to activate SRBs in gNB RRC
Create a single function to activate an SRB. This function derives the
corresponding keys, triggers the setup in PDCP, and marks the SRB as set
up, instead of doing all of this common functionality in individual
steps.  Use it at the corresponding places.
2024-02-03 11:28:40 +01:00
Luis Pereira 04c6c34d24 NR MAC stats: make more compact, update CI checker
- show MAC bytes in one line
- add MCS table idx
- show ulsch errors before ulsch DTX (as in DL)
- show if UE in-sync/out-of-sync
- show CU UE ID next to RNTI to stats

Since we modify the format of the statistics, fix the format in the retx
checkers of the CI.
2024-02-03 11:24:41 +01:00
Robert Schmidt f9a8498566 RRC: forward 5G-S-TMSI for NGAP Initial UE Message
Only fill the 5G-S-TMSI if if is present, and set the bit in the
presenceMask.
2024-02-03 11:24:41 +01:00
Robert Schmidt 1ee89735a2 Store 5G-S-TMSI from UE if received
This commit implements retrieval of 5G-S-TMSI from Parts 1&2, or the
entire 5G-S-TMSI, depending on what the UE sends. Further, if it has
been retrieved, print a log of all constituent parts of it.

The UE-specific variable ng_5G_S_TMSI_Part2 is not needed, as we compute
the full 5G-S-TMSI as soon as we have Part2 (and 1).

The correct forwarding to the core is implemented in the following
commit.
2024-02-03 11:24:41 +01:00
Robert Schmidt 642b6429a3 Fix NGAP encoding of PDUsession failed
We did not give a cause value, and therefore NGAP's "PDU sessions
failed" encoding failed. Give a cause value in all cases, so that this
cannot happen anymore.

To prevent against this, put an AssertFatal() into the encoder that
stops if an internally sent message does not have a correct cause value
(we can at least select a default).

Print an info message for all failed PDU sessions.

In rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP(): if a PDU session is
already established, don't count it as failed.
2024-02-03 11:24:41 +01:00
Robert Schmidt 8a5a1f2d22 NGAP: Correct encoding of AMF Pointer 5G-S-TMSI 2024-02-03 11:24:41 +01:00
Robert Schmidt 3371b53fda NGAP initial context setup: store NSSAI 2024-02-03 11:24:41 +01:00
Robert Schmidt d536c115d2 Replace custom bitStr_to_uint64() with common implementation 2024-02-03 11:24:41 +01:00
Robert Schmidt ba5c34c1f6 oai_asn1.h: const-correctness/signal input parameter 2024-02-03 11:24:41 +01:00
Robert Schmidt 52bfd463de Demote multiple non-error logs to warning in RFsim
In all these cases, we simply continue with processing; it therefore
seems that these are more warnings than errors.
2024-02-03 11:24:41 +01:00
Robert Schmidt a205ba7eb0 Complete NGAP PDU session logs with addr/TEIDs 2024-02-03 11:24:41 +01:00
Robert Schmidt 18d16db311 Demote NGAP error to warning, as it is not an error 2024-02-03 11:24:41 +01:00
Robert Schmidt da7c02b872 PDCP: add log to info for adding/releasing bearer 2024-02-03 11:24:41 +01:00
Robert Schmidt 9a417ca61c Demote RRC log to debug 2024-02-03 11:24:41 +01:00
Robert Schmidt 13a4a20495 Improve gNB MAC logs
- Demote logs judged unimportant to debug
- Indicate UE for UL failure
- set_QoSConfig(): correct log
2024-02-03 11:24:41 +01:00
Robert Schmidt 4ed6c581ec gNB RRC: remove SA checks
If we are in one of these procedures, we basically must be in SA mode,
everything else is illogical. It also does not seem plausible to check
for this, as it is not apparent why only these couple of calls should
not be executed if not in SA. Hence, remove.
2024-02-03 11:24:41 +01:00
Robert Schmidt 8ec4279613 Release SDAP when releasing UE over E1 2024-02-03 11:24:41 +01:00
Robert Schmidt 674d9bcd8a rrc_handle_RRCReestablishmentRequest(): refactor to have single block for RRC Setup 2024-02-03 11:24:41 +01:00
Robert Schmidt f6a783344f Handle reestablishment from different PCI, simplified implementation
This implementation might work, but it simply triggers RRC setup on the new
DU when we might send a RRC reestablishment speeding up the whole
connection setup. For this:

- we should send the F1 UE context setup to the new DU
- we should still do the reestablishment, containing the reestablishment message

The latter should be sent once we received the F1 UE context setup
response. We don't need a new context. send a release to the old DU (and
don't release our own context!!).

We might also send the reestablishment to the UE encapsulated with the
F1 UE context setup response. Need to investigate if this is feasible
(because if the DU rejects [can that happen here?], the UE will still
send reestablishment complete -- what then?).

Also, we would need to send the E1 bearer context modification to the
CU-UP.
2024-02-03 11:24:41 +01:00
Robert Schmidt 4b81e9a481 Introduce UE flag for AS security
Keeping track if AS security is activated. This is important for a later
commit, where we use this to decide if we send a F1 UE Context Setup Req
with security command after receiving the E1 bearer context setup
response. The corresponding AssertFatal() removed in the same commit
implementing PDU session handling in NGAP Initial UE Context Setup.
2024-02-03 11:22:29 +01:00
Robert Schmidt 940d582568 Remove write-only gNB's UE reestablishment cause 2024-01-31 17:41:44 +01:00
Robert Schmidt a2c7f0c0b3 Remove possible NG Initial Context Setup Resp in handler for request
38.401 Sec 8.1 asks for sending the Initial Context Setup Response after
a reconfiguration happened. Therefore, we can never send this message
directly from the handler in the Initial Context Setup Request
2024-01-31 17:41:44 +01:00
Robert Schmidt b09526c83e Bugfix: fix use-after-free of UE caps 2024-01-31 17:41:44 +01:00
Robert Schmidt 0a7e48f138 Remove a non-error in RU 2024-01-31 17:41:44 +01:00
Robert Schmidt 9cfdf9bb01 Remove custom trigger bearer add/release code, does not work 2024-01-31 17:41:44 +01:00
Robert Schmidt 513f060fa7 Merge branch 'integration_2024_w04' into 'develop'
Integration: 2024.w04

See merge request oai/openairinterface5g!2535

* !2522 Integration of O-RAN 7.2 FH using OSC xRAN library
* !2416 fix-ue-scheduler-multi-thread-storage-list-mutex-protection
* !2488 LDPC T2 card encoding: rate matching and interleaving on the T2 card
* !2497 Read NoS1 bearer configuration from gNB-generated file
* !2518 Extension of E1AP procedures
* !2533 This limits PUCCH payload to 11 bits, 7 CSI + 3 ACKNACK + 1 SR maximum.
* !2526 prepare MSG3 in advance at RRC UE
* !2451 MAC procedures to handle DLSCH allocation type 0
* !2525 NR UE fix for function to find PUCCH resource set
* !2536 Improve Precoding Matrix computation taking in consideration the DCI format
* some documentation+config file updates for 7.2
* !2501 Improvements for NR implementation of timers
* !2531 Fix unit test build and build unit tests in CI
2024-01-30 08:21:35 +00:00
Robert Schmidt ddec7e7547 Merge remote-tracking branch 'origin/ci-unit-test' into integration_2024_w04 2024-01-29 12:51:55 +01:00
Robert Schmidt 67421002c9 Remove buildx cache after each build 2024-01-29 12:51:20 +01:00
Robert Schmidt 9d92f4f91c CI: catch exceptions in CI code and print in HTML 2024-01-29 12:51:20 +01:00
Robert Schmidt 31d043363a Add documentation for unit tests 2024-01-29 12:51:20 +01:00
Robert Schmidt 6ab73029b0 Add XML file to build and run unit tests 2024-01-29 12:51:20 +01:00
Robert Schmidt 01ea8dbd07 CI: Add Build_Run_Tests unit testing step 2024-01-29 12:51:20 +01:00
francescomani 6e4787a5d2 Merge remote-tracking branch 'origin/NR_reworking_timers' into integration_2024_w04 2024-01-29 09:41:09 +01:00
Robert Schmidt 2f0c302ecc Increase PUSCH target SNR for O-RAN config, take out sdr_addrs
- PUSCH target increase: lower PUSCH target requires !2373
- sdr_addrs is USRP-specific, not needed for O-RAN
2024-01-27 11:13:57 +01:00
Robert Schmidt 9f7cc35e55 O-RAN tutorial: write more exactly "2-layer DL MIMO" 2024-01-27 11:13:57 +01:00
Robert Schmidt 36ceb6f9c0 Merge remote-tracking branch 'origin/Fix_PM_value_for_DCI_1_0' into integration_2024_w04 2024-01-27 11:11:58 +01:00
Robert Schmidt 8e0664c0c0 Merge remote-tracking branch 'origin/NR_UE_fix_find_pucch_resourceset' into integration_2024_w04 2024-01-27 11:11:49 +01:00
francescomani 5e18bbd55d Merge remote-tracking branch 'origin/NR_UE_dlsch_rescource_allocation_type0' into integration_2024_w04 2024-01-26 17:23:07 +01:00
francescomani 82f38d86a5 Merge remote-tracking branch 'origin/NR_UE_prepare_msg3_payload_in_advance' into integration_2024_w04 2024-01-26 17:12:54 +01:00
luis_pereira87 263104388c Improve Precoding Matrix computation taking in consideration the DCI format 2024-01-26 10:04:45 +00:00
Jaroslava Fiedlerova 8047b98627 Merge remote-tracking branch 'origin/limit_pucch_payload_to_11bits' into integration_2024_w04 2024-01-26 10:30:49 +01:00
Jaroslava Fiedlerova 3cc671897d Merge remote-tracking branch 'origin/e1-issue-712' into integration_2024_w04 2024-01-26 10:15:56 +01:00
Jaroslava Fiedlerova a0de76ca96 Merge remote-tracking branch 'origin/NR_UE_reworking_NOS1_bearer_configuration' into integration_2024_w04 2024-01-26 09:43:45 +01:00