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. 9f714a188SAmr MokhtarAvailable tests available for execution are: latency, throughput, validation and 10f714a188SAmr Mokhtarsanity tests. Execution of tests can be customized using various parameters 11f714a188SAmr Mokhtarpassed to a python running script. 12f714a188SAmr Mokhtar 13f714a188SAmr MokhtarCompiling the Application 14f714a188SAmr Mokhtar------------------------- 15f714a188SAmr Mokhtar 16f714a188SAmr Mokhtar**Step 1: PMD setting** 17f714a188SAmr Mokhtar 18f714a188SAmr MokhtarThe ``dpdk-test-bbdev`` tool depends on crypto device drivers PMD which 19f714a188SAmr Mokhtarare disabled by default in the build configuration file ``common_base``. 20f714a188SAmr MokhtarThe bbdevice drivers PMD which should be tested can be enabled by setting 21f714a188SAmr Mokhtar 22f714a188SAmr Mokhtar ``CONFIG_RTE_LIBRTE_PMD_<name>=y`` 23f714a188SAmr Mokhtar 24f714a188SAmr MokhtarSetting example for (*turbo_sw*) PMD 25f714a188SAmr Mokhtar 26f714a188SAmr Mokhtar ``CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW=y`` 27f714a188SAmr Mokhtar 28f714a188SAmr Mokhtar**Step 2: Build the application** 29f714a188SAmr Mokhtar 30f714a188SAmr MokhtarExecute the ``dpdk-setup.sh`` script to build the DPDK library together with the 31f714a188SAmr Mokhtar``dpdk-test-bbdev`` application. 32f714a188SAmr Mokhtar 33f714a188SAmr MokhtarInitially, the user must select a DPDK target to choose the correct target type 34f714a188SAmr Mokhtarand compiler options to use when building the libraries. 35f714a188SAmr MokhtarThe user must have all libraries, modules, updates and compilers installed 36f714a188SAmr Mokhtarin the system prior to this, as described in the earlier chapters in this 37f714a188SAmr MokhtarGetting Started Guide. 38f714a188SAmr Mokhtar 39f714a188SAmr MokhtarRunning the Application 40f714a188SAmr Mokhtar----------------------- 41f714a188SAmr Mokhtar 42f714a188SAmr MokhtarThe tool application has a number of command line options: 43f714a188SAmr Mokhtar 44f714a188SAmr Mokhtar.. code-block:: console 45f714a188SAmr Mokhtar 46f714a188SAmr Mokhtar python test-bbdev.py [-h] [-p TESTAPP_PATH] [-e EAL_PARAMS] [-t TIMEOUT] 47f714a188SAmr Mokhtar [-c TEST_CASE [TEST_CASE ...]] 48f714a188SAmr Mokhtar [-v TEST_VECTOR [TEST_VECTOR...]] [-n NUM_OPS] 49f714a188SAmr Mokhtar [-b BURST_SIZE [BURST_SIZE ...]] [-l NUM_LCORES] 50f714a188SAmr Mokhtar 51f714a188SAmr Mokhtarcommand-line Options 52f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~~~~ 53f714a188SAmr Mokhtar 54f714a188SAmr MokhtarThe following are the command-line options: 55f714a188SAmr Mokhtar 56f714a188SAmr Mokhtar``-h, --help`` 57f714a188SAmr Mokhtar Shows help message and exit. 58f714a188SAmr Mokhtar 59f714a188SAmr Mokhtar``-p TESTAPP_PATH, --testapp_path TESTAPP_PATH`` 60f714a188SAmr Mokhtar Indicates the path to the bbdev test app. If not specified path is set based 61f714a188SAmr Mokhtar on *$RTE_SDK* environment variable concatenated with "*/build/app/testbbdev*". 62f714a188SAmr Mokhtar 63f714a188SAmr Mokhtar``-e EAL_PARAMS, --eal_params EAL_PARAMS`` 64f714a188SAmr Mokhtar Specifies EAL arguments which are passed to the test app. For more details, 65f714a188SAmr Mokhtar refer to DPDK documentation at http://dpdk.org/doc. 66f714a188SAmr Mokhtar 67f714a188SAmr Mokhtar``-t TIMEOUT, --timeout TIMEOUT`` 68f714a188SAmr Mokhtar Specifies timeout in seconds. If not specified timeout is set to 300 seconds. 69f714a188SAmr Mokhtar 70f714a188SAmr Mokhtar``-c TEST_CASE [TEST_CASE ...], --test_cases TEST_CASE [TEST_CASE ...]`` 71f714a188SAmr Mokhtar Defines test cases to run. If not specified all available tests are run. 72f714a188SAmr Mokhtar 73f714a188SAmr Mokhtar The following tests can be run: 7479190174SMarko Kovacevic 75f714a188SAmr Mokhtar * unittest 76f714a188SAmr Mokhtar Small unit tests witch check basic functionality of bbdev library. 77f714a188SAmr Mokhtar * latency 78f714a188SAmr Mokhtar Test calculates three latency metrics: 7979190174SMarko Kovacevic 80f714a188SAmr Mokhtar * offload_latency_tc 81f714a188SAmr Mokhtar measures the cost of offloading enqueue and dequeue operations. 82f714a188SAmr Mokhtar * offload_latency_empty_q_tc 83f714a188SAmr Mokhtar measures the cost of offloading a dequeue operation from an empty queue. 84f714a188SAmr Mokhtar checks how long last dequeueing if there is no operations to dequeue 85f714a188SAmr Mokhtar * operation_latency_tc 86f714a188SAmr Mokhtar measures the time difference from the first attempt to enqueue till the 87f714a188SAmr Mokhtar first successful dequeue. 88f714a188SAmr Mokhtar * validation 89f714a188SAmr Mokhtar Test do enqueue on given vector and compare output after dequeueing. 90f714a188SAmr Mokhtar * throughput 91f714a188SAmr Mokhtar Test measures the achieved throughput on the available lcores. 92f714a188SAmr Mokhtar Results are printed in million operations per second and million bits per second. 93f714a188SAmr Mokhtar * interrupt 94f714a188SAmr Mokhtar The same test as 'throughput' but uses interrupts instead of PMD to perform 95f714a188SAmr Mokhtar the dequeue. 96f714a188SAmr Mokhtar 97f714a188SAmr Mokhtar **Example usage:** 98f714a188SAmr Mokhtar 99f714a188SAmr Mokhtar ``./test-bbdev.py -c validation`` 100f714a188SAmr Mokhtar Runs validation test suite 101f714a188SAmr Mokhtar 102f714a188SAmr Mokhtar ``./test-bbdev.py -c latency throughput`` 103f714a188SAmr Mokhtar Runs latency and throughput test suites 104f714a188SAmr Mokhtar 105f714a188SAmr Mokhtar``-v TEST_VECTOR [TEST_VECTOR ...], --test_vector TEST_VECTOR [TEST_VECTOR ...]`` 106f714a188SAmr Mokhtar Specifies paths to the test vector files. If not specified path is set based 107f714a188SAmr Mokhtar on *$RTE_SDK* environment variable concatenated with 108ae828b8cSKamil Chalupnik "*/app/test-bbdev/test_vectors/bbdev_null.data*" and indicates default 109f714a188SAmr Mokhtar data file. 110f714a188SAmr Mokhtar 111f714a188SAmr Mokhtar **Example usage:** 112f714a188SAmr Mokhtar 113ae828b8cSKamil Chalupnik ``./test-bbdev.py -v app/test-bbdev/test_vectors/turbo_dec_test1.data`` 114ae828b8cSKamil Chalupnik Fills vector based on turbo_dec_test1.data file and runs all tests 115f714a188SAmr Mokhtar 116ae828b8cSKamil Chalupnik ``./test-bbdev.py -v turbo_dec_test1.data turbo_enc_test2.data`` 117f714a188SAmr Mokhtar The bbdev test app is executed twice. First time vector is filled based on 118ae828b8cSKamil Chalupnik *turbo_dec_test1.data* file and second time based on 119ae828b8cSKamil Chalupnik *turb_enc_test2.data* file. For both executions all tests are run. 120f714a188SAmr Mokhtar 121f714a188SAmr Mokhtar``-n NUM_OPS, --num_ops NUM_OPS`` 122f714a188SAmr Mokhtar Specifies number of operations to process on device. If not specified num_ops 123f714a188SAmr Mokhtar is set to 32 operations. 124f714a188SAmr Mokhtar 125f714a188SAmr Mokhtar``-l NUM_LCORES, --num_lcores NUM_LCORES`` 126f714a188SAmr Mokhtar Specifies number of lcores to run. If not specified num_lcores is set 127f714a188SAmr Mokhtar according to value from RTE configuration (EAL coremask) 128f714a188SAmr Mokhtar 129f714a188SAmr Mokhtar``-b BURST_SIZE [BURST_SIZE ...], --burst-size BURST_SIZE [BURST_SIZE ...]`` 130f714a188SAmr Mokhtar Specifies operations enqueue/dequeue burst size. If not specified burst_size is 131f714a188SAmr Mokhtar set to 32. Maximum is 512. 132f714a188SAmr Mokhtar 133f714a188SAmr Mokhtar 134f714a188SAmr MokhtarParameter globbing 135f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~~ 136f714a188SAmr Mokhtar 137f714a188SAmr MokhtarThanks to the globbing functionality in python test-bbdev.py script allows to 138f714a188SAmr Mokhtarrun tests with different set of vector files without giving all of them explicitly. 139f714a188SAmr Mokhtar 140f714a188SAmr Mokhtar**Example usage:** 141f714a188SAmr Mokhtar 142f714a188SAmr Mokhtar.. code-block:: console 143f714a188SAmr Mokhtar 144ae828b8cSKamil Chalupnik ./test-bbdev.py -v app/test-bbdev/test_vectors/turbo_<enc/dec>_c<c>_k<k>_r<r>_e<e>_<extra-info>.data 145f714a188SAmr Mokhtar 146f714a188SAmr MokhtarIt runs all tests with following vectors: 147f714a188SAmr Mokhtar 148ae828b8cSKamil Chalupnik- ``bbdev_null.data`` 149f714a188SAmr Mokhtar 150*43b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data`` 15147d5a049SKamil Chalupnik 15247d5a049SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e1196_rm.data`` 15347d5a049SKamil Chalupnik 154*43b767f6SKamil Chalupnik- ``turbo_enc_c2_k5952_r0_e17868_crc24b.data`` 155*43b767f6SKamil Chalupnik 156*43b767f6SKamil Chalupnik- ``turbo_dec_c1_k40_r0_e17280_sbd_negllr.data`` 157*43b767f6SKamil Chalupnik 158*43b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data`` 159*43b767f6SKamil Chalupnik 16047d5a049SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e272_rm.data`` 161f714a188SAmr Mokhtar 162*43b767f6SKamil Chalupnik- ``turbo_enc_c3_k4800_r2_e14412_crc24b.data`` 163*43b767f6SKamil Chalupnik 164*43b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data`` 165*43b767f6SKamil Chalupnik 166*43b767f6SKamil Chalupnik- ``turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data`` 167*43b767f6SKamil Chalupnik 168*43b767f6SKamil Chalupnik- ``turbo_enc_c1_k6144_r0_e120_rm_rvidx.data`` 169*43b767f6SKamil Chalupnik 170*43b767f6SKamil Chalupnik- ``turbo_enc_c4_k4800_r2_e14412_crc24b.data`` 171*43b767f6SKamil Chalupnik 172*43b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data`` 173*43b767f6SKamil Chalupnik 174*43b767f6SKamil Chalupnik- ``turbo_dec_c2_k3136_r0_e4920_sbd_negllr.data`` 175*43b767f6SKamil Chalupnik 176*43b767f6SKamil Chalupnik- ``turbo_enc_c1_k6144_r0_e18444.data`` 177*43b767f6SKamil Chalupnik 178*43b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e34560_negllr.data`` 179*43b767f6SKamil Chalupnik 180*43b767f6SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e1190_rm.data`` 181*43b767f6SKamil Chalupnik 182*43b767f6SKamil Chalupnik- ``turbo_enc_c1_k6144_r0_e18448_crc24a.data`` 183*43b767f6SKamil Chalupnik 184*43b767f6SKamil Chalupnik- ``turbo_dec_c1_k6144_r0_e34560_posllr.data`` 185*43b767f6SKamil Chalupnik 186*43b767f6SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e1194_rm.data`` 187*43b767f6SKamil Chalupnik 188ae828b8cSKamil Chalupnik- ``turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data`` 189ae828b8cSKamil Chalupnik 190f714a188SAmr Mokhtar.. code-block:: console 191f714a188SAmr Mokhtar 192ae828b8cSKamil Chalupnik ./test-bbdev.py -v app/test-bbdev/turbo_*_default.data 193f714a188SAmr Mokhtar 194ae828b8cSKamil ChalupnikIt runs all tests with "default" vectors. 195f714a188SAmr Mokhtar 196ae828b8cSKamil Chalupnik* ``turbo_dec_default.data`` is a soft link to 197ae828b8cSKamil Chalupnik ``turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data`` 198f714a188SAmr Mokhtar 199ae828b8cSKamil Chalupnik* ``turbo_enc_default.data`` is a soft link to 200ae828b8cSKamil Chalupnik ``turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data`` 201f714a188SAmr Mokhtar 202f714a188SAmr Mokhtar 203f714a188SAmr MokhtarRunning Tests 204f714a188SAmr Mokhtar------------- 205f714a188SAmr Mokhtar 206f714a188SAmr MokhtarShortened tree of isg_cid-wireless_dpdk_ae with dpdk compiled for 207f714a188SAmr Mokhtarx86_64-native-linuxapp-icc target: 208f714a188SAmr Mokhtar 209f714a188SAmr Mokhtar:: 210f714a188SAmr Mokhtar 211f714a188SAmr Mokhtar |-- app 212f714a188SAmr Mokhtar |-- test-bbdev 213f714a188SAmr Mokhtar |-- test_vectors 214ae828b8cSKamil Chalupnik |-- bbdev_null.data 215*43b767f6SKamil Chalupnik |-- turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data 216ae828b8cSKamil Chalupnik |-- turbo_enc_c1_k40_r0_e1196_rm.data 217*43b767f6SKamil Chalupnik |-- turbo_enc_c2_k5952_r0_e17868_crc24b.data 218*43b767f6SKamil Chalupnik |-- turbo_dec_c1_k40_r0_e17280_sbd_negllr.data 219*43b767f6SKamil Chalupnik |-- turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data 220ae828b8cSKamil Chalupnik |-- turbo_enc_c1_k40_r0_e272_rm.data 221*43b767f6SKamil Chalupnik |-- turbo_enc_c3_k4800_r2_e14412_crc24b.data 222*43b767f6SKamil Chalupnik |-- turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data 223*43b767f6SKamil Chalupnik |-- turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data 224*43b767f6SKamil Chalupnik |-- turbo_enc_c1_k6144_r0_e120_rm_rvidx.data 225*43b767f6SKamil Chalupnik |-- turbo_enc_c4_k4800_r2_e14412_crc24b.data 226*43b767f6SKamil Chalupnik |-- turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data 227*43b767f6SKamil Chalupnik |-- turbo_dec_c2_k3136_r0_e4920_sbd_negllr.data 228*43b767f6SKamil Chalupnik |-- turbo_enc_c1_k6144_r0_e18444.data 229*43b767f6SKamil Chalupnik |-- turbo_dec_c1_k6144_r0_e34560_negllr.data 230*43b767f6SKamil Chalupnik |-- turbo_enc_c1_k40_r0_e1190_rm.data 231*43b767f6SKamil Chalupnik |-- turbo_enc_c1_k6144_r0_e18448_crc24a.data 232*43b767f6SKamil Chalupnik |-- turbo_dec_c1_k6144_r0_e34560_posllr.data 233*43b767f6SKamil Chalupnik |-- turbo_enc_c1_k40_r0_e1194_rm.data 234ae828b8cSKamil Chalupnik |-- turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data 235f714a188SAmr Mokhtar 236f714a188SAmr Mokhtar |-- x86_64-native-linuxapp-icc 237f714a188SAmr Mokhtar |-- app 238f714a188SAmr Mokhtar |-- testbbdev 239f714a188SAmr Mokhtar 240f714a188SAmr MokhtarAll bbdev devices 241f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~ 242f714a188SAmr Mokhtar 243f714a188SAmr Mokhtar.. code-block:: console 244f714a188SAmr Mokhtar 245f714a188SAmr Mokhtar ./test-bbdev.py -p ../../x86_64-native-linuxapp-icc/app/testbbdev 246ae828b8cSKamil Chalupnik -v turbo_dec_default.data 247f714a188SAmr Mokhtar 248f714a188SAmr MokhtarIt runs all available tests using the test vector filled based on 249ae828b8cSKamil Chalupnik*turbo_dec_default.data* file. 250f714a188SAmr MokhtarBy default number of operations to process on device is set to 32, timeout is 251f714a188SAmr Mokhtarset to 300s and operations enqueue/dequeue burst size is set to 32. 252f714a188SAmr MokhtarMoreover a bbdev (*bbdev_null*) device will be created. 253f714a188SAmr Mokhtar 254f714a188SAmr Mokhtarbbdev turbo_sw device 255f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~~~~~ 256f714a188SAmr Mokhtar 257f714a188SAmr Mokhtar.. code-block:: console 258f714a188SAmr Mokhtar 259f714a188SAmr Mokhtar ./test-bbdev.py -p ../../x86_64-native-linuxapp-icc/app/testbbdev 260f714a188SAmr Mokhtar -e="--vdev=turbo_sw" -t 120 -c validation 261ae828b8cSKamil Chalupnik -v ./test_vectors/turbo_* -n 64 -b 8 32 262f714a188SAmr Mokhtar 263f714a188SAmr MokhtarIt runs **validation** test for each vector file that matches the given pattern. 264f714a188SAmr MokhtarNumber of operations to process on device is set to 64 and operations timeout is 265f714a188SAmr Mokhtarset to 120s and enqueue/dequeue burst size is set to 8 and to 32. 266f714a188SAmr MokhtarMoreover a bbdev (*turbo_sw*) device will be created. 267f714a188SAmr Mokhtar 268f714a188SAmr Mokhtar 269f714a188SAmr Mokhtarbbdev null device 270f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~ 271f714a188SAmr Mokhtar 272ae828b8cSKamil ChalupnikExecuting bbdev null device with *bbdev_null.data* helps in measuring the 273f714a188SAmr Mokhtaroverhead introduced by the bbdev framework. 274f714a188SAmr Mokhtar 275f714a188SAmr Mokhtar.. code-block:: console 276f714a188SAmr Mokhtar 277f714a188SAmr Mokhtar ./test-bbdev.py -e="--vdev=bbdev_null0" 278ae828b8cSKamil Chalupnik -v ./test_vectors/bbdev_null.data 279f714a188SAmr Mokhtar 280f714a188SAmr Mokhtar**Note:** 281f714a188SAmr Mokhtar 282f714a188SAmr Mokhtarbbdev_null device does not have to be defined explicitly as it is created by default. 283f714a188SAmr Mokhtar 284f714a188SAmr Mokhtar 285f714a188SAmr Mokhtar 286f714a188SAmr MokhtarTest Vector files 287f714a188SAmr Mokhtar================= 288f714a188SAmr Mokhtar 289f714a188SAmr MokhtarTest Vector files contain the data which is used to set turbo decoder/encoder 290f714a188SAmr Mokhtarparameters and buffers for validation purpose. New test vector files should be 291f714a188SAmr Mokhtarstored in ``app/test-bbdev/test_vectors/`` directory. Detailed description of 292f714a188SAmr Mokhtarthe syntax of the test vector files is in the following section. 293f714a188SAmr Mokhtar 294f714a188SAmr Mokhtar 295f714a188SAmr MokhtarBasic principles for test vector files 296f714a188SAmr Mokhtar-------------------------------------- 297f714a188SAmr MokhtarLine started with ``#`` is treated as a comment and is ignored. 298f714a188SAmr Mokhtar 299f714a188SAmr MokhtarIf variable is a chain of values, values should be separated by a comma. If 300f714a188SAmr Mokhtarassignment is split into several lines, each line (except the last one) has to 301f714a188SAmr Mokhtarbe ended with a comma. 302f714a188SAmr MokhtarThere is no comma after last value in last line. Correct assignment should 303f714a188SAmr Mokhtarlook like the following: 304f714a188SAmr Mokhtar 305f714a188SAmr Mokhtar.. parsed-literal:: 306f714a188SAmr Mokhtar 307f714a188SAmr Mokhtar variable = 308f714a188SAmr Mokhtar value, value, value, value, 309f714a188SAmr Mokhtar value, value 310f714a188SAmr Mokhtar 311f714a188SAmr MokhtarIn case where variable is a single value correct assignment looks like the 312f714a188SAmr Mokhtarfollowing: 313f714a188SAmr Mokhtar 314f714a188SAmr Mokhtar.. parsed-literal:: 315f714a188SAmr Mokhtar 316f714a188SAmr Mokhtar variable = 317f714a188SAmr Mokhtar value 318f714a188SAmr Mokhtar 319f714a188SAmr MokhtarLength of chain variable is calculated by parser. Can not be defined 320f714a188SAmr Mokhtarexplicitly. 321f714a188SAmr Mokhtar 322f714a188SAmr MokhtarVariable op_type has to be defined as a first variable in file. It specifies 323f714a188SAmr Mokhtarwhat type of operations will be executed. For decoder op_type has to be set to 324f714a188SAmr Mokhtar``RTE_BBDEV_OP_TURBO_DEC`` and for encoder to ``RTE_BBDEV_OP_TURBO_ENC``. 325f714a188SAmr Mokhtar 326f714a188SAmr MokhtarFull details of the meaning and valid values for the below fields are 327f714a188SAmr Mokhtardocumented in *rte_bbdev_op.h* 328f714a188SAmr Mokhtar 329f714a188SAmr Mokhtar 330f714a188SAmr MokhtarTurbo decoder test vectors template 331f714a188SAmr Mokhtar----------------------------------- 332f714a188SAmr Mokhtar 333f714a188SAmr MokhtarFor turbo decoder it has to be always set to ``RTE_BBDEV_OP_TURBO_DEC`` 334f714a188SAmr Mokhtar 335f714a188SAmr Mokhtar.. parsed-literal:: 336f714a188SAmr Mokhtar 337f714a188SAmr Mokhtar op_type = 338f714a188SAmr Mokhtar RTE_BBDEV_OP_TURBO_DEC 339f714a188SAmr Mokhtar 340f714a188SAmr MokhtarChain of uint32_t values. Note that it is possible to define more than one 341f714a188SAmr Mokhtarinput/output entries which will result in chaining two or more data structures 342f714a188SAmr Mokhtarfor *segmented Transport Blocks* 343f714a188SAmr Mokhtar 344f714a188SAmr Mokhtar.. parsed-literal:: 345f714a188SAmr Mokhtar 346f714a188SAmr Mokhtar input0 = 347f714a188SAmr Mokhtar 0x00000000, 0x7f817f00, 0x7f7f8100, 0x817f8100, 0x81008100, 0x7f818100, 0x81817f00, 0x7f818100, 348f714a188SAmr Mokhtar 0x81007f00, 0x7f818100, 0x817f8100, 0x81817f00, 0x81008100, 0x817f7f00, 0x7f7f8100, 0x81817f00 349f714a188SAmr Mokhtar 350f714a188SAmr MokhtarChain of uint32_t values 351f714a188SAmr Mokhtar 352f714a188SAmr Mokhtar.. parsed-literal:: 353f714a188SAmr Mokhtar 354f714a188SAmr Mokhtar input1 = 355f714a188SAmr Mokhtar 0x7f7f0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 356f714a188SAmr Mokhtar 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 357f714a188SAmr Mokhtar 358f714a188SAmr MokhtarChain of uint32_t values 359f714a188SAmr Mokhtar 360f714a188SAmr Mokhtar.. parsed-literal:: 361f714a188SAmr Mokhtar 362f714a188SAmr Mokhtar input2 = 363f714a188SAmr Mokhtar 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 364f714a188SAmr Mokhtar 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 365f714a188SAmr Mokhtar 366f714a188SAmr MokhtarChain of uint32_t values 367f714a188SAmr Mokhtar 368f714a188SAmr Mokhtar.. parsed-literal:: 369f714a188SAmr Mokhtar 370f714a188SAmr Mokhtar hard_output0 = 371f714a188SAmr Mokhtar 0xa7d6732e 372f714a188SAmr Mokhtar 373f714a188SAmr MokhtarChain of uint32_t values 374f714a188SAmr Mokhtar 375f714a188SAmr Mokhtar.. parsed-literal:: 376f714a188SAmr Mokhtar 377f714a188SAmr Mokhtar hard_output1 = 378f714a188SAmr Mokhtar 0xa61 379f714a188SAmr Mokhtar 380f714a188SAmr MokhtarChain of uint32_t values 381f714a188SAmr Mokhtar 382f714a188SAmr Mokhtar.. parsed-literal:: 383f714a188SAmr Mokhtar 384f714a188SAmr Mokhtar soft_output0 = 385f714a188SAmr Mokhtar 0x817f817f, 0x7f817f7f, 0x81818181, 0x817f7f81, 0x7f818181, 0x8181817f, 0x817f817f, 0x8181817f 386f714a188SAmr Mokhtar 387f714a188SAmr MokhtarChain of uint32_t values 388f714a188SAmr Mokhtar 389f714a188SAmr Mokhtar.. parsed-literal:: 390f714a188SAmr Mokhtar 391f714a188SAmr Mokhtar soft_output1 = 392f714a188SAmr Mokhtar 0x817f7f81, 0x7f7f7f81, 0x7f7f8181 393f714a188SAmr Mokhtar 394f714a188SAmr Mokhtaruint32_t value 395f714a188SAmr Mokhtar 396f714a188SAmr Mokhtar.. parsed-literal:: 397f714a188SAmr Mokhtar 398f714a188SAmr Mokhtar e = 399f714a188SAmr Mokhtar 44 400f714a188SAmr Mokhtar 401f714a188SAmr Mokhtaruint16_t value 402f714a188SAmr Mokhtar 403f714a188SAmr Mokhtar.. parsed-literal:: 404f714a188SAmr Mokhtar 405f714a188SAmr Mokhtar k = 406f714a188SAmr Mokhtar 40 407f714a188SAmr Mokhtar 408f714a188SAmr Mokhtaruint8_t value 409f714a188SAmr Mokhtar 410f714a188SAmr Mokhtar.. parsed-literal:: 411f714a188SAmr Mokhtar 412f714a188SAmr Mokhtar rv_index = 413f714a188SAmr Mokhtar 0 414f714a188SAmr Mokhtar 415f714a188SAmr Mokhtaruint8_t value 416f714a188SAmr Mokhtar 417f714a188SAmr Mokhtar.. parsed-literal:: 418f714a188SAmr Mokhtar 419f714a188SAmr Mokhtar iter_max = 420f714a188SAmr Mokhtar 8 421f714a188SAmr Mokhtar 422f714a188SAmr Mokhtaruint8_t value 423f714a188SAmr Mokhtar 424f714a188SAmr Mokhtar.. parsed-literal:: 425f714a188SAmr Mokhtar 426f714a188SAmr Mokhtar iter_min = 427f714a188SAmr Mokhtar 4 428f714a188SAmr Mokhtar 429f714a188SAmr Mokhtaruint8_t value 430f714a188SAmr Mokhtar 431f714a188SAmr Mokhtar.. parsed-literal:: 432f714a188SAmr Mokhtar 433f714a188SAmr Mokhtar expected_iter_count = 434f714a188SAmr Mokhtar 8 435f714a188SAmr Mokhtar 436f714a188SAmr Mokhtaruint8_t value 437f714a188SAmr Mokhtar 438f714a188SAmr Mokhtar.. parsed-literal:: 439f714a188SAmr Mokhtar 440f714a188SAmr Mokhtar ext_scale = 441f714a188SAmr Mokhtar 15 442f714a188SAmr Mokhtar 443f714a188SAmr Mokhtaruint8_t value 444f714a188SAmr Mokhtar 445f714a188SAmr Mokhtar.. parsed-literal:: 446f714a188SAmr Mokhtar 447f714a188SAmr Mokhtar num_maps = 448f714a188SAmr Mokhtar 0 449f714a188SAmr Mokhtar 450f714a188SAmr MokhtarChain of flags for turbo decoder operation. Following flags can be used: 451f714a188SAmr Mokhtar 452f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE`` 453f714a188SAmr Mokhtar 454f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_CRC_TYPE_24B`` 455f714a188SAmr Mokhtar 456f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_EQUALIZER`` 457f714a188SAmr Mokhtar 458f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_SOFT_OUT_SATURATE`` 459f714a188SAmr Mokhtar 460f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_HALF_ITERATION_EVEN`` 461f714a188SAmr Mokhtar 462f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH`` 463f714a188SAmr Mokhtar 464f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_SOFT_OUTPUT`` 465f714a188SAmr Mokhtar 466f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_EARLY_TERMINATION`` 467f714a188SAmr Mokhtar 468f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_DEC_INTERRUPTS`` 469f714a188SAmr Mokhtar 470f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN`` 471f714a188SAmr Mokhtar 472f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN`` 473f714a188SAmr Mokhtar 474f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT`` 475f714a188SAmr Mokhtar 476f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT`` 477f714a188SAmr Mokhtar 478f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_MAP_DEC`` 479f714a188SAmr Mokhtar 480f714a188SAmr MokhtarExample: 481f714a188SAmr Mokhtar 482f714a188SAmr Mokhtar .. parsed-literal:: 483f714a188SAmr Mokhtar 484f714a188SAmr Mokhtar op_flags = 485f714a188SAmr Mokhtar RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_EQUALIZER, 486f714a188SAmr Mokhtar RTE_BBDEV_TURBO_SOFT_OUTPUT 487f714a188SAmr Mokhtar 488f714a188SAmr MokhtarChain of operation statuses that are expected after operation is performed. 489f714a188SAmr MokhtarFollowing statuses can be used: 490f714a188SAmr Mokhtar 491f714a188SAmr Mokhtar- ``DMA`` 492f714a188SAmr Mokhtar 493f714a188SAmr Mokhtar- ``FCW`` 494f714a188SAmr Mokhtar 495f714a188SAmr Mokhtar- ``CRC`` 496f714a188SAmr Mokhtar 497f714a188SAmr Mokhtar- ``OK`` 498f714a188SAmr Mokhtar 499f714a188SAmr Mokhtar``OK`` means no errors are expected. Cannot be used with other values. 500f714a188SAmr Mokhtar 501f714a188SAmr Mokhtar.. parsed-literal:: 502f714a188SAmr Mokhtar 503f714a188SAmr Mokhtar expected_status = 504f714a188SAmr Mokhtar FCW, CRC 505f714a188SAmr Mokhtar 506f714a188SAmr Mokhtar 507f714a188SAmr MokhtarTurbo encoder test vectors template 508f714a188SAmr Mokhtar----------------------------------- 509f714a188SAmr Mokhtar 510f714a188SAmr MokhtarFor turbo encoder it has to be always set to ``RTE_BBDEV_OP_TURBO_ENC`` 511f714a188SAmr Mokhtar 512f714a188SAmr Mokhtar.. parsed-literal:: 513f714a188SAmr Mokhtar 514f714a188SAmr Mokhtar op_type = 515f714a188SAmr Mokhtar RTE_BBDEV_OP_TURBO_ENC 516f714a188SAmr Mokhtar 517f714a188SAmr MokhtarChain of uint32_t values 518f714a188SAmr Mokhtar 519f714a188SAmr Mokhtar.. parsed-literal:: 520f714a188SAmr Mokhtar 521f714a188SAmr Mokhtar input0 = 522f714a188SAmr Mokhtar 0x11d2bcac, 0x4d 523f714a188SAmr Mokhtar 524f714a188SAmr MokhtarChain of uint32_t values 525f714a188SAmr Mokhtar 526f714a188SAmr Mokhtar.. parsed-literal:: 527f714a188SAmr Mokhtar 528f714a188SAmr Mokhtar output0 = 529f714a188SAmr Mokhtar 0xd2399179, 0x640eb999, 0x2cbaf577, 0xaf224ae2, 0x9d139927, 0xe6909b29, 530f714a188SAmr Mokhtar 0xa25b7f47, 0x2aa224ce, 0x79f2 531f714a188SAmr Mokhtar 532f714a188SAmr Mokhtaruint32_t value 533f714a188SAmr Mokhtar 534f714a188SAmr Mokhtar.. parsed-literal:: 535f714a188SAmr Mokhtar 536f714a188SAmr Mokhtar e = 537f714a188SAmr Mokhtar 272 538f714a188SAmr Mokhtar 539f714a188SAmr Mokhtaruint16_t value 540f714a188SAmr Mokhtar 541f714a188SAmr Mokhtar.. parsed-literal:: 542f714a188SAmr Mokhtar 543f714a188SAmr Mokhtar k = 544f714a188SAmr Mokhtar 40 545f714a188SAmr Mokhtar 546f714a188SAmr Mokhtaruint16_t value 547f714a188SAmr Mokhtar 548f714a188SAmr Mokhtar.. parsed-literal:: 549f714a188SAmr Mokhtar 550f714a188SAmr Mokhtar ncb = 551f714a188SAmr Mokhtar 192 552f714a188SAmr Mokhtar 553f714a188SAmr Mokhtaruint8_t value 554f714a188SAmr Mokhtar 555f714a188SAmr Mokhtar.. parsed-literal:: 556f714a188SAmr Mokhtar 557f714a188SAmr Mokhtar rv_index = 558f714a188SAmr Mokhtar 0 559f714a188SAmr Mokhtar 560f714a188SAmr MokhtarChain of flags for turbo encoder operation. Following flags can be used: 561f714a188SAmr Mokhtar 562f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_RV_INDEX_BYPASS`` 563f714a188SAmr Mokhtar 564f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_RATE_MATCH`` 565f714a188SAmr Mokhtar 566f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_CRC_24B_ATTACH`` 567f714a188SAmr Mokhtar 568f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_CRC_24A_ATTACH`` 569f714a188SAmr Mokhtar 570f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_ENC_SCATTER_GATHER`` 571f714a188SAmr Mokhtar 572f714a188SAmr Mokhtar``RTE_BBDEV_TURBO_ENC_SCATTER_GATHER`` is used to indicate the parser to 573f714a188SAmr Mokhtarforce the input data to be memory split and formed as a segmented mbuf. 574f714a188SAmr Mokhtar 575f714a188SAmr Mokhtar 576f714a188SAmr Mokhtar.. parsed-literal:: 577f714a188SAmr Mokhtar 578f714a188SAmr Mokhtar op_flags = 579f714a188SAmr Mokhtar RTE_BBDEV_TURBO_RATE_MATCH 580f714a188SAmr Mokhtar 581f714a188SAmr MokhtarChain of operation statuses that are expected after operation is performed. 582f714a188SAmr MokhtarFollowing statuses can be used: 583f714a188SAmr Mokhtar 584f714a188SAmr Mokhtar- ``DMA`` 585f714a188SAmr Mokhtar 586f714a188SAmr Mokhtar- ``FCW`` 587f714a188SAmr Mokhtar 588f714a188SAmr Mokhtar- ``OK`` 589f714a188SAmr Mokhtar 590f714a188SAmr Mokhtar``OK`` means no errors are expected. Cannot be used with other values. 591f714a188SAmr Mokhtar 592f714a188SAmr Mokhtar.. parsed-literal:: 593f714a188SAmr Mokhtar 594f714a188SAmr Mokhtar expected_status = 595f714a188SAmr Mokhtar OK 596