Commit Graph
684 Commits
Author SHA1 Message Date
8150a47ba5 NVIDIA Aerial Integration
- Aerial config file
- Changes for ARC1.1. Change config file to max MCS 25. Fixed pdu size errors.
- Remove taskset from Dockerfile.gNB.aerial.ubuntu20 after changing isolated CPUs
- removed the USRP from Docker file

Co-authored-by: Florian Kaltenberger <florian.kaltenberger@eurecom.fr>
Co-authored-by: Fredrik Molander <fmolander@nvidia.com>
Co-authored-by: Reem Bahsoun <reem.bahsoun@openairinterface.org>
2024-03-08 15:53:42 +01:00
Jaroslava Fiedlerova be0217aabf Merge remote-tracking branch 'origin/fix-tx-timing-offset-issues' into integration_2024_w09 2024-03-04 16:07:34 +01:00
Laurent THOMAS d26f0b9196 add LOG_DDUMP() to dump a buffer in the regular tracing filter system (like PHY, MAC, ...), use it and do simple cleaning (better format) 2024-03-04 10:07:07 +01:00
Nuno Domingues ff7c960b2c Harmonize computation of RA-RNTI 2024-02-16 18:04:57 +00:00
Robert Schmidt e2d5758c5d MAC: improve log messages, reduce overall verbosity 2024-02-02 15:37:06 +01:00
Robert Schmidt 10c914cd4e bugfix: if cannot send Msg.2 in RA, cancel RA
If we cannot send Msg.2, then basically the RA process is dead (because
the UE expects it at a fixed time). Hence, cancel the RA process, so
that we do not pick it up again after 1000 frames.
2024-01-30 09:50:46 +01:00
Robert Schmidt b81dce836c Merge remote-tracking branch 'origin/null-pointer-in-nr_generate_Msg3_retransmission' into integration_2024_w02 2024-01-13 17:42:30 +01:00
Laurent THOMAS 4958f8b6d7 segv on null pointer 2024-01-12 17:55:50 +01:00
Laurent THOMAS 4c7b185d92 merge two reduntant and incoherent enums for rnti_type_t, make a macro to stringify properly instead of hardcoded side strings array 2024-01-09 16:15:14 +01:00
Jaroslava Fiedlerova ad641e3a96 Merge remote-tracking branch 'origin/Fix_FAPI_CoreSetType' into integration_2024_w01 2024-01-05 15:33:31 +01:00
luis_pereira87 87e8ba0ba1 Fix FAPI CoreSetType enumeration options after the fix on the description made by SCF
SCF FAPI 222.10.02 had a bug on the description of CoreSetType:
0: CORESET is configured by the PBCH or SIB1
(subcarrier 0 of CRB0 for DMRS mapping)
1: otherwise (subcarrier 0 of CORESET)

That was fixed in SCF 222.10.04:
0: CORESET is configured by the PBCH or SIB1
(subcarrier 0 of the CORESET)
1: otherwise (subcarrier 0 of CRB0 for DMRS mapping)

