Commit Graph
1055 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova fb1fe17293 Merge remote-tracking branch 'origin/aerial_24-2' into integration_2024_w49 (!3146)
Updates to match more fapi-compliant tx_data.request

The packing of PDUs as required in aerial for the Tx_data.Request wasn't
complaint with FAPI. That was fixed in Aerial 24-2. This change makes L2
pack the payloads in the way that Aerial now requires.
2024-12-06 11:52:45 +01:00
Rúben Soares Silva f733120986 Move the packing logic for TAG = 2, to reuse existing functions.
This change makes it so the fapi_nr_p7_message_pack is used to pack TX_DATA.request for Aerial, reducing the amount of repeated code.
Add the capability to pack TLVs with TAG=2 (offset from first address)

Packs the TLV.length differently according to whether or not Aerial is in use ( for Aerial TLV.length is 16-bit, for OAI is 32-bit )
2024-12-05 16:38:32 +00:00
Nick Hedberg 665aac0a94 Updates to match more fapi-compliant tx_data.request 2024-12-04 17:00:50 +00:00
Laurent THOMAS 279d49415f remove un-necessary global variables 2024-12-04 12:26:36 +01:00
Rúben Soares Silva f828e95155 Harmonize SFN and Slot typing with SCF standard 2024-11-29 09:15:08 +01:00
Rúben Soares Silva ebf07dfc62 Add handler to pack vendor ext SLOT.response 2024-11-29 09:15:08 +01:00
Rúben Soares Silva 20a2f9671a Use FAPI utility functions to handle P7 messages in Aerial 2024-11-29 09:15:08 +01:00
Rúben Soares Silva 28e3102858 Address memory leaks found in P7 messages handling
Add nr_fapi_p7 library to NFAPI_USER_LIB for access to utility functions

Change message handlers to use the utility functions to  copy and properly free the messages

Change the SRS handler to call the handler for the measurements instead of trying to copy to RC.gNB[0], which does not exist

Change nfapi_nr_p7_message_unpack to not allocate unneeded memory
2024-11-29 09:15:04 +01:00
Rúben Soares Silva e8fe6cefaa Avoid packing/unpacking parameters not used by Aerial 2024-11-29 09:15:04 +01:00
Rúben Soares Silva bcbf7ab975 Move functions for packing/unpacking RACH.indication
Changed parameter in unpack function to be inline with other unpack functions.
Changed nfapi_p7_allocate call to calloc to avoid dependency to NFAPI_LIB.

Added unitary test for RACH.indication( test pack/unpack, free, copy and compare )
Added constant NFAPI_NR_RACH_IND_MAX_PDU to follow constants related to other P7 messages limiting the maximum number of PDUs to use.

Removed now unneeded dependency to NFAPI_LIB and NFAPI_USER_LIB
2024-11-29 09:15:04 +01:00
Rúben Soares Silva 08ee4cfcc5 Add utility functions for RACH.indication.
Extra utility function to calculate allocated memory added.
2024-11-29 09:15:04 +01:00
Rúben Soares Silva 3fc784cda5 Move functions for packing/unpacking SRS.indication
Changed parameter in unpack_nr_srs_indication to void * to be inline with other unpack procedures.
Added memory allocation for pdu_list inside unpack function.

Add unitary test for SRS.indication( test pack/unpack, free, copy and compare )
Added rands16 to provide random int16_t values, needed for SRS.indication unitary test
Added constant NFAPI_NR_SRS_IND_MAX_PDU to follow constants related to other P7 messages limiting the maximum number of PDUs to use.
2024-11-29 09:15:04 +01:00
Rúben Soares Silva 7be347f04d Add utility functions related to SRS.indication.
This adds the equality, free and copy functions for SRS.indication message as described in the Table 3–129 of SCF222.10.04, it does not add the functions for the report type structures, as these are always sent/received inside the uint32_t array.
The utility functions for these will be added at a later commit, and subsequently tested in the upcoming unitary test for SRS.indication.
Extra utility function to calculate allocated memory added.
2024-11-29 09:15:04 +01:00
Rúben Soares Silva 6d54870fc9 Fix SRS.indication unpacking for Aerial.
When using Aerial, the Report TLV on SRS.indication is transported in a different buffer, as such, it needs to be unpacked separately.
2024-11-29 09:15:04 +01:00
Rúben Soares Silva 91a75fe453 Fix pack/unpack of SRS Report TLV value.
Since report_tlv->length is in bytes, and the value is an array of uint32_t, the number of uint32_t to be pushed/pulled is (length + 3) /4.
2024-11-29 09:15:04 +01:00
Rúben Soares Silva 36f65160fd Fix pack/unpack of SRS beamforming report.
Fixes the pack/unpack functions to allow multiple reported symbols, instead of just one.
Applied clang-format to both functions.
2024-11-29 09:15:04 +01:00
Rúben Soares Silva c905655b4e Cleanup normalized_channel_iq_matrix.
Apply clang-format to pack/unpack procedures.
Add comments to improve readability of iqSize usage.
Fix unpacking return value to not return 0 on success.
2024-11-29 09:15:04 +01:00
Rúben Soares Silva 1160be3ffe Add pack/unpack for missing SRS Report.
Adds the packing/unpacking procedures for Channel SVD Representation ( Table 3-133 ).
2024-11-29 09:15:04 +01:00
Rúben Soares Silva e10693939d Add missing SRS Report type struct.
Adds the structure for Channel SVD Representation ( Table 3-133 ), a missing report type for the SRS.indication message.
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 6a34439c86 Fix SRS beamforming_report reported symbol list.
Renames nfapi_nr_srs_reported_symbol_t prgs into *reported_symbol_list for two reasons:
  So that the name is more representative of what the parameter represents.
  For it to actually be a list, and not assume only 1 reported symbol is used.

