get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 121592,
    "url": "https://patches.dpdk.org/api/patches/121592/?format=api",
    "web_url": "https://patches.dpdk.org/project/dts/patch/20230105104056.234069-5-songx.jiale@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": "<20230105104056.234069-5-songx.jiale@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20230105104056.234069-5-songx.jiale@intel.com",
    "date": "2023-01-05T10:40:53",
    "name": "[V1,4/7] test_plans/vf_pmd_bonded_8023ad: add cases to test vf bonding",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "a4a024e589d03b75f1977ca26857d9fa72b835c0",
    "submitter": {
        "id": 2352,
        "url": "https://patches.dpdk.org/api/people/2352/?format=api",
        "name": "Jiale, SongX",
        "email": "songx.jiale@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dts/patch/20230105104056.234069-5-songx.jiale@intel.com/mbox/",
    "series": [
        {
            "id": 26391,
            "url": "https://patches.dpdk.org/api/series/26391/?format=api",
            "web_url": "https://patches.dpdk.org/project/dts/list/?series=26391",
            "date": "2023-01-05T10:40:49",
            "name": "add cases to test vf bonding",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/26391/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/121592/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/121592/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 AE13CA00C2;\n\tThu,  5 Jan 2023 03:43:17 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A326942D1A;\n\tThu,  5 Jan 2023 03:43:17 +0100 (CET)",
            "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n by mails.dpdk.org (Postfix) with ESMTP id 1140842D1A\n for <dts@dpdk.org>; Thu,  5 Jan 2023 03:43:14 +0100 (CET)",
            "from fmsmga008.fm.intel.com ([10.253.24.58])\n by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 04 Jan 2023 18:43:14 -0800",
            "from unknown (HELO localhost.localdomain) ([10.239.252.20])\n by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 04 Jan 2023 18:43:12 -0800"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1672886595; x=1704422595;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=HQk36jattVjufMn59+Tkk73hxnbMQuvyYog4O1SjayU=;\n b=kMJNHh5OKj4vYRFgnZryiHnhkbMOaQCyN5vIXqedVLzbelXqvX0r5zpB\n s2Y9vS+feqAqByw8TmwBoqI41LoYHKhwV0hhXlEQ4LwimxObzpOg+4ctN\n UknAExPel3IVIGkLY+AX5lB+iZjFXv4yitXiymedTdQQUP0G2M32KAIQW\n vm+NYXSatr1VYWJSeIzQbABqci3u1QymxbAfELowIioJyru0JH039pWzs\n dfjSAhmy5CnvIOET82M5X8iYDClUbAHhipacdSmI68xxjWzzxCWXcIhdv\n Y7Q1IXVJXo5u0Pp5GCC6UWfZ7cnxHP0Vz4pNqxjZeJTe1e2WbGNo7gXav Q==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6500,9779,10580\"; a=\"408351319\"",
            "E=Sophos;i=\"5.96,301,1665471600\"; d=\"scan'208\";a=\"408351319\"",
            "E=McAfee;i=\"6500,9779,10580\"; a=\"718660535\"",
            "E=Sophos;i=\"5.96,301,1665471600\"; d=\"scan'208\";a=\"718660535\""
        ],
        "From": "Song Jiale <songx.jiale@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Song Jiale <songx.jiale@intel.com>",
        "Subject": "[dts] [PATCH V1 4/7] test_plans/vf_pmd_bonded_8023ad: add cases to\n test vf bonding",
        "Date": "Thu,  5 Jan 2023 10:40:53 +0000",
        "Message-Id": "<20230105104056.234069-5-songx.jiale@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20230105104056.234069-1-songx.jiale@intel.com>",
        "References": "<20230105104056.234069-1-songx.jiale@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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"
    },
    "content": "add testplan to test vf bonding.\n\nSigned-off-by: Song Jiale <songx.jiale@intel.com>\n---\n test_plans/vf_pmd_bonded_8023ad_test_plan.rst | 411 ++++++++++++++++++\n 1 file changed, 411 insertions(+)\n create mode 100644 test_plans/vf_pmd_bonded_8023ad_test_plan.rst",
    "diff": "diff --git a/test_plans/vf_pmd_bonded_8023ad_test_plan.rst b/test_plans/vf_pmd_bonded_8023ad_test_plan.rst\nnew file mode 100644\nindex 00000000..14c5c110\n--- /dev/null\n+++ b/test_plans/vf_pmd_bonded_8023ad_test_plan.rst\n@@ -0,0 +1,411 @@\n+.. SPDX-License-Identifier: BSD-3-Clause\n+   Copyright(c) 23.03 Intel Corporation\n+\n+=================================\n+Link Bonding for mode 4 (802.3ad)\n+=================================\n+\n+This test plan is mainly to test link bonding mode 4(802.3ad) function via\n+testpmd.\n+\n+link bonding mode 4 is IEEE 802.3ad Dynamic link aggregation. Creates\n+aggregation groups that share the same speed and duplex settings. Utilizes all\n+slaves in the active aggregator according to the 802.3ad specification. DPDK\n+realize it based on 802.1AX specification, it includes LACP protocol and Marker\n+protocol. This mode requires a switch that supports IEEE 802.3ad Dynamic link\n+aggregation.\n+\n+note: Slave selection for outgoing traffic is done according to the transmit\n+hash policy, which may be changed from the default simple XOR layer2 policy.\n+\n+Requirements\n+============\n+#. Bonded ports shall maintain statistics similar to normal port.\n+\n+#. The slave links shall be monitor for link status change. See also the concept\n+   of up/down time delay to handle situations such as a switch reboots, it is\n+   possible that its ports report \"link up\" status before they become usable.\n+\n+#. Upon unbonding the bonding PMD driver must restore the MAC addresses that the\n+   slaves had before they were enslaved.\n+\n+#. According to the bond type, when the bond interface is placed in promiscuous\n+   mode it will propagate the setting to the slave devices.\n+\n+#. LACP control packet filtering offload. It is a idea of performance\n+   improvement, which use hardware offloads to improve packet classification.\n+\n+#. support three 802.3ad aggregation selection logic modes (stable/bandwidth/\n+   count). The Selection Logic selects a compatible Aggregator for a port, using\n+   the port LAG ID. The Selection Logic may determine that the link should be\n+   operated as a standby link if there are constraints on the simultaneous\n+   attachment of ports that have selected the same Aggregator.\n+\n+#. technical details refer to content attached in website::\n+\n+    http://dpdk.org/ml/archives/dev/2017-May/066143.html\n+\n+#. DPDK technical details refer to::\n+\n+    dpdk/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst:\n+      ``Link Aggregation 802.3AD (Mode 4)``\n+\n+#. linux technical document of 802.3ad as testing reference document::\n+\n+    https://www.kernel.org/doc/Documentation/networking/bonding.txt:``802.3ad``\n+\n+Prerequisites for Bonding\n+=========================\n+all link ports of switch/dut should be the same data rate and support full-duplex.\n+\n+Functional testing hardware configuration\n+-----------------------------------------\n+NIC and DUT ports requirements:\n+\n+- Tester: 2 ports of nic\n+- DUT:    2 ports of nic\n+\n+create 1 vf for two dut ports::\n+\n+   echo 1 > /sys/bus/pci/devices/0000\\:31\\:00.0/sriov_numvfs\n+   echo 1 > /sys/bus/pci/devices/0000\\:31\\:00.1/sriov_numvfs\n+\n+port topology diagram::\n+\n+   Tester                             DUT\n+   .-------.                      .------------.\n+   | port0 | <------------------> | port0(VF0) |\n+   | port1 | <------------------> | port1(VF1) |\n+   '-------'                      '------------'\n+\n+Test Case : basic behavior start/stop\n+=====================================\n+#. check bonded device stop/start action under frequency operation status\n+\n+steps\n+-----\n+\n+#. bind two ports::\n+\n+    ./usertools/dpdk-devbind.py --bind=vfio-pci <pci address 1> <pci address 2>\n+\n+#. boot up testpmd::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xXXXXX -n 4  -- -i --tx-offloads=0xXXXX\n+\n+#. run testpmd command of bonding::\n+\n+    testpmd> port stop all\n+    testpmd> create bonded device 4 0\n+    testpmd> add bonding slave 0 2\n+    testpmd> add bonding slave 1 2\n+    testpmd> set bonding lacp dedicated_queues 2 enable\n+    testpmd> set allmulti 0 on\n+    testpmd> set allmulti 1 on\n+    testpmd> set allmulti 2 on\n+    testpmd> set portlist 2\n+\n+#. loop execute this step 10 times, check if bonded device still work::\n+\n+    testpmd> port stop all\n+    testpmd> port start all\n+    testpmd> start\n+    testpmd> show bonding config 2\n+    testpmd> stop\n+\n+#. quit testpmd::\n+\n+    testpmd> stop\n+    testpmd> quit\n+\n+Test Case : basic behavior mac\n+==============================\n+#. bonded device's default mac is one of each slave's mac after one slave has been added.\n+#. when no slave attached, mac should be 00:00:00:00:00:00\n+#. slave's mac restore the MAC addresses that the slave has before they were enslaved.\n+\n+steps\n+-----\n+\n+#. bind two ports::\n+\n+    ./usertools/dpdk-devbind.py --bind=vfio-pci <pci address 1> <pci address 2>\n+\n+#. boot up testpmd::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xXXXXX -n 4  -- -i --tx-offloads=0xXXXX\n+\n+#. run testpmd command of bonding::\n+\n+    testpmd> port stop all\n+    testpmd> create bonded device 4 0\n+\n+#. check bond device mac should be 00:00:00:00:00:00::\n+\n+    testpmd> show bonding config 2\n+\n+#. add two slaves to bond port::\n+\n+    testpmd> add bonding slave 0 2\n+    testpmd> add bonding slave 1 2\n+    testpmd> port start all\n+\n+#. check bond device mac should be one of each slave's mac::\n+\n+    testpmd> show bonding config 0\n+    testpmd> show bonding config 1\n+    testpmd> show bonding config 2\n+\n+#. quit testpmd::\n+\n+    testpmd> stop\n+    testpmd> quit\n+\n+Test Case : basic behavior link up/down\n+=======================================\n+#. bonded device should be down status without slaves.\n+#. bonded device device should have the same status of link status.\n+#. Active Slaves status should change with the slave status change.\n+\n+steps\n+-----\n+\n+#. bind two ports::\n+\n+    ./usertools/dpdk-devbind.py --bind=vfio-pci <pci address 1> <pci address 2>\n+\n+#. boot up testpmd::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xXXXXX -n 4  -- -i --tx-offloads=0xXXXX\n+\n+#. run testpmd command of bonding::\n+\n+    testpmd> port stop all\n+    testpmd> create bonded device 4 0\n+    testpmd> add bonding slave 0 2\n+    testpmd> add bonding slave 1 2\n+    testpmd> set bonding lacp dedicated_queues 2 enable\n+    testpmd> set allmulti 0 on\n+    testpmd> set allmulti 1 on\n+    testpmd> set allmulti 2 on\n+    testpmd> set portlist 2\n+\n+#. stop bonded device and check bonded device/slaves link status::\n+\n+    testpmd> port stop 2\n+    testpmd> show bonding config 2\n+    testpmd> show bonding config 1\n+    testpmd> show bonding config 0\n+\n+#. start bonded device and check bonded device/slaves link status::\n+\n+    testpmd> port start 2\n+    testpmd> show bonding config 2\n+    testpmd> show bonding config 1\n+    testpmd> show bonding config 0\n+\n+#. quit testpmd::\n+\n+    testpmd> stop\n+    testpmd> quit\n+\n+Test Case : basic behavior promiscuous  mode\n+============================================\n+#. bonded device promiscuous mode should be ``enabled`` by default.\n+#. bonded device/slave device should have the same status of promiscuous mode.\n+\n+steps\n+-----\n+\n+#. bind two ports::\n+\n+    ./usertools/dpdk-devbind.py --bind=vfio-pci <pci address 1> <pci address 2>\n+\n+#. boot up testpmd::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xXXXXX -n 4  -- -i --tx-offloads=0xXXXX\n+\n+#. run testpmd command of bonding::\n+\n+    testpmd> port stop all\n+    testpmd> create bonded device 4 0\n+\n+#. check if bonded device promiscuous mode is ``enabled``::\n+\n+    testpmd> show bonding config 2\n+\n+#. add two slaves and check if promiscuous mode is ``enabled``::\n+\n+    testpmd> add bonding slave 0 2\n+    testpmd> add bonding slave 1 2\n+    testpmd> show bonding config 0\n+    testpmd> show bonding config 1\n+\n+#. disable bonded device promiscuous mode and check promiscuous mode::\n+\n+    testpmd> set promisc 2 off\n+    testpmd> show bonding config 2\n+\n+#. enable bonded device promiscuous mode and check promiscuous mode::\n+\n+    testpmd> set promisc 2 on\n+    testpmd> show bonding config 2\n+\n+#. check slaves' promiscuous mode::\n+\n+    testpmd> show bonding config 0\n+    testpmd> show bonding config 1\n+\n+#. quit testpmd::\n+\n+    testpmd> stop\n+    testpmd> quit\n+\n+Test Case : basic behavior agg mode\n+===================================\n+#. stable is the default agg mode.\n+#. check 802.3ad aggregation mode configuration, support <agg_option>::\n+   ``count``\n+   ``stable``\n+   ``bandwidth``\n+\n+steps\n+-----\n+\n+#. bind two ports::\n+\n+    ./usertools/dpdk-devbind.py --bind=vfio-pci <pci address 1> <pci address 2>\n+\n+#. boot up testpmd::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xXXXXX -n 4  -- -i\n+\n+#. run testpmd command of bonding::\n+\n+    testpmd> port stop all\n+    testpmd> create bonded device 4 0\n+    testpmd> add bonding slave 0 2\n+    testpmd> add bonding slave 1 2\n+    testpmd> set bonding lacp dedicated_queues 2 enable\n+    testpmd> set allmulti 0 on\n+    testpmd> set allmulti 1 on\n+    testpmd> set allmulti 2 on\n+    testpmd> set portlist 2\n+    testpmd> port start all\n+    testpmd> show bonding config 2\n+    testpmd> set bonding agg_mode 2 <agg_option>\n+\n+#. check if agg_mode set successful::\n+\n+    testpmd> show bonding config 2\n+        Bonding mode: 4\n+        IEEE802.3AD Aggregator Mode: <agg_option>\n+        Slaves (2): [0 1]\n+        Active Slaves (2): [0 1]\n+        Primary: [0]\n+\n+#. quit testpmd::\n+\n+    testpmd> stop\n+    testpmd> quit\n+\n+Test Case : basic behavior dedicated queues\n+===========================================\n+#. check 802.3ad dedicated queues is ``disable`` by default\n+#. check 802.3ad set dedicated queues, support <agg_option>::\n+   ``disable``\n+   ``enable``\n+\n+steps\n+-----\n+\n+#. bind two ports::\n+\n+    ./usertools/dpdk-devbind.py --bind=vfio-pci <pci address 1> <pci address 2>\n+\n+#. boot up testpmd::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xXXXXX -n 4  -- -i --tx-offloads=0xXXXX\n+\n+#. run testpmd command of bonding::\n+\n+    testpmd> port stop all\n+    testpmd> create bonded device 4 0\n+    testpmd> add bonding slave 0 2\n+    testpmd> add bonding slave 1 2\n+    testpmd> show bonding config 2\n+\n+#. check if dedicated_queues disable successful::\n+\n+    testpmd> set bonding lacp dedicated_queues 2 disable\n+\n+#. check if bonded port can start::\n+\n+    testpmd> port start all\n+    testpmd> start\n+\n+#. check if dedicated_queues enable successful::\n+\n+    testpmd> stop\n+    testpmd> port stop all\n+    testpmd> set bonding lacp dedicated_queues 2 enable\n+\n+#. check if bonded port can start::\n+\n+    testpmd> port start all\n+    testpmd> start\n+\n+#. quit testpmd::\n+\n+    testpmd> stop\n+    testpmd> quit\n+\n+Test Case : command line option\n+===============================\n+#. check command line option::\n+\n+    slave=<0000:xx:00.0>\n+    agg_mode=<bandwidth | stable | count>\n+\n+#. compare bonding configuration with expected configuration.\n+\n+steps\n+-----\n+\n+#. bind two ports::\n+\n+    ./usertools/dpdk-devbind.py --bind=vfio-pci <pci address 1> <pci address 2>\n+\n+#. boot up testpmd ::\n+\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x0f -n 4 \\\n+    --vdev 'net_bonding0,slave=0000:xx:00.0,slave=0000:xx:00.1,mode=4,agg_mode=<agg_option>'  \\\n+    -- -i --port-topology=chained\n+\n+#. run testpmd command of bonding::\n+\n+    testpmd> port stop all\n+\n+#. check if bonded device has been created and slaves have been bonded successful::\n+\n+    testpmd> show bonding config 2\n+        Bonding mode: 4\n+        IEEE802.3AD Aggregator Mode: <agg_option>\n+        Slaves (2): [0 1]\n+        Active Slaves (2): [0 1]\n+        Primary: [0]\n+\n+#. check if bonded port can start::\n+\n+    testpmd> port start all\n+    testpmd> start\n+\n+#. check if dedicated_queues enable successful::\n+\n+    testpmd> stop\n+    testpmd> port stop all\n+\n+#. quit testpmd::\n+\n+    testpmd> quit\n+\n",
    "prefixes": [
        "V1",
        "4/7"
    ]
}