That wrong description created a misunderstanding, to overcome it we "wrongly" added a third value. This commit fixes that and aligns the CoreSetType with FAPI 222.10.04
2024-01-04 09:32:18 +00:00
luis_pereira87 c58eea2ac7 Implement RA Contention Resolution timer in gNB accordingly with 3GPP TS 38.321 Section 5.1.5 Contention Resolution 2023-12-27 07:32:24 +00:00
luis_pereira87 3e80765668 Trigger UL Failure if Ack of Msg4 not received
The UE will trigger new RA either with MAC CE C-RNTI or with new RRCSetupRequest:
- MAC CE C-RNTI: The ul_failure_timer will be reset
- RRCSetupRequest: New UE will be created and the previous one will be deleted
2023-12-27 07:32:24 +00:00
luis_pereira87 f7dfffe1d4 Delete ra_timer 2023-12-27 07:32:24 +00:00
Robert Schmidt 460f11e3f3 Merge remote-tracking branch 'origin/remove-unused-memblock' into integration_2023_w51 2023-12-21 16:10:05 +01:00
Robert Schmidt 62773670aa Merge remote-tracking branch 'origin/Fix_Msg4_Ack_not_received' into integration_2023_w50 2023-12-19 13:28:27 +01:00
Laurent THOMAS 63b64d4fce move common code file in common directory
remove several unused files
remove mem_block_t that is never used in a different way than a simple heap buffer
move up IP address type and remove duplications of the same struct declaration
2023-12-19 10:37:10 +01:00
luis_pereira87 3f22837d88 Fix gNB RA procedures when Msg4 Ack not received
When the gNB does not receive PUCCH with Ack for Msg4 we have to consider Msg4 received by the UE, so we need to apply the CellGroupConfig sent to the UE.
There are two scenarios:
1 - The UE never decoded PDSCH for Msg4, the RA will fail because RA Contention Resolution timer, the UE will come with a new RA with new RRCSetupRequest
2 - The UE decoded PDSCH for Msg4, and if SR does not work and no resources for PUSCH, it will trigger RA with MAC CE C-RNTI in Msg3 (so, gNB must be ready for it)
2023-12-19 07:45:44 +00:00
francescomani 60f5b9622c clang formatting and review 2023-12-17 17:28:28 +01:00
francescomani e25bec6a89 fixes for do-ra mode including moving to sc_info some info non related to a specific BWP 2023-12-12 14:10:10 +01:00
francescomani 9b9eb6f4e4 common structure for non-BWP servingcell info 2023-12-12 14:06:37 +01:00
francescomani 2715c7efdd improve MAC configuration from RRC 2023-11-20 14:21:01 +01:00
francescomani 8013d5d8cc removing CellGroup dependance from MAC common functions 2023-11-20 11:36:46 +01:00
Raphael Defosseux 24ac96cd40 Merge remote-tracking branch 'origin/Fix_FAPI_PDU_Length' into integration_2023_w42 2023-10-20 11:46:33 +02:00
Rúben Soares da Silva bfd12e4aa0 Change PDU_Length and TLV length calculation to be inline with SCF 222.10.02
PDU Length is as per SCF 222.10.02: The total length (in bytes) of the
PDU description and  PDU data, without the padding bytes. From
TX_DATA.request we get 8 (2 bytes PDU_Length + 2 bytes PDU_Index + 4
bytes num_TLV ) and from each TLV we get 4 + value size ( 2 bytes tag +
2 bytes length + value size without pading)

Therefore, add function to compute PDU_length() value for
TX_Data.request, taking into account how many TLVs there are.
compute_PDU_length() does not rely on access to `nfapi_nr_pdu_t`.
Put it into nr_mac_common.c to avoid introducing dependencies.
2023-10-17 04:33:57 +02:00
rmagueta 169a9be8cd Fix Msg3 MAC CE C-RNTI
Reset Msg4_ACKed to not schedule ULSCH and DLSCH before RRC Reconfiguration
2023-10-04 06:55:24 +01:00
Robert Schmidt 7e2487c294 Handle CellGroupConfig completely at MAC
- MAC creates CellGroupConfig and sends to RRC
- the RRC does not manually update the CellGroupConfig
- MAC handles the RRC processing timer

In this commit, any updates to the CellGroupConfig previously done at
the RRC don't work. In other words, MIMO etc don't work; this is
implemented in the next commit.

Note that the change to take out spCellConfig during reestablishment is
because after reestablishment, as per spec (38.331 5.3.7.2), the UE
should drop the spCellConfig, which we generate by default on the first
UE connection.

Furthermore, add a new variable apply_cellgroup to signal if, after RRC
processing timer, we wish to apply the CellGroup. In some situations,
e.g., Msg.4 ack, we do not want to apply the CellGroup, because for
instance in reestablishment, we await for a reconfiguration of cellgroup
that would be triggered too early.
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 31af346ebc Improve log messages for debugging 2023-08-18 12:34:25 +02:00
Robert Schmidt 27f9d6f743 Use nr_generate_Msg4() in the case of Msg.3 with C-RNTI
After removing RA.crnti, there is no need to use a separate function
nr_generate_Msg3_dcch_dtch_response() to generate Msg.4 (yes, the
function mentions Msg3 but it does Msg3 response == Msg.4).

Also, using nr_generate_Msg4() has the advantage that it waits until we
have the reconfiguration available in RLC to be sent to the UE. Finally,
we can delete the old nr_generate_Msg3_dcch_dtch_response() as we don't
need it anymore.
2023-08-18 12:25:51 +02:00
Robert Schmidt 93f59a3c6e Remove RA.crnti: it is not needed anymore
The RA.crnti field is marked as being used by NSA mode, but it is not.
OTOH, it is used in the case of RA with Msg.3 with C-RNTI MAC CE. The
latter does not necessarily need it, though, as we can change the RNTI
of the RA process when we receive C-RNTI MAC CE.

