xref: /dpdk/doc/guides/tools/testregex.rst (revision b6aceada0824eec2a2247af8e61dc865dac66a15)
1de06137cSYuval Avnery.. SPDX-License-Identifier: BSD-3-Clause
2de06137cSYuval Avnery   Copyright 2020 Mellanox Technologies, Ltd
3de06137cSYuval Avnery
4de06137cSYuval Avnerydpdk-test-regex Tool
5de06137cSYuval Avnery====================
6de06137cSYuval Avnery
7de06137cSYuval AvneryThe ``dpdk-test-regex`` tool is a Data Plane Development Kit (DPDK)
8de06137cSYuval Avneryapplication that allows functional testing and performance measurement for
9de06137cSYuval Avnerythe RegEx PMDs.
106b99ba8dSOphir Munk
11de06137cSYuval AvneryIt is based on precompiled rule file, and an input file, both of them can
12de06137cSYuval Avnerybe selected using command-line options.
13de06137cSYuval Avnery
14de06137cSYuval AvneryIn general case, each PMD has its own rule file.
15de06137cSYuval Avnery
166b99ba8dSOphir MunkBy default the test supports one QP per core, however a higher number of cores
176b99ba8dSOphir Munkand QPs can be configured. The QPs are evenly distributed on the cores. All QPs
186b99ba8dSOphir Munkare assigned the same number of segments of input file to parse.  Given n QPs
196b99ba8dSOphir Munk(per core) - the enqueue/dequeue RegEx operations are interleaved as follows::
206b99ba8dSOphir Munk
216b99ba8dSOphir Munk enqueue(QP #1)
226b99ba8dSOphir Munk enqueue(QP #2)
236b99ba8dSOphir Munk ...
246b99ba8dSOphir Munk enqueue(QP #n)
256b99ba8dSOphir Munk dequeue(QP #1)
266b99ba8dSOphir Munk dequeue(QP #2)
276b99ba8dSOphir Munk ...
286b99ba8dSOphir Munk dequeue(QP #n)
296b99ba8dSOphir Munk
306b99ba8dSOphir Munk
316b99ba8dSOphir MunkThe test outputs the following data per QP and core:
32de06137cSYuval Avnery
33de06137cSYuval Avnery* Performance, in gigabit per second.
34de06137cSYuval Avnery
35de06137cSYuval Avnery* Matching results (rule id, position, length), for each job.
36de06137cSYuval Avnery
37de06137cSYuval Avnery* Matching results in absolute location (rule id, position , length),
38de06137cSYuval Avnery  relative to the start of the input data.
39de06137cSYuval Avnery
40de06137cSYuval Avnery
41de06137cSYuval AvneryLimitations
42de06137cSYuval Avnery~~~~~~~~~~~
43de06137cSYuval Avnery
44de06137cSYuval Avnery* Supports only precompiled rules.
45de06137cSYuval Avnery
46de06137cSYuval Avnery
47de06137cSYuval AvneryApplication Options
48de06137cSYuval Avnery~~~~~~~~~~~~~~~~~~~
49de06137cSYuval Avnery
50de06137cSYuval Avnery``--rules NAME``
51de06137cSYuval Avnery  precompiled rule file
52de06137cSYuval Avnery
53de06137cSYuval Avnery``--data NAME``
54de06137cSYuval Avnery  data file to use
55de06137cSYuval Avnery
56de06137cSYuval Avnery``--nb_jobs N``
57de06137cSYuval Avnery  number of jobs to use
58de06137cSYuval Avnery
596b99ba8dSOphir Munk``--nb_qps N``
606b99ba8dSOphir Munk  number of QPs to use
616b99ba8dSOphir Munk
626b99ba8dSOphir Munk``--nb_lcores N``
636b99ba8dSOphir Munk  number of cores to use
646b99ba8dSOphir Munk
65de06137cSYuval Avnery``--perf N``
66de06137cSYuval Avnery  only outputs the performance data
67de06137cSYuval Avnery
68de06137cSYuval Avnery``--nb_iter N``
69de06137cSYuval Avnery  number of iteration to run
70de06137cSYuval Avnery
71cace2d7eSSuanming Mou``--nb_segs N``
72cace2d7eSSuanming Mou  number of mbuf segment
73cace2d7eSSuanming Mou
74*b6aceadaSGerry Gribbon``--match_mode N``
75*b6aceadaSGerry Gribbon  match mode: 0 - None (default), 1 - Highest Priority, 2 - Stop on Any
76*b6aceadaSGerry Gribbon
77de06137cSYuval Avnery``--help``
78de06137cSYuval Avnery  print application options
79de06137cSYuval Avnery
80de06137cSYuval Avnery
81de06137cSYuval AvneryRunning the Tool
82de06137cSYuval Avnery----------------
83de06137cSYuval Avnery
84de06137cSYuval Avnery**Step 1: Compile a rule file**
85de06137cSYuval Avnery
86de06137cSYuval AvneryIn order for the RegEx to work it must have a precompiled rule file.
87de06137cSYuval Avneryto generate this file there is a need to use a RegEx compiler that matches the
88de06137cSYuval AvneryRegEx PMD.
89de06137cSYuval Avnery
90de06137cSYuval Avnery**Step 2: Generate a data file**
91de06137cSYuval Avnery
92de06137cSYuval AvneryThe data file, will be used as a source data for the RegEx to work on.
93de06137cSYuval Avnery
94de06137cSYuval Avnery**Step 3: Run the tool**
95de06137cSYuval Avnery
96de06137cSYuval AvneryThe tool has a number of command line options. Here is the sample command line::
97de06137cSYuval Avnery
986b99ba8dSOphir Munk   ./dpdk-test-regex -a 83:00.0 -- --rules rule_file.rof2 --data data_file.txt --job 100 \
996b99ba8dSOphir Munk     --nb_qps 4 --nb_lcores 2
100