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