xref: /f-stack/dpdk/doc/guides/tools/testbbdev.rst (revision 2d9fd380)
1d30ea906Sjfb8856606..  SPDX-License-Identifier: BSD-3-Clause
2d30ea906Sjfb8856606    Copyright(c) 2017 Intel Corporation
3d30ea906Sjfb8856606
4d30ea906Sjfb8856606dpdk-test-bbdev Application
5d30ea906Sjfb8856606===========================
6d30ea906Sjfb8856606
7d30ea906Sjfb8856606The ``dpdk-test-bbdev`` tool is a Data Plane Development Kit (DPDK) utility that
8d30ea906Sjfb8856606allows measuring performance parameters of PMDs available in the bbdev framework.
9*2d9fd380Sjfb8856606Tests available for execution are: latency, throughput, validation,
10*2d9fd380Sjfb8856606bler and sanity tests. Execution of tests can be customized using various
11*2d9fd380Sjfb8856606parameters passed to a python running script.
12d30ea906Sjfb8856606
13d30ea906Sjfb8856606
14d30ea906Sjfb8856606Running the Application
15d30ea906Sjfb8856606-----------------------
16d30ea906Sjfb8856606
17d30ea906Sjfb8856606The tool application has a number of command line options:
18d30ea906Sjfb8856606
19d30ea906Sjfb8856606.. code-block:: console
20d30ea906Sjfb8856606
21*2d9fd380Sjfb8856606    test-bbdev.py [-h] [-p TESTAPP_PATH] [-e EAL_PARAMS] [-t TIMEOUT]
22d30ea906Sjfb8856606                       [-c TEST_CASE [TEST_CASE ...]]
23d30ea906Sjfb8856606                       [-v TEST_VECTOR [TEST_VECTOR...]] [-n NUM_OPS]
24d30ea906Sjfb8856606                       [-b BURST_SIZE [BURST_SIZE ...]] [-l NUM_LCORES]
25*2d9fd380Sjfb8856606                       [-t MAX_ITERS [MAX_ITERS ...]]
26*2d9fd380Sjfb8856606                       [-s SNR [SNR ...]]
27d30ea906Sjfb8856606
28d30ea906Sjfb8856606command-line Options
29d30ea906Sjfb8856606~~~~~~~~~~~~~~~~~~~~
30d30ea906Sjfb8856606
31d30ea906Sjfb8856606The following are the command-line options:
32d30ea906Sjfb8856606
33d30ea906Sjfb8856606``-h, --help``
34d30ea906Sjfb8856606 Shows help message and exit.
35d30ea906Sjfb8856606
36d30ea906Sjfb8856606``-p TESTAPP_PATH, --testapp_path TESTAPP_PATH``
37d30ea906Sjfb8856606 Indicates the path to the bbdev test app. If not specified path is set based
38*2d9fd380Sjfb8856606 on "../.." concatenated with "*/build/app/dpdk-test-bbdev*".
39d30ea906Sjfb8856606
40d30ea906Sjfb8856606``-e EAL_PARAMS, --eal_params EAL_PARAMS``
41d30ea906Sjfb8856606 Specifies EAL arguments which are passed to the test app. For more details,
424418919fSjohnjiang refer to DPDK documentation at :doc:`../linux_gsg/linux_eal_parameters`.
43d30ea906Sjfb8856606
44d30ea906Sjfb8856606``-t TIMEOUT, --timeout TIMEOUT``
45d30ea906Sjfb8856606 Specifies timeout in seconds. If not specified timeout is set to 300 seconds.
46d30ea906Sjfb8856606
47d30ea906Sjfb8856606``-c TEST_CASE [TEST_CASE ...], --test_cases TEST_CASE [TEST_CASE ...]``
48d30ea906Sjfb8856606 Defines test cases to run. If not specified all available tests are run.
49d30ea906Sjfb8856606
50d30ea906Sjfb8856606 **Example usage:**
51d30ea906Sjfb8856606
52d30ea906Sjfb8856606 ``./test-bbdev.py -c validation``
53d30ea906Sjfb8856606  Runs validation test suite
54d30ea906Sjfb8856606
55d30ea906Sjfb8856606 ``./test-bbdev.py -c latency throughput``
56d30ea906Sjfb8856606  Runs latency and throughput test suites
57d30ea906Sjfb8856606
58d30ea906Sjfb8856606``-v TEST_VECTOR [TEST_VECTOR ...], --test_vector TEST_VECTOR [TEST_VECTOR ...]``
59d30ea906Sjfb8856606 Specifies paths to the test vector files. If not specified path is set based
60*2d9fd380Sjfb8856606 on "../.." concatenated with "*/app/test-bbdev/test_vectors/bbdev_null.data*"
61*2d9fd380Sjfb8856606 and indicates default data file.
62d30ea906Sjfb8856606
63d30ea906Sjfb8856606 **Example usage:**
64d30ea906Sjfb8856606
65d30ea906Sjfb8856606 ``./test-bbdev.py -v app/test-bbdev/test_vectors/turbo_dec_test1.data``
66d30ea906Sjfb8856606  Fills vector based on turbo_dec_test1.data file and runs all tests
67d30ea906Sjfb8856606
68d30ea906Sjfb8856606 ``./test-bbdev.py -v turbo_dec_test1.data turbo_enc_test2.data``
69d30ea906Sjfb8856606  The bbdev test app is executed twice. First time vector is filled based on
70d30ea906Sjfb8856606  *turbo_dec_test1.data* file and second time based on
71d30ea906Sjfb8856606  *turb_enc_test2.data* file. For both executions all tests are run.
72d30ea906Sjfb8856606
73d30ea906Sjfb8856606``-n NUM_OPS, --num_ops NUM_OPS``
74d30ea906Sjfb8856606 Specifies number of operations to process on device. If not specified num_ops
75d30ea906Sjfb8856606 is set to 32 operations.
76d30ea906Sjfb8856606
77d30ea906Sjfb8856606``-l NUM_LCORES, --num_lcores NUM_LCORES``
78d30ea906Sjfb8856606 Specifies number of lcores to run. If not specified num_lcores is set
79d30ea906Sjfb8856606 according to value from RTE configuration (EAL coremask)
80d30ea906Sjfb8856606
81d30ea906Sjfb8856606``-b BURST_SIZE [BURST_SIZE ...], --burst-size BURST_SIZE [BURST_SIZE ...]``
82d30ea906Sjfb8856606 Specifies operations enqueue/dequeue burst size. If not specified burst_size is
83d30ea906Sjfb8856606 set to 32. Maximum is 512.
84d30ea906Sjfb8856606
85*2d9fd380Sjfb8856606``-t MAX_ITERS [MAX_ITERS ...], --iter_max MAX_ITERS [MAX_ITERS ...]``
86*2d9fd380Sjfb8856606 Specifies LDPC decoder operations maximum number of iterations for throughput
87*2d9fd380Sjfb8856606 and bler tests. If not specified iter_max is set to 6.
88*2d9fd380Sjfb8856606
89*2d9fd380Sjfb8856606``-s SNR [SNR ...], --snr SNR [SNR ...]``
90*2d9fd380Sjfb8856606 Specifies for LDPC decoder operations the SNR in dB used when generating LLRs
91*2d9fd380Sjfb8856606 for bler tests. If not specified snr is set to 0 dB.
92*2d9fd380Sjfb8856606
93d30ea906Sjfb8856606Test Cases
94d30ea906Sjfb8856606~~~~~~~~~~
95d30ea906Sjfb8856606
96*2d9fd380Sjfb8856606There are 7 main test cases that can be executed using testbbdev tool:
97d30ea906Sjfb8856606
98d30ea906Sjfb8856606* Sanity checks [-c unittest]
99d30ea906Sjfb8856606    - Performs sanity checks on BBDEV interface, validating basic functionality
100d30ea906Sjfb8856606
101d30ea906Sjfb8856606* Validation tests [-c validation]
102d30ea906Sjfb8856606    - Performs full operation of enqueue and dequeue
103d30ea906Sjfb8856606    - Compares the dequeued data buffer with a expected values in the test
104d30ea906Sjfb8856606      vector (TV) being used
105d30ea906Sjfb8856606    - Fails if any dequeued value does not match the data in the TV
106d30ea906Sjfb8856606
107d30ea906Sjfb8856606* Offload Cost measurement [-c offload]
108d30ea906Sjfb8856606    - Measures the CPU cycles consumed from the receipt of a user enqueue
109d30ea906Sjfb8856606      until it is put on the device queue
110d30ea906Sjfb8856606    - The test measures 4 metrics
111d30ea906Sjfb8856606        (a) *SW Enq Offload Cost*: Software only enqueue offload cost, the cycle
112d30ea906Sjfb8856606            counts and time (us) from the point the enqueue API is called until
113d30ea906Sjfb8856606            the point the operation is put on the accelerator queue.
114d30ea906Sjfb8856606        (b) *Acc Enq Offload Cost*: The cycle count and time (us) from the
115d30ea906Sjfb8856606            point the operation is put on the accelerator queue until the return
116d30ea906Sjfb8856606            from enqueue.
117d30ea906Sjfb8856606        (c) *SW Deq Offload Cost*: Software dequeue cost, the cycle counts and
118d30ea906Sjfb8856606            time (us) consumed to dequeue one operation.
119d30ea906Sjfb8856606        (d) *Empty Queue Enq Offload Cost*: The cycle count and time (us)
120d30ea906Sjfb8856606            consumed to dequeue from an empty queue.
121d30ea906Sjfb8856606
122d30ea906Sjfb8856606* Latency measurement [-c latency]
123d30ea906Sjfb8856606    - Measures the time consumed from the first enqueue until the first
124d30ea906Sjfb8856606      appearance of a dequeued result
1251646932aSjfb8856606    - This measurement represents the full latency of a bbdev operation
126d30ea906Sjfb8856606      (encode or decode) to execute
127d30ea906Sjfb8856606
128d30ea906Sjfb8856606* Poll-mode Throughput measurement [-c throughput]
129d30ea906Sjfb8856606    - Performs full operation of enqueue and dequeue
130d30ea906Sjfb8856606    - Executes in poll mode
131d30ea906Sjfb8856606    - Measures the achieved throughput on a subset or all available CPU cores
132d30ea906Sjfb8856606    - Dequeued data is not validated against expected values stored in TV
133d30ea906Sjfb8856606    - Results are printed in million operations per second and million bits
134d30ea906Sjfb8856606      per second
135d30ea906Sjfb8856606
136*2d9fd380Sjfb8856606* BLER measurement [-c bler]
137*2d9fd380Sjfb8856606    - Performs full operation of enqueue and dequeue
138*2d9fd380Sjfb8856606    - Measures the achieved throughput on a subset or all available CPU cores
139*2d9fd380Sjfb8856606    - Computed BLER (Block Error Rate, ratio of blocks not decoded at a given
140*2d9fd380Sjfb8856606      SNR) in % based on the total number of operations.
141*2d9fd380Sjfb8856606
142d30ea906Sjfb8856606* Interrupt-mode Throughput [-c interrupt]
143d30ea906Sjfb8856606    - Similar to Throughput test case, but using interrupts. No polling.
144d30ea906Sjfb8856606
145d30ea906Sjfb8856606
146d30ea906Sjfb8856606Parameter Globbing
147d30ea906Sjfb8856606~~~~~~~~~~~~~~~~~~
148d30ea906Sjfb8856606
149d30ea906Sjfb8856606Thanks to the globbing functionality in python test-bbdev.py script allows to
150d30ea906Sjfb8856606run tests with different set of vector files without giving all of them explicitly.
151d30ea906Sjfb8856606
152*2d9fd380Sjfb8856606**Example usage for 4G:**
153d30ea906Sjfb8856606
154d30ea906Sjfb8856606.. code-block:: console
155d30ea906Sjfb8856606
156d30ea906Sjfb8856606  ./test-bbdev.py -v app/test-bbdev/test_vectors/turbo_<enc/dec>_c<c>_k<k>_r<r>_e<e>_<extra-info>.data
157d30ea906Sjfb8856606
158d30ea906Sjfb8856606It runs all tests with following vectors:
159d30ea906Sjfb8856606
160d30ea906Sjfb8856606- ``bbdev_null.data``
161d30ea906Sjfb8856606
162d30ea906Sjfb8856606- ``turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data``
163d30ea906Sjfb8856606
164d30ea906Sjfb8856606- ``turbo_enc_c1_k40_r0_e1196_rm.data``
165d30ea906Sjfb8856606
166d30ea906Sjfb8856606- ``turbo_enc_c2_k5952_r0_e17868_crc24b.data``
167d30ea906Sjfb8856606
168d30ea906Sjfb8856606- ``turbo_dec_c1_k40_r0_e17280_sbd_negllr.data``
169d30ea906Sjfb8856606
170d30ea906Sjfb8856606- ``turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data``
171d30ea906Sjfb8856606
172d30ea906Sjfb8856606- ``turbo_enc_c1_k40_r0_e272_rm.data``
173d30ea906Sjfb8856606
174d30ea906Sjfb8856606- ``turbo_enc_c3_k4800_r2_e14412_crc24b.data``
175d30ea906Sjfb8856606
176d30ea906Sjfb8856606- ``turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data``
177d30ea906Sjfb8856606
178d30ea906Sjfb8856606- ``turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data``
179d30ea906Sjfb8856606
180d30ea906Sjfb8856606- ``turbo_enc_c1_k6144_r0_e120_rm_rvidx.data``
181d30ea906Sjfb8856606
182d30ea906Sjfb8856606- ``turbo_enc_c4_k4800_r2_e14412_crc24b.data``
183d30ea906Sjfb8856606
184d30ea906Sjfb8856606- ``turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data``
185d30ea906Sjfb8856606
186d30ea906Sjfb8856606- ``turbo_dec_c2_k3136_r0_e4920_sbd_negllr.data``
187d30ea906Sjfb8856606
188d30ea906Sjfb8856606- ``turbo_enc_c1_k6144_r0_e18444.data``
189d30ea906Sjfb8856606
190d30ea906Sjfb8856606- ``turbo_dec_c1_k6144_r0_e34560_negllr.data``
191d30ea906Sjfb8856606
192d30ea906Sjfb8856606- ``turbo_enc_c1_k40_r0_e1190_rm.data``
193d30ea906Sjfb8856606
194d30ea906Sjfb8856606- ``turbo_enc_c1_k6144_r0_e18448_crc24a.data``
195d30ea906Sjfb8856606
196d30ea906Sjfb8856606- ``turbo_dec_c1_k6144_r0_e34560_posllr.data``
197d30ea906Sjfb8856606
198d30ea906Sjfb8856606- ``turbo_enc_c1_k40_r0_e1194_rm.data``
199d30ea906Sjfb8856606
200d30ea906Sjfb8856606- ``turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data``
201d30ea906Sjfb8856606
202d30ea906Sjfb8856606.. code-block:: console
203d30ea906Sjfb8856606
204d30ea906Sjfb8856606  ./test-bbdev.py -v app/test-bbdev/turbo_*_default.data
205d30ea906Sjfb8856606
206d30ea906Sjfb8856606It runs all tests with "default" vectors.
207d30ea906Sjfb8856606
208d30ea906Sjfb8856606* ``turbo_dec_default.data`` is a soft link to
209d30ea906Sjfb8856606  ``turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data``
210d30ea906Sjfb8856606
211d30ea906Sjfb8856606* ``turbo_enc_default.data`` is a soft link to
212d30ea906Sjfb8856606  ``turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data``
213d30ea906Sjfb8856606
214*2d9fd380Sjfb8856606* ``ldpc_dec_default.data`` is a soft link to
215*2d9fd380Sjfb8856606  ``ldpc_dec_v6563.data``
216*2d9fd380Sjfb8856606
217*2d9fd380Sjfb8856606* ``ldpc_enc_default.data`` is a soft link to
218*2d9fd380Sjfb8856606  ``ldpc_enc_c1_k8148_r0_e9372_rm.data``
219d30ea906Sjfb8856606
220d30ea906Sjfb8856606Running Tests
221d30ea906Sjfb8856606-------------
222d30ea906Sjfb8856606
223*2d9fd380Sjfb8856606All default reference test-vectors are stored in the test_vector
224*2d9fd380Sjfb8856606directory below.
225*2d9fd380Sjfb8856606The prefix trivially defines which type of operation is included :
226*2d9fd380Sjfb8856606turbo_enc, turbo_dec, ldpc_enc, ldpc_dec.
227*2d9fd380Sjfb8856606The details of the configuration are captured in the file but some
228*2d9fd380Sjfb8856606vector name refer more explicitly processing specificity such as
229*2d9fd380Sjfb8856606'HARQ' when HARQ retransmission is used, 'loopback' when the data
230*2d9fd380Sjfb8856606is purely read/written for external DDR, lbrm when limited buffer
231*2d9fd380Sjfb8856606rate matching is expected, or crc_fail when a CRC failure is expected.
232*2d9fd380Sjfb8856606They are chosen to have a good coverage across sizes and processing
233*2d9fd380Sjfb8856606parameters while still keeping their number limited as part of sanity
234*2d9fd380Sjfb8856606regression.
235*2d9fd380Sjfb8856606
236*2d9fd380Sjfb8856606Shortened tree of isg_cid-wireless_dpdk_ae with dpdk compiled and output
237*2d9fd380Sjfb8856606to the build directory:
238d30ea906Sjfb8856606
239d30ea906Sjfb8856606::
240d30ea906Sjfb8856606
241d30ea906Sjfb8856606 |-- app
242d30ea906Sjfb8856606     |-- test-bbdev
243d30ea906Sjfb8856606         |-- test_vectors
244d30ea906Sjfb8856606
245*2d9fd380Sjfb8856606 |-- build
246d30ea906Sjfb8856606     |-- app
247*2d9fd380Sjfb8856606         |-- dpdk-test-bbdev
248d30ea906Sjfb8856606
249d30ea906Sjfb8856606All bbdev devices
250d30ea906Sjfb8856606~~~~~~~~~~~~~~~~~
251d30ea906Sjfb8856606
252d30ea906Sjfb8856606.. code-block:: console
253d30ea906Sjfb8856606
254*2d9fd380Sjfb8856606  ./test-bbdev.py -p ../../build/app/dpdk-test-bbdev
255d30ea906Sjfb8856606  -v turbo_dec_default.data
256d30ea906Sjfb8856606
257d30ea906Sjfb8856606It runs all available tests using the test vector filled based on
258d30ea906Sjfb8856606*turbo_dec_default.data* file.
259d30ea906Sjfb8856606By default number of operations to process on device is set to 32, timeout is
260d30ea906Sjfb8856606set to 300s and operations enqueue/dequeue burst size is set to 32.
261d30ea906Sjfb8856606Moreover a bbdev (*baseband_null*) device will be created.
262d30ea906Sjfb8856606
263d30ea906Sjfb8856606baseband turbo_sw device
264d30ea906Sjfb8856606~~~~~~~~~~~~~~~~~~~~~~~~
265d30ea906Sjfb8856606
266d30ea906Sjfb8856606.. code-block:: console
267d30ea906Sjfb8856606
268*2d9fd380Sjfb8856606  ./test-bbdev.py -p ../../build/app/dpdk-test-bbdev
269d30ea906Sjfb8856606  -e="--vdev=baseband_turbo_sw" -t 120 -c validation
270*2d9fd380Sjfb8856606  -v ./test_vectors/* -n 64 -b 8 32
271d30ea906Sjfb8856606
272d30ea906Sjfb8856606It runs **validation** test for each vector file that matches the given pattern.
273d30ea906Sjfb8856606Number of operations to process on device is set to 64 and operations timeout is
274d30ea906Sjfb8856606set to 120s and enqueue/dequeue burst size is set to 8 and to 32.
275d30ea906Sjfb8856606Moreover a bbdev (*baseband_turbo_sw*) device will be created.
276d30ea906Sjfb8856606
277d30ea906Sjfb8856606
278d30ea906Sjfb8856606bbdev null device
279d30ea906Sjfb8856606~~~~~~~~~~~~~~~~~
280d30ea906Sjfb8856606
281d30ea906Sjfb8856606Executing bbdev null device with *bbdev_null.data* helps in measuring the
282d30ea906Sjfb8856606overhead introduced by the bbdev framework.
283d30ea906Sjfb8856606
284d30ea906Sjfb8856606.. code-block:: console
285d30ea906Sjfb8856606
286d30ea906Sjfb8856606  ./test-bbdev.py -e="--vdev=baseband_null0"
287d30ea906Sjfb8856606  -v ./test_vectors/bbdev_null.data
288d30ea906Sjfb8856606
289d30ea906Sjfb8856606**Note:**
290d30ea906Sjfb8856606
291d30ea906Sjfb8856606baseband_null device does not have to be defined explicitly as it is created by default.
292d30ea906Sjfb8856606
293d30ea906Sjfb8856606
294d30ea906Sjfb8856606
295d30ea906Sjfb8856606Test Vector files
2961646932aSjfb8856606-----------------
297d30ea906Sjfb8856606
298d30ea906Sjfb8856606Test Vector files contain the data which is used to set turbo decoder/encoder
299d30ea906Sjfb8856606parameters and buffers for validation purpose. New test vector files should be
300d30ea906Sjfb8856606stored in ``app/test-bbdev/test_vectors/`` directory. Detailed description of
301d30ea906Sjfb8856606the syntax of the test vector files is in the following section.
302d30ea906Sjfb8856606
303d30ea906Sjfb8856606
304d30ea906Sjfb8856606Basic principles for test vector files
3051646932aSjfb8856606~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
306d30ea906Sjfb8856606Line started with ``#`` is treated as a comment and is ignored.
307d30ea906Sjfb8856606
308d30ea906Sjfb8856606If variable is a chain of values, values should be separated by a comma. If
309d30ea906Sjfb8856606assignment is split into several lines, each line (except the last one) has to
310d30ea906Sjfb8856606be ended with a comma.
311d30ea906Sjfb8856606There is no comma after last value in last line. Correct assignment should
312d30ea906Sjfb8856606look like the following:
313d30ea906Sjfb8856606
314d30ea906Sjfb8856606.. parsed-literal::
315d30ea906Sjfb8856606
316d30ea906Sjfb8856606 variable =
317d30ea906Sjfb8856606 value, value, value, value,
318d30ea906Sjfb8856606 value, value
319d30ea906Sjfb8856606
320d30ea906Sjfb8856606In case where variable is a single value correct assignment looks like the
321d30ea906Sjfb8856606following:
322d30ea906Sjfb8856606
323d30ea906Sjfb8856606.. parsed-literal::
324d30ea906Sjfb8856606
325d30ea906Sjfb8856606 variable =
326d30ea906Sjfb8856606 value
327d30ea906Sjfb8856606
328d30ea906Sjfb8856606Length of chain variable is calculated by parser. Can not be defined
329d30ea906Sjfb8856606explicitly.
330d30ea906Sjfb8856606
331d30ea906Sjfb8856606Variable op_type has to be defined as a first variable in file. It specifies
332*2d9fd380Sjfb8856606what type of operations will be executed. For 4G decoder op_type has to be set to
333*2d9fd380Sjfb8856606``RTE_BBDEV_OP_TURBO_DEC`` and for 4G encoder to ``RTE_BBDEV_OP_TURBO_ENC``.
334d30ea906Sjfb8856606
335d30ea906Sjfb8856606Full details of the meaning and valid values for the below fields are
336d30ea906Sjfb8856606documented in *rte_bbdev_op.h*
337d30ea906Sjfb8856606
338d30ea906Sjfb8856606
339d30ea906Sjfb8856606Turbo decoder test vectors template
3401646932aSjfb8856606~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
341d30ea906Sjfb8856606
342d30ea906Sjfb8856606For turbo decoder it has to be always set to ``RTE_BBDEV_OP_TURBO_DEC``
343d30ea906Sjfb8856606
344d30ea906Sjfb8856606.. parsed-literal::
345d30ea906Sjfb8856606
346d30ea906Sjfb8856606    op_type =
347d30ea906Sjfb8856606    RTE_BBDEV_OP_TURBO_DEC
348d30ea906Sjfb8856606
349d30ea906Sjfb8856606Chain of uint32_t values. Note that it is possible to define more than one
350d30ea906Sjfb8856606input/output entries which will result in chaining two or more data structures
351d30ea906Sjfb8856606for *segmented Transport Blocks*
352d30ea906Sjfb8856606
353d30ea906Sjfb8856606.. parsed-literal::
354d30ea906Sjfb8856606
355d30ea906Sjfb8856606    input0 =
356d30ea906Sjfb8856606    0x00000000, 0x7f817f00, 0x7f7f8100, 0x817f8100, 0x81008100, 0x7f818100, 0x81817f00, 0x7f818100,
357d30ea906Sjfb8856606    0x81007f00, 0x7f818100, 0x817f8100, 0x81817f00, 0x81008100, 0x817f7f00, 0x7f7f8100, 0x81817f00
358d30ea906Sjfb8856606
359d30ea906Sjfb8856606Chain of uint32_t values
360d30ea906Sjfb8856606
361d30ea906Sjfb8856606.. parsed-literal::
362d30ea906Sjfb8856606
363d30ea906Sjfb8856606    input1 =
364d30ea906Sjfb8856606    0x7f7f0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
365d30ea906Sjfb8856606    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
366d30ea906Sjfb8856606
367d30ea906Sjfb8856606Chain of uint32_t values
368d30ea906Sjfb8856606
369d30ea906Sjfb8856606.. parsed-literal::
370d30ea906Sjfb8856606
371d30ea906Sjfb8856606    input2 =
372d30ea906Sjfb8856606    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
373d30ea906Sjfb8856606    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
374d30ea906Sjfb8856606
375d30ea906Sjfb8856606Chain of uint32_t values
376d30ea906Sjfb8856606
377d30ea906Sjfb8856606.. parsed-literal::
378d30ea906Sjfb8856606
379d30ea906Sjfb8856606    hard_output0 =
380d30ea906Sjfb8856606    0xa7d6732e
381d30ea906Sjfb8856606
382d30ea906Sjfb8856606Chain of uint32_t values
383d30ea906Sjfb8856606
384d30ea906Sjfb8856606.. parsed-literal::
385d30ea906Sjfb8856606
386d30ea906Sjfb8856606    hard_output1 =
387d30ea906Sjfb8856606    0xa61
388d30ea906Sjfb8856606
389d30ea906Sjfb8856606Chain of uint32_t values
390d30ea906Sjfb8856606
391d30ea906Sjfb8856606.. parsed-literal::
392d30ea906Sjfb8856606
393d30ea906Sjfb8856606    soft_output0 =
394d30ea906Sjfb8856606    0x817f817f, 0x7f817f7f, 0x81818181, 0x817f7f81, 0x7f818181, 0x8181817f, 0x817f817f, 0x8181817f
395d30ea906Sjfb8856606
396d30ea906Sjfb8856606Chain of uint32_t values
397d30ea906Sjfb8856606
398d30ea906Sjfb8856606.. parsed-literal::
399d30ea906Sjfb8856606
400d30ea906Sjfb8856606    soft_output1 =
401d30ea906Sjfb8856606    0x817f7f81, 0x7f7f7f81, 0x7f7f8181
402d30ea906Sjfb8856606
403d30ea906Sjfb8856606uint32_t value
404d30ea906Sjfb8856606
405d30ea906Sjfb8856606.. parsed-literal::
406d30ea906Sjfb8856606
407d30ea906Sjfb8856606    e =
408d30ea906Sjfb8856606    44
409d30ea906Sjfb8856606
410d30ea906Sjfb8856606uint16_t value
411d30ea906Sjfb8856606
412d30ea906Sjfb8856606.. parsed-literal::
413d30ea906Sjfb8856606
414d30ea906Sjfb8856606    k =
415d30ea906Sjfb8856606    40
416d30ea906Sjfb8856606
417d30ea906Sjfb8856606uint8_t value
418d30ea906Sjfb8856606
419d30ea906Sjfb8856606.. parsed-literal::
420d30ea906Sjfb8856606
421d30ea906Sjfb8856606    rv_index =
422d30ea906Sjfb8856606    0
423d30ea906Sjfb8856606
424d30ea906Sjfb8856606uint8_t value
425d30ea906Sjfb8856606
426d30ea906Sjfb8856606.. parsed-literal::
427d30ea906Sjfb8856606
428d30ea906Sjfb8856606    iter_max =
429d30ea906Sjfb8856606    8
430d30ea906Sjfb8856606
431d30ea906Sjfb8856606uint8_t value
432d30ea906Sjfb8856606
433d30ea906Sjfb8856606.. parsed-literal::
434d30ea906Sjfb8856606
435d30ea906Sjfb8856606    iter_min =
436d30ea906Sjfb8856606    4
437d30ea906Sjfb8856606
438d30ea906Sjfb8856606uint8_t value
439d30ea906Sjfb8856606
440d30ea906Sjfb8856606.. parsed-literal::
441d30ea906Sjfb8856606
442d30ea906Sjfb8856606    expected_iter_count =
443d30ea906Sjfb8856606    8
444d30ea906Sjfb8856606
445d30ea906Sjfb8856606uint8_t value
446d30ea906Sjfb8856606
447d30ea906Sjfb8856606.. parsed-literal::
448d30ea906Sjfb8856606
449d30ea906Sjfb8856606    ext_scale =
450d30ea906Sjfb8856606    15
451d30ea906Sjfb8856606
452d30ea906Sjfb8856606uint8_t value
453d30ea906Sjfb8856606
454d30ea906Sjfb8856606.. parsed-literal::
455d30ea906Sjfb8856606
456d30ea906Sjfb8856606    num_maps =
457d30ea906Sjfb8856606    0
458d30ea906Sjfb8856606
459*2d9fd380Sjfb8856606Chain of flags for LDPC decoder operation based on the rte_bbdev_op_td_flag_bitmasks:
460d30ea906Sjfb8856606
461d30ea906Sjfb8856606Example:
462d30ea906Sjfb8856606
463d30ea906Sjfb8856606    .. parsed-literal::
464d30ea906Sjfb8856606
465d30ea906Sjfb8856606        op_flags =
466d30ea906Sjfb8856606        RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_EQUALIZER,
467d30ea906Sjfb8856606        RTE_BBDEV_TURBO_SOFT_OUTPUT
468d30ea906Sjfb8856606
469d30ea906Sjfb8856606Chain of operation statuses that are expected after operation is performed.
470d30ea906Sjfb8856606Following statuses can be used:
471d30ea906Sjfb8856606
472d30ea906Sjfb8856606- ``DMA``
473d30ea906Sjfb8856606
474d30ea906Sjfb8856606- ``FCW``
475d30ea906Sjfb8856606
476d30ea906Sjfb8856606- ``CRC``
477d30ea906Sjfb8856606
478d30ea906Sjfb8856606- ``OK``
479d30ea906Sjfb8856606
480d30ea906Sjfb8856606``OK`` means no errors are expected. Cannot be used with other values.
481d30ea906Sjfb8856606
482d30ea906Sjfb8856606.. parsed-literal::
483d30ea906Sjfb8856606
484d30ea906Sjfb8856606    expected_status =
485d30ea906Sjfb8856606    FCW, CRC
486d30ea906Sjfb8856606
487d30ea906Sjfb8856606
488d30ea906Sjfb8856606Turbo encoder test vectors template
4891646932aSjfb8856606~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
490d30ea906Sjfb8856606
491d30ea906Sjfb8856606For turbo encoder it has to be always set to ``RTE_BBDEV_OP_TURBO_ENC``
492d30ea906Sjfb8856606
493d30ea906Sjfb8856606.. parsed-literal::
494d30ea906Sjfb8856606
495d30ea906Sjfb8856606    op_type =
496d30ea906Sjfb8856606    RTE_BBDEV_OP_TURBO_ENC
497d30ea906Sjfb8856606
498d30ea906Sjfb8856606Chain of uint32_t values
499d30ea906Sjfb8856606
500d30ea906Sjfb8856606.. parsed-literal::
501d30ea906Sjfb8856606
502d30ea906Sjfb8856606    input0 =
503d30ea906Sjfb8856606    0x11d2bcac, 0x4d
504d30ea906Sjfb8856606
505d30ea906Sjfb8856606Chain of uint32_t values
506d30ea906Sjfb8856606
507d30ea906Sjfb8856606.. parsed-literal::
508d30ea906Sjfb8856606
509d30ea906Sjfb8856606    output0 =
510d30ea906Sjfb8856606    0xd2399179, 0x640eb999, 0x2cbaf577, 0xaf224ae2, 0x9d139927, 0xe6909b29,
511d30ea906Sjfb8856606    0xa25b7f47, 0x2aa224ce, 0x79f2
512d30ea906Sjfb8856606
513d30ea906Sjfb8856606uint32_t value
514d30ea906Sjfb8856606
515d30ea906Sjfb8856606.. parsed-literal::
516d30ea906Sjfb8856606
517d30ea906Sjfb8856606    e =
518d30ea906Sjfb8856606    272
519d30ea906Sjfb8856606
520d30ea906Sjfb8856606uint16_t value
521d30ea906Sjfb8856606
522d30ea906Sjfb8856606.. parsed-literal::
523d30ea906Sjfb8856606
524d30ea906Sjfb8856606    k =
525d30ea906Sjfb8856606    40
526d30ea906Sjfb8856606
527d30ea906Sjfb8856606uint16_t value
528d30ea906Sjfb8856606
529d30ea906Sjfb8856606.. parsed-literal::
530d30ea906Sjfb8856606
531d30ea906Sjfb8856606    ncb =
532d30ea906Sjfb8856606    192
533d30ea906Sjfb8856606
534d30ea906Sjfb8856606uint8_t value
535d30ea906Sjfb8856606
536d30ea906Sjfb8856606.. parsed-literal::
537d30ea906Sjfb8856606
538d30ea906Sjfb8856606    rv_index =
539d30ea906Sjfb8856606    0
540d30ea906Sjfb8856606
541*2d9fd380Sjfb8856606Chain of flags for LDPC decoder operation based on the rte_bbdev_op_te_flag_bitmasks:
542d30ea906Sjfb8856606
543d30ea906Sjfb8856606``RTE_BBDEV_TURBO_ENC_SCATTER_GATHER`` is used to indicate the parser to
544d30ea906Sjfb8856606force the input data to be memory split and formed as a segmented mbuf.
545d30ea906Sjfb8856606
546d30ea906Sjfb8856606
547d30ea906Sjfb8856606.. parsed-literal::
548d30ea906Sjfb8856606
549d30ea906Sjfb8856606    op_flags =
550d30ea906Sjfb8856606    RTE_BBDEV_TURBO_RATE_MATCH
551d30ea906Sjfb8856606
552d30ea906Sjfb8856606Chain of operation statuses that are expected after operation is performed.
553d30ea906Sjfb8856606Following statuses can be used:
554d30ea906Sjfb8856606
555d30ea906Sjfb8856606- ``DMA``
556d30ea906Sjfb8856606
557d30ea906Sjfb8856606- ``FCW``
558d30ea906Sjfb8856606
559d30ea906Sjfb8856606- ``OK``
560d30ea906Sjfb8856606
561d30ea906Sjfb8856606``OK`` means no errors are expected. Cannot be used with other values.
562d30ea906Sjfb8856606
563d30ea906Sjfb8856606.. parsed-literal::
564d30ea906Sjfb8856606
565d30ea906Sjfb8856606    expected_status =
566d30ea906Sjfb8856606    OK
567*2d9fd380Sjfb8856606
568*2d9fd380Sjfb8856606LDPC decoder test vectors template
569*2d9fd380Sjfb8856606~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
570*2d9fd380Sjfb8856606
571*2d9fd380Sjfb8856606For LDPC decoder it has to be always set to ``RTE_BBDEV_OP_LDPC_DEC``
572*2d9fd380Sjfb8856606
573*2d9fd380Sjfb8856606.. parsed-literal::
574*2d9fd380Sjfb8856606
575*2d9fd380Sjfb8856606    op_type =
576*2d9fd380Sjfb8856606    RTE_BBDEV_OP_LDPC_DEC
577*2d9fd380Sjfb8856606
578*2d9fd380Sjfb8856606Chain of uint32_t values. Note that it is possible to define more than one
579*2d9fd380Sjfb8856606input/output entries which will result in chaining two or more data structures
580*2d9fd380Sjfb8856606for *segmented Transport Blocks*
581*2d9fd380Sjfb8856606
582*2d9fd380Sjfb8856606.. parsed-literal::
583*2d9fd380Sjfb8856606
584*2d9fd380Sjfb8856606    input0 =
585*2d9fd380Sjfb8856606    0x00000000, 0x7f817f00, 0x7f7f8100, 0x817f8100, 0x81008100, 0x7f818100, 0x81817f00, 0x7f818100,
586*2d9fd380Sjfb8856606    0x81007f00, 0x7f818100, 0x817f8100, 0x81817f00, 0x81008100, 0x817f7f00, 0x7f7f8100, 0x81817f00
587*2d9fd380Sjfb8856606
588*2d9fd380Sjfb8856606.. parsed-literal::
589*2d9fd380Sjfb8856606
590*2d9fd380Sjfb8856606    output0 =
591*2d9fd380Sjfb8856606    0xa7d6732e
592*2d9fd380Sjfb8856606
593*2d9fd380Sjfb8856606uint8_t value
594*2d9fd380Sjfb8856606
595*2d9fd380Sjfb8856606.. parsed-literal::
596*2d9fd380Sjfb8856606
597*2d9fd380Sjfb8856606    basegraph=
598*2d9fd380Sjfb8856606    1
599*2d9fd380Sjfb8856606
600*2d9fd380Sjfb8856606uint16_t value
601*2d9fd380Sjfb8856606
602*2d9fd380Sjfb8856606.. parsed-literal::
603*2d9fd380Sjfb8856606
604*2d9fd380Sjfb8856606    z_c=
605*2d9fd380Sjfb8856606    224
606*2d9fd380Sjfb8856606
607*2d9fd380Sjfb8856606uint16_t value
608*2d9fd380Sjfb8856606
609*2d9fd380Sjfb8856606.. parsed-literal::
610*2d9fd380Sjfb8856606
611*2d9fd380Sjfb8856606    n_cb=
612*2d9fd380Sjfb8856606    14784
613*2d9fd380Sjfb8856606
614*2d9fd380Sjfb8856606uint8_t value
615*2d9fd380Sjfb8856606
616*2d9fd380Sjfb8856606.. parsed-literal::
617*2d9fd380Sjfb8856606
618*2d9fd380Sjfb8856606    q_m=
619*2d9fd380Sjfb8856606    1
620*2d9fd380Sjfb8856606
621*2d9fd380Sjfb8856606uint16_t value
622*2d9fd380Sjfb8856606
623*2d9fd380Sjfb8856606.. parsed-literal::
624*2d9fd380Sjfb8856606
625*2d9fd380Sjfb8856606    n_filler=
626*2d9fd380Sjfb8856606    40
627*2d9fd380Sjfb8856606
628*2d9fd380Sjfb8856606uint32_t value
629*2d9fd380Sjfb8856606
630*2d9fd380Sjfb8856606.. parsed-literal::
631*2d9fd380Sjfb8856606
632*2d9fd380Sjfb8856606    e=
633*2d9fd380Sjfb8856606    13072
634*2d9fd380Sjfb8856606
635*2d9fd380Sjfb8856606uint8_t value
636*2d9fd380Sjfb8856606
637*2d9fd380Sjfb8856606.. parsed-literal::
638*2d9fd380Sjfb8856606
639*2d9fd380Sjfb8856606    rv_index=
640*2d9fd380Sjfb8856606    2
641*2d9fd380Sjfb8856606
642*2d9fd380Sjfb8856606uint8_t value
643*2d9fd380Sjfb8856606
644*2d9fd380Sjfb8856606.. parsed-literal::
645*2d9fd380Sjfb8856606    code_block_mode=
646*2d9fd380Sjfb8856606    1
647*2d9fd380Sjfb8856606
648*2d9fd380Sjfb8856606uint8_t value
649*2d9fd380Sjfb8856606
650*2d9fd380Sjfb8856606.. parsed-literal::
651*2d9fd380Sjfb8856606
652*2d9fd380Sjfb8856606    iter_max=
653*2d9fd380Sjfb8856606    20
654*2d9fd380Sjfb8856606
655*2d9fd380Sjfb8856606uint8_t value
656*2d9fd380Sjfb8856606
657*2d9fd380Sjfb8856606.. parsed-literal::
658*2d9fd380Sjfb8856606
659*2d9fd380Sjfb8856606    expected_iter_count=
660*2d9fd380Sjfb8856606    8
661*2d9fd380Sjfb8856606
662*2d9fd380Sjfb8856606
663*2d9fd380Sjfb8856606Chain of flags for LDPC decoder operation based on the rte_bbdev_op_ldpcdec_flag_bitmasks:
664*2d9fd380Sjfb8856606
665*2d9fd380Sjfb8856606Example:
666*2d9fd380Sjfb8856606
667*2d9fd380Sjfb8856606    .. parsed-literal::
668*2d9fd380Sjfb8856606
669*2d9fd380Sjfb8856606        op_flags =
670*2d9fd380Sjfb8856606        RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE, RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE,
671*2d9fd380Sjfb8856606        RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE, RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION
672*2d9fd380Sjfb8856606
673*2d9fd380Sjfb8856606Chain of operation statuses that are expected after operation is performed.
674*2d9fd380Sjfb8856606Following statuses can be used:
675*2d9fd380Sjfb8856606
676*2d9fd380Sjfb8856606- ``OK`` : No error reported.
677*2d9fd380Sjfb8856606
678*2d9fd380Sjfb8856606- ``SYN`` : LDPC syndrome parity check is failing.
679*2d9fd380Sjfb8856606
680*2d9fd380Sjfb8856606- ``CRC`` : CRC parity check is failing when CRC check operation is included.
681*2d9fd380Sjfb8856606
682*2d9fd380Sjfb8856606- ``SYNCRC`` : Both CRC and LDPC syndromes parity checks are failing.
683*2d9fd380Sjfb8856606
684*2d9fd380Sjfb8856606``OK`` means no errors are expected. Cannot be used with other values.
685*2d9fd380Sjfb8856606
686*2d9fd380Sjfb8856606.. parsed-literal::
687*2d9fd380Sjfb8856606
688*2d9fd380Sjfb8856606    expected_status =
689*2d9fd380Sjfb8856606    CRC
690*2d9fd380Sjfb8856606
691*2d9fd380Sjfb8856606
692*2d9fd380Sjfb8856606LDPC encoder test vectors template
693*2d9fd380Sjfb8856606~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
694*2d9fd380Sjfb8856606
695*2d9fd380Sjfb8856606For turbo encoder it has to be always set to ``RTE_BBDEV_OP_LDPC_ENC``
696*2d9fd380Sjfb8856606
697*2d9fd380Sjfb8856606.. parsed-literal::
698*2d9fd380Sjfb8856606
699*2d9fd380Sjfb8856606    op_type =
700*2d9fd380Sjfb8856606    RTE_BBDEV_OP_LDPC_ENC
701*2d9fd380Sjfb8856606
702*2d9fd380Sjfb8856606Chain of uint32_t values
703*2d9fd380Sjfb8856606
704*2d9fd380Sjfb8856606.. parsed-literal::
705*2d9fd380Sjfb8856606
706*2d9fd380Sjfb8856606    input0 =
707*2d9fd380Sjfb8856606    0x11d2bcac, 0x4d
708*2d9fd380Sjfb8856606
709*2d9fd380Sjfb8856606Chain of uint32_t values
710*2d9fd380Sjfb8856606
711*2d9fd380Sjfb8856606.. parsed-literal::
712*2d9fd380Sjfb8856606
713*2d9fd380Sjfb8856606    output0 =
714*2d9fd380Sjfb8856606    0xd2399179, 0x640eb999, 0x2cbaf577, 0xaf224ae2, 0x9d139927, 0xe6909b29,
715*2d9fd380Sjfb8856606    0xa25b7f47, 0x2aa224ce, 0x79f2
716*2d9fd380Sjfb8856606
717*2d9fd380Sjfb8856606
718*2d9fd380Sjfb8856606uint8_t value
719*2d9fd380Sjfb8856606
720*2d9fd380Sjfb8856606.. parsed-literal::
721*2d9fd380Sjfb8856606
722*2d9fd380Sjfb8856606    basegraph=
723*2d9fd380Sjfb8856606    1
724*2d9fd380Sjfb8856606
725*2d9fd380Sjfb8856606uint16_t value
726*2d9fd380Sjfb8856606
727*2d9fd380Sjfb8856606.. parsed-literal::
728*2d9fd380Sjfb8856606
729*2d9fd380Sjfb8856606    z_c=
730*2d9fd380Sjfb8856606    52
731*2d9fd380Sjfb8856606
732*2d9fd380Sjfb8856606uint16_t value
733*2d9fd380Sjfb8856606
734*2d9fd380Sjfb8856606.. parsed-literal::
735*2d9fd380Sjfb8856606
736*2d9fd380Sjfb8856606    n_cb=
737*2d9fd380Sjfb8856606    3432
738*2d9fd380Sjfb8856606
739*2d9fd380Sjfb8856606uint8_t value
740*2d9fd380Sjfb8856606
741*2d9fd380Sjfb8856606.. parsed-literal::
742*2d9fd380Sjfb8856606
743*2d9fd380Sjfb8856606    q_m=
744*2d9fd380Sjfb8856606    6
745*2d9fd380Sjfb8856606
746*2d9fd380Sjfb8856606uint16_t value
747*2d9fd380Sjfb8856606
748*2d9fd380Sjfb8856606.. parsed-literal::
749*2d9fd380Sjfb8856606
750*2d9fd380Sjfb8856606    n_filler=
751*2d9fd380Sjfb8856606    0
752*2d9fd380Sjfb8856606
753*2d9fd380Sjfb8856606uint32_t value
754*2d9fd380Sjfb8856606
755*2d9fd380Sjfb8856606.. parsed-literal::
756*2d9fd380Sjfb8856606
757*2d9fd380Sjfb8856606    e =
758*2d9fd380Sjfb8856606    1380
759*2d9fd380Sjfb8856606
760*2d9fd380Sjfb8856606uint8_t value
761*2d9fd380Sjfb8856606
762*2d9fd380Sjfb8856606.. parsed-literal::
763*2d9fd380Sjfb8856606
764*2d9fd380Sjfb8856606    rv_index =
765*2d9fd380Sjfb8856606    1
766*2d9fd380Sjfb8856606
767*2d9fd380Sjfb8856606uint8_t value
768*2d9fd380Sjfb8856606
769*2d9fd380Sjfb8856606.. parsed-literal::
770*2d9fd380Sjfb8856606
771*2d9fd380Sjfb8856606    code_block_mode =
772*2d9fd380Sjfb8856606    1
773*2d9fd380Sjfb8856606
774*2d9fd380Sjfb8856606
775*2d9fd380Sjfb8856606Chain of flags for LDPC encoder operation based on the
776*2d9fd380Sjfb8856606rte_bbdev_op_ldpcenc_flag_bitmasks:
777*2d9fd380Sjfb8856606
778*2d9fd380Sjfb8856606.. parsed-literal::
779*2d9fd380Sjfb8856606
780*2d9fd380Sjfb8856606    op_flags =
781*2d9fd380Sjfb8856606    RTE_BBDEV_LDPC_RATE_MATCH
782*2d9fd380Sjfb8856606
783*2d9fd380Sjfb8856606Chain of operation statuses that are expected after operation is performed.
784*2d9fd380Sjfb8856606Following statuses can be used:
785*2d9fd380Sjfb8856606
786*2d9fd380Sjfb8856606- ``DMA``
787*2d9fd380Sjfb8856606
788*2d9fd380Sjfb8856606- ``FCW``
789*2d9fd380Sjfb8856606
790*2d9fd380Sjfb8856606- ``OK``
791*2d9fd380Sjfb8856606
792*2d9fd380Sjfb8856606``OK`` means no errors are expected. Cannot be used with other values.
793*2d9fd380Sjfb8856606
794*2d9fd380Sjfb8856606.. parsed-literal::
795*2d9fd380Sjfb8856606
796*2d9fd380Sjfb8856606    expected_status =
797*2d9fd380Sjfb8856606    OK
798