get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 700231,
    "url": "http://patchwork.ozlabs.org/api/patches/700231/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1480377971-23412-2-git-send-email-bimmy.pujari@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": "<1480377971-23412-2-git-send-email-bimmy.pujari@intel.com>",
    "list_archive_url": null,
    "date": "2016-11-29T00:05:58",
    "name": "[next,S55,01/14] i40e: Disabling ntuple filters cleans Cloud Filters up",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": false,
    "hash": "62a78a5c54aa433a7580e3460d464b5a9595caf8",
    "submitter": {
        "id": 68919,
        "url": "http://patchwork.ozlabs.org/api/people/68919/?format=api",
        "name": "Pujari, Bimmy",
        "email": "bimmy.pujari@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/1480377971-23412-2-git-send-email-bimmy.pujari@intel.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/700231/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/700231/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@lists.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"
        ],
        "Received": [
            "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\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 3tSP5N1LyMz9vF7\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 29 Nov 2016 11:08:08 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id B97D388954;\n\tTue, 29 Nov 2016 00:08:06 +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 7aQYbQmpoCkB; Tue, 29 Nov 2016 00:08:03 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 87987889AA;\n\tTue, 29 Nov 2016 00:07:54 +0000 (UTC)",
            "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id A5ABA1C0975\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 29 Nov 2016 00:07:50 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id A0BE493A8C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 29 Nov 2016 00:07:50 +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 zaRXqmFEciWG for <intel-wired-lan@lists.osuosl.org>;\n\tTue, 29 Nov 2016 00:07:48 +0000 (UTC)",
            "from mga06.intel.com (mga06.intel.com [134.134.136.31])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id 2C38893A8F\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 29 Nov 2016 00:07:48 +0000 (UTC)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n\tby orsmga104.jf.intel.com with ESMTP; 28 Nov 2016 16:07:47 -0800",
            "from bimmy.jf.intel.com (HELO bimmy.linux1.jf.intel.com)\n\t([134.134.2.167])\n\tby orsmga004.jf.intel.com with ESMTP; 28 Nov 2016 16:07:47 -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-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.31,565,1473145200\"; d=\"scan'208\";a=\"35284048\"",
        "From": "Bimmy Pujari <bimmy.pujari@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Mon, 28 Nov 2016 16:05:58 -0800",
        "Message-Id": "<1480377971-23412-2-git-send-email-bimmy.pujari@intel.com>",
        "X-Mailer": "git-send-email 2.4.11",
        "In-Reply-To": "<1480377971-23412-1-git-send-email-bimmy.pujari@intel.com>",
        "References": "<1480377971-23412-1-git-send-email-bimmy.pujari@intel.com>",
        "Cc": "Filip Sadowski <filip.sadowski@intel.com>",
        "Subject": "[Intel-wired-lan] [next PATCH S55 01/14] i40e: Disabling ntuple\n\tfilters cleans Cloud Filters up",
        "X-BeenThere": "intel-wired-lan@lists.osuosl.org",
        "X-Mailman-Version": "2.1.18-1",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.lists.osuosl.org>",
        "List-Unsubscribe": "<http://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@lists.osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@lists.osuosl.org?subject=help>",
        "List-Subscribe": "<http://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=subscribe>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "intel-wired-lan-bounces@lists.osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@lists.osuosl.org>"
    },
    "content": "From: Filip Sadowski <filip.sadowski@intel.com>\n\nThis patch resolves the issue with Cloud Filters not being flushed from\ndriver memory and HW when ntuple filters get disabled. Additionally it was\npossible to add Cloud Filters with ntuple mechanism off. Now Cloud Filters\ncan be added only with ntuple enabled. Error code is returned otherwise.\n\nSigned-off-by: Filip Sadowski <filip.sadowski@intel.com>\nChange-ID: I7bbc43ead41ead59be89ae2ca440a5c77fef2086\n---\n drivers/net/ethernet/intel/i40e/i40e.h         | 39 ++++++++++++++++++++++++++\n drivers/net/ethernet/intel/i40e/i40e_ethtool.c |  3 ++\n drivers/net/ethernet/intel/i40e/i40e_main.c    | 21 ++++++++++++++\n 3 files changed, 63 insertions(+)",
    "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h\nindex 9413d8a..05552b0 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e.h\n@@ -224,6 +224,43 @@ struct i40e_fdir_filter {\n \tu32 fd_id;\n };\n \n+#define I40E_CLOUD_FIELD_OMAC   0x01\n+#define I40E_CLOUD_FIELD_IMAC   0x02\n+#define I40E_CLOUD_FIELD_IVLAN  0x04\n+#define I40E_CLOUD_FIELD_TEN_ID 0x08\n+#define I40E_CLOUD_FIELD_IIP    0x10\n+\n+#define I40E_CLOUD_FILTER_FLAGS_OMAC I40E_CLOUD_FIELD_OMAC\n+#define I40E_CLOUD_FILTER_FLAGS_IMAC I40E_CLOUD_FIELD_IMAC\n+#define I40E_CLOUD_FILTER_FLAGS_IMAC_IVLAN (I40E_CLOUD_FIELD_IMAC | \\\n+\t\t\t\t\t    I40E_CLOUD_FIELD_IVLAN)\n+#define I40E_CLOUD_FILTER_FLAGS_IMAC_TEN_ID (I40E_CLOUD_FIELD_IMAC | \\\n+\t\t\t\t\t     I40E_CLOUD_FIELD_TEN_ID)\n+#define I40E_CLOUD_FILTER_FLAGS_OMAC_TEN_ID_IMAC (I40E_CLOUD_FIELD_OMAC | \\\n+\t\t\t\t\t\t  I40E_CLOUD_FIELD_IMAC | \\\n+\t\t\t\t\t\t  I40E_CLOUD_FIELD_TEN_ID)\n+#define I40E_CLOUD_FILTER_FLAGS_IMAC_IVLAN_TEN_ID (I40E_CLOUD_FIELD_IMAC | \\\n+\t\t\t\t\t\t   I40E_CLOUD_FIELD_IVLAN | \\\n+\t\t\t\t\t\t   I40E_CLOUD_FIELD_TEN_ID)\n+#define I40E_CLOUD_FILTER_FLAGS_IIP  I40E_CLOUD_FIELD_IIP\n+\n+struct i40e_cloud_filter {\n+\tstruct hlist_node cloud_node;\n+\t/* cloud filter input set follows */\n+\tu8 outer_mac[ETH_ALEN];\n+\tu8 inner_mac[ETH_ALEN];\n+\t__be16 inner_vlan;\n+\t__be32 inner_ip[4];\n+\tu32 tenant_id;\n+\tu8 flags;\n+#define I40E_CLOUD_TNL_TYPE_NONE\t0xff\n+\tu8 tunnel_type;\n+\t/* filter control */\n+\tu16 seid;\n+\tu16 queue_id;\n+\tu32 id;\n+};\n+\n #define I40E_ETH_P_LLDP\t\t\t0x88cc\n \n #define I40E_DCB_PRIO_TYPE_STRICT\t0\n@@ -290,6 +327,8 @@ struct i40e_pf {\n \tstruct i40e_udp_port_config udp_ports[I40E_MAX_PF_UDP_OFFLOAD_PORTS];\n \tu16 pending_udp_bitmap;\n \n+\tstruct hlist_head cloud_filter_list;\n+\tu16 num_cloud_filters;\n \tenum i40e_interrupt_policy int_policy;\n \tu16 rx_itr_default;\n \tu16 tx_itr_default;\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\nindex cc1465a..99772ee 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n@@ -2705,6 +2705,9 @@ static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi,\n \tif (pf->auto_disable_flags & I40E_FLAG_FD_SB_ENABLED)\n \t\treturn -ENOSPC;\n \n+\tif (!(pf->flags & I40E_FLAG_FD_SB_ENABLED))\n+\t\treturn -EOPNOTSUPP;\n+\n \tif (test_bit(__I40E_RESET_RECOVERY_PENDING, &pf->state) ||\n \t    test_bit(__I40E_RESET_INTR_RECEIVED, &pf->state))\n \t\treturn -EBUSY;\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex d718342..769f922 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -5664,6 +5664,25 @@ static void i40e_fdir_filter_exit(struct i40e_pf *pf)\n }\n \n /**\n+ * i40e_cloud_filter_exit - Cleans up Cloud Filters\n+ * @pf: Pointer to PF\n+ *\n+ * This function destroys the hlist which keeps all the Cloud Filters.\n+ **/\n+static void i40e_cloud_filter_exit(struct i40e_pf *pf)\n+{\n+\tstruct i40e_cloud_filter *cfilter;\n+\tstruct hlist_node *node;\n+\n+\thlist_for_each_entry_safe(cfilter, node,\n+\t\t\t\t  &pf->cloud_filter_list, cloud_node) {\n+\t\thlist_del(&cfilter->cloud_node);\n+\t\tkfree(cfilter);\n+\t}\n+\tpf->num_cloud_filters = 0;\n+}\n+\n+/**\n  * i40e_close - Disables a network interface\n  * @netdev: network interface device structure\n  *\n@@ -6857,6 +6876,7 @@ static void i40e_fdir_teardown(struct i40e_pf *pf)\n \tstruct i40e_vsi *vsi;\n \n \ti40e_fdir_filter_exit(pf);\n+\ti40e_cloud_filter_exit(pf);\n \tvsi = i40e_find_vsi_by_type(pf, I40E_VSI_FDIR);\n \tif (vsi)\n \t\ti40e_vsi_release(vsi);\n@@ -8801,6 +8821,7 @@ bool i40e_set_ntuple(struct i40e_pf *pf, netdev_features_t features)\n \t\tif (pf->flags & I40E_FLAG_FD_SB_ENABLED) {\n \t\t\tneed_reset = true;\n \t\t\ti40e_fdir_filter_exit(pf);\n+\t\t\ti40e_cloud_filter_exit(pf);\n \t\t}\n \t\tpf->flags &= ~I40E_FLAG_FD_SB_ENABLED;\n \t\tpf->auto_disable_flags &= ~I40E_FLAG_FD_SB_ENABLED;\n",
    "prefixes": [
        "next",
        "S55",
        "01/14"
    ]
}