get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 97110,
    "url": "https://patches.dpdk.org/api/patches/97110/?format=api",
    "web_url": "https://patches.dpdk.org/project/dts/patch/20210819013957.99958-1-yuan.peng@intel.com/",
    "project": {
        "id": 3,
        "url": "https://patches.dpdk.org/api/projects/3/?format=api",
        "name": "DTS",
        "link_name": "dts",
        "list_id": "dts.dpdk.org",
        "list_email": "dts@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dts",
        "webscm_url": "http://git.dpdk.org/tools/dts/",
        "list_archive_url": "https://inbox.dpdk.org/dts",
        "list_archive_url_format": "https://inbox.dpdk.org/dts/{}",
        "commit_url_format": ""
    },
    "msgid": "<20210819013957.99958-1-yuan.peng@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20210819013957.99958-1-yuan.peng@intel.com",
    "date": "2021-08-19T01:39:57",
    "name": "[V3] test_plans/cvl_dcf_qos: configure QoS for vf/vsi in DCF test plan",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "a5695f4f7efe41d73aa884adb0ad9e9f94332b19",
    "submitter": {
        "id": 429,
        "url": "https://patches.dpdk.org/api/people/429/?format=api",
        "name": "Peng, Yuan",
        "email": "yuan.peng@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dts/patch/20210819013957.99958-1-yuan.peng@intel.com/mbox/",
    "series": [
        {
            "id": 18351,
            "url": "https://patches.dpdk.org/api/series/18351/?format=api",
            "web_url": "https://patches.dpdk.org/project/dts/list/?series=18351",
            "date": "2021-08-19T01:39:57",
            "name": "[V3] test_plans/cvl_dcf_qos: configure QoS for vf/vsi in DCF test plan",
            "version": 3,
            "mbox": "https://patches.dpdk.org/series/18351/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/97110/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/97110/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dts-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 4EDE7A0C47;\n\tThu, 19 Aug 2021 10:41:24 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 416084067E;\n\tThu, 19 Aug 2021 10:41:24 +0200 (CEST)",
            "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n by mails.dpdk.org (Postfix) with ESMTP id C997D40141\n for <dts@dpdk.org>; Thu, 19 Aug 2021 10:41:21 +0200 (CEST)",
            "from orsmga008.jf.intel.com ([10.7.209.65])\n by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 19 Aug 2021 01:41:20 -0700",
            "from pengyuan-dpdk.sh.intel.com ([10.67.115.83])\n by orsmga008.jf.intel.com with ESMTP; 19 Aug 2021 01:41:18 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10080\"; a=\"280248801\"",
            "E=Sophos;i=\"5.84,334,1620716400\"; d=\"scan'208\";a=\"280248801\"",
            "E=Sophos;i=\"5.84,334,1620716400\"; d=\"scan'208\";a=\"471824020\""
        ],
        "X-ExtLoop1": "1",
        "From": "Peng Yuan <yuan.peng@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Peng Yuan <yuan.peng@intel.com>",
        "Date": "Thu, 19 Aug 2021 01:39:57 +0000",
        "Message-Id": "<20210819013957.99958-1-yuan.peng@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dts] [PATCH V3]test_plans/cvl_dcf_qos: configure QoS for vf/vsi in\n DCF test plan",
        "X-BeenThere": "dts@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "test suite reviews and discussions <dts.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dts/>",
        "List-Post": "<mailto:dts@dpdk.org>",
        "List-Help": "<mailto:dts-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dts-bounces@dpdk.org",
        "Sender": "\"dts\" <dts-bounces@dpdk.org>"
    },
    "content": "Add cvl_dcf_qos_test_plan.rst to dts.\nAdd cvl_dcf_qos_test_plan to index.rst.\n\nSigned-off-by: Peng Yuan <yuan.peng@intel.com>",
    "diff": "diff --git a/test_plans/cvl_dcf_qos_test_plan.rst b/test_plans/cvl_dcf_qos_test_plan.rst\nnew file mode 100644\nindex 00000000..b04d7069\n--- /dev/null\n+++ b/test_plans/cvl_dcf_qos_test_plan.rst\n@@ -0,0 +1,1768 @@\n+.. Copyright (c) <2021>, Intel Corporation\n+   All rights reserved.\n+\n+   Redistribution and use in source and binary forms, with or without\n+   modification, are permitted provided that the following conditions\n+   are met:\n+\n+   - Redistributions of source code must retain the above copyright\n+     notice, this list of conditions and the following disclaimer.\n+\n+   - Redistributions in binary form must reproduce the above copyright\n+     notice, this list of conditions and the following disclaimer in\n+     the documentation and/or other materials provided with the\n+     distribution.\n+\n+   - Neither the name of Intel Corporation nor the names of its\n+     contributors may be used to endorse or promote products derived\n+     from this software without specific prior written permission.\n+\n+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\n+   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n+   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\n+   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n+   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n+   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n+   OF THE POSSIBILITY OF SUCH DAMAGE.\n+\n+===================================\n+CVL configure QoS for vf/vsi in DCF\n+===================================\n+\n+Description\n+===========\n+\n+Support ETS-based QoS configuration, including Arbiters configuration (strict priority, WFQ)\n+and BW Allocation and limitation.\n+1. Add a new virtchnl capability to indicate support for QoS\n+2. Enable DCF to set BW limits (min, max) for DPDK AVFs and arbitration mode.\n+   To be accomplished by way of new DCF specific virtchnl op.\n+   a) Bandwidth limits per VF (VSI) are within the context of BW allocated for the individual TCs\n+      at TC layer (layer 2) in the topology.  The profiles will be added at the VSI level.\n+   b) In strict arbitration mode (vs ETS mode) a PIR can be applied to layer 2 TC nodes\n+      by the DCF for predictable behavior.\n+3. Enable DPDK iAVF to query QoS capability, such as UP to TC mapping,\n+   available BW (min, max) per TC etc. To be accomplished by way of new advance virtchnl op.\n+4. Enable DPDK iAVF to set TC to queue mapping, to be accomplished by way of new advance virtchnl op.\n+Note: The AVF inherits TCs that are configured on the PF. DCF tunes the BW allocation per TC for the target AVF.\n+\n+Prerequisites\n+=============\n+\n+1. Hardware:\n+   1 port from columbiaville_100g(NIC-1), 2 ports from columbiaville_25g(NIC-2)\n+   one 100G cable, one 10G cable.\n+    ::\n+\n+      +---------------------------------+\n+      |  DUT           |  IXIA          |\n+      +=================================+\n+      |               100G              |\n+      | NIC-1,Port-1  ---  IXIA, Port-1 |\n+      |               10G               |\n+      | NIC-2,Port-1  ---  NIC-2,Port-2 |\n+      +---------------------------------+\n+\n+   assume that device ID and pci address of NIC-1,Port-1 are ens785f0 and 18:00.0,\n+   device ID and pci address of NIC-2,Port-1 are ens802f0 and 86:00.0.\n+\n+2. software:\n+\n+   - dpdk: http://dpdk.org/git/dpdk\n+   - runtime command: https://doc.dpdk.org/guides/testpmd_app_ug/testpmd_funcs.html\n+   - lldptool: install the tool to configure DCB::\n+\n+    apt install lldpad\n+\n+   or::\n+\n+    yum install lldpad\n+\n+3. don't allow the peer port modify the DCB parameter::\n+\n+    lldptool -T -i ens802f0 -V ETS-CFG willing=no\n+    lldptool -T -i ens785f0 -V ETS-CFG willing=no\n+\n+4. Configure DCB TC bandwidth with lldp tool::\n+\n+    lldptool -T -i enp785s0f0 -V ETS-CFG willing=no tsa=0:strict,1:strict,2:strict,3:strict,4:strict,5:strict,6:strict,7:strict up2tc=0:0,1:0,2:0,3:1,4:2,5:0,6:0,7:0 tcbw=10,30,60,0,0,0,0,0\n+\n+   or configure DCB with dcbgetset tool(an internal tool to set DCB without peer negotiation)::\n+\n+    ./dcbgetset enp785s0f0 --ieee --up2tc 0,0,0,1,2,0,0,0 --tcbw 10,30,60,0,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+\n+5. Generate 2 VFs on NIC-1,Port-1 and NIC-2,Port-1::\n+\n+    echo 2 > /sys/bus/pci/devices/0000:18:00.0/sriov_numvfs\n+    echo 2 > /sys/bus/pci/devices/0000:86:00.0/sriov_numvfs\n+\n+6. Set each VF0 as trust and set each VF1 mac address::\n+\n+    ip link set dev ens785f0 vf 0 trust on\n+    ip link set ens785f0 vf 1 mac 00:11:22:33:44:55\n+    ip link set dev ens802f0 vf 0 trust on\n+    ip link set ens802f0 vf 1 mac 00:11:22:33:44:66\n+\n+7. Bind VFs to dpdk driver::\n+\n+    modprobe vfio-pci\n+    ./usertools/dpdk-devbind.py -b vfio-pci 0000:18:01.0 0000:18:01.1 0000:86:01.0 0000:86:01.1\n+    ./usertools/dpdk-devbind.py -s\n+    0000:18:01.0 'Ethernet Adaptive Virtual Function 1889' drv=vfio-pci unused=iavf\n+    0000:18:01.1 'Ethernet Adaptive Virtual Function 1889' drv=vfio-pci unused=iavf\n+    0000:86:01.0 'Ethernet Adaptive Virtual Function 1889' drv=vfio-pci unused=iavf\n+    0000:86:01.1 'Ethernet Adaptive Virtual Function 1889' drv=vfio-pci unused=iavf\n+\n+8. 100G testpmd setting, just use 100G NIC port, start testpmd::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -- -i --txq=8 --rxq=8 --nb-cores=8 --port-topology=loop\n+\n+   10G testpmd setting, use 100G NIC and 25G NIC ports, start testpmd::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -a 86:01.0,cap=dcf -a 86:01.1 -- -i --txq=8 --rxq=8 --nb-cores=8\n+\n+Test case 1: strict mode, check peak_tb_rate\n+============================================\n+Note: In strict mode, the \"--tcbw\" parameter is invalid.\n+the throughput is only limited by shaper profile,\n+and the TC priority follows the default order.\n+this case is to check the max rate of node limited by peak_tb_rate,\n+when the scheduler use strict priority mode in different user priority.\n+\n+1. DCB setting, set 3 TCs bandwidth with strict mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,0,1,2,0,0,0 --tcbw 10,30,60,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0   \n+    ifconfig ens785f0 up\n+\n+2. start testpmd with 100G setting, then set profile and TC mapping::\n+\n+    port stop all\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0    \n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0    \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0     \n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0  \n+\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0       \n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 2 0 0xffffffff 0 0       \n+    add port tm leaf node 0 5 700 0 1 2 2 0 0xffffffff 0 0          \n+    port tm hierarchy commit 0 no\n+\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 no\n+    port start all\n+    set fwd mac\n+    start\n+\n+3. since configured 3 TCs, send four streams from IXIA,\n+   mac address is vf1's mac address: \"00:11:22:33:44:55\", vlan=0, user priority=2,5,3,4,\n+   user priority 2/5 map to TC0, 3 maps to TC1, 4 maps TC2.\n+   frame size is 68 bytes(4 bytes vlan field added to 64 bytes packet), each stream desired 25% max rate.\n+   send each stream separately, check the TX throughput of each priority and queue mapping:\n+   user priority=2, throughput is 2MBps, mapping to queue0-3;\n+   user priority=5, throughput is 2MBps, mapping to queue0-3;\n+   user priority=3, throughput is 4MBps, mapping to queue4-5;\n+   user priority=4, throughput is 4MBps, mapping to queue6-7;\n+   send the four streams synchronously, the sum of throughput is 10MBps.\n+   and the queue mapping is correct.\n+\n+4. restart testpmd, and map all the queues to 2 TCs(TC0 and TC1)::\n+\n+    port stop all\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0\n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0     \n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0  \n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0       \n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 2 0 0xffffffff 0 0       \n+    add port tm leaf node 0 5 700 0 1 2 2 0 0xffffffff 0 0          \n+    port tm hierarchy commit 0 no\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 no\n+    port start all\n+    set fwd mac\n+    start\n+\n+5. send the same four streams as step3.\n+   send each stream separately, check the TX throughput of each priority and queue mapping:\n+   stream 4 are dropped by vf1.\n+   user priority=2, throughput is 2MBps, mapping to queue0-3;\n+   user priority=5, throughput is 2MBps, mapping to queue0-3;\n+   user priority=3, throughput is 4MBps, mapping to queue4-7;\n+   user priority=4, throughput is 0, no mapping queues.\n+   send the four streams synchronously, the sum of throughput is 6MBps.\n+   and the queue mapping is correct.\n+\n+Test case 2: ets mode, check peak_tb_rate\n+=========================================\n+Note: In ETS mode, the \"--tcbw\" parameter is valid.\n+the throughput is only limited by TC bandwidth distribution and shaper profile,\n+and the TC priority follows the value of the \"--tcbw\" setting.\n+this case is to check the max rate of node limited by tcbw distribution and peak_tb_rate.\n+when the scheduler use ETS mode in different user priority.\n+\n+1. DCB setting, set 2 TCs bandwidth with ets mode::\n+\n+    ./dcbgetset ens785f0 --ieee --up2tc 0,0,0,0,1,1,1,1 --tcbw 20,80,0,0,0,0,0,0 --tsa 2,2,2,2,2,2,2,2 --pfc 0,0,0,0,0,0,0,0   \n+    ./dcbgetset ens802f0 --ieee --up2tc 0,0,0,0,1,1,1,1 --tcbw 20,80,0,0,0,0,0,0 --tsa 2,2,2,2,2,2,2,2 --pfc 0,0,0,0,0,0,0,0   \n+    ifconfig ens785f0 up\n+    ifconfig ens802f0 up\n+\n+2. start testpmd with 10G setting, then set profile and TC mapping::\n+\n+    set portlist 0,2,1,3\n+    show config fwd\n+    port stop all\n+    add port tm node shaper profile 0 1 10000000 0 4000000000 0 0 0    \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0     \n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 2 800 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 3 800 0 1 2 1 0 0xffffffff 0 0   \n+    port tm hierarchy commit 0 yes\n+    add port tm node shaper profile 2 1 10000000 0 1000000000 0 0 0  \n+    add port tm nonleaf node 2 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 2 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 2 800 1000 0 1 1 -1 1 0 0   \n+    add port tm leaf node 2 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 2 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 2 2 800 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 2 3 800 0 1 2 1 0 0xffffffff 0 0        \n+    port tm hierarchy commit 2 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    add port tm nonleaf node 3 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 3 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 3 800 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 3 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 3 yes\n+    port start all\n+    set fwd mac\n+    start\n+\n+3. send two streams from IXIA, vlan=0, priority=0/4(TC0/TC1),\n+   mac address is VF1's mac address \"00:11:22:33:44:55\",\n+   frame size is 68 bytes(4 bytes vlan field added to 64 bytes packet), each stream desired 50% max rate.\n+   send each stream separately, check the port3(VF1 of 25G port) stats:\n+   both of the tx rate is about 7.3Gbps(linerate);\n+   stop forward, check queue mapping:\n+   when send stream of UP=0, the tx queues are queue0-queue3;\n+   when send stream of UP=4, the tx queues are queue4-queue7;\n+   send 2 streams synchronously, each 50%max,\n+   check the port3 stats, the tx rate is about 7.3Gbps,\n+   stop forward, check the result:\n+   the throughput's proportion of queue0-3 and queue4-7 is about 20:80 as the DCB TC bandwidth setting.\n+\n+4. set both two profiles' PIR to 500000000, other settings are the same as step2, \n+   send same streams as step3.\n+   send each stream separately, check the port3 tx rate is about 3.95Gbps, closed to the PIR 4Gbps,\n+   check queue mapping is same as step3.\n+   Send the two streams synchronously, the throughput is limited by the cable about 7.3Gbps.\n+   check the port3 stats, the tx rate is still about 7.3Gbps,\n+   stop forward, check the result, queue0-queue3 map TC0, queue4-queue7 map TC1\n+   TC0’s rate is about 3.34Gbps, TC1’s rate is about 3.95Gbps.\n+   the two stream’s occupation is more than 20:80, about 45:55.\n+   because TC1 throughput is limited by PIR, so the rest throughput is occupied by TC0.\n+\n+Test case 3: strict mode, check cmit_tb_rate\n+============================================\n+this case is to check the guaranteed rate of node set by cmit_tb_rate.\n+\n+1. DCB setting, set 2 TCs bandwidth with strict mode::\n+\n+    ./dcbgetset ens785f0 --ieee --up2tc 0,0,0,1,0,0,0,0 --tcbw 10,90,0,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+    ./dcbgetset ens802f0 --ieee --up2tc 0,0,0,1,0,0,0,0 --tcbw 10,90,0,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+    ifconfig ens785f0 up\n+    ifconfig ens802f0 up\n+\n+2. start testpmd with 10G setting, then set profile and TC mapping as test_case 2 step2.\n+\n+3. send two streams from IXIA,\n+   mac address is VF1's mac address \"00:11:22:33:44:55\", vlan=0, priority=0/3(TC0/TC1),\n+   frame size is 68 bytes(4 bytes vlan field added to 64 bytes packet), each stream desired 50% max rate.\n+   send each stream separately, check the port3(VF1 of 25G port) tx rate is about 7.3Gbps,\n+   check queue mapping is same as test_case 2 step3.\n+   send 2 streams synchronously, each 50%max\n+   check the port3 stats, the tx rate is about 7.3Gbps,\n+   stop forward, check the result,\n+   queue0-queue3 which mapping to TC0 should have 80Mbps rate\n+   queue4-queue7 which mapping to TC1 have about 7.22Gbps.\n+\n+Note: the cmit of the profile is not supported now, so the current expected result is:\n+all the TX throughput should at TC1, TC0 should has no throughput.\n+\n+Test case 4: ets mode, check the TC throughput of min BW allocation\n+===================================================================\n+this case is to check the TC throughput of min BW allocation.\n+\n+1. DCB setting, set 3 TCs bandwidth with ets mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,1,1,2,2,2,2 --tcbw 1,10,89,0,0,0,0,0 --tsa 2,2,2,2,2,2,2,2 --pfc 0,0,0,0,0,0,0,0\n+    ./dcbgetset ens802f0  --ieee --up2tc 0,0,1,1,2,2,2,2 --tcbw 1,10,89,0,0,0,0,0 --tsa 2,2,2,2,2,2,2,2 --pfc 0,0,0,0,0,0,0,0\n+    ifconfig ens785f0 up\n+    ifconfig ens802f0 up\n+\n+2. start testpmd with 10G setting::\n+\n+    set portlist 0,2,1,3\n+    show config fwd\n+    port stop all\n+    add port tm node shaper profile 0 1 1000000000 0 4000000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 5 700 0 1 2 1 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    add port tm node shaper profile 2 1 100000000 0 1000000000 0 0 0\n+    add port tm node shaper profile 2 2 100000000 0 150000000 0 0 0\n+    add port tm nonleaf node 2 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 2 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 2 800 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 2 700 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 2 0 900 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 2 1 900 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 2 2 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 2 3 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 2 4 700 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 2 5 700 0 1 2 1 0 0xffffffff 0 0\n+    port tm hierarchy commit 2 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    add port tm nonleaf node 3 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 3 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 3 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 3 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 3 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 3 yes\n+    port start all\n+    set fwd mac\n+    start\n+\n+3. send 8 streams from IXIA, vlan=0, priority=0-7(TC0-TC7),\n+   mac address is VF1's mac address \"00:11:22:33:44:55\",\n+   frame size is 1024 bytes, each stream desired 12.5% max rate.\n+   send each stream separately, the PIR can be reached, and the queue mapping is correct:\n+   UP0(TC0) stream maps queue0-1, the throughput is 1.2Gbps.\n+   UP1(TC0) stream maps queue0-1, the throughput is 1.2Gbps.\n+   UP2(TC1) stream maps queue2-5, the throughput is 1.2Gbps.\n+   UP3(TC1) stream maps queue2-5, the throughput is 1.2Gbps.\n+   UP4(TC2) stream maps queue6-7, the throughput is 8Gbps.\n+   UP5(TC2) stream maps queue6-7, the throughput is 8Gbps.\n+   UP6(TC2) stream maps queue6-7, the throughput is 8Gbps.\n+   UP7(TC2) stream maps queue6-7, the throughput is 8Gbps.\n+   send 8 streams synchronously, check throughput is 9.77Gbps,\n+   TC2 and TC1's PIR can be satisfied, and the rest rate is given to TC0.\n+\n+4. set frame size to 68bytes, send 8 streams synchronously,\n+   check the throughput is 7.273Gbps. all the TC can’t reach PIR.\n+   TC0 rate is 0.072Gbps, occupys 0.01 ets BW.\n+   TC1 rate is 0.72Gbps, occupys 0.1 ets BW.\n+   TC2 rate is 6.48Gbps, occupys 0.89 ets BW.\n+   The TC0-TC2’s rate occupation is same as bandwidth allocation: 1:10:89.\n+\n+Test case 5: 2 iavf VFs, strict mode, check peak_tb_rate\n+========================================================\n+each VF's max rate is limited by the sum of peak_tb_rate of all TCs binded to it.\n+\n+1. DCB setting, set 3 TCs bandwidth with strict mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,0,1,2,0,0,0 --tcbw 10,30,60,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+\n+2. create 3 VFs::\n+\n+    echo 3 > /sys/bus/pci/devices/0000\\:18\\:00.0/sriov_numvfs\n+    ./usertools/dpdk-devbind.py -b vfio-pci 18:01.0 18:01.1 18:01.2\n+    ip link set dev ens785f0 vf 0 trust on\n+    ip link set ens785f0 vf 1 mac 00:11:22:33:44:55\n+    ip link set ens785f0 vf 2 mac 00:11:22:33:44:66\n+\n+3. start testpmd with 100G setting, different vsi node of same TC node use different profiles::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -a 18:01.2 -a 18:01.3 -- -i --txq=8 --rxq=8 --port-topology=loop --nb-cores=8\n+    port stop all\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0    \n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0    \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0     \n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0  \n+    add port tm leaf node 0 0 900 0 1 2 -1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0   \n+    add port tm leaf node 0 2 900 0 1 2 1 0 0xffffffff 0 0           \n+    add port tm leaf node 0 3 800 0 1 2 -1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 4 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 5 800 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 6 700 0 1 2 -1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 7 700 0 1 2 1 0 0xffffffff 0 0          \n+    add port tm leaf node 0 8 700 0 1 2 2 0 0xffffffff 0 0          \n+    port tm hierarchy commit 0 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    add port tm nonleaf node 2 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 2 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 2 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 2 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 2 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 2 yes vlan=0, priority=1,2,3,4, vlan=0, priority=1,2,3,4,\n+    port start all\n+    set fwd mac\n+    start\n+\n+4. send 8 streams, stream0-3’s mac address is vf1's, vlan=0, priority=1/2/3/4(TC0/TC0/TC1/TC2),\n+   stream4-7' mac address is vf2's, vlan=0, priority=1,2,3,4,\n+   send each stream separatly, check the stats:\n+   stream0 maps queue0-1 of port 1, the throughput reaches PIR of profile 1(16Mbps).\n+   stream1 maps queue0-1 of port 1, the throughput reaches PIR of profile 1(16Mbps).\n+   stream2 maps queue2-3 of port 1, the throughput reaches PIR of profile 2(32Mbps).\n+   stream3 maps queue4-7 of port 1, the throughput reaches PIR of profile 1(16Mbps).\n+   stream4 maps queue0-1 of port 2, the throughput reaches PIR of profile 1(16Mbps).\n+   stream5 maps queue0-1 of port 2, the throughput reaches PIR of profile 1(16Mbps).\n+   stream6 maps queue2-5 of port 2, the throughput reaches PIR of profile 1(16Mbps).\n+   stream7 maps queue6-7 of port 2, the throughput reaches PIR of profile 2(32Mbps).\n+   send all streams synchronously, each 12.5%max, check the sum of throughput reach 128Mbps.\n+   each stream's queue mapping is correct.\n+\n+Test case 6: 2 iavf VFs, strict mode, check cmit_tb_rate\n+========================================================\n+each VF's guaranteed rate is set by the cmit_tb_rate of TC0 binded to it.\n+\n+1. DCB setting, set 3 TCs bandwidth with strict mode::\n+\n+    ./dcbgetset ens785f0 --ieee --up2tc 0,0,0,1,0,0,0,0 --tcbw 20,80,0,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+    ./dcbgetset ens802f0 --ieee --up2tc 0,0,0,1,0,0,0,0 --tcbw 20,80,0,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+\n+2. create 3 VFs on each pf::\n+\n+    echo 3 > /sys/bus/pci/devices/0000\\:18\\:00.0/sriov_numvfs\n+    ip link set dev ens785f0 vf 0 trust on\n+    ip link set ens785f0 vf 1 mac 00:11:22:33:44:55\n+    ip link set ens785f0 vf 2 mac 00:11:22:33:44:66\n+    ./usertools/dpdk-devbind.py -b vfio-pci 18:01.0 18:01.1 18:01.2\n+    echo 3 > /sys/bus/pci/devices/0000\\:86\\:00.0/sriov_numvfs\n+    ip link set dev ens802f0 vf 0 trust on\n+    ip link set ens802f0 vf 1 mac 00:11:22:33:44:77\n+    ip link set ens802f0 vf 2 mac 00:11:22:33:44:88\n+    ./usertools/dpdk-devbind.py -b vfio-pci 86:01.0 86:01.1 86:01.2\n+\n+3. start testpmd with 10G setting::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -a 18:01.2 -a 86:01.0,cap=dcf -a 86:01.1 -a 86:01.2 -- -i --txq=8 --rxq=8 --nb-cores=8\n+    set portlist 0,3,1,4,2,5\n+    show config fwd\n+    port stop all\n+    add port tm node shaper profile 0 1 100000000 0 4000000000 0 0 0    \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0     \n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0  \n+    add port tm leaf node 0 2 900 0 1 2 1 0 0xffffffff 0 0             \n+    add port tm leaf node 0 3 800 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 4 800 0 1 2 1 0 0xffffffff 0 0   \n+    add port tm leaf node 0 5 800 0 1 2 1 0 0xffffffff 0 0   \n+    port tm hierarchy commit 0 no\n+    add port tm node shaper profile 3 1 100000000 0 500000000 0 0 0  \n+    add port tm nonleaf node 3 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 3 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 3 800 1000 0 1 1 -1 1 0 0   \n+    add port tm leaf node 3 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 3 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 3 2 900 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 3 3 800 0 1 2 1 0 0xffffffff 0 0     \n+    add port tm leaf node 3 4 800 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 3 5 800 0 1 2 1 0 0xffffffff 0 0     \n+    port tm hierarchy commit 3 no\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 no\n+    add port tm nonleaf node 4 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 4 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 4 800 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 4 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 4 no\n+    add port tm nonleaf node 2 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 2 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 2 800 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 2 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 2 no\n+    add port tm nonleaf node 5 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 5 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 5 800 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 5 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 5 no\n+    port start all\n+    set fwd mac\n+    start\n+\n+4. send 4 streams synchronously, stream0-1's mac address is vf1's, vlan id=0, UP=2/3(TC0/TC1),\n+   streams2-3's mac address is vf2's, vlan id=0, UP=2/3(TC0/TC1),\n+   frame size 68 bytes, each stream allocates 25%max.\n+   check the vf4 and vf5 stats, the sum of tx rate is 7.27Gbps, each vf tx is 3.64Gbps.\n+   in each vf, TC0 should occupied 0.8Gbps, the rest of throughput is occupied by TC1, which is about 2.84Gbps\n+   stop the fwd, check each queue's tx stats,\n+   vf4's queue0-queue3 and vf5's queue0-queue1 map to TC0, which occupied 0.8Gbps,\n+   vf4's queue4-queue7 and vf5's queue2-queue7 map to TC1, which occupied 2.84Gbps.\n+\n+Note: now, the cmit_tb_rate setting can't take work, it is not supported by kernel.\n+so the current status should be: all the TX throughput are occupied by TC1, TC0 should have no throughput.\n+\n+Test case 7: 2 iavf VFs, ets mode\n+=================================\n+in ETS mode, calculate the sum value of different vf node which binded to same TC,\n+the proportion of the value of different TC is consistent to TC bandwitch distribution\n+\n+1. DCB setting, set 3 TCs bandwidth with ets mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,0,1,2,0,0,0 --tcbw 10,30,60,0,0,0,0,0 --tsa 2,2,2,2,2,2,2,2 --pfc 0,0,0,0,0,0,0,0   \n+    ./dcbgetset ens802f0  --ieee --up2tc 0,0,0,1,2,0,0,0 --tcbw 10,30,60,0,0,0,0,0 --tsa 2,2,2,2,2,2,2,2 --pfc 0,0,0,0,0,0,0,0   \n+\n+2. create 3 VFs on each pf::\n+\n+    echo 3 > /sys/bus/pci/devices/0000\\:18\\:00.0/sriov_numvfs\n+    ip link set dev ens785f0 vf 0 trust on\n+    ip link set ens785f0 vf 1 mac 00:11:22:33:44:55\n+    ip link set ens785f0 vf 2 mac 00:11:22:33:44:66\n+    ./usertools/dpdk-devbind.py -b vfio-pci 18:01.0 18:01.1 18:01.2\n+    echo 3 > /sys/bus/pci/devices/0000\\:86\\:00.0/sriov_numvfs\n+    ip link set dev ens802f0 vf 0 trust on\n+    ip link set ens802f0 vf 1 mac 00:11:22:33:44:77\n+    ip link set ens802f0 vf 2 mac 00:11:22:33:44:88\n+    ./usertools/dpdk-devbind.py -b vfio-pci 86:01.0 86:01.1 86:01.2\n+\n+3. start testpmd with 10G setting::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -a 18:01.2 -a 86:01.0,cap=dcf -a 86:01.1 -a 86:01.2 -- -i --txq=8 --rxq=8 --nb-cores=8\n+    set portlist 0,3,1,4,2,5\n+    show config fwd\n+    port stop all\n+    add port tm node shaper profile 0 1 0 0 0 0 0 0    \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0     \n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0     \n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0   \n+    add port tm leaf node 0 2 900 0 1 2 1 0 0xffffffff 0 0           \n+    add port tm leaf node 0 3 800 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 4 800 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 5 800 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 6 700 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 7 700 0 1 2 1 0 0xffffffff 0 0          \n+    add port tm leaf node 0 8 700 0 1 2 1 0 0xffffffff 0 0          \n+    port tm hierarchy commit 0 yes\n+    add port tm node shaper profile 3 1 0 0 0 0 0 0  \n+    add port tm nonleaf node 3 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 3 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 3 800 1000 0 1 1 -1 1 0 0   \n+    add port tm nonleaf node 3 700 1000 0 1 1 -1 1 0 0   \n+    add port tm leaf node 3 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 3 1 900 0 1 2 1 0 0xffffffff 0 0   \n+    add port tm leaf node 3 2 900 0 1 2 1 0 0xffffffff 0 0           \n+    add port tm leaf node 3 3 800 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 3 4 800 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 3 5 800 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 3 6 700 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 3 7 700 0 1 2 1 0 0xffffffff 0 0          \n+    add port tm leaf node 3 8 700 0 1 2 1 0 0xffffffff 0 0          \n+    port tm hierarchy commit 3 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    add port tm nonleaf node 2 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 2 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 2 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 2 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 2 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 2 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 2 yes\n+    add port tm nonleaf node 4 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 4 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 4 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 4 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 4 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 4 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 5 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 4 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 4 yes\n+    add port tm nonleaf node 5 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 5 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 5 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 5 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 5 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 5 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 5 yes\n+    port start all\n+    set fwd mac\n+    start\n+\n+4. send 8 streams, stream0-3’s mac address is vf1's, vlan=0, priority=1/2/3/4(TC0/TC0/TC1/TC2),\n+   stream4-7’s mac address is vf2's, vlan=0, priority=1/2/3/4(TC0/TC0/TC1/TC2),\n+   frame size 68 bytes, each stream allocates 12.5%max.\n+   calculate the sum of vf1 and vf2 tx rate which belongs to TC0, mark it as t0,\n+   calculate the sum of vf1 and vf2 tx rate which belongs to TC1 and TC2, mark them as t1 and t2.\n+   check the proportion of t0:t1:t2 is 1:3:6, which can match the ets bandwidth limit 1:3:6,\n+   and the queue mapping is:\n+   stream1 maps queue0-1 of vf1,\n+   stream2 maps queue0-1 of vf1,\n+   stream3 maps queue2-3 of vf1,\n+   stream4 maps queue4-7 of vf1,\n+   stream5 maps queue0-1 of vf2,\n+   stream6 maps queue0-1 of vf2,\n+   stream7 maps queue2-5 of vf2,\n+   stream8 maps queue6-7 of vf2.\n+\n+Test case 8: strict mode, 8 TCs\n+===============================\n+this case is to check QoS Tx side processing with max TC number set in strict priority mode.\n+\n+1. DCB setting, set 8 TCs bandwidth with strict mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,1,2,3,4,5,6,7 --tcbw 10,30,60,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+\n+2. start testpmd with 100G setting::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -- -i --txq=8 --rxq=8 --port-topology=loop --nb-cores=8\n+    port stop all\n+    add port tm node shaper profile 0 1 1000000 0 400000000 0 0 0\n+    add port tm node shaper profile 0 2 1000000 0 200000000 0 0 0\n+    add port tm node shaper profile 0 3 1000000 0 100000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 600 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 500 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 400 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 300 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 200 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 5 700 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 6 600 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 7 600 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 8 500 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 9 500 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 10 400 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 11 400 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 12 300 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 13 300 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 14 200 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 15 200 0 1 2 1 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 600 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 500 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 400 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 300 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 200 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 600 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 500 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 400 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 300 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 200 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    port start all\n+    set fwd mac\n+    start\n+\n+3. send 8 streams vlan id=0, UP0-UP7,68bytes, each stream 12.5%max, which is much more than PIR.\n+   Tx is limited by PIR, each TC can reach to PIR.\n+\n+4. change the shaper profile::\n+\n+    port stop all\n+    add port tm node shaper profile 0 1 1000000 0 1780000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0     \n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0  \n+    add port tm nonleaf node 0 600 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 0 500 1000 0 1 1 -1 1 0 0     \n+    add port tm nonleaf node 0 400 1000 0 1 1 -1 1 0 0  \n+    add port tm nonleaf node 0 300 1000 0 1 1 -1 1 0 0     \n+    add port tm nonleaf node 0 200 1000 0 1 1 -1 1 0 0  \n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 2 800 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 3 800 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 5 700 0 1 2 1 0 0xffffffff 0 0          \n+    add port tm leaf node 0 6 600 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 7 600 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 8 500 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 9 500 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 10 400 0 1 2 1 0 0xffffffff 0 0          \n+    add port tm leaf node 0 11 400 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 12 300 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 13 300 0 1 2 1 0 0xffffffff 0 0       \n+    add port tm leaf node 0 14 200 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 15 200 0 1 2 1 0 0xffffffff 0 0          \n+    port tm hierarchy commit 0 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 600 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 500 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 400 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 300 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 200 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 600 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 500 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 400 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 300 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 200 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    port start all\n+    set fwd mac\n+    start\n+\n+5. send 8 streams vlan id=0, UP0-UP7, 68bytes, each stream 12.5%max, which is less than PIR.\n+   stop the forward, check all the Tx packet drop is at queue0, which maps to TC0.\n+   the throughput satisfy TC7-TC1 by priority.\n+\n+6. send 8 streams vlan id=0, UP0-UP7,1024bytes, each stream 12.5%max, which is less than PIR.\n+   stop the forward, check all the Tx packet drop is at queue0, which maps to TC0.\n+   the throughput satisfy TC7-TC1 by priority.\n+\n+Test case 9: strict mode, 1 TC\n+==============================\n+this case is to check QoS Tx side processing with min TC number set in strict priority mode.\n+\n+1. DCB setting, set 1 TC bandwidth with strict mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,0,0,0,0,0,0 --tcbw 10,30,60,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+\n+2. start testpmd with 100G setting::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -- -i --txq=8 --rxq=8 --port-topology=loop --nb-cores=8\n+    port stop all\n+    add port tm node shaper profile 0 1 1000000 0 1000000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 900 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    port start all\n+    set fwd mac\n+    start\n+\n+3. send 8 streams vlan id=0, UP0-UP7, which all map to TC0, 68bytes, each stream 12.5%max.\n+   check the sum of Tx throughput can reach PIR.\n+   only send 1 stream, check the Tx throughput can reach PIR too.\n+\n+Test case 10: ets mode, 8 TCs\n+=============================\n+this case is to check QoS Tx side processing with max TC number set in ETS mode.\n+\n+1. DCB setting, set 8 TCs bandwidth with ets mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,1,2,3,4,5,6,7 --tcbw 5,10,15,10,20,1,30,9 --tsa 2,2,2,2,2,2,2,2 --pfc 0,0,0,0,0,0,0,0   \n+    ./dcbgetset ens802f0  --ieee --up2tc 0,1,2,3,4,5,6,7 --tcbw 5,10,15,10,20,1,30,9 --tsa 2,2,2,2,2,2,2,2 --pfc 0,0,0,0,0,0,0,0   \n+\n+2. start testpmd with 10G setting::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -a 86:01.0,cap=dcf -a 86:01.1 -- -i --txq=8 --rxq=8 --nb-cores=8\n+    set portlist 0,2,1,3\n+    show config fwd\n+    port stop all\n+    add port tm node shaper profile 0 1 1000000 0 4000000000 0 0 0\n+    add port tm node shaper profile 0 2 1000000 0 2000000000 0 0 0\n+    add port tm node shaper profile 0 3 1000000 0 1000000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 600 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 500 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 400 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 300 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 200 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 5 700 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 6 600 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 7 600 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 8 500 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 9 500 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 0 10 400 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 11 400 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 12 300 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 13 300 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 14 200 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 15 200 0 1 2 1 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    add port tm node shaper profile 2 1 1000000 0 400000000 0 0 0\n+    add port tm node shaper profile 2 2 1000000 0 200000000 0 0 0\n+    add port tm node shaper profile 2 3 1000000 0 100000000 0 0 0\n+    add port tm nonleaf node 2 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 2 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 2 800 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 2 700 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 2 600 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 2 500 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 2 400 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 2 300 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 2 200 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 2 0 900 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 2 1 900 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 2 2 800 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 2 3 800 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 2 4 700 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 2 5 700 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 2 6 600 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 2 7 600 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 2 8 500 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 2 9 500 0 1 2 3 0 0xffffffff 0 0\n+    add port tm leaf node 2 10 400 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 2 11 400 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 2 12 300 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 2 13 300 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 2 14 200 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 2 15 200 0 1 2 1 0 0xffffffff 0 0\n+    port tm hierarchy commit 2 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 600 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 500 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 400 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 300 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 200 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 600 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 500 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 400 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 300 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 200 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    add port tm nonleaf node 3 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 3 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 3 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 3 700 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 3 600 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 3 500 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 3 400 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 3 300 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 3 200 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 3 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 1 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 2 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 3 600 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 4 500 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 5 400 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 6 300 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 7 200 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 3 yes\n+    port start all\n+    set fwd mac\n+    start\n+\n+3. send 8 streams vlan id=0, UP0-UP7, which map TC0-TC7, 68bytes, each stream 12.5%max,\n+   check port3 stats, the Tx rate is 7.3Gbps.\n+   stop forward, check the tx rate, queue0-queue4 correspond to TC0-TC4, can reach the PIR(100MBps),\n+   queue6 which corresponds to TC6 is limited by PIR(200MBps) too.\n+   queue7(maps to TC7) is limited by Rx IXIA traffic, can’t reach PIR(400MBps),\n+   and TC5(maps to queue5) is the lowest priority, other TCs must be satisfied first,\n+   so TC5 and TC7 are limited by the bandwidth distribution 1:9.\n+\n+4. set profile of port2 as below::\n+\n+    add port tm node shaper profile 2 1 1000000 0 100000000 0 0 0    \n+    add port tm node shaper profile 2 2 1000000 0 250000000 0 0 0    \n+    add port tm node shaper profile 2 3 1000000 0 100000000 0 0 0    \n+\n+   queue0-queue4 and queue6-7 can reach PIR(are limited by PIR),\n+   queue5(corresponds to TC5) is the lowest priority (1% BW set by DCB), \n+   the rest rate are put to queue 5, may be more than 1% of whole throughput.\n+\n+5. Set all the profile PIR=0::\n+\n+    add port tm node shaper profile 2 1 0 0 0 0 0 0    \n+    add port tm node shaper profile 2 2 0 0 0 0 0 0    \n+    add port tm node shaper profile 2 3 0 0 0 0 0 0    \n+\n+   check all the steam's tx throughput proportion is due to ets bandwidth distribution.\n+\n+Test case 11: ets mode, 1 TC\n+============================\n+this case is to check QoS Tx side processing with min TC number set in ETS mode.\n+\n+1. DCB setting, set 1 TC bandwidth with ets mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,0,0,0,0,0,0 --tcbw 100,0,0,0,0,0,0,0 --tsa 2,2,2,2,2,2,2,2 --pfc 0,0,0,0,0,0,0,0   \n+    ./dcbgetset ens802f0  --ieee --up2tc 0,0,0,0,0,0,0,0 --tcbw 100,0,0,0,0,0,0,0 --tsa 2,2,2,2,2,2,2,2 --pfc 0,0,0,0,0,0,0,0   \n+\n+2. start testpmd with 10G setting::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -a 86:01.0,cap=dcf -a 86:01.1 -- -i --txq=8 --rxq=8 --nb-cores=8\n+    set portlist 0,2,1,3\n+    show config fwd\n+    port stop all\n+    add port tm node shaper profile 0 1 1000000 0 10000000000 0 0 0    \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    port tm hierarchy commit 0 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 900 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    add port tm node shaper profile 2 1 1000000 0 1000000000 0 0 0    \n+    add port tm nonleaf node 2 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 2 900 1000 0 1 1 -1 1 0 0    \n+    add port tm leaf node 2 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 2 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    port tm hierarchy commit 2 yes\n+    add port tm nonleaf node 3 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 3 900 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 3 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 4 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 5 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 6 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 3 7 900 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 3 yes\n+    port start all\n+    set fwd mac\n+    start\n+\n+3. send 8 streams vlan id=0, UP0-UP7, 68bytes, each stream 12.5%max.\n+   check the sum of Tx throughput can reach 7.3Gbps.\n+   only send 1 stream, check the Tx throughput can reach 7.3Gbps too.\n+\n+Test case 12: query qos setting\n+===============================\n+the case is to check the support to query QoS settings.\n+\n+1. DCB setting, set 3 TCs bandwidth with strict mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,0,1,2,0,0,0 --tcbw 10,30,60,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+    ifconfig ens785f0 up\n+\n+2. start testpmd with 100G setting, then set profile and TC mapping::\n+\n+    port stop all\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0    \n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0   \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0  \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0     \n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0     \n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0       \n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0  \n+    add port tm leaf node 0 4 700 0 1 2 2 0 0xffffffff 0 0       \n+    add port tm leaf node 0 5 700 0 1 2 2 0 0xffffffff 0 0  \n+    port tm hierarchy commit 0 no\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 no\n+    port start all\n+\n+3. show port tm capability::\n+\n+    show port tm cap 1\n+\n+   show port tm level capability::\n+\n+    show port tm level cap 1 0\n+    show port tm level cap 1 1\n+    show port tm level cap 1 2\n+\n+   show port tm node capability::\n+\n+    show port tm node cap 1 900\n+    show port tm node cap 1 800\n+\n+   check all the unit of rate is consistent.\n+\n+4. show port tm node type::\n+\n+    show port tm node type 1 0\n+    show port tm node type 1 900\n+    show port tm node type 1 1000\n+\n+   check the type is correct.\n+\n+Test case 13: pf reset\n+======================\n+this case is to check if the QoS setting works after resetting PF.\n+\n+1. run the test case 1, the result is as expected.\n+\n+2. reset pf::\n+\n+    echo 1 > /sys/devices/pci0000:17/0000:17:00.0/0000:18:00.0/reset\n+\n+3. send same streams as step1, check no packets received and transmitted.\n+\n+Test case 14: vf reset\n+======================\n+this case is to check if the QoS setting works after resetting VF.\n+\n+1. run the test case 1, the result is as expected.\n+\n+2. reset VF1 by setting mac addr::\n+\n+    ip link set ens785f0 vf 1 mac 00:11:22:33:44:66\n+\n+   then execute below command in testpmd::\n+\n+    port stop 1\n+    port reset 1\n+    port start 1\n+    start\n+\n+3. send same streams in step1 but with VF1's new mac address \"00:11:22:33:44:66\",\n+   check TC0 stream maps to all queues, TC1 and TC2 stream map to queue0.\n+\n+4. set the qos settings as test case 1 step2 again.\n+   send the same steams, check the same result as step 1.\n+\n+Test case 15: link status change\n+================================\n+this case is to check if the QoS setting works after link status change.\n+\n+1. run the test case 1, the result is as expected.\n+\n+2. change the link status::\n+\n+    ifconfig ens785f0 down\n+\n+   check TC setting is not changed, the queue mapping is not changed,\n+   The Tx rate is not changed.\n+\n+3. change the link status again::   \n+\n+    ifconfig ens785f0 up\n+\n+   check the status, get the same result.\n+\n+Test case 16: DCB setting TC change\n+===================================\n+this case is to check if the QoS setting works after DCB setting TC change.\n+\n+1. run the test case 1, the result is as expected.\n+\n+2. reset the DCB setting as below::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,0,1,2,0,0,0 --tcbw 10,40,50,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+\n+3. send the same streams as step 1,\n+   Only send TC0 stream, queue0-queue7 of both Rx and Tx have traffic, load is balancing.\n+   Only send TC1/TC2 streams, only queue0 has Rx and Tx traffic.\n+\n+NOTE: The kernel default status is TC0 stream mapping to all queues, other TC streams mapping to queue 0.\n+\n+Test case 17: negative case for requested VF\n+============================================\n+1. DCB setting, set 2 TCs bandwidth with strict mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,0,1,0,0,0,0 --tcbw 20,80,0,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+\n+2. create 2 VFs::\n+\n+    echo 2 > /sys/bus/pci/devices/0000\\:18\\:00.0/sriov_numvfs\n+    ./usertools/dpdk-devbind.py -b vfio-pci 18:01.0 18:01.1\n+    ip link set dev ens785f0 vf 0 trust on\n+    ip link set ens785f0 vf 1 mac 00:11:22:33:44:55\n+\n+3. start testpmd with 100G setting::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -- -i --txq=8 --rxq=8 --port-topology=loop --nb-cores=8\n+    port stop all\n+\n+Subcase 1: Requested VF id is valid\n+-----------------------------------\n+Set 3 VSIs, more than 2 VFs created::\n+\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0    \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 2 900 0 1 2 1 0 0xffffffff 0 0     \n+    node id: too many VSI for one TC (error 33)   \n+\n+Subcase 2: Valid number of TCs for the target VF\n+------------------------------------------------\n+1. configured 2 TCs by DCB, but only set 1 TC node::\n+\n+    add port tm node shaper profile 0 1 63000 0 12500000000 0 0 0        \n+    add port tm nonleaf node 0 1000000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900000 1000000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900000 0 1 2 1 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    ice_dcf_commit_check(): Not all enabled TC nodes are set\n+    no error: (no stated reason) (error 0)\n+\n+2. Not all VFs are binded to TC node::\n+\n+    add port tm node shaper profile 0 1 63000 0 12500000000 0 0 0\n+    add port tm nonleaf node 0 1000000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900000 1000000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800000 1000000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800000 0 1 2 2 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    ice_dcf_commit_check(): Not all VFs are binded to TC1\n+    no error: (no stated reason) (error 0)\n+\n+3. add 1 profile, but use 2 profiles::\n+\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0    \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0       \n+    shaper profile id field (node params): shaper profile not exist (error 23)\n+\n+Subcase 3: Valid Min and Max values\n+-----------------------------------\n+1. Min default value is 500Kbps::\n+\n+    add port tm node shaper profile 0 1 62999 0 2000000 0 0 0      \n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0\n+    add port tm nonleaf node 0 1000000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900000 1000000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800000 1000000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800000 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800000 0 1 2 2 0 0xffffffff 0 0\n+    testpmd> port tm hierarchy commit 0 yes\n+    ice_dcf_execute_virtchnl_cmd(): No response (1 times) or return failure (-5) for cmd 37\n+    ice_dcf_set_vf_bw(): fail to execute command VIRTCHNL_OP_DCF_CONFIG_BW\n+    no error: (no stated reason) (error 0)\n+\n+    add port tm node shaper profile 0 1 63000 0 2000000 0 0 0\n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0\n+    add port tm nonleaf node 0 1000000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900000 1000000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800000 1000000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800000 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800000 0 1 2 2 0 0xffffffff 0 0\n+    testpmd> port tm hierarchy commit 0 no\n+\n+   the setting commit successfully.\n+\n+2.Min BW for the given TC must be less than that of Max BW::\n+\n+    add port tm node shaper profile 0 1 2001000 0 2000000 0 0 0\n+    add port tm nonleaf node 0 1000000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900000 1000000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800000 1000000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800000 0 1 2 1 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    ice_dcf_execute_virtchnl_cmd(): No response (1 times) or return failure (-5) for cmd 37\n+    ice_dcf_set_vf_bw(): fail to execute command VIRTCHNL_OP_DCF_CONFIG_BW\n+    no error: (no stated reason) (error 0)\n+\n+    add port tm node shaper profile 0 1 2000000 0 2000000 0 0 0\n+    add port tm nonleaf node 0 1000000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900000 1000000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800000 1000000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800000 0 1 2 1 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+\n+   the setting commit successfully.\n+\n+3. Max BW must be less than or equal to negotiated link speed for the port\n+1).one iavf VF, two TCs::\n+\n+    add port tm node shaper profile 0 1 1000000000 0 12000000000 0 0 0\n+    add port tm nonleaf node 0 1000000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900000 1000000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800000 1000000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800000 0 1 2 1 0 0xffffffff 0 0\n+\n+    port tm hierarchy commit 0 yes\n+    ice_dcf_validate_tc_bw(): Total value of TC0 min bandwidth and other TCs' max bandwidth 104000000kbps should be less than port link speed 100000000kbps\n+\n+2).two iavf VF, two TCs::\n+\n+    echo 3 > /sys/bus/pci/devices/0000\\:18\\:00.0/sriov_numvfs\n+    ./usertools/dpdk-devbind.py -b vfio-pci 18:01.0 18:01.1 18:01.2\n+    ip link set dev ens785f0 vf 0 trust on\n+    ip link set ens785f0 vf 1 mac 00:11:22:33:44:55\n+    ip link set ens785f0 vf 2 mac 00:11:22:33:44:66\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -a 18:01.2 -a 18:01.3 -- -i --txq=8 --rxq=8 --port-topology=loop --nb-cores=8\n+    port stop all\n+    add port tm node shaper profile 0 1 10000000 0 1000000000 0 0 0\n+    add port tm node shaper profile 0 2 10000000 0 8500000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 5 800 0 1 2 2 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    ice_dcf_validate_tc_bw(): Total value of TC0 min bandwidth and other TCs' max bandwidth 136160000kbps should be less than port link speed 100000000kbps\n+    no error: (no stated reason) (error 0)\n+\n+4. Max BW cannot be 0 and must be greater than or equal to Min BW\n+   If set max BW to 0, there is not max rate limit::\n+\n+    add port tm node shaper profile 0 1 0 0 0 0 0 0    \n+    add port tm nonleaf node 0 1000000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900000 1000000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800000 1000000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800000 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800000 0 1 2 1 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    port start all\n+    set fwd mac\n+    start\n+\n+   send two streams from IXIA, vlan=0, priority=0/3(TC0/TC1),\n+   mac address is VF1's mac address \"00:11:22:33:44:55\", frame size is 1024 bytes, 100% max rate.\n+   send each stream separately, check the TX throughput of each TC can reach linerate.\n+   and the queue mapping is correct.\n+\n+Test case 18: negative case for req VF to update its queue to TC mapping\n+========================================================================\n+1. DCB setting, set 3 TCs bandwidth with strict mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,0,1,2,0,0,0 --tcbw 10,30,60,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+\n+2. create 2 VFs::\n+\n+    echo 2 > /sys/bus/pci/devices/0000\\:18\\:00.0/sriov_numvfs\n+    ./usertools/dpdk-devbind.py -b vfio-pci 18:01.0 18:01.1\n+    ip link set dev ens785f0 vf 0 trust on\n+    ip link set ens785f0 vf 1 mac 00:11:22:33:44:55\n+\n+3. start testpmd with 100G setting::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -- -i --txq=8 --rxq=8 --port-topology=loop --nb-cores=8\n+    port stop all\n+\n+Subcase 1: Total number of queue pairs match to what the VF is allocated\n+------------------------------------------------------------------------\n+1. 8 queues, only map 7 queues to TC::\n+\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0\n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 5 700 0 1 2 2 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    iavf_hierarchy_commit(): queue node is less than allocated queue pairs\n+    no error: (no stated reason) (error 0)\n+\n+2. 8 queues, map 9 queues to TC::\n+\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 8 700 0 1 2 0 0 0xffffffff 0 0\n+    num strict priorities field (node params): SP priority not supported (error 27)\n+\n+Subcase 1: Number of TCs match is less than TC enabled on the VF\n+----------------------------------------------------------------\n+1. not all VF0 VSI nodes binded to TC::\n+\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0\n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 yes\n+    ice_dcf_commit_check(): Not all VFs are binded to TC2\n+    no error: (no stated reason) (error 0)\n+\n+2. not all VF1 VSI nodes binded to TC::\n+\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0\n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 5 700 0 1 2 2 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 no\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    iavf_hierarchy_commit(): Does not set VF vsi nodes to all TCs\n+    no error: (no stated reason) (error 0)\n+\n+3. not all VF1 VSI nodes mapping to queues, set successfully::\n+\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+\n+   send TC0 and TC1 streams, the queue mapping is correct.\n+\n+Subcase 3: Number of TCs match is more than TC enabled on the VF\n+----------------------------------------------------------------\n+The TC number should be consistent to the TC enabled by lldptool.\n+run the below steps sequentially.\n+\n+1. TC node number is more than TC enabled by lldptool::\n+\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0    \n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0   \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0  \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0     \n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0  \n+    add port tm nonleaf node 0 600 1000 0 1 1 -1 1 0 0  \n+    node id: too many TCs (error 33)\n+\n+2. VF0's TC node number is more than TC enabled by lldptool::\n+\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0       \n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 2 0 0xffffffff 0 0       \n+    add port tm leaf node 0 5 700 0 1 2 2 0 0xffffffff 0 0          \n+    add port tm leaf node 0 6 600 0 1 2 2 0 0xffffffff 0 0       \n+    parent node id: parent not exist (error 19)\n+\n+3. VF1's TC node number is more than TC enabled by lldptool::\n+\n+    port tm hierarchy commit 0 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 600 1000 0 1 1 0 1 0 0\n+    node id: too many TCs (error 33)\n+\n+4. map the nonexist VSI node to queues::\n+\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 600 0 1 2 0 0 0xffffffff 0 0\n+    parent node id: parent not exist (error 19)\n+\n+Subcase 4: overlap between queue to TC mapping\n+----------------------------------------------\n+There can't be overlap between queue to TC mapping::\n+\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0\n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 5 700 0 1 2 2 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 no\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 800 0 1 2 0 0 0xffffffff 0 0\n+    node id: node id already used (error 33)\n+\n+Subcase 5: Non-contiguous TC setting in queue mapping\n+-----------------------------------------------------\n+1. set non-contiguous TC and queue mapping::\n+\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0    \n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0    \n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0              \n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0    \n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0     \n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0  \n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0        \n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0       \n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 2 0 0xffffffff 0 0       \n+    add port tm leaf node 0 5 700 0 1 2 2 0 0xffffffff 0 0          \n+    port tm hierarchy commit 0 yes\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 800 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 yes\n+    port start all\n+    set fwd mac\n+    start\n+\n+2. send four streams from IXIA, vlan=0, priority=2/5/3/4(TC0/TC0/TC1/TC2),\n+   mac address is VF1's mac address \"00:11:22:33:44:55\".\n+   frame size is 68 bytes, each stream desired 25% max rate.\n+   send each stream separately, check the TX throughput of each priority and queue mapping:\n+   UP=2/5 which matches to TC0, maps to queue0-1, throughput can reach 2MBps,\n+   UP=3 which matches to TC1, maps to queue2-3, throughput can reach 4MBps,\n+   UP=4 which matches to TC2, maps to queue4-7. throughput can reach 4MBps.\n+\n+Test case 19: different vlan ID\n+===============================\n+there are different streams with different vlan id, but with same user priority.\n+the sum of the streams's throughput is limited by the tcbw distribution or peak_tb_rate.\n+\n+1. DCB setting, set 3 TCs bandwidth with strict mode::\n+\n+    ./dcbgetset ens785f0  --ieee --up2tc 0,0,0,1,2,0,0,0 --tcbw 10,30,60,0,0,0,0,0 --tsa 0,0,0,0,0,0,0,0 --pfc 0,0,0,0,0,0,0,0\n+    ifconfig ens785f0 up\n+\n+2. start testpmd with 100G setting, add vlan filter,\n+   then set profile and TC mapping::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-10 -n 4 -a 18:01.0,cap=dcf -a 18:01.1 -- -i --txq=8 --rxq=8 --nb-cores=8 --port-topology=loop\n+    port stop all\n+    vlan set filter on 1\n+    rx_vlan add 1 1\n+    rx_vlan add 2 1\n+\n+    add port tm node shaper profile 0 1 1000000 0 2000000 0 0 0\n+    add port tm node shaper profile 0 2 1000000 0 4000000 0 0 0\n+    add port tm nonleaf node 0 1000 -1 0 1 0 -1 1 0 0\n+    add port tm nonleaf node 0 900 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 800 1000 0 1 1 -1 1 0 0\n+    add port tm nonleaf node 0 700 1000 0 1 1 -1 1 0 0\n+\n+    add port tm leaf node 0 0 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 1 900 0 1 2 1 0 0xffffffff 0 0\n+    add port tm leaf node 0 2 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 3 800 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 4 700 0 1 2 2 0 0xffffffff 0 0\n+    add port tm leaf node 0 5 700 0 1 2 2 0 0xffffffff 0 0\n+    port tm hierarchy commit 0 no\n+\n+    add port tm nonleaf node 1 1000 -1 0 1 0 0 1 0 0\n+    add port tm nonleaf node 1 900 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 800 1000 0 1 1 0 1 0 0\n+    add port tm nonleaf node 1 700 1000 0 1 1 0 1 0 0\n+    add port tm leaf node 1 0 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 1 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 2 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 3 900 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 4 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 5 800 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 6 700 0 1 2 0 0 0xffffffff 0 0\n+    add port tm leaf node 1 7 700 0 1 2 0 0 0xffffffff 0 0\n+    port tm hierarchy commit 1 no\n+    port start all\n+    set fwd mac\n+    start\n+\n+3. send 8 streams from IXIA, mac address is VF1's mac address \"00:11:22:33:44:55\",\n+   frame size is 68 bytes, each stream desired 25% max rate.\n+   stream 0-3, vlan id=0, priority=0/1/3/4(TC0/TC0/TC1/TC2),\n+   stream 4-5, vlan id=1, priority=0/3(TC0/TC1),\n+   stream 6-7, vlan id=2, priority=2/4(TC0/TC2).\n+   only send stream 0,1,4,6 synchronously, the throughput is 2MBps, mapping queue 0-3\n+   only send steam 2 and 5 synchronously, the throughput is 4MBps, mapping queue 4-5\n+   only send steam 3 and 7 synchronously, the throughput is 4MBps, mapping queue 6-7\n+   send all the streams synchronously, the throughput is 10MBps, queue mapping is correct.\ndiff --git a/test_plans/index.rst b/test_plans/index.rst\nindex 55d32976..25e9d677 100644\n--- a/test_plans/index.rst\n+++ b/test_plans/index.rst\n@@ -57,6 +57,7 @@ The following are the test plans for the DPDK DTS automated test system.\n     cvl_dcf_switch_filter_pppoe_test_plan\n     cvl_dcf_switch_filter_gtpu_test_plan\n     cvl_dcf_flow_priority_test_plan\n+    cvl_dcf_qos_test_plan\n     cvl_ecpri_test_plan\n     cvl_fdir_test_plan\n     cvl_ip_fragment_rte_flow_test_plan\n",
    "prefixes": [
        "V3"
    ]
}