Commit Graph
850 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 3b2355ce4c Merge remote-tracking branch 'origin/fix-ra-reduce-logs' into integration_2024_w05 2024-02-05 13:27:12 +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 e2d5758c5d MAC: improve log messages, reduce overall verbosity 2024-02-02 15:37:06 +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 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
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
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
Robert Schmidt dc88ca3b6d Read DMRS_UplinkConfig from BWP info when needed
Before this commit, the DMRS_UplinkConfig was stored in a separate
DMRS-related structure, although it is always referenced in the
PUSCHConfig of the current UL BWP.

Through certain code paths (e.g., retransmission), it could happen that
an old DMRS_UplinkConfig was accessed that was freed (through new
CellGroupConfig).

In this commit, we always look up the DMRS_UplinkConfig in the current
PUSCH config, which should always be up to date.
2023-10-27 10:52:52 +02:00
Robert Schmidt 16e15b3393 Merge remote-tracking branch 'origin/develop-UL-RI' into integration_2023_w40 2023-10-08 17:48:06 +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
mir b07e9f32c4 Remove return const values 2023-10-02 14:15:42 +02:00
rmagueta 2fcd538082 SRS processing time measurement 2023-09-20 17:19:29 +01:00
luis_pereira87 0ace73bba9 Add SRB1 and SRB2 received bytes to statistics 2023-09-06 06:57:21 +01:00
Robert Schmidt f0923f68fb Merge remote-tracking branch 'origin/int-f1-ue-ctxt-modif-req' into integration_2023_w34 2023-08-29 10:23:34 +02:00
Robert Schmidt 8ad215f680 Lower scheduler PF averaging constant
This time constant plays a major role in how long a UE has to wait
maximally before it might be scheduled. For instance, if a UE had a lot
of traffic, the average traffic will be high, pushing the PF coefficient
down. If another UE with no traffic in the past becomes active with
heavy traffic, the first UE might not be scheduled for an extended
period of time.

In the AW2S-Amarisoft UE CI test pipeline, we sometimes see that the
maximum number of RLC retransmissions was reached. While this might not
be the (only) cause, scheduling a UE more often might prevent such
situations, and we saw an improved stability.
2023-08-21 17:16:21 +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 7b7f045f1c DU: trigger UE Context Modification Required and handle 2023-08-14 16:25:02 +02:00
Roberto Louro Magueta 45d4333afc Fix reconfigurationWithSync 2023-06-10 13:06:37 +01: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 69bfe7fe87 Implement basic F1 release procedure using F1 internally 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
francescomani 26e469cbac adding 256QAM in feature set, adding 256QAM test in ulsim and limit mcs according to table 2023-04-17 12:41:47 +02:00
francescomani fc17f3fdc7 fix for transform precoding condition 2023-04-17 12:32:29 +02:00
Robert Schmidt 51c4933258 MAC: count transported SDU bytes 2023-04-14 13:52:16 +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
Robert Schmidt 99d5e50b6a fix merge 2023-03-30 19:58:55 +02:00
Robert Schmidt 1ac428a323 Merge remote-tracking branch 'origin/develop-handle-reconfigurationWithSync' into integration_2023_w13 2023-03-30 19:19:37 +02:00
Roberto Louro Magueta 670fcc0459 Fix handle_nr_ul_harq() for CFRA in SA 2023-03-28 18:52:48 +01:00
francescomani 7c9b501310 removing call from MAC to PHY to clear structures (now automatic clearing) 2023-03-27 15:26:52 +02:00
Robert Schmidt 27566f49dd Create CellGroup, SRB0, and SRB1, before sending Initial UL RRC message
During the Initial UL RRC Message, the CellGroup is created. Since the
CellGroup specifies the SRB1, the SRB1 should also be created (because
the DL RRC Messages is sent via SRB1). However, before this commit, the
CellGroup is created while having the RLC lock, so we cannot create
SRB1, as it results in a deadlock.

Therefore, we now first create CellGroup, SRB0, and SRB1, before giving
the UE message to the RLC.
2023-03-20 16:57:58 +01:00
Robert Schmidt 7773311e0e Merge remote-tracking branch 'origin/NR_UL_scheduler_warnings' into integration_2023_w11b 2023-03-18 12:05:13 +01:00
francescomani df110d457a demote UL scheduler warnings to debug level 2023-03-17 11:22:56 +01:00
francescomani f82bba5535 fix transform precoding scheduling for ulsch 2023-03-15 10:54:03 +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
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
Robert Schmidt 1e3de79862 Merge remote-tracking branch 'origin/NR_UE_BWP_reworking_continuation' into integration_2023_w09 2023-03-02 08:57:40 +01:00
francescomani e4ce069d1a increase UL buffer size for 15kHz 2023-02-24 14:06:23 +01:00
luis_pereira87 263436d866 Implementation of NR_RRCReestablishment procedures at gNB 2023-02-24 07:50:56 +00:00