Commit Graph
1113 Commits
Author SHA1 Message Date
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
Robert Schmidt ae69028050 Test one specific TDD configuration
The previous code fills random number in the TDD config, which leads to
unrealistic TDD patterns. Filling wtih a specific, realistic TDD config
allowed to fix the bug in the next commit.
2024-11-29 09:15:03 +01:00
Robert Schmidt f1fb797ff6 Increase max nFAPI packed message size to 32768
Testing showed that some messages could be at least slightly bigger than
the previous maximum size of 8192. Given that the maximum transport
block could be larger, increase this value to 32768.
2024-11-29 09:15:03 +01:00
Robert Schmidt a12fdb68b7 unpack_dl_tti_ssb_pdu_rel15_value(): match pack function
unpack_dl_tti_ssb_pdu_rel15_value() reads two additional bytes,
seemingly for RX power information. However, table 3-79 does not
contain such info, so I remove to match the corresponding pack function
pack_dl_tti_ssb_pdu_rel15_value().

TODO: tx power info relevant?
2024-11-29 09:15:03 +01:00
Robert Schmidt 0cc08b1070 Correct pucch_pdu->bit_len_harq: is pull8 according to SCF 222.10 2024-11-29 09:15:03 +01:00
Robert Schmidt 179302496b Fix PNF packing functions to match existing VNF unpacking 2024-11-29 09:15:03 +01:00
Robert Schmidt cbecc3432a Correct UL_tti.request messages
- Unpack is missing pusch_identity
- Unpack: put rb_bitmap instead of resource_alloc, remove dmrs_ports

In both cases, bring it in line with packing
2024-11-29 09:12:56 +01:00
Robert Schmidt 5e72bd70bc nfapi: Fixup BG (un)packing and error message 2024-11-29 09:12:55 +01:00
francescomani 0993eb4ed8 MAC beam allocation for CSI-RS 2024-11-14 08:41:14 +01:00
Robert Schmidt 68f8ef7c7a Reduce amount of logs in L1/L2
This commit removes many logs that just show memory addresses, indices,
etc., which, I presume, do not mean anything to the "average user" and
developers alike.
2024-10-29 16:36:13 +01:00
francescomani 4528be42de Merge remote-tracking branch 'origin/NR_gNB_BF_matrix' into integration_2024_w41 2024-10-11 16:55:25 +02:00
Robert Schmidt 3d32ce3904 Merge remote-tracking branch 'origin/aerial-cleanup' into integration_2024_w41 2024-10-11 11:56:46 +02:00
francescomani a4c211f2b4 removing p7 prach beamforming assertion 2024-10-11 08:02:06 +02:00
francescomani 7e82854b29 improvements to set beam index via FAPI message
use of number of SSBs transmitted before current one as fapi index, creation of a mapping vector from SSB to fapi index
2024-10-11 07:59:36 +02:00
francescomani f3b6155f17 OAI specific config_request field for analog beamforming 2024-10-10 16:14:32 +02:00
Robert Schmidt 3da3ec1907 Resolve error "unknown type name"
Resolve error:

   nfapi/oai_integration/aerial/fapi_nvIPC.h:56:16: error: unknown type name ‘nvipc_params_t’
   56 | int nvIPC_Init(nvipc_params_t nvipc_params_s);

By including the header. Also, move the definiton of the struct to the
MAC, where it is actually stored, and out of the radio common_lib.h,
since this is not a radio (split 7/8) parameter.
2024-10-10 16:02:29 +02:00
Robert Schmidt 35174d7917 Remove useless code
We don't use CUDA (see previous commit). Further, the variables
referenced in this piece of code are not used later.
2024-10-10 16:02:29 +02:00
Robert Schmidt da5601b8bf Remove code enclosed in NVIPC_CUDA_ENABLE
When compiling aerial, we compile without CUDA support (see e.g.,
docker/Dockerfile.gNB.aerial.ubuntu22). Hence, do not check for it in
aerial for the moment, we won't use it for the foreseeable future.
2024-10-10 16:02:29 +02:00
Robert Schmidt c648dfd078 Bugfix: preamble_list is an array
Since commit e6e25275ed, preamble_list is
an array, not a pointer. Hence, we don't need to call free().
2024-10-10 16:02:29 +02:00
Robert Schmidt c945bef2f1 Remove check for NFAPI_MODE_AERIAL, it's pointless
In Aerial bindings (FAPI-Aerial), the NFAPI mode must be
NFAPI_MODE_AERIAL (otherwise, we would not be executing this code).
Hence, the switches don't make sense. Remove them.

The check can more easily be checked with

    git show <commit> --ignore-all-space