This introduces a slight complication, though, as we cannot remove the
MAC UE Context (generated when receiving Msg.3) directly when parsing
the C-RNTI MAC CE. Previously, we had both rnti and crnti in the RA
struct, and when sending Msg.4 after Msg.3 with C-RNTI MAC CE, we would
remove the UE context (this is changed in the next commit). Therefore,
we employ nr_mac_trigger_release_timer() which releases the UE after
60ms, circumventing this complication.
2023-08-14 16:25:02 +02:00
Robert Schmidt aa62ddfabd MAC: Fix check for spCellConfig before using 2023-08-08 17:56:10 +02:00
francescomani 2922ea5176 fix also on gnb side 2023-06-21 11:11:12 +02:00
Roberto Louro Magueta 45d4333afc Fix reconfigurationWithSync 2023-06-10 13:06:37 +01:00
Robert Schmidt 46b91ed38e Merge remote-tracking branch 'origin/use-asn1c-mouse' into integration_2023_w22 2023-06-02 17:29:16 +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
francescomani 721dfd1961 remove confusing warning for non existing RNTI 2023-06-01 10:43:31 +02:00
Robert Schmidt d6fb5c2e31 Handle UE release request at CU, and trigger at DU at UL failure 2023-05-25 22:16:19 +02:00
Robert Schmidt 31a1003349 Introduce mutex for MAC scheduler
Different threads (e.g., RRC, DU tasks) might access the scheduler at
the same time as the thread that drivers the scheduler itself
(ru_thread). To avoid data races, introduce this mutex.

Most functions of the scheduler are only used internally and have been
marked static in the previous commit. The remaining ones, in this
commit, either lock the scheduler mutex sched_lock, or a comment has
been added of the assumption of how such function is to be locked (e.g.,
if it might be called from different places, or if it is called by a
function that already locks the scheduler).
2023-05-03 13:40:22 +02:00
Robert Schmidt e7a8eb950e NR MAC: make many functions static
To know which functions are used from outside and which are
module-local, make many functions static. This will allow us to protect
only those functions with a mutex for which it is necessary.
2023-05-03 13:40:20 +02:00
laurent b339460666 cleanup only 2023-04-28 16:25:24 +02:00
francescomani 053ef8fc44 bug fix for msg3 retrasmission scheduling frame 2023-04-20 11:47:37 +02:00
Cedric Roux 733c7e5e89 bugfix: change memory management of interface between PHY and MAC scheduler
This commit fixes a bug caused by global variables in the gNB_MAC_INST
structure used to transfer MAC scheduler's results to the PHY layer.

When using several threads in the PHY layer, it may happen that the
MAC scheduler is called a second time by the second PHY thread for the
next slot before the content of the global variables in the gNB_MAC_INST
structure used to store the result of the MAC scheduler for the current
slot have been consumed by the first thread, leading to unpredictable
results (all of them certainly wrong).

The solution is to introduce a small memory management module for the
interface between the PHY threads and the MAC scheduler. The MAC
scheduler now fills the data structures passed to it, and not a
global variable anymore. The PHY layer manages the structures and
ensures that no data is overwritten before being fully consumed by
the various threads of the PHY layer.

Some care has to be taken because several PHY threads will access the
same structures at the same time for a given slot (in read mode, so
it's okay). A mechanism of reference counting has thus been introduced.

Only one CC is supported. This restriction should not be too hard
to remove if/when needed. (The code before this commit does not seem
to work for more than one CC anyway.)
2023-04-05 16:39:12 +02:00
Roberto Louro Magueta 889a50072f Implementation of resynchronization procedures for a gNB with a given Nid_cell 2023-03-28 18:52:48 +01:00
francescomani 7db8dce51c fixes for allowing softmodem to schedule PUSCH with transform precoding 2023-03-15 10:54:03 +01:00
Robert Schmidt 1436470943 Merge remote-tracking branch 'origin/NR_Msg3_dcch_dtch_reworking' into integration_2023_w10b 2023-03-10 15:11:57 +01:00
Robert Schmidt 7668a8917e Use pointer to MAC instead of module ID 2023-03-09 19:06:07 +01:00
Robert Schmidt 64c59ef5ec Count Msg.4 DLSCH HARQ stats 2023-03-09 19:06:07 +01:00
francescomani 799d0b3ab5 reworking response to MSG3 with DCCH/DTCH 2023-03-09 14:01:33 +01:00
Robert Schmidt c6883ad2ee Merge remote-tracking branch 'origin/NR_15khz_UL_buffers' into integration_2023_w09 2023-03-02 09:18:06 +01:00