get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 1269218,
    "url": "http://patchwork.ozlabs.org/api/patches/1269218/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20200411002834.13916-5-andre.guedes@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": "<20200411002834.13916-5-andre.guedes@intel.com>",
    "list_archive_url": null,
    "date": "2020-04-11T00:28:34",
    "name": "[4/4] igc: Enable NFC rules based source MAC address",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "6e7cbe47a0611fd5b78ddf32021ffafd1f02eb6d",
    "submitter": {
        "id": 72323,
        "url": "http://patchwork.ozlabs.org/api/people/72323/?format=api",
        "name": "Andre Guedes",
        "email": "andre.guedes@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/20200411002834.13916-5-andre.guedes@intel.com/mbox/",
    "series": [
        {
            "id": 169691,
            "url": "http://patchwork.ozlabs.org/api/series/169691/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=169691",
            "date": "2020-04-11T00:28:30",
            "name": "igc: Enable NFC rules based on source MAC address",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/169691/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/1269218/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/1269218/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; spf=pass (sender SPF authorized)\n\tsmtp.mailfrom=osuosl.org (client-ip=140.211.166.137;\n\thelo=fraxinus.osuosl.org;\n\tenvelope-from=intel-wired-lan-bounces@osuosl.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org;\n\tdmarc=fail (p=none dis=none) header.from=intel.com"
        ],
        "Received": [
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 48zbN14pJXz9sSq\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 11 Apr 2020 10:28:49 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 66E5285DD8;\n\tSat, 11 Apr 2020 00:28:47 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id ApAkJqC6lspP; Sat, 11 Apr 2020 00:28:46 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id C7708868B4;\n\tSat, 11 Apr 2020 00:28:46 +0000 (UTC)",
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id C56661BF2C1\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tSat, 11 Apr 2020 00:28:42 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id C274D85DD8\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tSat, 11 Apr 2020 00:28:42 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id WONPUPyaDlza for <intel-wired-lan@lists.osuosl.org>;\n\tSat, 11 Apr 2020 00:28:41 +0000 (UTC)",
            "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 8BEB48651D\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tSat, 11 Apr 2020 00:28:41 +0000 (UTC)",
            "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; \n\t10 Apr 2020 17:28:40 -0700",
            "from nwu5-mobl1.amr.corp.intel.com ([10.134.124.160])\n\tby fmsmga001.fm.intel.com with ESMTP; 10 Apr 2020 17:28:40 -0700"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "IronPort-SDR": [
            "s70cIrACooIfBLmQe9io7dqbvJBwg/10LXo7Tlx2nKuFUGWpkQB61JRAI1s/iJjAPjrjYnGZ9B\n\taVKO16bVJ0PQ==",
            "O6H1rPzbICqBbSF3iF23XElUwQf1mqT6HQz+xdn/QbTG1MakIzbpd+3MAOPtQ+JF9UavD/MYPA\n\tS5GpNvi4sxZw=="
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.72,368,1580803200\"; d=\"scan'208\";a=\"362585535\"",
        "From": "Andre Guedes <andre.guedes@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Fri, 10 Apr 2020 17:28:34 -0700",
        "Message-Id": "<20200411002834.13916-5-andre.guedes@intel.com>",
        "X-Mailer": "git-send-email 2.26.0",
        "In-Reply-To": "<20200411002834.13916-1-andre.guedes@intel.com>",
        "References": "<20200411002834.13916-1-andre.guedes@intel.com>",
        "MIME-Version": "1.0",
        "Subject": "[Intel-wired-lan] [PATCH 4/4] igc: Enable NFC rules based source\n\tMAC address",
        "X-BeenThere": "intel-wired-lan@osuosl.org",
        "X-Mailman-Version": "2.1.29",
        "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>",
        "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 patch adds support for Network Flow Classification (NFC) rules\nbased on source MAC address. Note that the controller doesn't support\nrules with both source and destination addresses set, so this special\ncase is checked in igc_add_ethtool_nfc_entry().\n\nSigned-off-by: Andre Guedes <andre.guedes@intel.com>\n---\n drivers/net/ethernet/intel/igc/igc_ethtool.c | 31 +++++++++++++-------\n 1 file changed, 21 insertions(+), 10 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c\nindex 20d22df52f09..9cd629b7d5f4 100644\n--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c\n+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c\n@@ -1188,16 +1188,8 @@ static int igc_set_rss_hash_opt(struct igc_adapter *adapter,\n \n int igc_add_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)\n {\n-\tstruct igc_hw *hw = &adapter->hw;\n \tint err = -EINVAL;\n \n-\tif (hw->mac.type == igc_i225 &&\n-\t    !(input->filter.match_flags & ~IGC_FILTER_FLAG_SRC_MAC_ADDR)) {\n-\t\tnetdev_err(adapter->netdev,\n-\t\t\t   \"i225 doesn't support flow classification rules specifying only source addresses\");\n-\t\treturn -EOPNOTSUPP;\n-\t}\n-\n \tif (input->filter.match_flags & IGC_FILTER_FLAG_ETHER_TYPE) {\n \t\tu16 etype = ntohs(input->filter.etype);\n \n@@ -1206,6 +1198,14 @@ int igc_add_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)\n \t\t\treturn err;\n \t}\n \n+\tif (input->filter.match_flags & IGC_FILTER_FLAG_SRC_MAC_ADDR) {\n+\t\terr = igc_add_mac_filter(adapter, IGC_MAC_FILTER_TYPE_SRC,\n+\t\t\t\t\t input->filter.src_addr,\n+\t\t\t\t\t input->action);\n+\t\tif (err)\n+\t\t\treturn err;\n+\t}\n+\n \tif (input->filter.match_flags & IGC_FILTER_FLAG_DST_MAC_ADDR) {\n \t\terr = igc_add_mac_filter(adapter, IGC_MAC_FILTER_TYPE_DST,\n \t\t\t\t\t input->filter.dst_addr,\n@@ -1239,6 +1239,10 @@ int igc_erase_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)\n \t\tigc_del_vlan_prio_filter(adapter, prio);\n \t}\n \n+\tif (input->filter.match_flags & IGC_FILTER_FLAG_SRC_MAC_ADDR)\n+\t\tigc_del_mac_filter(adapter, IGC_MAC_FILTER_TYPE_SRC,\n+\t\t\t\t   input->filter.src_addr);\n+\n \tif (input->filter.match_flags & IGC_FILTER_FLAG_DST_MAC_ADDR)\n \t\tigc_del_mac_filter(adapter, IGC_MAC_FILTER_TYPE_DST,\n \t\t\t\t   input->filter.dst_addr);\n@@ -1334,20 +1338,27 @@ static int igc_add_ethtool_nfc_entry(struct igc_adapter *adapter,\n \t\tinput->filter.match_flags = IGC_FILTER_FLAG_ETHER_TYPE;\n \t}\n \n-\t/* Only support matching addresses by the full mask */\n+\t/* Both source and destination address filters only support the full\n+\t * mask.\n+\t */\n \tif (is_broadcast_ether_addr(fsp->m_u.ether_spec.h_source)) {\n \t\tinput->filter.match_flags |= IGC_FILTER_FLAG_SRC_MAC_ADDR;\n \t\tether_addr_copy(input->filter.src_addr,\n \t\t\t\tfsp->h_u.ether_spec.h_source);\n \t}\n \n-\t/* Only support matching addresses by the full mask */\n \tif (is_broadcast_ether_addr(fsp->m_u.ether_spec.h_dest)) {\n \t\tinput->filter.match_flags |= IGC_FILTER_FLAG_DST_MAC_ADDR;\n \t\tether_addr_copy(input->filter.dst_addr,\n \t\t\t\tfsp->h_u.ether_spec.h_dest);\n \t}\n \n+\tif (input->filter.match_flags & IGC_FILTER_FLAG_DST_MAC_ADDR &&\n+\t    input->filter.match_flags & IGC_FILTER_FLAG_SRC_MAC_ADDR) {\n+\t\tnetdev_dbg(netdev, \"Filters with both dst and src are not supported\");\n+\t\treturn -EOPNOTSUPP;\n+\t}\n+\n \tif ((fsp->flow_type & FLOW_EXT) && fsp->m_ext.vlan_tci) {\n \t\tif (fsp->m_ext.vlan_tci != htons(VLAN_PRIO_MASK)) {\n \t\t\tnetdev_dbg(netdev, \"VLAN mask not supported\");\n",
    "prefixes": [
        "4/4"
    ]
}