2024-10-10 16:02:29 +02:00
Robert Schmidt f2f08ac52a Remove ENABLE_AERIAL switch in aerial bindings
As is visible at the top of the patch, for compiling aerial_lib (the
binding FAPI-Aerial), we always add ENABLE_AERIAL. Thus, all the code
within ENABLE_AERIAL will be compiled; we can also simply take it out.
2024-10-10 16:02:29 +02:00
Robert Schmidt f7afc8e8ee Aerial: compile P5 with Aerial-specfic modifications 2024-10-10 16:02:29 +02:00
Robert Schmidt e04ed98994 Remove unused code 2024-10-10 16:02:29 +02:00
Rúben Soares Silva 0609d31dc7 Only copy RX_DATA.indication pdu if there's data 2024-10-10 16:02:29 +02:00
Robert SchmidtandRúben Soares Silva 83838962fd Aerial: Avoid superfluous memcpy(), reduce scope
We can directly read from buffers, so the memcpy() only takes time.
Also, limit the scope of the variables for the unpacking of
RX_DATA.indication.

Co-authored-by: Rúben Soares Silva <rsilva@allbesmart.pt>
2024-10-10 16:01:29 +02:00
Robert Schmidt 1a97aa359e aerial_phy_nr_srs_indication(): implement without relying on L1 structures 2024-10-10 16:00:39 +02:00
Robert Schmidt 77d62cbf57 Remove aerial_phy_nrach_indication(): this is a 4G callback 2024-10-10 16:00:39 +02:00
Robert Schmidt d91e80beba Remove aerial_phy_nb_harq_indication(): this is a 4G callback 2024-10-10 16:00:39 +02:00
Robert Schmidt 8150328353 Remove aerial_phy_lbt_dl_indication(): this is a 4G callback 2024-10-10 16:00:39 +02:00
Robert Schmidt f1cbbc9f83 Remove aerial_phy_sr_indication(): this is a 4G callback 2024-10-10 16:00:38 +02:00
Robert Schmidt 88d548fbc2 Remove aerial_phy_cqi_indication(): this is a 4G callback 2024-10-10 16:00:38 +02:00
Robert Schmidt 17ed5d345e Remove aerial_phy_srs_indication(): this is a 4G callback 2024-10-10 16:00:38 +02:00
Robert Schmidt 8888a6bd70 Remove aerial_phy_harq_indication(): this is a 4G callback 2024-10-10 16:00:38 +02:00
Robert Schmidt 24c8e6c5c1 Remove aerial_phy_sync_indication(): this is a 4G callback 2024-10-10 16:00:38 +02:00
Robert Schmidt 3b4df11078 Remove aerial_phy_slot_indication(): this is a 4G callback 2024-10-10 16:00:38 +02:00
francescomani 6b58d357d9 moving beamforming matrix to MAC and feeding it to FAPI structures 2024-10-10 12:42:17 +02:00
Bartosz Podrygajlo bfc47445ee SRS tx power with power control state 2024-10-01 10:15:23 +02:00
francescomani a494580210 configuring n_TimingAdvanceOffset from upper layers, if present 2024-09-24 10:39:25 +02:00
Robert Schmidt 450346c7dc Merge remote-tracking branch 'origin/NR_gNB_cleanup' into integration_2024_w35 2024-09-02 10:31:57 +02:00
francescomani d04a83ea93 defs_gNB cleanup 2024-08-29 08:54:42 +02:00
Robert Schmidt 8bffd1666d Avoid complete rebuild on cmake run with git info change
Before this commit, the following will trigger a complete rebuild:

- create another git name (git checkout -b test)
- run cmake again manually (cmake ..)
- run ninja again

The top-level CMakeLists.txt uses add_definitions() to add git
information to all targets; if some git information changes, this will
mark all command lines as dirty, triggering the build.

There is an easy solution: instead of passing this information on the
command line, pass it in a header. This commit uses configure_file() to
generate a file oai_version.h in the build directory with the same
information. Various sources files, e.g., main executables, use this to
output the same information as before. It is then also not necessary to
use header guards, as cmake takes care to create this file.

If cmake is re-run, it will update the header, and trigger only files
including this header will be rebuilt (which can be shown with the above
stpes). The information passed is the same as before, and updates the
information when the old method would have updated it.
2024-08-28 15:57:24 +02:00
francescomani 909fd5a9ec from uint8 to uint16 in i1 CSI-RS measurement fields 2024-08-15 08:24:16 +02:00
Jaroslava Fiedlerova 561119a2d6 Merge remote-tracking branch 'origin/cleanup-nr-ue-executable' into integration_2024_w29 2024-07-22 08:25:18 +02:00