Merge remote-tracking branch 'origin/fapi-wls-integration' into integration_2025_w29 (!3346)

Add WLS as a transport option for VNF/PNF, refactor existing options

This MR adds a new transport mechanism for the VNF and PNF split, using
the Intel WLS library, which makes use of DPDK and shared memory to
transport messages. This transport mechanism is what is used to
interface with Radisys ODU, while also working with OAI VNF/PNF.

The VNF and PNF have been refactored so that the transport-specific
functions are isolated from the rest of the logic, and as such,
interchangeable by means of function pointers.

The same change is done for the packing/unpacking procedures, allowing
to switch between FAPI and nFAPI encoding.

This MR also reduces the amount of duplicated code, by refactoring the
VNF with Aerial, which now only has the transport-relevant functions, as
well as the ones that are unique to it ( for example, the unpacking
procedures where a secondary data buffer is used for the message
payloads )

Additionally a new callback is added to the VNF to process
ERROR.indication messages, which currently only indicates which message
originated the error, and which error occurred.
This commit is contained in:
Robert Schmidt
2025-07-15 15:44:02 +02:00
88 changed files with 4871 additions and 3525 deletions
+5 -9
View File
@@ -6582,15 +6582,11 @@ void process_nr_nsa_msg(nsa_msg_t *msg, int msg_len)
}
nfapi_nr_dl_tti_request_t dl_tti_request;
int unpack_len = nfapi_nr_p7_message_unpack((void *)msg_buffer,
msg_len,
&dl_tti_request,
sizeof(nfapi_nr_dl_tti_request_t),
NULL);
if (unpack_len < 0)
{
LOG_E(RRC, "%s: SSB PDU unpack failed \n", __FUNCTION__);
break;
const bool result =
nfapi_nr_p7_message_unpack((void *)msg_buffer, msg_len, &dl_tti_request, sizeof(nfapi_nr_dl_tti_request_t), NULL);
if (!result) {
LOG_E(RRC, "%s: SSB PDU unpack failed \n", __FUNCTION__);
break;
}
int num_pdus = dl_tti_request.dl_tti_request_body.nPDUs;
if (num_pdus <= 0)