get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 66034,
    "url": "http://patches.dpdk.org/api/patches/66034/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200225092903.38455-2-huwei013@chinasoftinc.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20200225092903.38455-2-huwei013@chinasoftinc.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200225092903.38455-2-huwei013@chinasoftinc.com",
    "date": "2020-02-25T09:29:02",
    "name": "[1/2] net/bonding: fix MAC address when switching active port",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "8152f31231acea955722b02b0eb7b58f6f465e74",
    "submitter": {
        "id": 1537,
        "url": "http://patches.dpdk.org/api/people/1537/?format=api",
        "name": "Wei Hu (Xavier)",
        "email": "huwei013@chinasoftinc.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200225092903.38455-2-huwei013@chinasoftinc.com/mbox/",
    "series": [
        {
            "id": 8679,
            "url": "http://patches.dpdk.org/api/series/8679/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=8679",
            "date": "2020-02-25T09:29:01",
            "name": "fixes for bonding",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/8679/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/66034/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/66034/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 666B5A0524;\n\tTue, 25 Feb 2020 10:29:53 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 01DD91BFE1;\n\tTue, 25 Feb 2020 10:29:42 +0100 (CET)",
            "from incedge.chinasoftinc.com (unknown [114.113.233.8])\n by dpdk.org (Postfix) with ESMTP id E39481BFC7\n for <dev@dpdk.org>; Tue, 25 Feb 2020 10:29:36 +0100 (CET)",
            "from mail.chinasoftinc.com (inccas002.ito.icss [10.168.0.52]) by\n incedge.chinasoftinc.com with ESMTP id O1Eksct9guSyUyoF (version=TLSv1\n cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO) for <dev@dpdk.org>;\n Tue, 25 Feb 2020 17:29:10 +0800 (CST)",
            "from localhost.localdomain (114.119.4.74) by INCCAS002.ito.icss\n (10.168.0.60) with Microsoft SMTP Server id 14.3.439.0; Tue, 25 Feb 2020\n 17:29:07 +0800"
        ],
        "X-ASG-Debug-ID": "1582622944-0a3dd113ab17cf0003-TfluYd",
        "X-Barracuda-Envelope-From": "huwei013@chinasoftinc.com",
        "X-Barracuda-RBL-Trusted-Forwarder": [
            "10.168.0.52",
            "10.168.0.60"
        ],
        "X-ASG-Whitelist": "Client",
        "From": "\"Wei Hu (Xavier)\" <huwei013@chinasoftinc.com>",
        "To": "<dev@dpdk.org>",
        "Date": "Tue, 25 Feb 2020 17:29:02 +0800",
        "X-ASG-Orig-Subj": "[PATCH 1/2] net/bonding: fix MAC address when switching\n active port",
        "Message-ID": "<20200225092903.38455-2-huwei013@chinasoftinc.com>",
        "X-Mailer": "git-send-email 2.23.0",
        "In-Reply-To": "<20200225092903.38455-1-huwei013@chinasoftinc.com>",
        "References": "<20200225092903.38455-1-huwei013@chinasoftinc.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[114.119.4.74]",
        "X-Barracuda-Connect": "inccas002.ito.icss[10.168.0.52]",
        "X-Barracuda-Start-Time": "1582622949",
        "X-Barracuda-Encrypted": "ECDHE-RSA-AES256-SHA",
        "X-Barracuda-URL": "https://spam.chinasoftinc.com:443/cgi-mod/mark.cgi",
        "X-Virus-Scanned": "by bsmtpd at chinasoftinc.com",
        "X-Barracuda-Scan-Msg-Size": "3790",
        "Subject": "[dpdk-dev] [PATCH 1/2] net/bonding: fix MAC address when switching\n\tactive port",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: \"Wei Hu (Xavier)\" <xavier.huwei@huawei.com>\n\nCurrently, based on a active-backup bond device, when the link status of\nthe primary port changes from up to down, one slave port changes to the\nprimary port, but the new primary port's MAC address cannot change to the\nbond device's MAC address. And we can't continue receive packets whose\ndestination MAC addresses are the same as the bond devices's MAC address.\n\nThe current bonding PMD driver call mac_address_slaves_update function to\nmodify the MAC address of all slaves devices: the primary port using bond\ndevice's MAC address, and other slaves devices using the respective MAC\naddress. We found that one error using primary_port instead of\ncurrent_primary_port in mac_address_slaves_update function.\n\nOn the other hand, The current bonding PMD driver sets slave devices's MAC\naddress according to the variable named current_primary_port. The variable\nnamed current_primary_port changes in the following scenario:\n1. Add the slave devices to bond, the first slave port will be regardes as\n   the current_primary_port. If changing the order of adding the slave\n   devices, the value of the variable named current_primary_port will be\n   different.\n2. The upper application specifies primary_port via calling the\n   rte_eth_bond_primary_set API function.\n3. Delete the primary slave device.\n4. The link status of the primary port changes from up to down.\n\nWe have tested the above 4 cases and found that there are problems that\nthe new primary port's MAC address didn't change to the bond device's MAC\naddress when running case 3 and 4. When current_primary_port changes, the\nnew primary port's MAC address should change at the same time. We also need\nto call mac_address_slaves_update function to update MAC addresses in case\n3 and 4.\n\nFor more details please refer to:\nhttps://bugs.dpdk.org/show_bug.cgi?id=256\n\nBugzilla ID: 256\nFixes: 2efb58cbab6e (\"bond: new link bonding library\")\nCc: stable@dpdk.org\n\nReported-by: Chunsong Feng <fengchunsong@huawei.com>\nSigned-off-by: Chunsong Feng <fengchunsong@huawei.com>\nSigned-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>\n---\n drivers/net/bonding/rte_eth_bond_api.c | 1 +\n drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-\n 2 files changed, 3 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c\nindex f38eb3b47..07780a2ac 100644\n--- a/drivers/net/bonding/rte_eth_bond_api.c\n+++ b/drivers/net/bonding/rte_eth_bond_api.c\n@@ -698,6 +698,7 @@ __eth_bond_slave_remove_lock_free(uint16_t bonded_port_id,\n \t\t\tinternals->current_primary_port = internals->slaves[0].port_id;\n \t\telse\n \t\t\tinternals->primary_port = 0;\n+\t\tmac_address_slaves_update(bonded_eth_dev);\n \t}\n \n \tif (internals->active_slave_count < 1) {\ndiff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c\nindex 707a0f3cd..ddae3518c 100644\n--- a/drivers/net/bonding/rte_eth_bond_pmd.c\n+++ b/drivers/net/bonding/rte_eth_bond_pmd.c\n@@ -1533,7 +1533,7 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)\n \t\t\tif (internals->slaves[i].port_id ==\n \t\t\t\t\tinternals->current_primary_port) {\n \t\t\t\tif (rte_eth_dev_default_mac_addr_set(\n-\t\t\t\t\t\tinternals->primary_port,\n+\t\t\t\t\t\tinternals->current_primary_port,\n \t\t\t\t\t\tbonded_eth_dev->data->mac_addrs)) {\n \t\t\t\t\tRTE_BOND_LOG(ERR, \"Failed to update port Id %d MAC address\",\n \t\t\t\t\t\t\tinternals->current_primary_port);\n@@ -2873,6 +2873,7 @@ bond_ethdev_lsc_event_callback(uint16_t port_id, enum rte_eth_event_type type,\n \t\t\t\t\t\tinternals->active_slaves[0]);\n \t\t\telse\n \t\t\t\tinternals->current_primary_port = internals->primary_port;\n+\t\t\tmac_address_slaves_update(bonded_eth_dev);\n \t\t}\n \t}\n \n",
    "prefixes": [
        "1/2"
    ]
}