Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/610127/?format=api
{ "id": 610127, "url": "http://patchwork.ozlabs.org/api/patches/610127/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1460542112-20166-7-git-send-email-harshitha.ramamurthy@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": "<1460542112-20166-7-git-send-email-harshitha.ramamurthy@intel.com>", "list_archive_url": null, "date": "2016-04-13T10:08:26", "name": "[next,S34,06/12] i40evf: RSS Hash Option parameters", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "bcf50e788b020b9464f13f7fc69fc6c081ad6b33", "submitter": { "id": 68642, "url": "http://patchwork.ozlabs.org/api/people/68642/?format=api", "name": "Harshitha Ramamurthy", "email": "harshitha.ramamurthy@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/1460542112-20166-7-git-send-email-harshitha.ramamurthy@intel.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/610127/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/610127/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@lists.osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@osuosl.org" ], "Received": [ "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ozlabs.org (Postfix) with ESMTP id 3qlX534bjnz9sD5\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 14 Apr 2016 04:14:31 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id E20B733A44;\n\tWed, 13 Apr 2016 18:14:30 +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 v6B0oUYouxvy; Wed, 13 Apr 2016 18:14:25 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 9D03433A3F;\n\tWed, 13 Apr 2016 18:14:18 +0000 (UTC)", "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ash.osuosl.org (Postfix) with ESMTP id EB03B1C10B8\n\tfor <intel-wired-lan@osuosl.org>;\n\tWed, 13 Apr 2016 18:14:16 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id E79BF33A12\n\tfor <intel-wired-lan@osuosl.org>;\n\tWed, 13 Apr 2016 18:14:16 +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 SCQr1ToiHgIn for <intel-wired-lan@osuosl.org>;\n\tWed, 13 Apr 2016 18:14:12 +0000 (UTC)", "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby silver.osuosl.org (Postfix) with ESMTP id 8F01233A1C\n\tfor <intel-wired-lan@osuosl.org>;\n\tWed, 13 Apr 2016 18:14:11 +0000 (UTC)", "from fmsmga002.fm.intel.com ([10.253.24.26])\n\tby orsmga102.jf.intel.com with ESMTP; 13 Apr 2016 11:14:12 -0700", "from harshitha-linux1.jf.intel.com ([10.166.45.81])\n\tby fmsmga002.fm.intel.com with ESMTP; 13 Apr 2016 11:14:12 -0700" ], "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.24,480,1455004800\"; d=\"scan'208\";a=\"957967593\"", "From": "Harshitha Ramamurthy <harshitha.ramamurthy@intel.com>", "To": "intel-wired-lan@osuosl.org", "Date": "Wed, 13 Apr 2016 03:08:26 -0700", "Message-Id": "<1460542112-20166-7-git-send-email-harshitha.ramamurthy@intel.com>", "X-Mailer": "git-send-email 2.4.3", "In-Reply-To": "<1460542112-20166-1-git-send-email-harshitha.ramamurthy@intel.com>", "References": "<1460542112-20166-1-git-send-email-harshitha.ramamurthy@intel.com>", "Subject": "[Intel-wired-lan] [next PATCH S34 06/12] i40evf: RSS Hash Option\n\tparameters", "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: Carolyn Wyborny <carolyn.wyborny@intel.com>\n\nThis patch syncs the VF code for the changes made to the PF for the RSS hash tuple settings.\nSince the VF still cannot change the RSS hash settings, change the code to make this clear to the user.\nPreviously, the default settings were returned in this function. However, the default can be\nchnaged by the PF so this does not make sense anymore.\n\nSigned-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>\nChange-Id: I085eaf005fc7978b440d2a1bf2b2dd7cadaff39b\n---\nTesting Hints : Make sure any attempts to change\nrx-flow-hash via ethtool returns Not Supported and a message in the\ndmesg log that informs user to use pf for these settings instead.\n\n drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 201 +--------------------\n 1 file changed, 2 insertions(+), 199 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c b/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c\nindex 8a5cafb..3a95c7c 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c\n+++ b/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c\n@@ -378,59 +378,6 @@ static int i40evf_set_coalesce(struct net_device *netdev,\n }\n \n /**\n- * i40e_get_rss_hash_opts - Get RSS hash Input Set for each flow type\n- * @adapter: board private structure\n- * @cmd: ethtool rxnfc command\n- *\n- * Returns Success if the flow is supported, else Invalid Input.\n- **/\n-static int i40evf_get_rss_hash_opts(struct i40evf_adapter *adapter,\n-\t\t\t\t struct ethtool_rxnfc *cmd)\n-{\n-\t/* We always hash on IP src and dest addresses */\n-\tcmd->data = RXH_IP_SRC | RXH_IP_DST;\n-\n-\tswitch (cmd->flow_type) {\n-\tcase TCP_V4_FLOW:\n-\t\tif (adapter->hena & BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_TCP))\n-\t\t\tcmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;\n-\t\tbreak;\n-\tcase UDP_V4_FLOW:\n-\t\tif (adapter->hena & BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_UDP))\n-\t\t\tcmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;\n-\t\tbreak;\n-\n-\tcase SCTP_V4_FLOW:\n-\tcase AH_ESP_V4_FLOW:\n-\tcase AH_V4_FLOW:\n-\tcase ESP_V4_FLOW:\n-\tcase IPV4_FLOW:\n-\t\tbreak;\n-\n-\tcase TCP_V6_FLOW:\n-\t\tif (adapter->hena & BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_TCP))\n-\t\t\tcmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;\n-\t\tbreak;\n-\tcase UDP_V6_FLOW:\n-\t\tif (adapter->hena & BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_UDP))\n-\t\t\tcmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;\n-\t\tbreak;\n-\n-\tcase SCTP_V6_FLOW:\n-\tcase AH_ESP_V6_FLOW:\n-\tcase AH_V6_FLOW:\n-\tcase ESP_V6_FLOW:\n-\tcase IPV6_FLOW:\n-\t\tbreak;\n-\tdefault:\n-\t\tcmd->data = 0;\n-\t\treturn -EINVAL;\n-\t}\n-\n-\treturn 0;\n-}\n-\n-/**\n * i40evf_get_rxnfc - command to get RX flow classification rules\n * @netdev: network interface device structure\n * @cmd: ethtool rxnfc command\n@@ -450,150 +397,8 @@ static int i40evf_get_rxnfc(struct net_device *netdev,\n \t\tret = 0;\n \t\tbreak;\n \tcase ETHTOOL_GRXFH:\n-\t\tret = i40evf_get_rss_hash_opts(adapter, cmd);\n-\t\tbreak;\n-\tdefault:\n-\t\tbreak;\n-\t}\n-\n-\treturn ret;\n-}\n-\n-/**\n- * i40evf_set_rss_hash_opt - Enable/Disable flow types for RSS hash\n- * @adapter: board private structure\n- * @cmd: ethtool rxnfc command\n- *\n- * Returns Success if the flow input set is supported.\n- **/\n-static int i40evf_set_rss_hash_opt(struct i40evf_adapter *adapter,\n-\t\t\t\t struct ethtool_rxnfc *nfc)\n-{\n-\tstruct i40e_hw *hw = &adapter->hw;\n-\tu32 flags = adapter->vf_res->vf_offload_flags;\n-\n-\t/* RSS does not support anything other than hashing\n-\t * to queues on src and dst IPs and ports\n-\t */\n-\tif (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST |\n-\t\t\t RXH_L4_B_0_1 | RXH_L4_B_2_3))\n-\t\treturn -EINVAL;\n-\n-\t/* We need at least the IP SRC and DEST fields for hashing */\n-\tif (!(nfc->data & RXH_IP_SRC) ||\n-\t !(nfc->data & RXH_IP_DST))\n-\t\treturn -EINVAL;\n-\n-\tswitch (nfc->flow_type) {\n-\tcase TCP_V4_FLOW:\n-\t\tif (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {\n-\t\t\tif (flags & I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2)\n-\t\t\t\tadapter->hena |=\n-\t\t\t BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN_NO_ACK);\n-\n-\t\t\tadapter->hena |=\n-\t\t BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_TCP);\n-\t\t} else {\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\t\tbreak;\n-\tcase TCP_V6_FLOW:\n-\t\tif (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {\n-\t\t\tif (flags & I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2)\n-\t\t\t\tadapter->hena |=\n-\t\t\t BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_TCP_SYN_NO_ACK);\n-\n-\t\t\tadapter->hena |=\n-\t\t BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_TCP);\n-\t\t} else {\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\t\tbreak;\n-\tcase UDP_V4_FLOW:\n-\t\tif (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {\n-\t\t\tif (flags & I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2)\n-\t\t\t\tadapter->hena |=\n-\t\t\t BIT_ULL(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP) |\n-\t\t\t BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP);\n-\n-\t\t\tadapter->hena |=\n-\t\t\t\t(BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_UDP) |\n-\t\t\t\t BIT_ULL(I40E_FILTER_PCTYPE_FRAG_IPV4));\n-\t\t} else {\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\t\tbreak;\n-\tcase UDP_V6_FLOW:\n-\t\tif (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {\n-\t\t\tif (flags & I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2)\n-\t\t\t\tadapter->hena |=\n-\t\t\t BIT_ULL(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP) |\n-\t\t\t BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP);\n-\n-\t\t\tadapter->hena |=\n-\t\t\t\t(BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_UDP) |\n-\t\t\t\t BIT_ULL(I40E_FILTER_PCTYPE_FRAG_IPV6));\n-\t\t} else {\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\t\tbreak;\n-\tcase AH_ESP_V4_FLOW:\n-\tcase AH_V4_FLOW:\n-\tcase ESP_V4_FLOW:\n-\tcase SCTP_V4_FLOW:\n-\t\tif ((nfc->data & RXH_L4_B_0_1) ||\n-\t\t (nfc->data & RXH_L4_B_2_3))\n-\t\t\treturn -EINVAL;\n-\t\tadapter->hena |= BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_OTHER);\n-\t\tbreak;\n-\tcase AH_ESP_V6_FLOW:\n-\tcase AH_V6_FLOW:\n-\tcase ESP_V6_FLOW:\n-\tcase SCTP_V6_FLOW:\n-\t\tif ((nfc->data & RXH_L4_B_0_1) ||\n-\t\t (nfc->data & RXH_L4_B_2_3))\n-\t\t\treturn -EINVAL;\n-\t\tadapter->hena |= BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_OTHER);\n-\t\tbreak;\n-\tcase IPV4_FLOW:\n-\t\tadapter->hena |= (BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_OTHER) |\n-\t\t\t\t BIT_ULL(I40E_FILTER_PCTYPE_FRAG_IPV4));\n-\t\tbreak;\n-\tcase IPV6_FLOW:\n-\t\tadapter->hena |= (BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_OTHER) |\n-\t\t\t\t BIT_ULL(I40E_FILTER_PCTYPE_FRAG_IPV6));\n-\t\tbreak;\n-\tdefault:\n-\t\treturn -EINVAL;\n-\t}\n-\n-\tif (RSS_PF(adapter)) {\n-\t\tadapter->aq_required = I40EVF_FLAG_AQ_SET_HENA;\n-\t} else {\n-\t\twr32(hw, I40E_VFQF_HENA(0), (u32)adapter->hena);\n-\t\twr32(hw, I40E_VFQF_HENA(1), (u32)(adapter->hena >> 32));\n-\t\ti40e_flush(hw);\n-\t}\n-\n-\treturn 0;\n-}\n-\n-/**\n- * i40evf_set_rxnfc - command to set RX flow classification rules\n- * @netdev: network interface device structure\n- * @cmd: ethtool rxnfc command\n- *\n- * Returns Success if the command is supported.\n- **/\n-static int i40evf_set_rxnfc(struct net_device *netdev,\n-\t\t\t struct ethtool_rxnfc *cmd)\n-{\n-\tstruct i40evf_adapter *adapter = netdev_priv(netdev);\n-\tint ret = -EOPNOTSUPP;\n-\n-\tswitch (cmd->cmd) {\n-\tcase ETHTOOL_SRXFH:\n-\t\tret = i40evf_set_rss_hash_opt(adapter, cmd);\n+\t\tnetdev_info(netdev,\n+\t\t\t \"RSS hash info is not available to vf, use pf.\\n\");\n \t\tbreak;\n \tdefault:\n \t\tbreak;\n@@ -601,7 +406,6 @@ static int i40evf_set_rxnfc(struct net_device *netdev,\n \n \treturn ret;\n }\n-\n /**\n * i40evf_get_channels: get the number of channels supported by the device\n * @netdev: network interface device structure\n@@ -775,7 +579,6 @@ static const struct ethtool_ops i40evf_ethtool_ops = {\n \t.get_coalesce\t\t= i40evf_get_coalesce,\n \t.set_coalesce\t\t= i40evf_set_coalesce,\n \t.get_rxnfc\t\t= i40evf_get_rxnfc,\n-\t.set_rxnfc\t\t= i40evf_set_rxnfc,\n \t.get_rxfh_indir_size\t= i40evf_get_rxfh_indir_size,\n \t.get_rxfh\t\t= i40evf_get_rxfh,\n \t.set_rxfh\t\t= i40evf_set_rxfh,\n", "prefixes": [ "next", "S34", "06/12" ] }