Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/109286/?format=api
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" ] }{ "id": 109286, "url": "