1f714a188SAmr Mokhtar.. SPDX-License-Identifier: BSD-3-Clause 2f714a188SAmr Mokhtar Copyright(c) 2017 Intel Corporation 3f714a188SAmr Mokhtar 4f714a188SAmr Mokhtardpdk-test-bbdev Application 5f714a188SAmr Mokhtar=========================== 6f714a188SAmr Mokhtar 7f714a188SAmr MokhtarThe ``dpdk-test-bbdev`` tool is a Data Plane Development Kit (DPDK) utility that 8f714a188SAmr Mokhtarallows measuring performance parameters of PMDs available in the bbdev framework. 9d9f94a92SSarosh ArifTests available for execution are: latency, throughput, validation, 10d793a6f4SNicolas Chautrubler and sanity tests. Execution of tests can be customized using various 11d793a6f4SNicolas Chautruparameters passed to a python running script. 12f714a188SAmr Mokhtar 13f714a188SAmr Mokhtar 14f714a188SAmr MokhtarRunning the Application 15f714a188SAmr Mokhtar----------------------- 16f714a188SAmr Mokhtar 17f714a188SAmr MokhtarThe tool application has a number of command line options: 18f714a188SAmr Mokhtar 19f714a188SAmr Mokhtar.. code-block:: console 20f714a188SAmr Mokhtar 21b1df4163SRobin Jarry test-bbdev.py [-h] [-p TESTAPP_PATH] [-e EAL_PARAMS] [-t TIMEOUT] 22f714a188SAmr Mokhtar [-c TEST_CASE [TEST_CASE ...]] 23f714a188SAmr Mokhtar [-v TEST_VECTOR [TEST_VECTOR...]] [-n NUM_OPS] 24f714a188SAmr Mokhtar [-b BURST_SIZE [BURST_SIZE ...]] [-l NUM_LCORES] 25f41c6e4dSNicolas Chautru [-t MAX_ITERS [MAX_ITERS ...]] 26f41c6e4dSNicolas Chautru [-s SNR [SNR ...]] 27f714a188SAmr Mokhtar 28f714a188SAmr Mokhtarcommand-line Options 29f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~~~~ 30f714a188SAmr Mokhtar 31f714a188SAmr MokhtarThe following are the command-line options: 32f714a188SAmr Mokhtar 33f714a188SAmr Mokhtar``-h, --help`` 34f714a188SAmr Mokhtar Shows help message and exit. 35f714a188SAmr Mokhtar 36f714a188SAmr Mokhtar``-p TESTAPP_PATH, --testapp_path TESTAPP_PATH`` 37f714a188SAmr Mokhtar Indicates the path to the bbdev test app. If not specified path is set based 38*95fcf7bfSCiara Power on "../.." concatenated with "*/build/app/dpdk-test-bbdev*". 39f714a188SAmr Mokhtar 40f714a188SAmr Mokhtar``-e EAL_PARAMS, --eal_params EAL_PARAMS`` 41f714a188SAmr Mokhtar Specifies EAL arguments which are passed to the test app. For more details, 4243628b3dSDavid Marchand refer to DPDK documentation at :doc:`../linux_gsg/linux_eal_parameters`. 43f714a188SAmr Mokhtar 44f714a188SAmr Mokhtar``-t TIMEOUT, --timeout TIMEOUT`` 45f714a188SAmr Mokhtar Specifies timeout in seconds. If not specified timeout is set to 300 seconds. 46f714a188SAmr Mokhtar 47f714a188SAmr Mokhtar``-c TEST_CASE [TEST_CASE ...], --test_cases TEST_CASE [TEST_CASE ...]`` 48f714a188SAmr Mokhtar Defines test cases to run. If not specified all available tests are run. 49f714a188SAmr Mokhtar 50f714a188SAmr Mokhtar **Example usage:** 51f714a188SAmr Mokhtar 52f714a188SAmr Mokhtar ``./test-bbdev.py -c validation`` 53f714a188SAmr Mokhtar Runs validation test suite 54f714a188SAmr Mokhtar 55f714a188SAmr Mokhtar ``./test-bbdev.py -c latency throughput`` 56f714a188SAmr Mokhtar Runs latency and throughput test suites 57f714a188SAmr Mokhtar 58f714a188SAmr Mokhtar``-v TEST_VECTOR [TEST_VECTOR ...], --test_vector TEST_VECTOR [TEST_VECTOR ...]`` 59f714a188SAmr Mokhtar Specifies paths to the test vector files. If not specified path is set based 60*95fcf7bfSCiara Power on "../.." concatenated with "*/app/test-bbdev/test_vectors/bbdev_null.data*" 61*95fcf7bfSCiara Power and indicates default data file. 62f714a188SAmr Mokhtar 63f714a188SAmr Mokhtar **Example usage:** 64f714a188SAmr Mokhtar 65ae828b8cSKamil Chalupnik ``./test-bbdev.py -v app/test-bbdev/test_vectors/turbo_dec_test1.data`` 66ae828b8cSKamil Chalupnik Fills vector based on turbo_dec_test1.data file and runs all tests 67f714a188SAmr Mokhtar 68ae828b8cSKamil Chalupnik ``./test-bbdev.py -v turbo_dec_test1.data turbo_enc_test2.data`` 69f714a188SAmr Mokhtar The bbdev test app is executed twice. First time vector is filled based on 70ae828b8cSKamil Chalupnik *turbo_dec_test1.data* file and second time based on 71ae828b8cSKamil Chalupnik *turb_enc_test2.data* file. For both executions all tests are run. 72f714a188SAmr Mokhtar 73f714a188SAmr Mokhtar``-n NUM_OPS, --num_ops NUM_OPS`` 74f714a188SAmr Mokhtar Specifies number of operations to process on device. If not specified num_ops 75f714a188SAmr Mokhtar is set to 32 operations. 76f714a188SAmr Mokhtar 77f714a188SAmr Mokhtar``-l NUM_LCORES, --num_lcores NUM_LCORES`` 78f714a188SAmr Mokhtar Specifies number of lcores to run. If not specified num_lcores is set 79f714a188SAmr Mokhtar according to value from RTE configuration (EAL coremask) 80f714a188SAmr Mokhtar 81f714a188SAmr Mokhtar``-b BURST_SIZE [BURST_SIZE ...], --burst-size BURST_SIZE [BURST_SIZE ...]`` 82f714a188SAmr Mokhtar Specifies operations enqueue/dequeue burst size. If not specified burst_size is 83f714a188SAmr Mokhtar set to 32. Maximum is 512. 84f714a188SAmr Mokhtar 85f41c6e4dSNicolas Chautru``-t MAX_ITERS [MAX_ITERS ...], --iter_max MAX_ITERS [MAX_ITERS ...]`` 86f41c6e4dSNicolas Chautru Specifies LDPC decoder operations maximum number of iterations for throughput 87f41c6e4dSNicolas Chautru and bler tests. If not specified iter_max is set to 6. 88f41c6e4dSNicolas Chautru 89f41c6e4dSNicolas Chautru``-s SNR [SNR ...], --snr SNR [SNR ...]`` 90f41c6e4dSNicolas Chautru Specifies for LDPC decoder operations the SNR in dB used when generating LLRs 91f41c6e4dSNicolas Chautru for bler tests. If not specified snr is set to 0 dB. 92f41c6e4dSNicolas Chautru 938723590eSKamil ChalupnikTest Cases 948723590eSKamil Chalupnik~~~~~~~~~~ 95f714a188SAmr Mokhtar 96d793a6f4SNicolas ChautruThere are 7 main test cases that can be executed using testbbdev tool: 978723590eSKamil Chalupnik 988723590eSKamil Chalupnik* Sanity checks [-c unittest] 998723590eSKamil Chalupnik - Performs sanity checks on BBDEV interface, validating basic functionality 1008723590eSKamil Chalupnik 1018723590eSKamil Chalupnik* Validation tests [-c validation] 1028723590eSKamil Chalupnik - Performs full operation of enqueue and dequeue 1038723590eSKamil Chalupnik - Compares the dequeued data buffer with a expected values in the test 1048723590eSKamil Chalupnik vector (TV) being used 1058723590eSKamil Chalupnik - Fails if any dequeued value does not match the data in the TV 1068723590eSKamil Chalupnik 1078723590eSKamil Chalupnik* Offload Cost measurement [-c offload] 1088723590eSKamil Chalupnik - Measures the CPU cycles consumed from the receipt of a user enqueue 1098723590eSKamil Chalupnik until it is put on the device queue 1108723590eSKamil Chalupnik - The test measures 4 metrics 1118723590eSKamil Chalupnik (a) *SW Enq Offload Cost*: Software only enqueue offload cost, the cycle 1128723590eSKamil Chalupnik counts and time (us) from the point the enqueue API is called until 1138723590eSKamil Chalupnik the point the operation is put on the accelerator queue. 1148723590eSKamil Chalupnik (b) *Acc Enq Offload Cost*: The cycle count and time (us) from the 1158723590eSKamil Chalupnik point the operation is put on the accelerator queue until the return 1168723590eSKamil Chalupnik from enqueue. 1178723590eSKamil Chalupnik (c) *SW Deq Offload Cost*: Software dequeue cost, the cycle counts and 1188723590eSKamil Chalupnik time (us) consumed to dequeue one operation. 1198723590eSKamil Chalupnik (d) *Empty Queue Enq Offload Cost*: The cycle count and time (us) 1208723590eSKamil Chalupnik consumed to dequeue from an empty queue. 1218723590eSKamil Chalupnik 1228723590eSKamil Chalupnik* Latency measurement [-c latency] 1238723590eSKamil Chalupnik - Measures the time consumed from the first enqueue until the first 1248723590eSKamil Chalupnik appearance of a dequeued result 125d629b7b5SJohn McNamara - This measurement represents the full latency of a bbdev operation 1268723590eSKamil Chalupnik (encode or decode) to execute 1278723590eSKamil Chalupnik 1288723590eSKamil Chalupnik* Poll-mode Throughput measurement [-c throughput] 1298723590eSKamil Chalupnik - Performs full operation of enqueue and dequeue 1308723590eSKamil Chalupnik - Executes in poll mode 1318723590eSKamil Chalupnik - Measures the achieved throughput on a subset or all available CPU cores 1328723590eSKamil Chalupnik - Dequeued data is not validated against expected values stored in TV 1338723590eSKamil Chalupnik - Results are printed in million operations per second and million bits 1348723590eSKamil Chalupnik per second 1358723590eSKamil Chalupnik 136f41c6e4dSNicolas Chautru* BLER measurement [-c bler] 137f41c6e4dSNicolas Chautru - Performs full operation of enqueue and dequeue 138f41c6e4dSNicolas Chautru - Measures the achieved throughput on a subset or all available CPU cores 139f41c6e4dSNicolas Chautru - Computed BLER (Block Error Rate, ratio of blocks not decoded at a given 140f41c6e4dSNicolas Chautru SNR) in % based on the total number of operations. 141f41c6e4dSNicolas Chautru 1428723590eSKamil Chalupnik* Interrupt-mode Throughput [-c interrupt] 1438723590eSKamil Chalupnik - Similar to Throughput test case, but using interrupts. No polling. 1448723590eSKamil Chalupnik 1458723590eSKamil Chalupnik 1468723590eSKamil ChalupnikParameter Globbing 147f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~~ 148f714a188SAmr Mokhtar 149f714a188SAmr MokhtarThanks to the globbing functionality in python test-bbdev.py script allows to 150f714a188SAmr Mokhtarrun tests with different set of vector files without giving all of them explicitly. 151f714a188SAmr Mokhtar 152d793a6f4SNicolas Chautru**Example usage for 4G:** 153f714a188SAmr Mokhtar 154f714a188SAmr Mokhtar.. code-block:: console 155f714a188SAmr Mokhtar 156ae828b8cSKamil Chalupnik ./test-bbdev.py -v app/test-bbdev/test_vectors/turbo_<enc/dec>_c<c>_k<k>_r<r>_e<e>_<extra-info>.data 157f714a188SAmr Mokhtar 158f714a188SAmr MokhtarIt runs all tests with following vectors: 159f714a188SAmr Mokhtar 160ae828b8cSKamil Chalupnik- ``bbdev_null.data`` 161f714a188SAmr Mokhtar 16243b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data`` 16347d5a049SKamil Chalupnik 16447d5a049SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e1196_rm.data`` 16547d5a049SKamil Chalupnik 16643b767f6SKamil Chalupnik- ``turbo_enc_c2_k5952_r0_e17868_crc24b.data`` 16743b767f6SKamil Chalupnik 16843b767f6SKamil Chalupnik- ``turbo_dec_c1_k40_r0_e17280_sbd_negllr.data`` 16943b767f6SKamil Chalupnik 17043b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data`` 17143b767f6SKamil Chalupnik 17247d5a049SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e272_rm.data`` 173f714a188SAmr Mokhtar 17443b767f6SKamil Chalupnik- ``turbo_enc_c3_k4800_r2_e14412_crc24b.data`` 17543b767f6SKamil Chalupnik 17643b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data`` 17743b767f6SKamil Chalupnik 17843b767f6SKamil Chalupnik- ``turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data`` 17943b767f6SKamil Chalupnik 18043b767f6SKamil Chalupnik- ``turbo_enc_c1_k6144_r0_e120_rm_rvidx.data`` 18143b767f6SKamil Chalupnik 18243b767f6SKamil Chalupnik- ``turbo_enc_c4_k4800_r2_e14412_crc24b.data`` 18343b767f6SKamil Chalupnik 18443b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data`` 18543b767f6SKamil Chalupnik 18643b767f6SKamil Chalupnik- ``turbo_dec_c2_k3136_r0_e4920_sbd_negllr.data`` 18743b767f6SKamil Chalupnik 18843b767f6SKamil Chalupnik- ``turbo_enc_c1_k6144_r0_e18444.data`` 18943b767f6SKamil Chalupnik 19043b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e34560_negllr.data`` 19143b767f6SKamil Chalupnik 19243b767f6SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e1190_rm.data`` 19343b767f6SKamil Chalupnik 19443b767f6SKamil Chalupnik- ``turbo_enc_c1_k6144_r0_e18448_crc24a.data`` 19543b767f6SKamil Chalupnik 19643b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e34560_posllr.data`` 19743b767f6SKamil Chalupnik 19843b767f6SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e1194_rm.data`` 19943b767f6SKamil Chalupnik 200ae828b8cSKamil Chalupnik- ``turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data`` 201ae828b8cSKamil Chalupnik 202f714a188SAmr Mokhtar.. code-block:: console 203f714a188SAmr Mokhtar 204ae828b8cSKamil Chalupnik ./test-bbdev.py -v app/test-bbdev/turbo_*_default.data 205f714a188SAmr Mokhtar 206ae828b8cSKamil ChalupnikIt runs all tests with "default" vectors. 207f714a188SAmr Mokhtar 208ae828b8cSKamil Chalupnik* ``turbo_dec_default.data`` is a soft link to 209ae828b8cSKamil Chalupnik ``turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data`` 210f714a188SAmr Mokhtar 211ae828b8cSKamil Chalupnik* ``turbo_enc_default.data`` is a soft link to 212ae828b8cSKamil Chalupnik ``turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data`` 213f714a188SAmr Mokhtar 214d793a6f4SNicolas Chautru* ``ldpc_dec_default.data`` is a soft link to 215d793a6f4SNicolas Chautru ``ldpc_dec_v6563.data`` 216d793a6f4SNicolas Chautru 217d793a6f4SNicolas Chautru* ``ldpc_enc_default.data`` is a soft link to 218d793a6f4SNicolas Chautru ``ldpc_enc_c1_k8148_r0_e9372_rm.data`` 219f714a188SAmr Mokhtar 220f714a188SAmr MokhtarRunning Tests 221f714a188SAmr Mokhtar------------- 222f714a188SAmr Mokhtar 223d793a6f4SNicolas ChautruAll default reference test-vectors are stored in the test_vector 224d793a6f4SNicolas Chautrudirectory below. 225d793a6f4SNicolas ChautruThe prefix trivially defines which type of operation is included : 226d793a6f4SNicolas Chautruturbo_enc, turbo_dec, ldpc_enc, ldpc_dec. 227d793a6f4SNicolas ChautruThe details of the configuration are captured in the file but some 228d793a6f4SNicolas Chautruvector name refer more explicitly processing specificity such as 229d793a6f4SNicolas Chautru'HARQ' when HARQ retransmission is used, 'loopback' when the data 230d793a6f4SNicolas Chautruis purely read/written for external DDR, lbrm when limited buffer 231d793a6f4SNicolas Chautrurate matching is expected, or crc_fail when a CRC failure is expected. 232d793a6f4SNicolas ChautruThey are chosen to have a good coverage across sizes and processing 233d793a6f4SNicolas Chautruparameters while still keeping their number limited as part of sanity 234d793a6f4SNicolas Chautruregression. 235d793a6f4SNicolas Chautru 236*95fcf7bfSCiara PowerShortened tree of isg_cid-wireless_dpdk_ae with dpdk compiled and output 237*95fcf7bfSCiara Powerto the build directory: 238f714a188SAmr Mokhtar 239f714a188SAmr Mokhtar:: 240f714a188SAmr Mokhtar 241f714a188SAmr Mokhtar |-- app 242f714a188SAmr Mokhtar |-- test-bbdev 243f714a188SAmr Mokhtar |-- test_vectors 244f714a188SAmr Mokhtar 245*95fcf7bfSCiara Power |-- build 246f714a188SAmr Mokhtar |-- app 247*95fcf7bfSCiara Power |-- dpdk-test-bbdev 248f714a188SAmr Mokhtar 249f714a188SAmr MokhtarAll bbdev devices 250f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~ 251f714a188SAmr Mokhtar 252f714a188SAmr Mokhtar.. code-block:: console 253f714a188SAmr Mokhtar 254*95fcf7bfSCiara Power ./test-bbdev.py -p ../../build/app/dpdk-test-bbdev 255ae828b8cSKamil Chalupnik -v turbo_dec_default.data 256f714a188SAmr Mokhtar 257f714a188SAmr MokhtarIt runs all available tests using the test vector filled based on 258ae828b8cSKamil Chalupnik*turbo_dec_default.data* file. 259f714a188SAmr MokhtarBy default number of operations to process on device is set to 32, timeout is 260f714a188SAmr Mokhtarset to 300s and operations enqueue/dequeue burst size is set to 32. 2617ce00bf3SKamil ChalupnikMoreover a bbdev (*baseband_null*) device will be created. 262f714a188SAmr Mokhtar 2637ce00bf3SKamil Chalupnikbaseband turbo_sw device 2647ce00bf3SKamil Chalupnik~~~~~~~~~~~~~~~~~~~~~~~~ 265f714a188SAmr Mokhtar 266f714a188SAmr Mokhtar.. code-block:: console 267f714a188SAmr Mokhtar 268*95fcf7bfSCiara Power ./test-bbdev.py -p ../../build/app/dpdk-test-bbdev 2697ce00bf3SKamil Chalupnik -e="--vdev=baseband_turbo_sw" -t 120 -c validation 270d793a6f4SNicolas Chautru -v ./test_vectors/* -n 64 -b 8 32 271f714a188SAmr Mokhtar 272f714a188SAmr MokhtarIt runs **validation** test for each vector file that matches the given pattern. 273f714a188SAmr MokhtarNumber of operations to process on device is set to 64 and operations timeout is 274f714a188SAmr Mokhtarset to 120s and enqueue/dequeue burst size is set to 8 and to 32. 2757ce00bf3SKamil ChalupnikMoreover a bbdev (*baseband_turbo_sw*) device will be created. 276f714a188SAmr Mokhtar 277f714a188SAmr Mokhtar 278f714a188SAmr Mokhtarbbdev null device 279f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~ 280f714a188SAmr Mokhtar 281ae828b8cSKamil ChalupnikExecuting bbdev null device with *bbdev_null.data* helps in measuring the 282f714a188SAmr Mokhtaroverhead introduced by the bbdev framework. 283f714a188SAmr Mokhtar 284f714a188SAmr Mokhtar.. code-block:: console 285f714a188SAmr Mokhtar 2867ce00bf3SKamil Chalupnik ./test-bbdev.py -e="--vdev=baseband_null0" 287ae828b8cSKamil Chalupnik -v ./test_vectors/bbdev_null.data 288f714a188SAmr Mokhtar 289f714a188SAmr Mokhtar**Note:** 290f714a188SAmr Mokhtar 2917ce00bf3SKamil Chalupnikbaseband_null device does not have to be defined explicitly as it is created by default. 292f714a188SAmr Mokhtar 293f714a188SAmr Mokhtar 294f714a188SAmr Mokhtar 295f714a188SAmr MokhtarTest Vector files 296c5e2e085SThomas Monjalon----------------- 297f714a188SAmr Mokhtar 298f714a188SAmr MokhtarTest Vector files contain the data which is used to set turbo decoder/encoder 299f714a188SAmr Mokhtarparameters and buffers for validation purpose. New test vector files should be 300f714a188SAmr Mokhtarstored in ``app/test-bbdev/test_vectors/`` directory. Detailed description of 301f714a188SAmr Mokhtarthe syntax of the test vector files is in the following section. 302f714a188SAmr Mokhtar 303f714a188SAmr Mokhtar 304f714a188SAmr MokhtarBasic principles for test vector files 305c5e2e085SThomas Monjalon~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306f714a188SAmr MokhtarLine started with ``#`` is treated as a comment and is ignored. 307f714a188SAmr Mokhtar 308f714a188SAmr MokhtarIf variable is a chain of values, values should be separated by a comma. If 309f714a188SAmr Mokhtarassignment is split into several lines, each line (except the last one) has to 310f714a188SAmr Mokhtarbe ended with a comma. 311f714a188SAmr MokhtarThere is no comma after last value in last line. Correct assignment should 312f714a188SAmr Mokhtarlook like the following: 313f714a188SAmr Mokhtar 314f714a188SAmr Mokhtar.. parsed-literal:: 315f714a188SAmr Mokhtar 316f714a188SAmr Mokhtar variable = 317f714a188SAmr Mokhtar value, value, value, value, 318f714a188SAmr Mokhtar value, value 319f714a188SAmr Mokhtar 320f714a188SAmr MokhtarIn case where variable is a single value correct assignment looks like the 321f714a188SAmr Mokhtarfollowing: 322f714a188SAmr Mokhtar 323f714a188SAmr Mokhtar.. parsed-literal:: 324f714a188SAmr Mokhtar 325f714a188SAmr Mokhtar variable = 326f714a188SAmr Mokhtar value 327f714a188SAmr Mokhtar 328f714a188SAmr MokhtarLength of chain variable is calculated by parser. Can not be defined 329f714a188SAmr Mokhtarexplicitly. 330f714a188SAmr Mokhtar 331f714a188SAmr MokhtarVariable op_type has to be defined as a first variable in file. It specifies 332d793a6f4SNicolas Chautruwhat type of operations will be executed. For 4G decoder op_type has to be set to 333d793a6f4SNicolas Chautru``RTE_BBDEV_OP_TURBO_DEC`` and for 4G encoder to ``RTE_BBDEV_OP_TURBO_ENC``. 334f714a188SAmr Mokhtar 335f714a188SAmr MokhtarFull details of the meaning and valid values for the below fields are 336f714a188SAmr Mokhtardocumented in *rte_bbdev_op.h* 337f714a188SAmr Mokhtar 338f714a188SAmr Mokhtar 339f714a188SAmr MokhtarTurbo decoder test vectors template 340c5e2e085SThomas Monjalon~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341f714a188SAmr Mokhtar 342f714a188SAmr MokhtarFor turbo decoder it has to be always set to ``RTE_BBDEV_OP_TURBO_DEC`` 343f714a188SAmr Mokhtar 344f714a188SAmr Mokhtar.. parsed-literal:: 345f714a188SAmr Mokhtar 346f714a188SAmr Mokhtar op_type = 347f714a188SAmr Mokhtar RTE_BBDEV_OP_TURBO_DEC 348f714a188SAmr Mokhtar 349f714a188SAmr MokhtarChain of uint32_t values. Note that it is possible to define more than one 350f714a188SAmr Mokhtarinput/output entries which will result in chaining two or more data structures 351f714a188SAmr Mokhtarfor *segmented Transport Blocks* 352f714a188SAmr Mokhtar 353f714a188SAmr Mokhtar.. parsed-literal:: 354f714a188SAmr Mokhtar 355f714a188SAmr Mokhtar input0 = 356f714a188SAmr Mokhtar 0x00000000, 0x7f817f00, 0x7f7f8100, 0x817f8100, 0x81008100, 0x7f818100, 0x81817f00, 0x7f818100, 357f714a188SAmr Mokhtar 0x81007f00, 0x7f818100, 0x817f8100, 0x81817f00, 0x81008100, 0x817f7f00, 0x7f7f8100, 0x81817f00 358f714a188SAmr Mokhtar 359f714a188SAmr MokhtarChain of uint32_t values 360f714a188SAmr Mokhtar 361f714a188SAmr Mokhtar.. parsed-literal:: 362f714a188SAmr Mokhtar 363f714a188SAmr Mokhtar input1 = 364f714a188SAmr Mokhtar 0x7f7f0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 365f714a188SAmr Mokhtar 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 366f714a188SAmr Mokhtar 367f714a188SAmr MokhtarChain of uint32_t values 368f714a188SAmr Mokhtar 369f714a188SAmr Mokhtar.. parsed-literal:: 370f714a188SAmr Mokhtar 371f714a188SAmr Mokhtar input2 = 372f714a188SAmr Mokhtar 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 373f714a188SAmr Mokhtar 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 374f714a188SAmr Mokhtar 375f714a188SAmr MokhtarChain of uint32_t values 376f714a188SAmr Mokhtar 377f714a188SAmr Mokhtar.. parsed-literal:: 378f714a188SAmr Mokhtar 379f714a188SAmr Mokhtar hard_output0 = 380f714a188SAmr Mokhtar 0xa7d6732e 381f714a188SAmr Mokhtar 382f714a188SAmr MokhtarChain of uint32_t values 383f714a188SAmr Mokhtar 384f714a188SAmr Mokhtar.. parsed-literal:: 385f714a188SAmr Mokhtar 386f714a188SAmr Mokhtar hard_output1 = 387f714a188SAmr Mokhtar 0xa61 388f714a188SAmr Mokhtar 389f714a188SAmr MokhtarChain of uint32_t values 390f714a188SAmr Mokhtar 391f714a188SAmr Mokhtar.. parsed-literal:: 392f714a188SAmr Mokhtar 393f714a188SAmr Mokhtar soft_output0 = 394f714a188SAmr Mokhtar 0x817f817f, 0x7f817f7f, 0x81818181, 0x817f7f81, 0x7f818181, 0x8181817f, 0x817f817f, 0x8181817f 395f714a188SAmr Mokhtar 396f714a188SAmr MokhtarChain of uint32_t values 397f714a188SAmr Mokhtar 398f714a188SAmr Mokhtar.. parsed-literal:: 399f714a188SAmr Mokhtar 400f714a188SAmr Mokhtar soft_output1 = 401f714a188SAmr Mokhtar 0x817f7f81, 0x7f7f7f81, 0x7f7f8181 402f714a188SAmr Mokhtar 403f714a188SAmr Mokhtaruint32_t value 404f714a188SAmr Mokhtar 405f714a188SAmr Mokhtar.. parsed-literal:: 406f714a188SAmr Mokhtar 407f714a188SAmr Mokhtar e = 408f714a188SAmr Mokhtar 44 409f714a188SAmr Mokhtar 410f714a188SAmr Mokhtaruint16_t value 411f714a188SAmr Mokhtar 412f714a188SAmr Mokhtar.. parsed-literal:: 413f714a188SAmr Mokhtar 414f714a188SAmr Mokhtar k = 415f714a188SAmr Mokhtar 40 416f714a188SAmr Mokhtar 417f714a188SAmr Mokhtaruint8_t value 418f714a188SAmr Mokhtar 419f714a188SAmr Mokhtar.. parsed-literal:: 420f714a188SAmr Mokhtar 421f714a188SAmr Mokhtar rv_index = 422f714a188SAmr Mokhtar 0 423f714a188SAmr Mokhtar 424f714a188SAmr Mokhtaruint8_t value 425f714a188SAmr Mokhtar 426f714a188SAmr Mokhtar.. parsed-literal:: 427f714a188SAmr Mokhtar 428f714a188SAmr Mokhtar iter_max = 429f714a188SAmr Mokhtar 8 430f714a188SAmr Mokhtar 431f714a188SAmr Mokhtaruint8_t value 432f714a188SAmr Mokhtar 433f714a188SAmr Mokhtar.. parsed-literal:: 434f714a188SAmr Mokhtar 435f714a188SAmr Mokhtar iter_min = 436f714a188SAmr Mokhtar 4 437f714a188SAmr Mokhtar 438f714a188SAmr Mokhtaruint8_t value 439f714a188SAmr Mokhtar 440f714a188SAmr Mokhtar.. parsed-literal:: 441f714a188SAmr Mokhtar 442f714a188SAmr Mokhtar expected_iter_count = 443f714a188SAmr Mokhtar 8 444f714a188SAmr Mokhtar 445f714a188SAmr Mokhtaruint8_t value 446f714a188SAmr Mokhtar 447f714a188SAmr Mokhtar.. parsed-literal:: 448f714a188SAmr Mokhtar 449f714a188SAmr Mokhtar ext_scale = 450f714a188SAmr Mokhtar 15 451f714a188SAmr Mokhtar 452f714a188SAmr Mokhtaruint8_t value 453f714a188SAmr Mokhtar 454f714a188SAmr Mokhtar.. parsed-literal:: 455f714a188SAmr Mokhtar 456f714a188SAmr Mokhtar num_maps = 457f714a188SAmr Mokhtar 0 458f714a188SAmr Mokhtar 459d793a6f4SNicolas ChautruChain of flags for LDPC decoder operation based on the rte_bbdev_op_td_flag_bitmasks: 460f714a188SAmr Mokhtar 461f714a188SAmr MokhtarExample: 462f714a188SAmr Mokhtar 463f714a188SAmr Mokhtar .. parsed-literal:: 464f714a188SAmr Mokhtar 465f714a188SAmr Mokhtar op_flags = 466f714a188SAmr Mokhtar RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_EQUALIZER, 467f714a188SAmr Mokhtar RTE_BBDEV_TURBO_SOFT_OUTPUT 468f714a188SAmr Mokhtar 469f714a188SAmr MokhtarChain of operation statuses that are expected after operation is performed. 470f714a188SAmr MokhtarFollowing statuses can be used: 471f714a188SAmr Mokhtar 472f714a188SAmr Mokhtar- ``DMA`` 473f714a188SAmr Mokhtar 474f714a188SAmr Mokhtar- ``FCW`` 475f714a188SAmr Mokhtar 476f714a188SAmr Mokhtar- ``CRC`` 477f714a188SAmr Mokhtar 478f714a188SAmr Mokhtar- ``OK`` 479f714a188SAmr Mokhtar 480f714a188SAmr Mokhtar``OK`` means no errors are expected. Cannot be used with other values. 481f714a188SAmr Mokhtar 482f714a188SAmr Mokhtar.. parsed-literal:: 483f714a188SAmr Mokhtar 484f714a188SAmr Mokhtar expected_status = 485f714a188SAmr Mokhtar FCW, CRC 486f714a188SAmr Mokhtar 487f714a188SAmr Mokhtar 488f714a188SAmr MokhtarTurbo encoder test vectors template 489c5e2e085SThomas Monjalon~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 490f714a188SAmr Mokhtar 491f714a188SAmr MokhtarFor turbo encoder it has to be always set to ``RTE_BBDEV_OP_TURBO_ENC`` 492f714a188SAmr Mokhtar 493f714a188SAmr Mokhtar.. parsed-literal:: 494f714a188SAmr Mokhtar 495f714a188SAmr Mokhtar op_type = 496f714a188SAmr Mokhtar RTE_BBDEV_OP_TURBO_ENC 497f714a188SAmr Mokhtar 498f714a188SAmr MokhtarChain of uint32_t values 499f714a188SAmr Mokhtar 500f714a188SAmr Mokhtar.. parsed-literal:: 501f714a188SAmr Mokhtar 502f714a188SAmr Mokhtar input0 = 503f714a188SAmr Mokhtar 0x11d2bcac, 0x4d 504f714a188SAmr Mokhtar 505f714a188SAmr MokhtarChain of uint32_t values 506f714a188SAmr Mokhtar 507f714a188SAmr Mokhtar.. parsed-literal:: 508f714a188SAmr Mokhtar 509f714a188SAmr Mokhtar output0 = 510f714a188SAmr Mokhtar 0xd2399179, 0x640eb999, 0x2cbaf577, 0xaf224ae2, 0x9d139927, 0xe6909b29, 511f714a188SAmr Mokhtar 0xa25b7f47, 0x2aa224ce, 0x79f2 512f714a188SAmr Mokhtar 513f714a188SAmr Mokhtaruint32_t value 514f714a188SAmr Mokhtar 515f714a188SAmr Mokhtar.. parsed-literal:: 516f714a188SAmr Mokhtar 517f714a188SAmr Mokhtar e = 518f714a188SAmr Mokhtar 272 519f714a188SAmr Mokhtar 520f714a188SAmr Mokhtaruint16_t value 521f714a188SAmr Mokhtar 522f714a188SAmr Mokhtar.. parsed-literal:: 523f714a188SAmr Mokhtar 524f714a188SAmr Mokhtar k = 525f714a188SAmr Mokhtar 40 526f714a188SAmr Mokhtar 527f714a188SAmr Mokhtaruint16_t value 528f714a188SAmr Mokhtar 529f714a188SAmr Mokhtar.. parsed-literal:: 530f714a188SAmr Mokhtar 531f714a188SAmr Mokhtar ncb = 532f714a188SAmr Mokhtar 192 533f714a188SAmr Mokhtar 534f714a188SAmr Mokhtaruint8_t value 535f714a188SAmr Mokhtar 536f714a188SAmr Mokhtar.. parsed-literal:: 537f714a188SAmr Mokhtar 538f714a188SAmr Mokhtar rv_index = 539f714a188SAmr Mokhtar 0 540f714a188SAmr Mokhtar 541d793a6f4SNicolas ChautruChain of flags for LDPC decoder operation based on the rte_bbdev_op_te_flag_bitmasks: 542f714a188SAmr Mokhtar 543f714a188SAmr Mokhtar``RTE_BBDEV_TURBO_ENC_SCATTER_GATHER`` is used to indicate the parser to 544f714a188SAmr Mokhtarforce the input data to be memory split and formed as a segmented mbuf. 545f714a188SAmr Mokhtar 546f714a188SAmr Mokhtar 547f714a188SAmr Mokhtar.. parsed-literal:: 548f714a188SAmr Mokhtar 549f714a188SAmr Mokhtar op_flags = 550f714a188SAmr Mokhtar RTE_BBDEV_TURBO_RATE_MATCH 551f714a188SAmr Mokhtar 552f714a188SAmr MokhtarChain of operation statuses that are expected after operation is performed. 553f714a188SAmr MokhtarFollowing statuses can be used: 554f714a188SAmr Mokhtar 555f714a188SAmr Mokhtar- ``DMA`` 556f714a188SAmr Mokhtar 557f714a188SAmr Mokhtar- ``FCW`` 558f714a188SAmr Mokhtar 559f714a188SAmr Mokhtar- ``OK`` 560f714a188SAmr Mokhtar 561f714a188SAmr Mokhtar``OK`` means no errors are expected. Cannot be used with other values. 562f714a188SAmr Mokhtar 563f714a188SAmr Mokhtar.. parsed-literal:: 564f714a188SAmr Mokhtar 565f714a188SAmr Mokhtar expected_status = 566f714a188SAmr Mokhtar OK 567d793a6f4SNicolas Chautru 568d793a6f4SNicolas ChautruLDPC decoder test vectors template 569d793a6f4SNicolas Chautru~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570d793a6f4SNicolas Chautru 571d793a6f4SNicolas ChautruFor LDPC decoder it has to be always set to ``RTE_BBDEV_OP_LDPC_DEC`` 572d793a6f4SNicolas Chautru 573d793a6f4SNicolas Chautru.. parsed-literal:: 574d793a6f4SNicolas Chautru 575d793a6f4SNicolas Chautru op_type = 576d793a6f4SNicolas Chautru RTE_BBDEV_OP_LDPC_DEC 577d793a6f4SNicolas Chautru 578d793a6f4SNicolas ChautruChain of uint32_t values. Note that it is possible to define more than one 579d793a6f4SNicolas Chautruinput/output entries which will result in chaining two or more data structures 580d793a6f4SNicolas Chautrufor *segmented Transport Blocks* 581d793a6f4SNicolas Chautru 582d793a6f4SNicolas Chautru.. parsed-literal:: 583d793a6f4SNicolas Chautru 584d793a6f4SNicolas Chautru input0 = 585d793a6f4SNicolas Chautru 0x00000000, 0x7f817f00, 0x7f7f8100, 0x817f8100, 0x81008100, 0x7f818100, 0x81817f00, 0x7f818100, 586d793a6f4SNicolas Chautru 0x81007f00, 0x7f818100, 0x817f8100, 0x81817f00, 0x81008100, 0x817f7f00, 0x7f7f8100, 0x81817f00 587d793a6f4SNicolas Chautru 588d793a6f4SNicolas Chautru.. parsed-literal:: 589d793a6f4SNicolas Chautru 590d793a6f4SNicolas Chautru output0 = 591d793a6f4SNicolas Chautru 0xa7d6732e 592d793a6f4SNicolas Chautru 593d793a6f4SNicolas Chautruuint8_t value 594d793a6f4SNicolas Chautru 595d793a6f4SNicolas Chautru.. parsed-literal:: 596d793a6f4SNicolas Chautru 597d793a6f4SNicolas Chautru basegraph= 598d793a6f4SNicolas Chautru 1 599d793a6f4SNicolas Chautru 600d793a6f4SNicolas Chautruuint16_t value 601d793a6f4SNicolas Chautru 602d793a6f4SNicolas Chautru.. parsed-literal:: 603d793a6f4SNicolas Chautru 604d793a6f4SNicolas Chautru z_c= 605d793a6f4SNicolas Chautru 224 606d793a6f4SNicolas Chautru 607d793a6f4SNicolas Chautruuint16_t value 608d793a6f4SNicolas Chautru 609d793a6f4SNicolas Chautru.. parsed-literal:: 610d793a6f4SNicolas Chautru 611d793a6f4SNicolas Chautru n_cb= 612d793a6f4SNicolas Chautru 14784 613d793a6f4SNicolas Chautru 614d793a6f4SNicolas Chautruuint8_t value 615d793a6f4SNicolas Chautru 616d793a6f4SNicolas Chautru.. parsed-literal:: 617d793a6f4SNicolas Chautru 618d793a6f4SNicolas Chautru q_m= 619d793a6f4SNicolas Chautru 1 620d793a6f4SNicolas Chautru 621d793a6f4SNicolas Chautruuint16_t value 622d793a6f4SNicolas Chautru 623d793a6f4SNicolas Chautru.. parsed-literal:: 624d793a6f4SNicolas Chautru 625d793a6f4SNicolas Chautru n_filler= 626d793a6f4SNicolas Chautru 40 627d793a6f4SNicolas Chautru 628d793a6f4SNicolas Chautruuint32_t value 629d793a6f4SNicolas Chautru 630d793a6f4SNicolas Chautru.. parsed-literal:: 631d793a6f4SNicolas Chautru 632d793a6f4SNicolas Chautru e= 633d793a6f4SNicolas Chautru 13072 634d793a6f4SNicolas Chautru 635d793a6f4SNicolas Chautruuint8_t value 636d793a6f4SNicolas Chautru 637d793a6f4SNicolas Chautru.. parsed-literal:: 638d793a6f4SNicolas Chautru 639d793a6f4SNicolas Chautru rv_index= 640d793a6f4SNicolas Chautru 2 641d793a6f4SNicolas Chautru 642d793a6f4SNicolas Chautruuint8_t value 643d793a6f4SNicolas Chautru 644d793a6f4SNicolas Chautru.. parsed-literal:: 645d793a6f4SNicolas Chautru code_block_mode= 646d793a6f4SNicolas Chautru 1 647d793a6f4SNicolas Chautru 648d793a6f4SNicolas Chautruuint8_t value 649d793a6f4SNicolas Chautru 650d793a6f4SNicolas Chautru.. parsed-literal:: 651d793a6f4SNicolas Chautru 652d793a6f4SNicolas Chautru iter_max= 653d793a6f4SNicolas Chautru 20 654d793a6f4SNicolas Chautru 655d793a6f4SNicolas Chautruuint8_t value 656d793a6f4SNicolas Chautru 657d793a6f4SNicolas Chautru.. parsed-literal:: 658d793a6f4SNicolas Chautru 659d793a6f4SNicolas Chautru expected_iter_count= 660d793a6f4SNicolas Chautru 8 661d793a6f4SNicolas Chautru 662d793a6f4SNicolas Chautru 663d793a6f4SNicolas ChautruChain of flags for LDPC decoder operation based on the rte_bbdev_op_ldpcdec_flag_bitmasks: 664d793a6f4SNicolas Chautru 665d793a6f4SNicolas ChautruExample: 666d793a6f4SNicolas Chautru 667d793a6f4SNicolas Chautru .. parsed-literal:: 668d793a6f4SNicolas Chautru 669d793a6f4SNicolas Chautru op_flags = 670d793a6f4SNicolas Chautru RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE, RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE, 671d793a6f4SNicolas Chautru RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE, RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION 672d793a6f4SNicolas Chautru 673d793a6f4SNicolas ChautruChain of operation statuses that are expected after operation is performed. 674d793a6f4SNicolas ChautruFollowing statuses can be used: 675d793a6f4SNicolas Chautru 676d793a6f4SNicolas Chautru- ``OK`` : No error reported. 677d793a6f4SNicolas Chautru 678d793a6f4SNicolas Chautru- ``SYN`` : LDPC syndrome parity check is failing. 679d793a6f4SNicolas Chautru 680d793a6f4SNicolas Chautru- ``CRC`` : CRC parity check is failing when CRC check operation is included. 681d793a6f4SNicolas Chautru 682d793a6f4SNicolas Chautru- ``SYNCRC`` : Both CRC and LDPC syndromes parity checks are failing. 683d793a6f4SNicolas Chautru 684d793a6f4SNicolas Chautru``OK`` means no errors are expected. Cannot be used with other values. 685d793a6f4SNicolas Chautru 686d793a6f4SNicolas Chautru.. parsed-literal:: 687d793a6f4SNicolas Chautru 688d793a6f4SNicolas Chautru expected_status = 689d793a6f4SNicolas Chautru CRC 690d793a6f4SNicolas Chautru 691d793a6f4SNicolas Chautru 692d793a6f4SNicolas ChautruLDPC encoder test vectors template 693d793a6f4SNicolas Chautru~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694d793a6f4SNicolas Chautru 695d793a6f4SNicolas ChautruFor turbo encoder it has to be always set to ``RTE_BBDEV_OP_LDPC_ENC`` 696d793a6f4SNicolas Chautru 697d793a6f4SNicolas Chautru.. parsed-literal:: 698d793a6f4SNicolas Chautru 699d793a6f4SNicolas Chautru op_type = 700d793a6f4SNicolas Chautru RTE_BBDEV_OP_LDPC_ENC 701d793a6f4SNicolas Chautru 702d793a6f4SNicolas ChautruChain of uint32_t values 703d793a6f4SNicolas Chautru 704d793a6f4SNicolas Chautru.. parsed-literal:: 705d793a6f4SNicolas Chautru 706d793a6f4SNicolas Chautru input0 = 707d793a6f4SNicolas Chautru 0x11d2bcac, 0x4d 708d793a6f4SNicolas Chautru 709d793a6f4SNicolas ChautruChain of uint32_t values 710d793a6f4SNicolas Chautru 711d793a6f4SNicolas Chautru.. parsed-literal:: 712d793a6f4SNicolas Chautru 713d793a6f4SNicolas Chautru output0 = 714d793a6f4SNicolas Chautru 0xd2399179, 0x640eb999, 0x2cbaf577, 0xaf224ae2, 0x9d139927, 0xe6909b29, 715d793a6f4SNicolas Chautru 0xa25b7f47, 0x2aa224ce, 0x79f2 716d793a6f4SNicolas Chautru 717d793a6f4SNicolas Chautru 718d793a6f4SNicolas Chautruuint8_t value 719d793a6f4SNicolas Chautru 720d793a6f4SNicolas Chautru.. parsed-literal:: 721d793a6f4SNicolas Chautru 722d793a6f4SNicolas Chautru basegraph= 723d793a6f4SNicolas Chautru 1 724d793a6f4SNicolas Chautru 725d793a6f4SNicolas Chautruuint16_t value 726d793a6f4SNicolas Chautru 727d793a6f4SNicolas Chautru.. parsed-literal:: 728d793a6f4SNicolas Chautru 729d793a6f4SNicolas Chautru z_c= 730d793a6f4SNicolas Chautru 52 731d793a6f4SNicolas Chautru 732d793a6f4SNicolas Chautruuint16_t value 733d793a6f4SNicolas Chautru 734d793a6f4SNicolas Chautru.. parsed-literal:: 735d793a6f4SNicolas Chautru 736d793a6f4SNicolas Chautru n_cb= 737d793a6f4SNicolas Chautru 3432 738d793a6f4SNicolas Chautru 739d793a6f4SNicolas Chautruuint8_t value 740d793a6f4SNicolas Chautru 741d793a6f4SNicolas Chautru.. parsed-literal:: 742d793a6f4SNicolas Chautru 743d793a6f4SNicolas Chautru q_m= 744d793a6f4SNicolas Chautru 6 745d793a6f4SNicolas Chautru 746d793a6f4SNicolas Chautruuint16_t value 747d793a6f4SNicolas Chautru 748d793a6f4SNicolas Chautru.. parsed-literal:: 749d793a6f4SNicolas Chautru 750d793a6f4SNicolas Chautru n_filler= 751d793a6f4SNicolas Chautru 0 752d793a6f4SNicolas Chautru 753d793a6f4SNicolas Chautruuint32_t value 754d793a6f4SNicolas Chautru 755d793a6f4SNicolas Chautru.. parsed-literal:: 756d793a6f4SNicolas Chautru 757d793a6f4SNicolas Chautru e = 758d793a6f4SNicolas Chautru 1380 759d793a6f4SNicolas Chautru 760d793a6f4SNicolas Chautruuint8_t value 761d793a6f4SNicolas Chautru 762d793a6f4SNicolas Chautru.. parsed-literal:: 763d793a6f4SNicolas Chautru 764d793a6f4SNicolas Chautru rv_index = 765d793a6f4SNicolas Chautru 1 766d793a6f4SNicolas Chautru 767d793a6f4SNicolas Chautruuint8_t value 768d793a6f4SNicolas Chautru 769d793a6f4SNicolas Chautru.. parsed-literal:: 770d793a6f4SNicolas Chautru 771d793a6f4SNicolas Chautru code_block_mode = 772d793a6f4SNicolas Chautru 1 773d793a6f4SNicolas Chautru 774d793a6f4SNicolas Chautru 775d793a6f4SNicolas ChautruChain of flags for LDPC encoder operation based on the 776d793a6f4SNicolas Chautrurte_bbdev_op_ldpcenc_flag_bitmasks: 777d793a6f4SNicolas Chautru 778d793a6f4SNicolas Chautru.. parsed-literal:: 779d793a6f4SNicolas Chautru 780d793a6f4SNicolas Chautru op_flags = 781d793a6f4SNicolas Chautru RTE_BBDEV_LDPC_RATE_MATCH 782d793a6f4SNicolas Chautru 783d793a6f4SNicolas ChautruChain of operation statuses that are expected after operation is performed. 784d793a6f4SNicolas ChautruFollowing statuses can be used: 785d793a6f4SNicolas Chautru 786d793a6f4SNicolas Chautru- ``DMA`` 787d793a6f4SNicolas Chautru 788d793a6f4SNicolas Chautru- ``FCW`` 789d793a6f4SNicolas Chautru 790d793a6f4SNicolas Chautru- ``OK`` 791d793a6f4SNicolas Chautru 792d793a6f4SNicolas Chautru``OK`` means no errors are expected. Cannot be used with other values. 793d793a6f4SNicolas Chautru 794d793a6f4SNicolas Chautru.. parsed-literal:: 795d793a6f4SNicolas Chautru 796d793a6f4SNicolas Chautru expected_status = 797d793a6f4SNicolas Chautru OK 798