Commit Graph
262 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
Rúben Soares da Silva ed65b52c3c SCF222.10.02: PDUsize in DL_TTI.request is 4 bytes
SCF 222.10.02, Table 3-35: the PDUSize parameter of a DL_TTI.request PDU
includes the 4 bytes required for PDUType and PDUSize parameters (each 2
bytes), not 2.

This is required for the Aerial interoperability.
2024-03-05 19:43:24 +01:00
Raymond Knopp 4f7464d010 Print additional information if TBS is too small for SIB1 2024-02-09 12:15:52 +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
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
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
Robert Schmidt 58edc4a57b Remove further unnecessary RRC references in gNB MAC scheduler 2023-11-10 16:01:41 +01: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
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 a44a54f3d3 Move SIB1 to MAC
The SystemInformationBlock 1 is handled at the DU and sent to the CU in
the F1 Setup Request. Hence, move it down to the MAC.
2023-09-22 08:22:15 +02:00
Robert Schmidt 5d0ae84ad2 Move MIB to MAC
The MasterInformationBlock is handled at the DU and sent to the CU in
the F1 Setup Response. Hence, move it down to the MAC. Furthermore:

- Change type because MIB_PDU_t is 4G type
- Simplify schedule_nr_mib()
2023-09-22 08:22:15 +02:00
Cedric Roux 9cfa0f239f T tracer: add a trace for NR SIB1 2023-09-07 22:19:50 +02:00
francescomani 44bc3e7cce taking sib1 detection out of initial sync 2023-07-27 11:11:09 +02:00
Laurent THOMAS 02e1b64379 small code review 2023-07-13 16:48:19 +02:00
francescomani e198b74155 fixes running FR2 test with sanitize 2023-07-13 16:27:34 +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
rakesh mundlamuri 5143133d33 ssb offset to point A bugfix 2023-04-24 10:47:41 +02:00
Robert Schmidt 88e6d9df09 Refactor SIB1 handling 2023-04-11 10:17:07 +02:00
Robert Schmidt 7cb50288ef Refactor MIB handling 2023-04-11 10:17:07 +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 2ac2a7f074 Make separate header for nr_pdcp instead of using 4G pdcp
Creates function that have nr_pdcp_ prepended to their name, and change
the signature of some functions for the 5G PDCP:

- nr_pdcp_layer_init()
- nr_pdcp_data_req()
- nr_pdcp_remove_UE()
- nr_pdcp_config_set_security()
- nr_pdcp_remove_UE()
- Make separate functions for nr_pdcp_data_req_srb/drb()
2023-03-27 16:39:24 +02:00
Robert Schmidt 6791974004 Remove unused OCG (OpenAir Config Generator) 2023-03-11 15:50:50 +01:00
francescomani 605efb5e86 improving handling of TDAs and other fixes 2023-02-23 19:14:04 +01:00
francescomani e55e880b71 cleaning up of dci functions 2022-12-27 18:32:30 +01:00
francescomani f87977b1aa addressing review comments 2022-09-26 19:07:33 +02:00
francescomani caa47c7496 removing pdsch semi-static 2022-09-26 18:27:36 +02:00
Robert Schmidt 8e4c7a1115 Merge remote-tracking branch 'origin/sa_conf_and_fixes_for_mu0' into integration_2022_wk36b 2022-09-08 20:42:21 +02:00
francescomani 9819268412 Merge remote-tracking branch 'origin/develop' into ul-phr 2022-08-29 17:23:43 +02:00
Thomas Schlichter 11693b1672 5G NR: remove hardcoded modulation order 2022-08-25 14:40:36 +02:00
francescomani df1f4381a2 fix in sib1 memcpy size 2022-08-16 11:18:00 +02:00
francescomani 166aae35ab fixes to get 100MHz working with 2 layers 2022-08-16 11:18:00 +02:00
francescomani 154571e10c Merge remote-tracking branch 'origin/develop' into ul-phr 2022-08-08 12:12:29 +02:00
francescomani 64568b2a9d Merge remote-tracking branch 'origin/develop' into ul-phr 2022-08-03 14:57:54 +02:00
francescomani cbff9df713 Merge remote-tracking branch 'origin/develop' into NR_BWP_config 2022-08-03 10:59:12 +02:00
Robert Schmidt a21c31a6a5 Merge remote-tracking branch 'origin/HARQ_rv_circular_array' into integration_2022_wk30b 2022-08-02 11:04:04 +02:00
francescomani 989c22a46c Limit RV to interval of 0..3
Contributors
  francescomani <email@francescomani.it>
  Rodolphe Bertolini <rodolphe.bertolini@cea.fr>
2022-08-01 16:29:58 +02:00
luis_pereira87 47d604b41f Improve SIB1 length to support maximum value specified in 3GPP TS 38.331 section 5.2.1
The physical layer imposes a limit to the maximum size a SIB can take. The maximum SIB1 or SI message size is 2976 bits.
2022-08-01 10:35:08 +01:00
francescomani 478ea7ab6c BG at MAC as part of new FAPI version 2022-07-28 15:10:03 +02:00
francescomani 2e4e9f6423 Merge remote-tracking branch 'origin/develop' into NR_BWP_config 2022-07-21 11:35:28 +02:00
francescomani 79586c03f4 fix for pointa and ssboffset 2022-07-07 08:57:37 +02:00
francescomani 633370ffc3 further MAC cleanup with BWPs 2022-06-17 18:50:06 +02:00
francescomani 40049db9c9 separate dl and ul bwp structures 2022-06-15 18:41:36 +02:00
francescomani 1be8caaf69 removing dl active_bwp 2022-06-14 18:15:42 +02:00
francescomani e592045d8f improvements in using genericParameters and other stuff 2022-06-10 18:18:57 +02:00
luis_pereira87 af377945c3 Fix hardcoded coreset and assignment from wrong array position 2022-05-12 13:12:45 +01:00
francescomani 020c4c52ec Merge remote-tracking branch 'origin/develop' into NR_DL_TBSLBRM 2022-05-06 15:27:20 +02:00
Robert Schmidt aebabbcc0c Merge remote-tracking branch 'origin/fixes-code-ci' into integration_2022_wk18 2022-05-04 15:16:14 +02:00
francescomani 40b0ce9978 vrb map fixes 2022-04-28 14:01:20 +02:00