xref: /dpdk/doc/guides/tools/testbbdev.rst (revision 47d5a049)
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
108f714a188SAmr Mokhtar "*/app/test-bbdev/test_vectors/bbdev_vector_null.data*" and indicates default
109f714a188SAmr Mokhtar data file.
110f714a188SAmr Mokhtar
111f714a188SAmr Mokhtar **Example usage:**
112f714a188SAmr Mokhtar
113f714a188SAmr Mokhtar ``./test-bbdev.py -v app/test-bbdev/test_vectors/bbdev_vector_td_test1.data``
114f714a188SAmr Mokhtar  Fills vector based on bbdev_vector_td_test1.data file and runs all tests
115f714a188SAmr Mokhtar
116f714a188SAmr Mokhtar ``./test-bbdev.py -v bbdev_vector_td_test1.data bbdev_vector_te_test2.data``
117f714a188SAmr Mokhtar  The bbdev test app is executed twice. First time vector is filled based on
118f714a188SAmr Mokhtar  *bbdev_vector_td_test1.data* file and second time based on
119f714a188SAmr Mokhtar  *bbdev_vector_te_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
144f714a188SAmr Mokhtar  ./test-bbdev.py -v app/test-bbdev/test_vectors/bbdev_vector_*.data
145f714a188SAmr Mokhtar
146f714a188SAmr MokhtarIt runs all tests with following vectors:
147f714a188SAmr Mokhtar
148f714a188SAmr Mokhtar- ``bbdev_vector_null.data``
149f714a188SAmr Mokhtar
150f714a188SAmr Mokhtar- ``bbdev_vector_td_default.data``
151f714a188SAmr Mokhtar
152f714a188SAmr Mokhtar- ``bbdev_vector_te_default.data``
153f714a188SAmr Mokhtar
154*47d5a049SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e1190_rm.data``
155*47d5a049SKamil Chalupnik
156*47d5a049SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e1194_rm.data``
157*47d5a049SKamil Chalupnik
158*47d5a049SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e1196_rm.data``
159*47d5a049SKamil Chalupnik
160*47d5a049SKamil Chalupnik- ``turbo_enc_c1_k40_r0_e272_rm.data``
161f714a188SAmr Mokhtar
162f714a188SAmr Mokhtar.. code-block:: console
163f714a188SAmr Mokhtar
164f714a188SAmr Mokhtar  ./test-bbdev.py -v app/test-bbdev/test_vectors/bbdev_vector_t?_default.data
165f714a188SAmr Mokhtar
166f714a188SAmr MokhtarIt runs all tests with "default" vectors:
167f714a188SAmr Mokhtar
168f714a188SAmr Mokhtar- ``bbdev_vector_te_default.data``
169f714a188SAmr Mokhtar
170f714a188SAmr Mokhtar- ``bbdev_vector_td_default.data``
171f714a188SAmr Mokhtar
172f714a188SAmr Mokhtar
173f714a188SAmr MokhtarRunning Tests
174f714a188SAmr Mokhtar-------------
175f714a188SAmr Mokhtar
176f714a188SAmr MokhtarShortened tree of isg_cid-wireless_dpdk_ae with dpdk compiled for
177f714a188SAmr Mokhtarx86_64-native-linuxapp-icc target:
178f714a188SAmr Mokhtar
179f714a188SAmr Mokhtar::
180f714a188SAmr Mokhtar
181f714a188SAmr Mokhtar |-- app
182f714a188SAmr Mokhtar     |-- test-bbdev
183f714a188SAmr Mokhtar         |-- test_vectors
184f714a188SAmr Mokhtar             |-- bbdev_vector_null.data
185f714a188SAmr Mokhtar             |-- bbdev_vector_td_default.data
186f714a188SAmr Mokhtar             |-- bbdev_vector_te_default.data
187f714a188SAmr Mokhtar
188f714a188SAmr Mokhtar |-- x86_64-native-linuxapp-icc
189f714a188SAmr Mokhtar     |-- app
190f714a188SAmr Mokhtar         |-- testbbdev
191f714a188SAmr Mokhtar
192f714a188SAmr MokhtarAll bbdev devices
193f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~
194f714a188SAmr Mokhtar
195f714a188SAmr Mokhtar.. code-block:: console
196f714a188SAmr Mokhtar
197f714a188SAmr Mokhtar  ./test-bbdev.py -p ../../x86_64-native-linuxapp-icc/app/testbbdev
198f714a188SAmr Mokhtar  -v ./test_vectors/bbdev_vector_td_default.data
199f714a188SAmr Mokhtar
200f714a188SAmr MokhtarIt runs all available tests using the test vector filled based on
201f714a188SAmr Mokhtar*bbdev_vector_td_default.data* file.
202f714a188SAmr MokhtarBy default number of operations to process on device is set to 32, timeout is
203f714a188SAmr Mokhtarset to 300s and operations enqueue/dequeue burst size is set to 32.
204f714a188SAmr MokhtarMoreover a bbdev (*bbdev_null*) device will be created.
205f714a188SAmr Mokhtar
206f714a188SAmr Mokhtarbbdev turbo_sw device
207f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~~~~~
208f714a188SAmr Mokhtar
209f714a188SAmr Mokhtar.. code-block:: console
210f714a188SAmr Mokhtar
211f714a188SAmr Mokhtar  ./test-bbdev.py -p ../../x86_64-native-linuxapp-icc/app/testbbdev
212f714a188SAmr Mokhtar  -e="--vdev=turbo_sw" -t 120 -c validation
213f714a188SAmr Mokhtar  -v ./test_vectors/bbdev_vector_t?_default.data -n 64 -b 8 32
214f714a188SAmr Mokhtar
215f714a188SAmr MokhtarIt runs **validation** test for each vector file that matches the given pattern.
216f714a188SAmr MokhtarNumber of operations to process on device is set to 64 and operations timeout is
217f714a188SAmr Mokhtarset to 120s and enqueue/dequeue burst size is set to 8 and to 32.
218f714a188SAmr MokhtarMoreover a bbdev (*turbo_sw*) device will be created.
219f714a188SAmr Mokhtar
220f714a188SAmr Mokhtar
221f714a188SAmr Mokhtarbbdev null device
222f714a188SAmr Mokhtar~~~~~~~~~~~~~~~~~
223f714a188SAmr Mokhtar
224f714a188SAmr MokhtarExecuting bbdev null device with *bbdev_vector_null.data* helps in measuring the
225f714a188SAmr Mokhtaroverhead introduced by the bbdev framework.
226f714a188SAmr Mokhtar
227f714a188SAmr Mokhtar.. code-block:: console
228f714a188SAmr Mokhtar
229f714a188SAmr Mokhtar  ./test-bbdev.py -e="--vdev=bbdev_null0"
230f714a188SAmr Mokhtar  -v ./test_vectors/bbdev_vector_null.data
231f714a188SAmr Mokhtar
232f714a188SAmr Mokhtar**Note:**
233f714a188SAmr Mokhtar
234f714a188SAmr Mokhtarbbdev_null device does not have to be defined explicitly as it is created by default.
235f714a188SAmr Mokhtar
236f714a188SAmr Mokhtar
237f714a188SAmr Mokhtar
238f714a188SAmr MokhtarTest Vector files
239f714a188SAmr Mokhtar=================
240f714a188SAmr Mokhtar
241f714a188SAmr MokhtarTest Vector files contain the data which is used to set turbo decoder/encoder
242f714a188SAmr Mokhtarparameters and buffers for validation purpose. New test vector files should be
243f714a188SAmr Mokhtarstored in ``app/test-bbdev/test_vectors/`` directory. Detailed description of
244f714a188SAmr Mokhtarthe syntax of the test vector files is in the following section.
245f714a188SAmr Mokhtar
246f714a188SAmr Mokhtar
247f714a188SAmr MokhtarBasic principles for test vector files
248f714a188SAmr Mokhtar--------------------------------------
249f714a188SAmr MokhtarLine started with ``#`` is treated as a comment and is ignored.
250f714a188SAmr Mokhtar
251f714a188SAmr MokhtarIf variable is a chain of values, values should be separated by a comma. If
252f714a188SAmr Mokhtarassignment is split into several lines, each line (except the last one) has to
253f714a188SAmr Mokhtarbe ended with a comma.
254f714a188SAmr MokhtarThere is no comma after last value in last line. Correct assignment should
255f714a188SAmr Mokhtarlook like the following:
256f714a188SAmr Mokhtar
257f714a188SAmr Mokhtar.. parsed-literal::
258f714a188SAmr Mokhtar
259f714a188SAmr Mokhtar variable =
260f714a188SAmr Mokhtar value, value, value, value,
261f714a188SAmr Mokhtar value, value
262f714a188SAmr Mokhtar
263f714a188SAmr MokhtarIn case where variable is a single value correct assignment looks like the
264f714a188SAmr Mokhtarfollowing:
265f714a188SAmr Mokhtar
266f714a188SAmr Mokhtar.. parsed-literal::
267f714a188SAmr Mokhtar
268f714a188SAmr Mokhtar variable =
269f714a188SAmr Mokhtar value
270f714a188SAmr Mokhtar
271f714a188SAmr MokhtarLength of chain variable is calculated by parser. Can not be defined
272f714a188SAmr Mokhtarexplicitly.
273f714a188SAmr Mokhtar
274f714a188SAmr MokhtarVariable op_type has to be defined as a first variable in file. It specifies
275f714a188SAmr Mokhtarwhat type of operations will be executed. For decoder op_type has to be set to
276f714a188SAmr Mokhtar``RTE_BBDEV_OP_TURBO_DEC`` and for encoder to ``RTE_BBDEV_OP_TURBO_ENC``.
277f714a188SAmr Mokhtar
278f714a188SAmr MokhtarFull details of the meaning and valid values for the below fields are
279f714a188SAmr Mokhtardocumented in *rte_bbdev_op.h*
280f714a188SAmr Mokhtar
281f714a188SAmr Mokhtar
282f714a188SAmr MokhtarTurbo decoder test vectors template
283f714a188SAmr Mokhtar-----------------------------------
284f714a188SAmr Mokhtar
285f714a188SAmr MokhtarFor turbo decoder it has to be always set to ``RTE_BBDEV_OP_TURBO_DEC``
286f714a188SAmr Mokhtar
287f714a188SAmr Mokhtar.. parsed-literal::
288f714a188SAmr Mokhtar
289f714a188SAmr Mokhtar    op_type =
290f714a188SAmr Mokhtar    RTE_BBDEV_OP_TURBO_DEC
291f714a188SAmr Mokhtar
292f714a188SAmr MokhtarChain of uint32_t values. Note that it is possible to define more than one
293f714a188SAmr Mokhtarinput/output entries which will result in chaining two or more data structures
294f714a188SAmr Mokhtarfor *segmented Transport Blocks*
295f714a188SAmr Mokhtar
296f714a188SAmr Mokhtar.. parsed-literal::
297f714a188SAmr Mokhtar
298f714a188SAmr Mokhtar    input0 =
299f714a188SAmr Mokhtar    0x00000000, 0x7f817f00, 0x7f7f8100, 0x817f8100, 0x81008100, 0x7f818100, 0x81817f00, 0x7f818100,
300f714a188SAmr Mokhtar    0x81007f00, 0x7f818100, 0x817f8100, 0x81817f00, 0x81008100, 0x817f7f00, 0x7f7f8100, 0x81817f00
301f714a188SAmr Mokhtar
302f714a188SAmr MokhtarChain of uint32_t values
303f714a188SAmr Mokhtar
304f714a188SAmr Mokhtar.. parsed-literal::
305f714a188SAmr Mokhtar
306f714a188SAmr Mokhtar    input1 =
307f714a188SAmr Mokhtar    0x7f7f0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
308f714a188SAmr Mokhtar    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
309f714a188SAmr Mokhtar
310f714a188SAmr MokhtarChain of uint32_t values
311f714a188SAmr Mokhtar
312f714a188SAmr Mokhtar.. parsed-literal::
313f714a188SAmr Mokhtar
314f714a188SAmr Mokhtar    input2 =
315f714a188SAmr Mokhtar    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
316f714a188SAmr Mokhtar    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
317f714a188SAmr Mokhtar
318f714a188SAmr MokhtarChain of uint32_t values
319f714a188SAmr Mokhtar
320f714a188SAmr Mokhtar.. parsed-literal::
321f714a188SAmr Mokhtar
322f714a188SAmr Mokhtar    hard_output0 =
323f714a188SAmr Mokhtar    0xa7d6732e
324f714a188SAmr Mokhtar
325f714a188SAmr MokhtarChain of uint32_t values
326f714a188SAmr Mokhtar
327f714a188SAmr Mokhtar.. parsed-literal::
328f714a188SAmr Mokhtar
329f714a188SAmr Mokhtar    hard_output1 =
330f714a188SAmr Mokhtar    0xa61
331f714a188SAmr Mokhtar
332f714a188SAmr MokhtarChain of uint32_t values
333f714a188SAmr Mokhtar
334f714a188SAmr Mokhtar.. parsed-literal::
335f714a188SAmr Mokhtar
336f714a188SAmr Mokhtar    soft_output0 =
337f714a188SAmr Mokhtar    0x817f817f, 0x7f817f7f, 0x81818181, 0x817f7f81, 0x7f818181, 0x8181817f, 0x817f817f, 0x8181817f
338f714a188SAmr Mokhtar
339f714a188SAmr MokhtarChain of uint32_t values
340f714a188SAmr Mokhtar
341f714a188SAmr Mokhtar.. parsed-literal::
342f714a188SAmr Mokhtar
343f714a188SAmr Mokhtar    soft_output1 =
344f714a188SAmr Mokhtar    0x817f7f81, 0x7f7f7f81, 0x7f7f8181
345f714a188SAmr Mokhtar
346f714a188SAmr Mokhtaruint32_t value
347f714a188SAmr Mokhtar
348f714a188SAmr Mokhtar.. parsed-literal::
349f714a188SAmr Mokhtar
350f714a188SAmr Mokhtar    e =
351f714a188SAmr Mokhtar    44
352f714a188SAmr Mokhtar
353f714a188SAmr Mokhtaruint16_t value
354f714a188SAmr Mokhtar
355f714a188SAmr Mokhtar.. parsed-literal::
356f714a188SAmr Mokhtar
357f714a188SAmr Mokhtar    k =
358f714a188SAmr Mokhtar    40
359f714a188SAmr Mokhtar
360f714a188SAmr Mokhtaruint8_t value
361f714a188SAmr Mokhtar
362f714a188SAmr Mokhtar.. parsed-literal::
363f714a188SAmr Mokhtar
364f714a188SAmr Mokhtar    rv_index =
365f714a188SAmr Mokhtar    0
366f714a188SAmr Mokhtar
367f714a188SAmr Mokhtaruint8_t value
368f714a188SAmr Mokhtar
369f714a188SAmr Mokhtar.. parsed-literal::
370f714a188SAmr Mokhtar
371f714a188SAmr Mokhtar    iter_max =
372f714a188SAmr Mokhtar    8
373f714a188SAmr Mokhtar
374f714a188SAmr Mokhtaruint8_t value
375f714a188SAmr Mokhtar
376f714a188SAmr Mokhtar.. parsed-literal::
377f714a188SAmr Mokhtar
378f714a188SAmr Mokhtar    iter_min =
379f714a188SAmr Mokhtar    4
380f714a188SAmr Mokhtar
381f714a188SAmr Mokhtaruint8_t value
382f714a188SAmr Mokhtar
383f714a188SAmr Mokhtar.. parsed-literal::
384f714a188SAmr Mokhtar
385f714a188SAmr Mokhtar    expected_iter_count =
386f714a188SAmr Mokhtar    8
387f714a188SAmr Mokhtar
388f714a188SAmr Mokhtaruint8_t value
389f714a188SAmr Mokhtar
390f714a188SAmr Mokhtar.. parsed-literal::
391f714a188SAmr Mokhtar
392f714a188SAmr Mokhtar    ext_scale =
393f714a188SAmr Mokhtar    15
394f714a188SAmr Mokhtar
395f714a188SAmr Mokhtaruint8_t value
396f714a188SAmr Mokhtar
397f714a188SAmr Mokhtar.. parsed-literal::
398f714a188SAmr Mokhtar
399f714a188SAmr Mokhtar    num_maps =
400f714a188SAmr Mokhtar    0
401f714a188SAmr Mokhtar
402f714a188SAmr MokhtarChain of flags for turbo decoder operation. Following flags can be used:
403f714a188SAmr Mokhtar
404f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE``
405f714a188SAmr Mokhtar
406f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_CRC_TYPE_24B``
407f714a188SAmr Mokhtar
408f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_EQUALIZER``
409f714a188SAmr Mokhtar
410f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_SOFT_OUT_SATURATE``
411f714a188SAmr Mokhtar
412f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_HALF_ITERATION_EVEN``
413f714a188SAmr Mokhtar
414f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH``
415f714a188SAmr Mokhtar
416f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_SOFT_OUTPUT``
417f714a188SAmr Mokhtar
418f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_EARLY_TERMINATION``
419f714a188SAmr Mokhtar
420f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_DEC_INTERRUPTS``
421f714a188SAmr Mokhtar
422f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN``
423f714a188SAmr Mokhtar
424f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN``
425f714a188SAmr Mokhtar
426f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT``
427f714a188SAmr Mokhtar
428f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT``
429f714a188SAmr Mokhtar
430f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_MAP_DEC``
431f714a188SAmr Mokhtar
432f714a188SAmr MokhtarExample:
433f714a188SAmr Mokhtar
434f714a188SAmr Mokhtar    .. parsed-literal::
435f714a188SAmr Mokhtar
436f714a188SAmr Mokhtar        op_flags =
437f714a188SAmr Mokhtar        RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_EQUALIZER,
438f714a188SAmr Mokhtar        RTE_BBDEV_TURBO_SOFT_OUTPUT
439f714a188SAmr Mokhtar
440f714a188SAmr MokhtarChain of operation statuses that are expected after operation is performed.
441f714a188SAmr MokhtarFollowing statuses can be used:
442f714a188SAmr Mokhtar
443f714a188SAmr Mokhtar- ``DMA``
444f714a188SAmr Mokhtar
445f714a188SAmr Mokhtar- ``FCW``
446f714a188SAmr Mokhtar
447f714a188SAmr Mokhtar- ``CRC``
448f714a188SAmr Mokhtar
449f714a188SAmr Mokhtar- ``OK``
450f714a188SAmr Mokhtar
451f714a188SAmr Mokhtar``OK`` means no errors are expected. Cannot be used with other values.
452f714a188SAmr Mokhtar
453f714a188SAmr Mokhtar.. parsed-literal::
454f714a188SAmr Mokhtar
455f714a188SAmr Mokhtar    expected_status =
456f714a188SAmr Mokhtar    FCW, CRC
457f714a188SAmr Mokhtar
458f714a188SAmr Mokhtar
459f714a188SAmr MokhtarTurbo encoder test vectors template
460f714a188SAmr Mokhtar-----------------------------------
461f714a188SAmr Mokhtar
462f714a188SAmr MokhtarFor turbo encoder it has to be always set to ``RTE_BBDEV_OP_TURBO_ENC``
463f714a188SAmr Mokhtar
464f714a188SAmr Mokhtar.. parsed-literal::
465f714a188SAmr Mokhtar
466f714a188SAmr Mokhtar    op_type =
467f714a188SAmr Mokhtar    RTE_BBDEV_OP_TURBO_ENC
468f714a188SAmr Mokhtar
469f714a188SAmr MokhtarChain of uint32_t values
470f714a188SAmr Mokhtar
471f714a188SAmr Mokhtar.. parsed-literal::
472f714a188SAmr Mokhtar
473f714a188SAmr Mokhtar    input0 =
474f714a188SAmr Mokhtar    0x11d2bcac, 0x4d
475f714a188SAmr Mokhtar
476f714a188SAmr MokhtarChain of uint32_t values
477f714a188SAmr Mokhtar
478f714a188SAmr Mokhtar.. parsed-literal::
479f714a188SAmr Mokhtar
480f714a188SAmr Mokhtar    output0 =
481f714a188SAmr Mokhtar    0xd2399179, 0x640eb999, 0x2cbaf577, 0xaf224ae2, 0x9d139927, 0xe6909b29,
482f714a188SAmr Mokhtar    0xa25b7f47, 0x2aa224ce, 0x79f2
483f714a188SAmr Mokhtar
484f714a188SAmr Mokhtaruint32_t value
485f714a188SAmr Mokhtar
486f714a188SAmr Mokhtar.. parsed-literal::
487f714a188SAmr Mokhtar
488f714a188SAmr Mokhtar    e =
489f714a188SAmr Mokhtar    272
490f714a188SAmr Mokhtar
491f714a188SAmr Mokhtaruint16_t value
492f714a188SAmr Mokhtar
493f714a188SAmr Mokhtar.. parsed-literal::
494f714a188SAmr Mokhtar
495f714a188SAmr Mokhtar    k =
496f714a188SAmr Mokhtar    40
497f714a188SAmr Mokhtar
498f714a188SAmr Mokhtaruint16_t value
499f714a188SAmr Mokhtar
500f714a188SAmr Mokhtar.. parsed-literal::
501f714a188SAmr Mokhtar
502f714a188SAmr Mokhtar    ncb =
503f714a188SAmr Mokhtar    192
504f714a188SAmr Mokhtar
505f714a188SAmr Mokhtaruint8_t value
506f714a188SAmr Mokhtar
507f714a188SAmr Mokhtar.. parsed-literal::
508f714a188SAmr Mokhtar
509f714a188SAmr Mokhtar    rv_index =
510f714a188SAmr Mokhtar    0
511f714a188SAmr Mokhtar
512f714a188SAmr MokhtarChain of flags for turbo encoder operation. Following flags can be used:
513f714a188SAmr Mokhtar
514f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_RV_INDEX_BYPASS``
515f714a188SAmr Mokhtar
516f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_RATE_MATCH``
517f714a188SAmr Mokhtar
518f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_CRC_24B_ATTACH``
519f714a188SAmr Mokhtar
520f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_CRC_24A_ATTACH``
521f714a188SAmr Mokhtar
522f714a188SAmr Mokhtar- ``RTE_BBDEV_TURBO_ENC_SCATTER_GATHER``
523f714a188SAmr Mokhtar
524f714a188SAmr Mokhtar``RTE_BBDEV_TURBO_ENC_SCATTER_GATHER`` is used to indicate the parser to
525f714a188SAmr Mokhtarforce the input data to be memory split and formed as a segmented mbuf.
526f714a188SAmr Mokhtar
527f714a188SAmr Mokhtar
528f714a188SAmr Mokhtar.. parsed-literal::
529f714a188SAmr Mokhtar
530f714a188SAmr Mokhtar    op_flags =
531f714a188SAmr Mokhtar    RTE_BBDEV_TURBO_RATE_MATCH
532f714a188SAmr Mokhtar
533f714a188SAmr MokhtarChain of operation statuses that are expected after operation is performed.
534f714a188SAmr MokhtarFollowing statuses can be used:
535f714a188SAmr Mokhtar
536f714a188SAmr Mokhtar- ``DMA``
537f714a188SAmr Mokhtar
538f714a188SAmr Mokhtar- ``FCW``
539f714a188SAmr Mokhtar
540f714a188SAmr Mokhtar- ``OK``
541f714a188SAmr Mokhtar
542f714a188SAmr Mokhtar``OK`` means no errors are expected. Cannot be used with other values.
543f714a188SAmr Mokhtar
544f714a188SAmr Mokhtar.. parsed-literal::
545f714a188SAmr Mokhtar
546f714a188SAmr Mokhtar    expected_status =
547f714a188SAmr Mokhtar    OK
548