get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/109291/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 109291,
    "url": "http://patches.dpdk.org/api/patches/109291/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220406151106.2915304-25-juraj.linkes@pantheon.tech/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20220406151106.2915304-25-juraj.linkes@pantheon.tech>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220406151106.2915304-25-juraj.linkes@pantheon.tech",
    "date": "2022-04-06T15:11:06",
    "name": "[RFC,v1,24/24] dts: merge DTS doc/dts_gsg/usr_guide/usage.rst to DPDK",
    "commit_ref": null,
    "pull_url": null,
    "state": "rfc",
    "archived": true,
    "hash": "84d4c2b64051b5379b82197ddcc58572c5531896",
    "submitter": {
        "id": 1626,
        "url": "http://patches.dpdk.org/api/people/1626/?format=api",
        "name": "Juraj Linkeš",
        "email": "juraj.linkes@pantheon.tech"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20220406151106.2915304-25-juraj.linkes@pantheon.tech/mbox/",
    "series": [
        {
            "id": 22379,
            "url": "http://patches.dpdk.org/api/series/22379/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=22379",
            "date": "2022-04-06T15:10:42",
            "name": "merge DTS documentation files to DPDK",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/22379/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/109291/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/109291/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 8D063A0508;\n\tWed,  6 Apr 2022 17:14:26 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0F98E42934;\n\tWed,  6 Apr 2022 17:11:45 +0200 (CEST)",
            "from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20])\n by mails.dpdk.org (Postfix) with ESMTP id 6AFE042900\n for <dev@dpdk.org>; Wed,  6 Apr 2022 17:11:37 +0200 (CEST)",
            "from localhost (localhost [127.0.0.1])\n by lb.pantheon.sk (Postfix) with ESMTP id CE402184FE8;\n Wed,  6 Apr 2022 17:11:36 +0200 (CEST)",
            "from lb.pantheon.sk ([127.0.0.1])\n by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024)\n with ESMTP id mQ1UmAA_srP7; Wed,  6 Apr 2022 17:11:35 +0200 (CEST)",
            "from entguard.lab.pantheon.local (unknown [46.229.239.141])\n by lb.pantheon.sk (Postfix) with ESMTP id 45252184FFD;\n Wed,  6 Apr 2022 17:11:18 +0200 (CEST)"
        ],
        "X-Virus-Scanned": "amavisd-new at siecit.sk",
        "From": "=?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "To": "thomas@monjalon.net, david.marchand@redhat.com,\n Honnappa.Nagarahalli@arm.com, ohilyard@iol.unh.edu, lijuan.tu@intel.com",
        "Cc": "dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "Subject": "[RFC PATCH v1 24/24] dts: merge DTS doc/dts_gsg/usr_guide/usage.rst\n to DPDK",
        "Date": "Wed,  6 Apr 2022 15:11:06 +0000",
        "Message-Id": "<20220406151106.2915304-25-juraj.linkes@pantheon.tech>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220406151106.2915304-1-juraj.linkes@pantheon.tech>",
        "References": "<20220406151106.2915304-1-juraj.linkes@pantheon.tech>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "---\n dts/doc/dts_gsg/usr_guide/usage.rst | 350 ++++++++++++++++++++++++++++\n 1 file changed, 350 insertions(+)\n create mode 100644 dts/doc/dts_gsg/usr_guide/usage.rst",
    "diff": "diff --git a/dts/doc/dts_gsg/usr_guide/usage.rst b/dts/doc/dts_gsg/usr_guide/usage.rst\nnew file mode 100644\nindex 0000000000..ba714703c0\n--- /dev/null\n+++ b/dts/doc/dts_gsg/usr_guide/usage.rst\n@@ -0,0 +1,350 @@\n+Usage\n+=====\n+\n+Configuration\n+-------------\n+\n+Configuring your own execution file\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+First of all, you must configure execution.cfg as below:\n+\n+.. code-block:: console\n+\n+   [Execution1]\n+   crbs=<CRB IP Address>\n+   drivername=vfio-pci\n+   build_type=meson\n+   rx_mode=avx512\n+   test_suites=\n+       hello_world,\n+   targets=\n+       x86_64-native-linuxapp-gcc\n+   parameters=nic_type=cfg:func=true\n+\n+* crbs: IP address of the DUT. The detail information is defined in file $DTS_CFG_FOLDER/crbs.cfg.\n+* drivername: the driver devices used by DPDK bound to.\n+* build_type: the tool for building DPDK, it can be meson.\n+* rx_mode: vector instructions used in tests, it can be novector/sse/avx2/avx512. it is optional, if not set, dpdk uses avx2 by default.\n+* test_suites: test suites and cases that to be executed. use ``:`` to separate suite and it's cases and use ``\\`` to separate different cases.\n+* targets: DPDK targets to be tested.\n+* parameters: multiple keywords as following:\n+\n+  * nic_type: it is the type of the NIC to use. The types are defined in the file settings.py.\n+    There's a special type named as **cfg**, which mean network information will be loaded from file $DTS_CFG_FOLDER/ports.cfg.\n+    If use NIC type such as niantic, fortville_25g, it requires all DUT are the same types and no any same devices connected to Tester,\n+    as DTS will test all devices connected to Tester. Therefore, recommend using **cfg**.\n+  * func=true: run only functional test.\n+  * perf=true: run only performance test.\n+\n+.. note::\n+\n+   The two options ``func=true`` and ``perf=true`` are mutually exclusive, as the traffic generators for functional and performance are mutually exclusive.\n+\n+Here are an example for functional testing:\n+\n+.. code-block:: console\n+\n+   [Execution1]\n+   crbs=192.168.1.1\n+   drivername=vfio-pci\n+   build_type=meson\n+   test_suites=\n+        unit_tests_eal:test_version\\test_common,\n+   targets=\n+        x86_64-default-linuxapp-gcc,\n+   parameters=nic_type=cfg:func=true\n+\n+\n+Configure CRB information\n+~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+Then please add the detail information about your CRB in $DTS_CFG_FOLDER/crbs.conf as following:\n+\n+.. code-block:: console\n+\n+   [DUT IP]\n+   dut_ip=xxx.xxx.xxx.xxx\n+   dut_user=root\n+   dut_passwd=\n+   os=linux\n+   dut_arch=\n+   tester_ip=xxx.xxx.xxx.xxx\n+   tester_passwd=\n+   pktgen_group=\n+   channels=4\n+   bypass_core0=True\n+   dut_cores=\n+\n+* DUT IP: section name, same as ``crbs`` in execution.cfg.\n+* dut_ip: IP address of the DUT, same as ``crbs`` in execution.cfg.\n+* dut_user: User name of DUT linux account\n+* dut_passwd: Password of DUT linux account\n+* tester_ip: IP address of tester\n+* tester_passwd: Password of Tester linux account, user name should same as dut_user\n+* pktgen_group: traffic generator name, it can be ``trex`` or ``ixia``, it is optional, if not set, DTS can't do performance tests.\n+* channels: number of memory channels for DPDK EAL\n+* bypass_core0: skip the first core when initialize DPDK\n+* dut_cores: DUT core list, eg: 1,2,3,4,5,18-22, it is optional, if it is ``None`` or not set, all core list will be used.\n+\n+Here are an example for functional testing:\n+\n+.. code-block:: console\n+\n+   [192.168.1.1]\n+   dut_ip=192.168.1.1\n+   dut_user=root\n+   dut_passwd=dutpasswd\n+   os=linux\n+   tester_ip=192.168.1.2\n+   tester_passwd=testerpasswd\n+   channels=4\n+   bypass_core0=True\n+\n+\n+Configure port information\n+~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+If set ``nic_type=cfg`` in execution.cfg, please add port configuration in $DTS_CFG_FOLDER/ports.cfg as following:\n+\n+.. code-block:: console\n+\n+   [DUT IP]\n+   ports =\n+       pci=<Pci BDF>,peer=<Pci BDF>;\n+       pci=<Pci BDF>,peer=IXIA:X.Y;\n+       pci=<Pci BDF>,peer=TREX:X;\n+\n+It supports three patterns, the first one is for functional testing, the second one is for ``IXIA``, the third one is for ``TRex``:\n+\n+* pci: Device pci address of DUT\n+* peer: info of Tester port which connected to the DUT device:\n+\n+  * if it is func testing, it is pci address\n+  * if pktgen is ``TRex``, the `X` in ``TREX:X`` is port id in TRex configuration file, e.g. /etc/trex_cfg.yaml.\n+  * if pktgen is ``IXIA``, the `X` is card id ,and the `Y` is port id, which configured in DTS_CFG_FOLDER/pktgen.cfg (./conf/pktgen.cfg by default).\n+\n+Here are an example for functional testing:\n+\n+.. code-block:: console\n+\n+   [192.168.1.1]\n+   ports =\n+       pci=0000:06:00.0,peer=0000:81:00.0;\n+       pci=0000:06:00.1,peer=0000:81:00.1;\n+\n+Here are an example for IXIA:\n+\n+.. code-block:: console\n+\n+   [192.168.1.1]\n+   ports =\n+       pci=0000:18:00.0,peer=IXIA:1.1;\n+       pci=0000:18:00.1,peer=IXIA:1.2;\n+\n+Here are an example for TRex:\n+\n+.. code-block:: console\n+\n+   [192.168.1.1]\n+   ports =\n+       pci=0000:18:00.0,peer=TREX:1;\n+       pci=0000:18:00.1,peer=TREX:1;\n+\n+\n+Configure all test suites\n+~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+$DTS_CFG_FOLDER/global_suite.cfg is a global suite configure file which is shared by all suites.\n+\n+.. code-block:: console\n+\n+    [global]\n+    vf_driver=vfio-pci\n+\n+* vf_driver: VF driver that for VF testing, recommend keep the default value ``vfio-pci``.\n+\n+\n+Configure your own suites\n+~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+Not all test suites have it's own configuration file which depended on script. If it has, the configuration file is $DTS_CFG_FOLDER/[suite_name].cfg\n+For example, suite metrics has its suite configure file $DTS_CFG_FOLDER/metric.cfg:\n+\n+.. code-block:: console\n+\n+    [suite]\n+    frames_cfg = { 64: 0.07, 128: 0.04, 256: 0.02, 512: 0.01, 1024: 0.01 }\n+    duration = 60\n+    sample_number = 3\n+    rates = [100, 80, 40, 20]\n+\n+\n+Configure your pktgen\n+~~~~~~~~~~~~~~~~~~~~~\n+\n+Pktgen information are configured in $DTS_CFG_FOLDER/pktgen.cfg, pktgen_group must be configured too:\n+\n+* traffic generator is ``TRex``, set ``pktgen_group=trex`` in crbs.cfg.\n+* traffic generator is ``IXIA``, set ``pktgen_group=ixia`` in crbs.cfg.\n+\n+Then configure $DTS_CFG_FOLDER/pktgen.cfg as following:\n+\n+.. code-block:: console\n+\n+   [TREX]\n+   trex_root_path=/opt/trex/v2.84/\n+   trex_lib_path=/opt/trex/v2.84/automation/trex_control_plane/interactive\n+   config_file=/etc/trex_cfg.yaml\n+   server=192.168.1.1 # equal to tester IP, TREX should be installed in tester\n+   pcap_file=/opt/trex/v2.84/stl/sample.pacp\n+   core_num=16\n+   ip_src=16.0.0.1\n+   ip_dst=10.0.0.1\n+   warmup=15\n+   duration=-1\n+   start_trex=yes\n+\n+   [IXIA]\n+   ixia_version=6.62\n+   ixia_ip=xxx.xxx.xxx.xxx\n+   ixia_ports=\n+       card=1,port=1;\n+       card=1,port=2;\n+       card=1,port=3;\n+       card=1,port=4;\n+\n+* TREX: section name for TRex.\n+* trex_root_path: source code path for TRex\n+* trex_lib_path: the director where dts can import Trex API\n+* start_trex: whether DTS start TRex server, suggest 'yes' for one-time test, and 'no' for CI integration\n+\n+* IXIA: section name for IXIA.\n+* ixia_version: the version of IxExplorer.\n+* ixia_ip: IP of ixia\n+* ixia_ports: ixia ports connected to DUT.\n+\n+Here are an example for TRex:\n+\n+.. code-block:: console\n+\n+   [TREX]\n+   trex_root_path=/opt/trex/v2.84/\n+   trex_lib_path=/opt/trex/v2.84/automation/trex_control_plane/interactive\n+   config_file=/etc/trex_cfg.yaml\n+   server=192.168.1.1 # equal to tester IP, TREX should be installed in tester\n+   pcap_file=/opt/trex/v2.84/stl/sample.pacp\n+   core_num=16\n+   ip_src=16.0.0.1\n+   ip_dst=10.0.0.1\n+   warmup=15\n+   duration=-1\n+   start_trex=yes\n+\n+Here are an example for IXIA:\n+\n+.. code-block:: console\n+\n+   [IXIA]\n+   ixia_version=9.00\n+   ixia_ip=192.168.2.1\n+   ixia_ports=\n+       card=3,port=1;\n+       card=3,port=2;\n+   ixia_force100g=disable\n+\n+\n+Running the Application\n+-----------------------\n+\n+DTS supports multiple parameters which will select different of working mode of test framework.\n+In the meantime, DTS can work with none parameter, then every parameter will set to its default value:\n+\n+.. code-block:: console\n+\n+   usage: main.py [-h] [--config-file CONFIG_FILE] [--snapshot SNAPSHOT] [--output OUTPUT] [-s]\n+                  [-t TEST_CASES] [-d DIR] [-v] [--debug] [--debugcase] [--re_run RE_RUN]\n+                  [--commands COMMANDS] [--update-expected]\n+\n+DTS supports the following parameters:\n+\n+*   ``-h, --help``\n+\n+    Display a help message and quit.\n+\n+*   ``--config-file CONFIG_FILE``\n+\n+    Execution file which contains test suites, DPDK target information and so on.\n+    The default value is `execution.cfg`.\n+\n+*   ``--snapshot SNAPSHOT``\n+\n+    Snapshot .tgz file to use as input。\n+    The deault value is `./dep/dpdk.tar.gz`.\n+\n+*   ``--output OUTPUT``\n+\n+    Output directory where dts log and result saved.\n+    The default value is `./output`.\n+\n+*   ``-s, --skip-setup``\n+\n+    Skip all possible setup steps done on both DUT and tester.\n+\n+*   ``-t TEST_CASES, --test-cases TEST_CASES``\n+\n+    Execute only the specific test cases.\n+    The default value is all test cases.\n+\n+*   ``-d DIR``\n+\n+    Output directory where dpdk package is extracted.\n+\n+*   ``-v, --verbose``\n+\n+    Enable verbose output, all message output on screen.\n+\n+*   ``--debug``\n+\n+    Enable debug mode, user can enter debug mode in process with `ctrl+c`\n+    User can do further debug by attached to sessions or call pdb module by interact interface:\n+\n+.. code-block:: console\n+\n+   help(): show help message\n+   list(): list all connected sessions\n+   connect(name): connect to session directly\n+   exit(): exit dts\n+   quit(): quit debug mode and into normal mode\n+   debug(): call python debug module\n+\n+*   ``--debugcase``\n+\n+   Enable debug mode with test cases.\n+   DTS will hang and wait for user command before executing each test case:\n+\n+.. code-block:: console\n+\n+   rerun(): rerun current case\n+   ctrl + d: exit current case\n+\n+*   ``--re_run RE_RUN``\n+\n+    Times that will re-run when case failed.\n+    The default value is 0, and it must be >=0.\n+\n+*   ``--update-expected``\n+\n+    Enable write-back expected value of performance.\n+    It requires test scripts support.\n+\n+Here are examples:\n+\n+.. code-block:: console\n+\n+   ./dts\n+   ./dts -s\n+   ./dts -s -d /home/dpdk\n+   ./dts --debug\n+   ./dts --debug --debugcase\n+   ./dts --output test1\n",
    "prefixes": [
        "RFC",
        "v1",
        "24/24"
    ]
}