Hi Nicolas,
thanks a lot for your help, I really appreciate it.

I just started digging into the details, so it seems that I need to take a deeper look at the 3GPP processing chain :)
Regarding your suggestion, could it be possible that the function you were pointing out is process_ldpc_dec_cb() within bbdev_turbo_software.c (just to be sure)?

Again, thanks a lot for your help.

Regards,
Ginés.

El jue, 11 nov 2021 a las 16:18, Chautru, Nicolas (<nicolas.chautru@intel.com>) escribió:

Hi Gines,

Note that the bblib_ldpc_decode_5gnr() function is doing purely the decoder, while the bbdev implementation would include the full FEC including the deRM as well. Are you familiar with 3gpp processing chain?

You can look a the function process_ldpc_dec_cp() in bbdev_turbo_software.c to see how the different SDK libraries are called to implement the full bbdev api.

Note that familiarity with 3GPP 5GNR standard is required

https://doc.dpdk.org/guides/prog_guide/bbdev.html

https://doc.dpdk.org/guides/bbdevs/turbo_sw.html

https://doc.dpdk.org/guides/tools/testbbdev.html

 

Thanks

Nic

 

From: Ginés García Avilés <gines.garcia@i2cat.net>
Sent: Thursday, November 11, 2021 12:23 AM
To: Chautru, Nicolas <nicolas.chautru@intel.com>
Cc: users@dpdk.org
Subject: Re: [test-bbdev] Custom test-vector

 

Hi Nicolas,

thanks a lot for your quick response.

 

Basically, when passing the generated LLRs vector to bblib_ldpc_decode_5gnr()

(bblib_ldpc_decoder_5gnr_request request = {}; request.varNodes = generated_llrs) 

it is able to decode it. 

However, converting the same vector to the bbdev format (from int8 vector to uint32_t chain),

bbdev throws RTE_BBDEV_SYNDROME_ERROR with the "iterationAtTermination" variable always 

equals to the max number of iterations.

 

Where could I find the documentation you are referring to?

 

Thanks in advance!

 

Regards,

Ginés.

 

El mié, 10 nov 2021 a las 19:22, Chautru, Nicolas (<nicolas.chautru@intel.com>) escribió:

Hi Gines,

What do you mean by “flexran DPDK” vs “bbdev”? “The generated LLRs vector is directly decodable by flexRAN DPDK but when using it through 

Bbdev”

The format of the input/output data is defined in the documentation. Basically 1 byte per LLR and captured in vectors with CPU endianness and processing as per 3gpp.

 

Thanks

Nic

 

From: Ginés García Avilés <gines.garcia@i2cat.net>
Sent: Wednesday, November 10, 2021 4:28 AM
To: users@dpdk.org
Cc: Chautru, Nicolas <nicolas.chautru@intel.com>
Subject: [test-bbdev] Custom test-vector

 

Hi,

I'm still trying to generate test vectors for the bbdev application within 

DPDK. More precisely, I want to create a test vector to run an LDPC decoding operation.

 

For that, I'm generating the LLRs with matlab (5G NR toolbox) as follows:

  1) LDPC encoding + rate matching + modulation

  2) Demodulation + rate recover

 

The generated LLRs vector is directly decodable by flexRAN DPDK but when using it through 

bbdev, it takes max iterations to decode, meaning that the decoding process was 

unsuccessful.

 

Any ideas/documentation about how to properly create the test vectors?

 

 

Regards,

Ginés.