Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1407827/?format=api
{ "id": 1407827, "url": "http://patchwork.ozlabs.org/api/patches/1407827/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/20201129125407.1391557-8-idosch@idosch.org/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api", "name": "Linux network development", "link_name": "netdev", "list_id": "netdev.vger.kernel.org", "list_email": "netdev@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20201129125407.1391557-8-idosch@idosch.org>", "list_archive_url": null, "date": "2020-11-29T12:54:05", "name": "[net-next,7/9] bridge: switchdev: Notify about VLAN protocol changes", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "7f369f62903c56f704803d37a217425c64f1d838", "submitter": { "id": 69679, "url": "http://patchwork.ozlabs.org/api/people/69679/?format=api", "name": "Ido Schimmel", "email": "idosch@idosch.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/20201129125407.1391557-8-idosch@idosch.org/mbox/", "series": [ { "id": 217375, "url": "http://patchwork.ozlabs.org/api/series/217375/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=217375", "date": "2020-11-29T12:54:00", "name": "mlxsw: Add support for 802.1ad bridging", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/217375/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1407827/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1407827/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming-netdev@ozlabs.org", "Delivered-To": "patchwork-incoming-netdev@ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=23.128.96.18; helo=vger.kernel.org;\n envelope-from=netdev-owner@vger.kernel.org; receiver=<UNKNOWN>)", "ozlabs.org;\n dmarc=none (p=none dis=none) header.from=idosch.org", "ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=messagingengine.com header.i=@messagingengine.com\n header.a=rsa-sha256 header.s=fm1 header.b=aOJcJysB;\n\tdkim-atps=neutral" ], "Received": [ "from vger.kernel.org (vger.kernel.org [23.128.96.18])\n\tby ozlabs.org (Postfix) with ESMTP id 4CkSzr5pwWz9s1l\n\tfor <patchwork-incoming-netdev@ozlabs.org>;\n Sun, 29 Nov 2020 23:56:40 +1100 (AEDT)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n id S2387463AbgK2M4j (ORCPT\n <rfc822;patchwork-incoming-netdev@ozlabs.org>);\n Sun, 29 Nov 2020 07:56:39 -0500", "from new1-smtp.messagingengine.com ([66.111.4.221]:57233 \"EHLO\n new1-smtp.messagingengine.com\" rhost-flags-OK-OK-OK-OK)\n by vger.kernel.org with ESMTP id S2387444AbgK2M4j (ORCPT\n <rfc822;netdev@vger.kernel.org>); Sun, 29 Nov 2020 07:56:39 -0500", "from compute3.internal (compute3.nyi.internal [10.202.2.43])\n by mailnew.nyi.internal (Postfix) with ESMTP id 93C3B5806E2;\n Sun, 29 Nov 2020 07:54:55 -0500 (EST)", "from mailfrontend2 ([10.202.2.163])\n by compute3.internal (MEProxy); Sun, 29 Nov 2020 07:54:55 -0500", "from shredder.lan (igld-84-229-154-147.inter.net.il\n [84.229.154.147])\n by mail.messagingengine.com (Postfix) with ESMTPA id 7701D3064AAA;\n Sun, 29 Nov 2020 07:54:53 -0500 (EST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n messagingengine.com; h=cc:content-transfer-encoding:date:from\n :in-reply-to:message-id:mime-version:references:subject:to\n :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=\n fm1; bh=iWTDhUIR4ugGXK7WcUprQ8CylzWjyKf/EccpaE0QNXU=; b=aOJcJysB\n Jr0FQ+USbbYun2NZfGWT3Rve3gFGDL9KLQm9Crwt0jxHtws0NCU+ZuAfPswYayZS\n sY9d4RhTjm0HrV+FkknLVbPkSvHwNv9ARJQaljfgWlpjrO6l9Vudqrq3l6u1/Foz\n uncZU/xFvTqk92VQT4sbosTFYCVRHsPCJvwVWkE+rSkOP8cCMuPVW4xWJdectBJI\n x+FUu6zI8xO1Fn0hUUB2y4ea9RdqXOpTnfwWcaeYTnzL2fBrhcN1tz4TUNePk0cb\n 4BZavA10ImfOgwkMSPollAwQmTarxZ4tyaNHg/++0kCvVXsdyd6/ZTf7jmxWRQrM\n Yg2EA7nEVEvAbA==", "X-ME-Sender": "<xms:H5rDXxqyEuA25ETcuoSL3XWtcVYHkqLpLvvtmkHaAC51YsdjK_WB7w>\n <xme:H5rDXzpN5zcGXqIEQJTIj4fmJnS3sAFAqsd_G1hZ4SZprn-6dWYgSN9t0Sz9NM74j\n B1WvKrbUX_6OCc>", "X-ME-Proxy-Cause": "\n gggruggvucftvghtrhhoucdtuddrgedujedrudehkedggeeiucetufdoteggodetrfdotf\n fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen\n uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre\n dtredttdenucfhrhhomhepkfguohcuufgthhhimhhmvghluceoihguohhstghhsehiugho\n shgthhdrohhrgheqnecuggftrfgrthhtvghrnhepudetieevffffveelkeeljeffkefhke\n ehgfdtffethfelvdejgffghefgveejkefhnecukfhppeekgedrvddvledrudehgedrudeg\n jeenucevlhhushhtvghrufhiiigvpeeinecurfgrrhgrmhepmhgrihhlfhhrohhmpehiug\n hoshgthhesihguohhstghhrdhorhhg", "X-ME-Proxy": "<xmx:H5rDX-NVthEdyt8T7KOm7ga0tfRf5YbeEJDmsYIa8-PPbsNUMdZ-Kw>\n <xmx:H5rDX87v86eERFK8_hNfHoPrQ_jp9YHTW2cR3BXw7AsjVQ62z1GKDA>\n <xmx:H5rDXw7ze54catU413eWmtv1Qcc0X139IcZF4esYCeuwASpeQqvgNg>\n <xmx:H5rDXxGgPJNUfTpe6AWTCrLFV9cL7DRyUBRt-s-v543mJ7IIc3iF-Q>", "From": "Ido Schimmel <idosch@idosch.org>", "To": "netdev@vger.kernel.org, bridge@lists.linux-foundation.org", "Cc": "davem@davemloft.net, kuba@kernel.org, jiri@nvidia.com,\n ivecera@redhat.com, roopa@nvidia.com, nikolay@nvidia.com,\n amcohen@nvidia.com, danieller@nvidia.com, petrm@nvidia.com,\n mlxsw@nvidia.com, Ido Schimmel <idosch@nvidia.com>", "Subject": "[PATCH net-next 7/9] bridge: switchdev: Notify about VLAN protocol\n changes", "Date": "Sun, 29 Nov 2020 14:54:05 +0200", "Message-Id": "<20201129125407.1391557-8-idosch@idosch.org>", "X-Mailer": "git-send-email 2.28.0", "In-Reply-To": "<20201129125407.1391557-1-idosch@idosch.org>", "References": "<20201129125407.1391557-1-idosch@idosch.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "From: Danielle Ratson <danieller@nvidia.com>\n\nDrivers that support bridge offload need to be notified about changes to\nthe bridge's VLAN protocol so that they could react accordingly and\npotentially veto the change.\n\nAdd a new switchdev attribute to communicate the change to drivers.\n\nSigned-off-by: Danielle Ratson <danieller@nvidia.com>\nReviewed-by: Petr Machata <petrm@nvidia.com>\nAcked-by: Nikolay Aleksandrov <nikolay@nvidia.com>\nSigned-off-by: Ido Schimmel <idosch@nvidia.com>\n---\n include/net/switchdev.h | 2 ++\n net/bridge/br_vlan.c | 16 ++++++++++++++--\n 2 files changed, 16 insertions(+), 2 deletions(-)", "diff": "diff --git a/include/net/switchdev.h b/include/net/switchdev.h\nindex 53e8b4994296..99cd538d6519 100644\n--- a/include/net/switchdev.h\n+++ b/include/net/switchdev.h\n@@ -38,6 +38,7 @@ enum switchdev_attr_id {\n \tSWITCHDEV_ATTR_ID_PORT_MROUTER,\n \tSWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME,\n \tSWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING,\n+\tSWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL,\n \tSWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED,\n \tSWITCHDEV_ATTR_ID_BRIDGE_MROUTER,\n #if IS_ENABLED(CONFIG_BRIDGE_MRP)\n@@ -58,6 +59,7 @@ struct switchdev_attr {\n \t\tbool mrouter;\t\t\t\t/* PORT_MROUTER */\n \t\tclock_t ageing_time;\t\t\t/* BRIDGE_AGEING_TIME */\n \t\tbool vlan_filtering;\t\t\t/* BRIDGE_VLAN_FILTERING */\n+\t\tu16 vlan_protocol;\t\t\t/* BRIDGE_VLAN_PROTOCOL */\n \t\tbool mc_disabled;\t\t\t/* MC_DISABLED */\n #if IS_ENABLED(CONFIG_BRIDGE_MRP)\n \t\tu8 mrp_port_state;\t\t\t/* MRP_PORT_STATE */\ndiff --git a/net/bridge/br_vlan.c b/net/bridge/br_vlan.c\nindex 11f54a7c0d1d..d07008678d32 100644\n--- a/net/bridge/br_vlan.c\n+++ b/net/bridge/br_vlan.c\n@@ -854,15 +854,25 @@ EXPORT_SYMBOL_GPL(br_vlan_get_proto);\n \n int __br_vlan_set_proto(struct net_bridge *br, __be16 proto)\n {\n+\tstruct switchdev_attr attr = {\n+\t\t.orig_dev = br->dev,\n+\t\t.id = SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL,\n+\t\t.flags = SWITCHDEV_F_SKIP_EOPNOTSUPP,\n+\t\t.u.vlan_protocol = ntohs(proto),\n+\t};\n \tint err = 0;\n \tstruct net_bridge_port *p;\n \tstruct net_bridge_vlan *vlan;\n \tstruct net_bridge_vlan_group *vg;\n-\t__be16 oldproto;\n+\t__be16 oldproto = br->vlan_proto;\n \n \tif (br->vlan_proto == proto)\n \t\treturn 0;\n \n+\terr = switchdev_port_attr_set(br->dev, &attr);\n+\tif (err && err != -EOPNOTSUPP)\n+\t\treturn err;\n+\n \t/* Add VLANs for the new proto to the device filter. */\n \tlist_for_each_entry(p, &br->port_list, list) {\n \t\tvg = nbp_vlan_group(p);\n@@ -873,7 +883,6 @@ int __br_vlan_set_proto(struct net_bridge *br, __be16 proto)\n \t\t}\n \t}\n \n-\toldproto = br->vlan_proto;\n \tbr->vlan_proto = proto;\n \n \trecalculate_group_addr(br);\n@@ -889,6 +898,9 @@ int __br_vlan_set_proto(struct net_bridge *br, __be16 proto)\n \treturn 0;\n \n err_filt:\n+\tattr.u.vlan_protocol = ntohs(oldproto);\n+\tswitchdev_port_attr_set(br->dev, &attr);\n+\n \tlist_for_each_entry_continue_reverse(vlan, &vg->vlan_list, vlist)\n \t\tvlan_vid_del(p->dev, proto, vlan->vid);\n \n", "prefixes": [ "net-next", "7/9" ] }