get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 109286,
    "url": "http://patches.dpdk.org/api/patches/109286/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220406151106.2915304-20-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-20-juraj.linkes@pantheon.tech>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220406151106.2915304-20-juraj.linkes@pantheon.tech",
    "date": "2022-04-06T15:11:01",
    "name": "[RFC,v1,19/24] dts: merge DTS doc/dts_gsg/usr_guide/ixia.rst to DPDK",
    "commit_ref": null,
    "pull_url": null,
    "state": "rfc",
    "archived": true,
    "hash": "40aded37e2a14bc911bc7c09f157967a604382e7",
    "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-20-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/109286/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/109286/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 40E60A0508;\n\tWed,  6 Apr 2022 17:13:48 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 960964290D;\n\tWed,  6 Apr 2022 17:11:39 +0200 (CEST)",
            "from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20])\n by mails.dpdk.org (Postfix) with ESMTP id F05F4428ED\n for <dev@dpdk.org>; Wed,  6 Apr 2022 17:11:32 +0200 (CEST)",
            "from localhost (localhost [127.0.0.1])\n by lb.pantheon.sk (Postfix) with ESMTP id 4998C184FE8;\n Wed,  6 Apr 2022 17:11:32 +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 KJH59lO-G97A; Wed,  6 Apr 2022 17:11:31 +0200 (CEST)",
            "from entguard.lab.pantheon.local (unknown [46.229.239.141])\n by lb.pantheon.sk (Postfix) with ESMTP id 2F3DB184FEE;\n Wed,  6 Apr 2022 17:11:16 +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 19/24] dts: merge DTS doc/dts_gsg/usr_guide/ixia.rst to\n DPDK",
        "Date": "Wed,  6 Apr 2022 15:11:01 +0000",
        "Message-Id": "<20220406151106.2915304-20-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-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/ixia.rst | 248 +++++++++++++++++++++++++++++\n 1 file changed, 248 insertions(+)\n create mode 100644 dts/doc/dts_gsg/usr_guide/ixia.rst",
    "diff": "diff --git a/dts/doc/dts_gsg/usr_guide/ixia.rst b/dts/doc/dts_gsg/usr_guide/ixia.rst\nnew file mode 100644\nindex 0000000000..bd66565211\n--- /dev/null\n+++ b/dts/doc/dts_gsg/usr_guide/ixia.rst\n@@ -0,0 +1,248 @@\n+Practice with IxExplorer\n+========================\n+\n+This chapter describes a DTS practice with IXIA IxExplorer, which mainly used for performance testing.\n+Here we take the performance case nic_single_core as an example.\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=192.168.1.1\n+   drivername=vfio-pci\n+   test_suites=\n+       nic_single_core_perf,\n+   targets=\n+       x86_64-native-linuxapp-gcc\n+   parameters=nic_type=cfg:perf=true\n+   build_type=meson\n+   rx_mode=avx512\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+   [192.168.1.1]\n+   dut_ip=192.168.1.1\n+   dut_user=root\n+   dut_passwd=passwd\n+   os=linux\n+   dut_arch=\n+   tester_ip=192.168.1.1\n+   tester_passwd=passwd\n+   pktgen_group=IXIA\n+   channels=4\n+   bypass_core0=True\n+   dut_cores=\n+\n+Configure port information\n+~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+ports topology as below:\n+\n+.. code-block:: console\n+\n+   IXIA port 0 <---------> DUT port 0\n+   IXIA port 1 <---------> DUT port 1\n+\n+please add port configuration in $DTS_CFG_FOLDER/ports.cfg as following:\n+\n+.. code-block:: console\n+\n+   [192.168.1.1]\n+   ports =\n+       pci=0000:af:00.0,peer=IXIA:3.1;\n+       pci=0000:b1:00.0,peer=IXIA:3.2;\n+\n+Configure pktgen information\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+please configure Pktgen information in $DTS_CFG_FOLDER/pktgen.cfg\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+.. note::\n+\n+    The version of ixia must be consistent with your version of IxExplorer.\n+\n+\n+Configure your own suites\n+~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+Performance tests generally have configuration files.\n+it's name corresponds to the suite.\n+Below is the $DTS_CFG_FOLDER/nic_single_core_perf.cfg configuration file.\n+You can set the test parameters according to your test needs.\n+\n+\n+.. code-block:: console\n+\n+   [suite]\n+   update_expected = True\n+   test_parameters = {'1C/1T': {64: [512, 2048]},\n+                      '1C/2T': {64: [512, 2048]}}\n+   rx_desc_16byte = 'y'\n+   test_duration = 60\n+   accepted_tolerance = 1\n+   expected_throughput = {\n+        'fortville_spirit': {\n+            '1C/1T': {64: {512: 0.00, 2048: 0.00}},\n+            '1C/2T': {64: {512: 0.00, 2048: 0.00}}}}\n+\n+* accepted_tolerance: defines the accepted tolerance between real pps and expected pps.\n+* test_parameters: defines the combination of frame size and descriptor numbers,\n+  and the pattern is {'frame size': ['descriptor number #1', 'descriptor number #2']}.\n+* rx_desc_16byte: 16byte configuration and default by enabled.\n+* test_duration: how many seconds each combination performance will be recorded.\n+* expected_throughput: it's a dictionary defining expected throughput numbers based on NIC,\n+  and the pattern is {'NIC': {'frame size': {'descriptor number': 'excepted throughput'}}}\n+  Every user should fill it out with your actual numbers.\n+* update_expected: if update_expected==True, and add argument \"--update-expected\" in bash command,\n+  all objects in this file will changed after the run::\n+\n+   ./dts --update-expected\n+\n+At the beginning, please change test_parameters according to your requirements,\n+then run ./dts --update-expected to get the absolute results which will replace\n+the default numbers 0.00 in this configuration.\n+So you will have your own private configuration, and could start your tests as usual.\n+\n+\n+Run DTS performance test with IXIA\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+Now you can start DTS performance test with IXIA:\n+\n+.. code-block:: console\n+\n+    root@test1:~/dts# ./dts\n+                  dts:\n+    DUT 192.168.1.1\n+                        tester: ssh root@192.168.1.1\n+                        ...\n+    pktgen: ssh root@192.168.1.1\n+                        pktgen: tclsh\n+                        pktgen: source ./IxiaWish.tcl\n+                        pktgen: set ::env(IXIA_VERSION) 9.00\n+                        pktgen: package req IxTclHal\n+                        pktgen: ixConnectToTclServer 192.168.2.1\n+                        pktgen: ixLogin IxiaTclUser\n+                        pktgen: ixConnectToChassis 192.168.2.1\n+                        pktgen: set chasId [ixGetChassisID 192.168.2.1]\n+                        pktgen: ixClearOwnership [list [list 1 3 1] [list 1 3 2]]\n+                        pktgen: ixTakeOwnership [list [list 1 3 1] [list 1 3 2]] force\n+                        pktgen: stat getLineSpeed 1 3 1\n+                        pktgen: stat getLineSpeed 1 3 2\n+                        ...\n+\n+    TestNicSingleCorePerf: Test Case test_perf_nic_single_core Begin\n+    TestNicSingleCorePerf: Executing Test Using cores: ['28', '29'] of config 1C/1T\n+    TestNicSingleCorePerf: Test running at parameters: framesize: 64, rxd/txd: 512\n+    dut.192.168.1.1: x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 28,29 -n 6 -a 0000:af:00.0 -a 0000:b1:00.0 -- -i --portmask=0x3 --rxq=2 --txq=2 --txd=512 --rxd=512 --nb-cores=1\n+    dut.192.168.1.1: start\n+                   pktgen: stat getLineSpeed 1 1 1\n+                   pktgen: stat getLineSpeed 1 1 2\n+                   pktgen: scp -v dumppcap.py root@192.168.1.1:~/\n+                   pktgen: scapy -c dumppcap.py 2>/dev/null\n+                   pktgen: scp -v dumppcap.py root@192.168.1.1:~/\n+                   pktgen: scapy -c dumppcap.py 2>/dev/null\n+                   pktgen: scp -v dumppcap.py root@192.168.1.1:~/\n+                   pktgen: scapy -c dumppcap.py 2>/dev/null\n+                   pktgen: scp -v dumppcap.py root@192.168.1.1:~/\n+                   pktgen: scapy -c dumppcap.py 2>/dev/null\n+                   pktgen: begin traffic ......\n+                   tester: scp -v ixiaConfig.tcl root@192.168.1.1:~/\n+                   pktgen: source ixiaConfig.tcl\n+                   pktgen: begin get port statistic ...\n+                   pktgen: stat getRate statAllStats 1 3 2\n+                   pktgen: stat cget -framesReceived\n+                   pktgen: stat cget -bitsReceived\n+                   pktgen: stat cget -oversize\n+                   pktgen: stat getRate statAllStats 1 3 1\n+                   pktgen: stat cget -framesReceived\n+                   pktgen: stat cget -bitsReceived\n+                   pktgen: stat cget -oversize\n+                   pktgen: stat getRate statAllStats 1 3 2\n+                   pktgen: stat cget -framesReceived\n+                   pktgen: stat cget -bitsReceived\n+                   pktgen: stat cget -oversize\n+                   pktgen: stat getRate statAllStats 1 3 1\n+                   pktgen: stat cget -framesReceived\n+                   pktgen: stat cget -bitsReceived\n+                   pktgen: stat cget -oversize\n+                   pktgen: throughput: pps_rx 69504677.000000, bps_rx 35586394625.000000\n+                   pktgen: ixStopTransmit portList\n+                   pktgen: traffic completed.\n+      dut.192.168.1.1: stop\n+      dut.192.168.1.1: quit\n+      TestNicSingleCorePerf: Trouthput of framesize: 64, rxd/txd: 512 is :69.504677 Mpps\n+      ...\n+\n+         TestNicSingleCorePerf:\n+      +----------+------------+---------+-------------+---------+---------------------+-----------------------+\n+      | Fwd_core | Frame Size | TXD/RXD | Throughput  |  Rate   | Expected Throughput | Throughput Difference |\n+      +==========+============+=========+=============+=========+=====================+=======================+\n+      | 1C/1T    | 64         | 512     | 69.505 Mpps | 93.414% | 0.000 Mpps          | 69.505 Mpps           |\n+      +----------+------------+---------+-------------+---------+---------------------+-----------------------+\n+      | 1C/1T    | 64         | 2048    | 51.078 Mpps | 68.649% | 0.000 Mpps          | 51.078 Mpps           |\n+      +----------+------------+---------+-------------+---------+---------------------+-----------------------+\n+      | 1C/2T    | 64         | 512     | 74.404 Mpps | 99.999% | 0.000 Mpps          | 74.404 Mpps           |\n+      +----------+------------+---------+-------------+---------+---------------------+-----------------------+\n+      | 1C/2T    | 64         | 2048    | 67.851 Mpps | 91.192% | 0.000 Mpps          | 67.851 Mpps           |\n+      +----------+------------+---------+-------------+---------+---------------------+-----------------------+\n+         TestNicSingleCorePerf: Test Case test_perf_nic_single_core Result PASSED:\n+\n+\n+Test result\n+~~~~~~~~~~~\n+\n+After the Test Suite finished the validation, we can find the result files as below in output folder.\n+\n+.. code-block:: console\n+\n+   fortville_25g_single_core_perf.json  dts.log  TestNicSingleCorePerf.log test_results.json\n+\n+The performance case will save the data results in the jison file.\n+And the pattern is \"nic name + suite name.json\".\n+Below is the json file of nic_single_core:\n+\n+.. code-block:: console\n+\n+      vim fortville_25g_single_core_perf.json\n+\n+      {\"test_perf_nic_single_core\": [{\n+                \"performance\": [{\"name\": \"Throughput\", \"value\": 69.505, \"unit\": \"Mpps\", \"delta\": 69.505}],\n+                \"parameters\":  [{\"name\": \"Txd/Rxd\", \"value\": 512, \"unit\": \"descriptor\"},\n+                               {\"name\": \"frame_size\", \"value\": 64, \"unit\": \"bytes\"},\n+                               {\"name\": \"Fwd_core\", \"value\": \"1C/1T\"}], \"status\": \"PASS\"},\n+                {\"performance\": [{\"name\": \"Throughput\", \"value\": 51.078, \"unit\": \"Mpps\", \"delta\": 51.078}],\n+                 \"parameters\": [{\"name\": \"Txd/Rxd\", \"value\": 2048, \"unit\": \"descriptor\"},\n+                                {\"name\": \"frame_size\", \"value\": 64, \"unit\": \"bytes\"},\n+                                {\"name\": \"Fwd_core\", \"value\": \"1C/1T\"}], \"status\": \"PASS\"},\n+               {\"performance\": [{\"name\": \"Throughput\", \"value\": 74.404, \"unit\": \"Mpps\", \"delta\": 74.404}],\n+                \"parameters\": [{\"name\": \"Txd/Rxd\", \"value\": 512, \"unit\": \"descriptor\"},\n+                                {\"name\": \"frame_size\", \"value\": 64, \"unit\": \"bytes\"},\n+                                {\"name\": \"Fwd_core\", \"value\": \"1C/2T\"}], \"status\": \"PASS\"},\n+               {\"performance\": [{\"name\": \"Throughput\", \"value\": 67.851, \"unit\": \"Mpps\", \"delta\": 67.851}],\n+                \"parameters\": [{\"name\": \"Txd/Rxd\", \"value\": 2048, \"unit\": \"descriptor\"},\n+                               {\"name\": \"frame_size\", \"value\": 64, \"unit\": \"bytes\"},\n+                               {\"name\": \"Fwd_core\", \"value\": \"1C/2T\"}], \"status\": \"PASS\"}]}\n+\n+\n+You can set your own expectations in con/suite.cfg based on the json data.\n+If the actual data differs too much from the expected data, the case fails.\n",
    "prefixes": [
        "RFC",
        "v1",
        "19/24"
    ]
}