xref: /dpdk/doc/guides/tools/testbbdev.rst (revision 43b767f6)
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