Allocate reported_symbol_list in unpack_nr_srs_beamforming_report.

Updated all references to prior prgs to point to the first position of reported_symbol_list, still only effectively using the first reported_symbol.

Rename fill_srs_reported_symbol_list into fill_srs_reported_symbol and update input parameter name, since it only fills the information related to one reported symbol
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 3272225e1f Move functions for packing/unpacking UCI.indication
Reordered PDU pack/unpack function to follow PDU value order
Changed nfapi_p7_allocate calls to calloc to avoid dependency from FAPI lib to nFAPI lib.
Add unitary test for UCI.indication( test pack/unpack, free, copy and compare )
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 3682164166 Fix pack/unpack for UCI.Indication
Fix PUCCH Format2/3/4 value to be indexed at 0, not 2.
This is according to Table 3-66 of SCF222.10.02

Add utility functions related to UCI.indication
Extra utility function to calculate allocated memory added.
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 53ce0c8a24 Move functions for packing/unpacking CRC.indication
Changed parameter of `unpack_nr_crc_indication` to void* to stay inline with other unpack procedures.
Changed nfapi_p7_allocate call to calloc to avoid dependency from FAPI lib to nFAPI lib.

Add unitary test for CRC.indication( test pack/unpack, free, copy and compare )
2024-11-29 09:15:03 +01:00
Rúben Soares Silva ff6e51879a Correctly allocate cb_crc_status for CRC.indication
Now allocates memory for `uint8_t* cb_crc_status` before pulling in unpack procedure.

Add utility functions related to CRC.indication.
Extra utility function to calculate allocated memory added.
2024-11-29 09:15:03 +01:00
Rúben Soares Silva aeac2b0df3 Move functions for packing/unpacking RX_DATA.indication
Changed parameter of unpack_nr_rx_data_indication to void* to be inline with other unpack procedures.
Changed nfapi_p7_allocate calls to calloc to avoid dependency from FAPI lib to nFAPI lib.
Add unitary test for RX_DATA.indication( test pack/unpack, free, copy and compare )
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 3ec9006f11 Allow 32 bit PDU_Length in RX_DATA.indication.
Changes pack/unpack procedure to expect pdu_length of 32 bits instead of 16.
This change was first added for compatibility with Aerial L1.

Add utility functions related to RX_DATA.indication
Extra utility function to calculate allocated memory added.
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 1f6465c00a Move functions for packing/unpacking TX_DATA.request
Add unitary test for TX_DATA.request( test pack/unpack, free, copy and compare )
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 04ed300df4 Remove unneeded variables from TX_DATA.request pack/unpack functions
Allocate memory for TX_DATA.request TLV value pointer on tag == 1
In the past, this wasn't noticed because tag == 1 is not used

Add utility functions related to TX_DATA.request
Add extra function to calculate allocated memory
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 00145559aa Move functions for packing/unpacking UL_DCI.request
Add unitary test for UL_DCI.request ( test pack/unpack, free, copy and compare )
2024-11-29 09:15:03 +01:00
Rúben Soares Silva c448de50d4 Improve readability in UL_DCI.request pack/unpack functions
Remove value hardcode in packing function

Add utility functions related to UL_DCI.request
2024-11-29 09:15:03 +01:00
Rúben Soares Silva a6ab55150c Move functions for packing/unpacking SLOT.indication
Add unitary test for SLOT.indication ( test pack/unpack, free, copy and compare )
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 18799ef44b Remove cast in pack_nr_slot_indication
Add utility functions related to SLOT.indication
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 75f213ea92 Move functions for packing/unpacking UL_TTI.request
Add unitary test for UL_TTI.request ( test pack/unpack, free, copy and compare )

