Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/880737/?format=api
{ "id": 880737, "url": "http://patchwork.ozlabs.org/api/patches/880737/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20180302184344.5744-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": "<20180302184344.5744-6-vinicius.gomes@intel.com>", "list_archive_url": null, "date": "2018-03-02T18:43:41", "name": "[next-queue,v2,5/8] igb: Enable nfc filters to specify MAC addresses", "commit_ref": null, "pull_url": null, "state": "superseded", "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/20180302184344.5744-6-vinicius.gomes@intel.com/mbox/", "series": [ { "id": 31605, "url": "http://patchwork.ozlabs.org/api/series/31605/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=31605", "date": "2018-03-02T18:43:37", "name": "igb: offloading of receive filters", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/31605/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/880737/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/880737/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.133; helo=hemlock.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 hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\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 3ztJB74H23z9s8l\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 3 Mar 2018 05:44:30 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 6A51A8A171;\n\tFri, 2 Mar 2018 18:44:29 +0000 (UTC)", "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id OldqBFZ+9aJ7; Fri, 2 Mar 2018 18:44:28 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 0F5BC8A16C;\n\tFri, 2 Mar 2018 18:44:28 +0000 (UTC)", "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\tby ash.osuosl.org (Postfix) with ESMTP id 45AB11C062C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 2 Mar 2018 18:44:25 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 410D58907B\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 2 Mar 2018 18:44:25 +0000 (UTC)", "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id mplAVlzBc4Fq for <intel-wired-lan@lists.osuosl.org>;\n\tFri, 2 Mar 2018 18:44:24 +0000 (UTC)", "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n\tby whitealder.osuosl.org (Postfix) with ESMTPS id E4AF189088\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 2 Mar 2018 18:44:23 +0000 (UTC)", "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t02 Mar 2018 10:44:23 -0800", "from ellie.jf.intel.com (HELO localhost.localdomain)\n\t([10.24.13.29])\n\tby fmsmga001.fm.intel.com with ESMTP; 02 Mar 2018 10:44:23 -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,413,1515484800\"; d=\"scan'208\";a=\"35044399\"", "From": "Vinicius Costa Gomes <vinicius.gomes@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Fri, 2 Mar 2018 10:43:41 -0800", "Message-Id": "<20180302184344.5744-6-vinicius.gomes@intel.com>", "X-Mailer": "git-send-email 2.16.2", "In-Reply-To": "<20180302184344.5744-1-vinicius.gomes@intel.com>", "References": "<20180302184344.5744-1-vinicius.gomes@intel.com>", "Subject": "[Intel-wired-lan] [next-queue PATCH v2 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 d5cd5f6708d9..43ce6d64f693 100644\n--- a/drivers/net/ethernet/intel/igb/igb.h\n+++ b/drivers/net/ethernet/intel/igb/igb.h\n@@ -440,6 +440,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@@ -454,6 +456,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@@ -738,4 +742,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 1df1c5a99a0d..71e03b5227df 100644\n--- a/drivers/net/ethernet/intel/igb/igb_main.c\n+++ b/drivers/net/ethernet/intel/igb/igb_main.c\n@@ -6843,8 +6843,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@@ -6885,8 +6885,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", "v2", "5/8" ] }