Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/882886/?format=api
{ "id": 882886, "url": "http://patchwork.ozlabs.org/api/patches/882886/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20180308003713.29195-6-vinicius.gomes@intel.com/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api", "name": "Intel Wired Ethernet development", "link_name": "intel-wired-lan", "list_id": "intel-wired-lan.osuosl.org", "list_email": "intel-wired-lan@osuosl.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20180308003713.29195-6-vinicius.gomes@intel.com>", "list_archive_url": null, "date": "2018-03-08T00:37:10", "name": "[next-queue,v4,5/8] igb: Enable nfc filters to specify MAC addresses", "commit_ref": null, "pull_url": null, "state": "changes-requested", "archived": false, "hash": "8d1b5276bf7006a9d89bb79faf94608da9f4fbff", "submitter": { "id": 72272, "url": "http://patchwork.ozlabs.org/api/people/72272/?format=api", "name": "Vinicius Costa Gomes", "email": "vinicius.gomes@intel.com" }, "delegate": { "id": 68, "url": "http://patchwork.ozlabs.org/api/users/68/?format=api", "username": "jtkirshe", "first_name": "Jeff", "last_name": "Kirsher", "email": "jeffrey.t.kirsher@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20180308003713.29195-6-vinicius.gomes@intel.com/mbox/", "series": [ { "id": 32555, "url": "http://patchwork.ozlabs.org/api/series/32555/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=32555", "date": "2018-03-08T00:37:05", "name": "igb: offloading of receive filters", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/32555/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/882886/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/882886/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=osuosl.org\n\t(client-ip=140.211.166.136; helo=silver.osuosl.org;\n\tenvelope-from=intel-wired-lan-bounces@osuosl.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=intel.com" ], "Received": [ "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3zxWnH2mxpz9shB\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 8 Mar 2018 11:37:38 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 8C1382A310;\n\tThu, 8 Mar 2018 00:37:36 +0000 (UTC)", "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id w+WXSa3ih0HX; Thu, 8 Mar 2018 00:37:33 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 4A8032E6A1;\n\tThu, 8 Mar 2018 00:37:33 +0000 (UTC)", "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ash.osuosl.org (Postfix) with ESMTP id E65AF1C0547\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 8 Mar 2018 00:37:31 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id E2BBE2E69F\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 8 Mar 2018 00:37:31 +0000 (UTC)", "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id HjWhaVw76qiL for <intel-wired-lan@lists.osuosl.org>;\n\tThu, 8 Mar 2018 00:37:30 +0000 (UTC)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n\tby silver.osuosl.org (Postfix) with ESMTPS id B0C5A2E6A1\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 8 Mar 2018 00:37:30 +0000 (UTC)", "from fmsmga008.fm.intel.com ([10.253.24.58])\n\tby fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t07 Mar 2018 16:37:30 -0800", "from ellie.jf.intel.com (HELO localhost.localdomain)\n\t([10.24.15.10])\n\tby fmsmga008.fm.intel.com with ESMTP; 07 Mar 2018 16:37:30 -0800" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.47,438,1515484800\"; d=\"scan'208\";a=\"22780562\"", "From": "Vinicius Costa Gomes <vinicius.gomes@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Wed, 7 Mar 2018 16:37:10 -0800", "Message-Id": "<20180308003713.29195-6-vinicius.gomes@intel.com>", "X-Mailer": "git-send-email 2.16.2", "In-Reply-To": "<20180308003713.29195-1-vinicius.gomes@intel.com>", "References": "<20180308003713.29195-1-vinicius.gomes@intel.com>", "Subject": "[Intel-wired-lan] [next-queue PATCH v4 5/8] igb: Enable nfc filters\n\tto specify MAC addresses", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.24", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.osuosl.org>", "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>", "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>", "Cc": "netdev@vger.kernel.org, jesus.sanchez-palencia@intel.com", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "This allows igb_add_filter()/igb_erase_filter() to work on filters\nthat include MAC addresses (both source and destination).\n\nFor now, this only exposes the functionality, the next commit glues\nethtool into this. Later in this series, these APIs are used to allow\noffloading of cls_flower filters.\n\nSigned-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>\n---\n drivers/net/ethernet/intel/igb/igb.h | 9 +++++++++\n drivers/net/ethernet/intel/igb/igb_ethtool.c | 28 ++++++++++++++++++++++++++++\n drivers/net/ethernet/intel/igb/igb_main.c | 8 ++++----\n 3 files changed, 41 insertions(+), 4 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h\nindex 4501b28ff7c5..3b310b16e1d1 100644\n--- a/drivers/net/ethernet/intel/igb/igb.h\n+++ b/drivers/net/ethernet/intel/igb/igb.h\n@@ -441,6 +441,8 @@ struct hwmon_buff {\n enum igb_filter_match_flags {\n \tIGB_FILTER_FLAG_ETHER_TYPE = 0x1,\n \tIGB_FILTER_FLAG_VLAN_TCI = 0x2,\n+\tIGB_FILTER_FLAG_SRC_MAC_ADDR = 0x4,\n+\tIGB_FILTER_FLAG_DST_MAC_ADDR = 0x8,\n };\n \n #define IGB_MAX_RXNFC_FILTERS 16\n@@ -455,6 +457,8 @@ struct igb_nfc_input {\n \tu8 match_flags;\n \t__be16 etype;\n \t__be16 vlan_tci;\n+\tu8 src_addr[ETH_ALEN];\n+\tu8 dst_addr[ETH_ALEN];\n };\n \n struct igb_nfc_filter {\n@@ -739,4 +743,9 @@ int igb_add_filter(struct igb_adapter *adapter,\n int igb_erase_filter(struct igb_adapter *adapter,\n \t\t struct igb_nfc_filter *input);\n \n+int igb_add_mac_filter_flags(struct igb_adapter *adapter, const u8 *addr,\n+\t\t\t const u8 queue, const u8 flags);\n+int igb_del_mac_filter_flags(struct igb_adapter *adapter, const u8 *addr,\n+\t\t\t const u8 queue, const u8 flags);\n+\n #endif /* _IGB_H_ */\ndiff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c\nindex 143f0bb34e4d..94fc9a4bed8b 100644\n--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c\n+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c\n@@ -2775,6 +2775,25 @@ int igb_add_filter(struct igb_adapter *adapter, struct igb_nfc_filter *input)\n \t\t\treturn err;\n \t}\n \n+\tif (input->filter.match_flags & IGB_FILTER_FLAG_DST_MAC_ADDR) {\n+\t\terr = igb_add_mac_filter_flags(adapter,\n+\t\t\t\t\t input->filter.dst_addr,\n+\t\t\t\t\t input->action, 0);\n+\t\terr = min_t(int, err, 0);\n+\t\tif (err)\n+\t\t\treturn err;\n+\t}\n+\n+\tif (input->filter.match_flags & IGB_FILTER_FLAG_SRC_MAC_ADDR) {\n+\t\terr = igb_add_mac_filter_flags(adapter,\n+\t\t\t\t\t input->filter.src_addr,\n+\t\t\t\t\t input->action,\n+\t\t\t\t\t IGB_MAC_STATE_SRC_ADDR);\n+\t\terr = min_t(int, err, 0);\n+\t\tif (err)\n+\t\t\treturn err;\n+\t}\n+\n \tif (input->filter.match_flags & IGB_FILTER_FLAG_VLAN_TCI)\n \t\terr = igb_rxnfc_write_vlan_prio_filter(adapter, input);\n \n@@ -2823,6 +2842,15 @@ int igb_erase_filter(struct igb_adapter *adapter, struct igb_nfc_filter *input)\n \t\tigb_clear_vlan_prio_filter(adapter,\n \t\t\t\t\t ntohs(input->filter.vlan_tci));\n \n+\tif (input->filter.match_flags & IGB_FILTER_FLAG_SRC_MAC_ADDR)\n+\t\tigb_del_mac_filter_flags(adapter, input->filter.src_addr,\n+\t\t\t\t\t input->action,\n+\t\t\t\t\t IGB_MAC_STATE_SRC_ADDR);\n+\n+\tif (input->filter.match_flags & IGB_FILTER_FLAG_DST_MAC_ADDR)\n+\t\tigb_del_mac_filter_flags(adapter, input->filter.dst_addr,\n+\t\t\t\t\t input->action, 0);\n+\n \treturn 0;\n }\n \ndiff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c\nindex 76969467de31..04307ef07e5a 100644\n--- a/drivers/net/ethernet/intel/igb/igb_main.c\n+++ b/drivers/net/ethernet/intel/igb/igb_main.c\n@@ -6848,8 +6848,8 @@ static void igb_set_default_mac_filter(struct igb_adapter *adapter)\n * default for the destination address, if matching by source address\n * is desired the flag IGB_MAC_STATE_SRC_ADDR can be used.\n */\n-static int igb_add_mac_filter_flags(struct igb_adapter *adapter, const u8 *addr,\n-\t\t\t\t const u8 queue, const u8 flags)\n+int igb_add_mac_filter_flags(struct igb_adapter *adapter, const u8 *addr,\n+\t\t\t const u8 queue, const u8 flags)\n {\n \tstruct e1000_hw *hw = &adapter->hw;\n \tint rar_entries = hw->mac.rar_entry_count -\n@@ -6890,8 +6890,8 @@ static int igb_add_mac_filter(struct igb_adapter *adapter, const u8 *addr,\n * matching by source address is to be removed the flag\n * IGB_MAC_STATE_SRC_ADDR can be used.\n */\n-static int igb_del_mac_filter_flags(struct igb_adapter *adapter, const u8 *addr,\n-\t\t\t\t const u8 queue, const u8 flags)\n+int igb_del_mac_filter_flags(struct igb_adapter *adapter, const u8 *addr,\n+\t\t\t const u8 queue, const u8 flags)\n {\n \tstruct e1000_hw *hw = &adapter->hw;\n \tint rar_entries = hw->mac.rar_entry_count -\n", "prefixes": [ "next-queue", "v4", "5/8" ] }