Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/813286/?format=api
{ "id": 813286, "url": "http://patchwork.ozlabs.org/api/patches/813286/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/150529677471.57063.18198720588435326712.stgit@anamdev.jf.intel.com/", "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": "<150529677471.57063.18198720588435326712.stgit@anamdev.jf.intel.com>", "list_archive_url": null, "date": "2017-09-13T09:59:34", "name": "[RFC,v3,4/7] i40e: Cloud filter mode for set_switch_config command", "commit_ref": null, "pull_url": null, "state": "rfc", "archived": true, "hash": "a9bba4e7f31c400170a84651cdbe5a4b129059b2", "submitter": { "id": 68504, "url": "http://patchwork.ozlabs.org/api/people/68504/?format=api", "name": "Nambiar, Amritha", "email": "amritha.nambiar@intel.com" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/150529677471.57063.18198720588435326712.stgit@anamdev.jf.intel.com/mbox/", "series": [ { "id": 2861, "url": "http://patchwork.ozlabs.org/api/series/2861/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=2861", "date": "2017-09-13T09:59:13", "name": "tc-flower based cloud filters in i40e", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/2861/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/813286/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/813286/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming@ozlabs.org", "Delivered-To": "patchwork-incoming@ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xsccJ0VqJz9s76\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 13 Sep 2017 20:00:48 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752179AbdIMKAq (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 13 Sep 2017 06:00:46 -0400", "from mga03.intel.com ([134.134.136.65]:17779 \"EHLO mga03.intel.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1752134AbdIMKAn (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tWed, 13 Sep 2017 06:00:43 -0400", "from orsmga004.jf.intel.com ([10.7.209.38])\n\tby orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t13 Sep 2017 03:00:42 -0700", "from anamdev.jf.intel.com ([10.166.29.110])\n\tby orsmga004.jf.intel.com with ESMTP; 13 Sep 2017 03:00:42 -0700" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.42,387,1500966000\"; d=\"scan'208\";a=\"128300379\"", "Subject": "[RFC PATCH v3 4/7] i40e: Cloud filter mode for set_switch_config\n\tcommand", "From": "Amritha Nambiar <amritha.nambiar@intel.com>", "To": "intel-wired-lan@lists.osuosl.org, jeffrey.t.kirsher@intel.com", "Cc": "alexander.h.duyck@intel.com, netdev@vger.kernel.org,\n\tamritha.nambiar@intel.com", "Date": "Wed, 13 Sep 2017 02:59:34 -0700", "Message-ID": "<150529677471.57063.18198720588435326712.stgit@anamdev.jf.intel.com>", "In-Reply-To": "<150529632024.57063.15338545678487601430.stgit@anamdev.jf.intel.com>", "References": "<150529632024.57063.15338545678487601430.stgit@anamdev.jf.intel.com>", "User-Agent": "StGit/0.17.1-dirty", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "Add definitions for L4 filters and switch modes based on cloud filters\nmodes and extend the set switch config command to include the\nadditional cloud filter mode.\n\nSigned-off-by: Amritha Nambiar <amritha.nambiar@intel.com>\nSigned-off-by: Kiran Patil <kiran.patil@intel.com>\n---\n drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 30 ++++++++++++++++++++-\n drivers/net/ethernet/intel/i40e/i40e_common.c | 4 ++-\n drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 +\n drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +\n drivers/net/ethernet/intel/i40e/i40e_prototype.h | 2 +\n drivers/net/ethernet/intel/i40e/i40e_type.h | 9 ++++++\n 6 files changed, 44 insertions(+), 5 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h b/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h\nindex a8f65ae..e41050a 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h\n@@ -790,7 +790,35 @@ struct i40e_aqc_set_switch_config {\n \t */\n \t__le16\tfirst_tag;\n \t__le16\tsecond_tag;\n-\tu8\treserved[6];\n+\t/* Next byte is split into following:\n+\t * Bit 7 : 0: No action, 1: Switch to mode defined by bits 6:0\n+\t * Bit 6: 0 : Destination Port, 1: source port\n+\t * Bit 5..4: L4 type\n+\t * 0: rsvd\n+\t * 1: TCP\n+\t * 2: UDP\n+\t * 3: Both TCP and UDP\n+\t * Bits 3:0 Mode\n+\t * 0: default mode\n+\t * 1: L4 port only mode\n+\t * 2: non-tunneled mode\n+\t * 3: tunneled mode\n+\t */\n+#define I40E_AQ_SET_SWITCH_BIT7_VALID\t\t0x80\n+\n+#define I40E_AQ_SET_SWITCH_L4_SRC_PORT\t\t0x40\n+\n+#define I40E_AQ_SET_SWITCH_L4_TYPE_RSVD\t\t0x00\n+#define I40E_AQ_SET_SWITCH_L4_TYPE_TCP\t\t0x10\n+#define I40E_AQ_SET_SWITCH_L4_TYPE_UDP\t\t0x20\n+#define I40E_AQ_SET_SWITCH_L4_TYPE_BOTH\t\t0x30\n+\n+#define I40E_AQ_SET_SWITCH_MODE_DEFAULT\t\t0x00\n+#define I40E_AQ_SET_SWITCH_MODE_L4_PORT\t\t0x01\n+#define I40E_AQ_SET_SWITCH_MODE_NON_TUNNEL\t0x02\n+#define I40E_AQ_SET_SWITCH_MODE_TUNNEL\t\t0x03\n+\tu8\tmode;\n+\tu8\trsvd5[5];\n };\n \n I40E_CHECK_CMD_LENGTH(i40e_aqc_set_switch_config);\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c\nindex e7d8a01..9567702 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_common.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_common.c\n@@ -2405,13 +2405,14 @@ i40e_status i40e_aq_get_switch_config(struct i40e_hw *hw,\n * @hw: pointer to the hardware structure\n * @flags: bit flag values to set\n * @valid_flags: which bit flags to set\n+ * @mode: cloud filter mode\n * @cmd_details: pointer to command details structure or NULL\n *\n * Set switch configuration bits\n **/\n enum i40e_status_code i40e_aq_set_switch_config(struct i40e_hw *hw,\n \t\t\t\t\t\tu16 flags,\n-\t\t\t\t\t\tu16 valid_flags,\n+\t\t\t\t\t\tu16 valid_flags, u8 mode,\n \t\t\t\tstruct i40e_asq_cmd_details *cmd_details)\n {\n \tstruct i40e_aq_desc desc;\n@@ -2423,6 +2424,7 @@ enum i40e_status_code i40e_aq_set_switch_config(struct i40e_hw *hw,\n \t\t\t\t\t i40e_aqc_opc_set_switch_config);\n \tscfg->flags = cpu_to_le16(flags);\n \tscfg->valid_flags = cpu_to_le16(valid_flags);\n+\tscfg->mode = mode;\n \tif (hw->flags & I40E_HW_FLAG_802_1AD_CAPABLE) {\n \t\tscfg->switch_tag = cpu_to_le16(hw->switch_tag);\n \t\tscfg->first_tag = cpu_to_le16(hw->first_tag);\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\nindex 3fa90a6..7a0aa08 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n@@ -4186,7 +4186,7 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags)\n \t\t\tsw_flags = I40E_AQ_SET_SWITCH_CFG_PROMISC;\n \t\tvalid_flags = I40E_AQ_SET_SWITCH_CFG_PROMISC;\n \t\tret = i40e_aq_set_switch_config(&pf->hw, sw_flags, valid_flags,\n-\t\t\t\t\t\tNULL);\n+\t\t\t\t\t\t0, NULL);\n \t\tif (ret && pf->hw.aq.asq_last_status != I40E_AQ_RC_ESRCH) {\n \t\t\tdev_info(&pf->pdev->dev,\n \t\t\t\t \"couldn't set switch config bits, err %s aq_err %s\\n\",\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex 0455283..60c689a 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -12146,7 +12146,7 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit)\n \t\tu16 valid_flags;\n \n \t\tvalid_flags = I40E_AQ_SET_SWITCH_CFG_PROMISC;\n-\t\tret = i40e_aq_set_switch_config(&pf->hw, flags, valid_flags,\n+\t\tret = i40e_aq_set_switch_config(&pf->hw, flags, valid_flags, 0,\n \t\t\t\t\t\tNULL);\n \t\tif (ret && pf->hw.aq.asq_last_status != I40E_AQ_RC_ESRCH) {\n \t\t\tdev_info(&pf->pdev->dev,\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_prototype.h b/drivers/net/ethernet/intel/i40e/i40e_prototype.h\nindex 0150256..92869f5 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_prototype.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e_prototype.h\n@@ -190,7 +190,7 @@ i40e_status i40e_aq_get_switch_config(struct i40e_hw *hw,\n \t\t\t\tstruct i40e_asq_cmd_details *cmd_details);\n enum i40e_status_code i40e_aq_set_switch_config(struct i40e_hw *hw,\n \t\t\t\t\t\tu16 flags,\n-\t\t\t\t\t\tu16 valid_flags,\n+\t\t\t\t\t\tu16 valid_flags, u8 mode,\n \t\t\t\tstruct i40e_asq_cmd_details *cmd_details);\n i40e_status i40e_aq_request_resource(struct i40e_hw *hw,\n \t\t\t\tenum i40e_aq_resources_ids resource,\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h\nindex 0410fcb..c019f46 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_type.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e_type.h\n@@ -279,6 +279,15 @@ struct i40e_hw_capabilities {\n #define I40E_NVM_IMAGE_TYPE_CLOUD\t0x2\n #define I40E_NVM_IMAGE_TYPE_UDP_CLOUD\t0x3\n \n+\t/* Cloud filter modes:\n+\t * Mode1: Filter on L4 port only\n+\t * Mode2: Filter for non-tunneled traffic\n+\t * Mode3: Filter for tunnel traffic\n+\t */\n+#define I40E_NVM_IMAGE_TYPE_MODE1\t0x6\n+#define I40E_NVM_IMAGE_TYPE_MODE2\t0x7\n+#define I40E_NVM_IMAGE_TYPE_MODE3\t0x8\n+\n \tu32 management_mode;\n \tu32 mng_protocols_over_mctp;\n #define I40E_MNG_PROTOCOL_PLDM\t\t0x2\n", "prefixes": [ "RFC", "v3", "4/7" ] }