Add function rand32_range
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 0653c38a9d Fix packing/unpacking procedures for UL_TTI.request
Create separate function to pack/unpack rx_beamforming PDU
Reorder PDU handling order to follow from 0 to 3
Changed PUSCH pdu_bitmap switch to separate if to handle multiple optional sub-pdus
Fix bit_len_harq size to 16 bit

Add utility functions related to UL_TTI.request
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 9b8bc21d84 Move functions for packing/unpacking DL_TTI.request
Add unitary test for DL_TTI.request ( test pack/unpack, free, copy and compare )
2024-11-29 09:15:03 +01:00
Rúben Soares Silva e3fc08ede9 Move DCI payload generation functions to new file
Create header file with DCI payload generation
functions in order for them to be available to
the remainder P7 unitary tests
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 437149ae5a Fix packing/unpacking procedures for DL_TTI.request
Add pack/unpack functionality for parameters
added in previous commit
Add utility functions related to DL_TTI.request,
creating 2 news files to contain these functions
Reorder switch to follow PDU Type order
2024-11-29 09:15:03 +01:00
Rúben Soares Silva fee7c74f0f Move ve copy function to common FAPI library 2024-11-29 09:15:03 +01:00
Rúben Soares Silva 3198b9fe30 Move utility macros to common FAPI library 2024-11-29 09:15:03 +01:00
Rúben Soares Silva b1a2857144 Add missing parameters to DL_TTI.request PDUs 2024-11-29 09:15:03 +01:00
Rúben Soares Silva 0589923283 Add general FAPI P7 pack/unpack functions 2024-11-29 09:15:03 +01:00
Rúben Soares Silva 19f359c78d Expose P7 pack functions to P7 FAPI library
This makes it so the functions are available to both FAPI and nFAPI libraries, and to more easily move them later to the FAPI library, while being available for nFAPI
2024-11-29 09:15:03 +01:00
Rúben Soares Silva f409b91768 Move check_nr_fapi_unpack_length to common FAPI lib
Add P7 message cases to check_nr_fapi_unpack_length
Add SLOT.response vendor extension msg id to enum
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 4e5b841a16 Separate LTE and NR (n)FAPI headers
Update NR P5 and P7 nFAPI headers to have 32-bit message_length
In the NR functions, this causes the header parameters following message_length to have their position shifted by 2 bytes, due to the increase in message_length size.

Change needed to accommodate SCF222.10.02 Table 3-3

Separates nfapi_p4_p5_message_header_t and nfapi_nr_p4_p5_message_header_t

Change the callbacks signature to accept/return void* intead of expecting a particular header type, being the NR/LTE distinction done inside the callback functions.

Create NR related functions for nFAPI transmit timestamp and checksum calculation.

Move nfapi_p7_codec_config_t and nfapi_p4_p5_codec_config_t to separate header to be shared between LTE and NR VNF/PNF

Move nfapi_nr_timing_info_t into NR header.

Move NR specific function declarations to NR header.
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 434a6b5e84 Apply Clang-Format to nFAPI P5 and P7 header structures. 2024-11-29 09:15:03 +01:00
Rúben Soares Silva 37ace26f83 Expose TX_DATA.request functions
Expose pack/unpack functions for TX_DATA.request
for usage in P7 FAPI library
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 91279388b8 Creation of empty FAPI P7 library for separation of related functions.
Note: Dependency in NFAPI_LIB and NFAPI_USER_LIB to be removed later
2024-11-29 09:15:03 +01:00
Rúben Soares Silva 8a185cff69 Move P5 general packing/unpacking function declaration into nr_fapi_p5 header.
Fix Assert condition to properly check that body was packed successfully
Fix retval value when performing bitwise AND with push16
Remove commented code
2024-11-29 09:15:03 +01:00
Robert Schmidt c679112f50 Remove useless global variable
Remove dummy_subframe variable, which is initialized once in
start_request() and then copied to memory on the heap. It is not needed.

In nr_start_request(), it should not be necessary, but we keep it for
the moment to not make more changes than necessary.

This avoids a segfault for me, but I am not exactly sure why.
2024-11-29 09:15:03 +01:00
Robert Schmidt a9da755338 nfapi pack/unpack: OAI only supports 14 symbols
All packing was wrong and used 12 instead of 14 symbols. However, as of
now and my knowledge, OAI only supports 14 symbols.
2024-11-29 09:15:03 +01:00