From patchwork Sun Feb 26 09:09:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Talat Batheesh X-Patchwork-Id: 734183 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id 3vYDpY5394z9sNF; Wed, 1 Mar 2017 23:12:21 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="lX01cWpR"; dkim-atps=neutral Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1cj37A-0005Yx-GM; Wed, 01 Mar 2017 12:12:16 +0000 Received: from mail-db5eur01on0054.outbound.protection.outlook.com ([104.47.2.54] helo=EUR01-DB5-obe.outbound.protection.outlook.com) by huckleberry.canonical.com with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1chuqS-0007pT-8Y for kernel-team@lists.canonical.com; Sun, 26 Feb 2017 09:10:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=bBP7Sw0o0XhPTkm2EYfJ7rGN4Ldk6nkc9xmtQzTKBAM=; b=lX01cWpR9UHAXxtg+r8Xz5hEhPXMvrUPNKcLUtyVmdSFKtHIFFguHKF2s/A7K4IHaU+XwLB7vY11Vy8B2dL7ifGPUiW+utoeVFHJixo0pq41yJrhnmrjBS8tGfkVw9SlnHaaXFTB2qzrZrAFxGUgsrOp2Rqe/DnTtsqW2ejM0Ig= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=talatb@mellanox.com; Received: from dev-h-vrt-005.mth.labs.mlnx (193.47.165.251) by HE1PR05MB1306.eurprd05.prod.outlook.com (10.162.250.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13; Sun, 26 Feb 2017 09:10:18 +0000 From: Talat Batheesh To: Subject: [PATCH 05/18] net/mlx5e: Add TC offloads matching on IPv6 encapsulation headers Date: Sun, 26 Feb 2017 11:09:50 +0200 Message-ID: <1488100203-31976-5-git-send-email-talatb@mellanox.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1488100203-31976-1-git-send-email-talatb@mellanox.com> References: <1488100203-31976-1-git-send-email-talatb@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [193.47.165.251] X-ClientProxiedBy: AM4PR02CA0026.eurprd02.prod.outlook.com (10.165.239.164) To HE1PR05MB1306.eurprd05.prod.outlook.com (10.162.250.151) X-MS-Office365-Filtering-Correlation-Id: 36b07610-4b52-4674-58b8-08d45e27491a X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:HE1PR05MB1306; X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 3:zBM5CMZxY3KJ22Aid72K/fkiMMqgTgTgYii6NaLleFF5HyeekPMwUDcQQdBTs9u9DxLO7Buguo6fsWx1VU4Ni13DdWI3HApoF06y9BpC1lbOqH/ylopVpBSbImeC04i+kC45I1qHatWaacZIhQY9g6HyzvBr0OYrAfE9zzjZYw78Pqo5f7VY+QcEk7KJhZ6VG8MDe4V4ccDu3D9zN8LmsLp8AvlqxtpJ1Bq/LMrHpKcGREm5tzVC5/fCoUp0NlJaWd75Yms69hHlnMzjMlRdT6iuRWS4FQuFVp+bQgFc8xA=; 25:ZN54tzG3jfhoyF+5F2fo6RdAO9QdREAPEtcoYXw/Vyzy03LKeK9oyAYGZbQcqAv0fYzWIFUERwXhuGq2KDeWPcbR/Brew50+ZgnMSxYF7m2HFMGIAXoibWJmo3HBfEuMQn+ZmgR4CZ1rwoN0dbKiFu4t9QeAHLofGZThxdEMiO/RjxnCu1t9SQr3Ag2mrtqH8tXDj/F2rDAP00xc+IyN9C33h+U9PBdZ52RM1UOfENxhXqpjtXdRu4P7bLY+3Rwof4vYPK9TbwbAi4YP+yUM9xE2VCXTieFTBAg+zGGe82tg8GMKr6vm8xQbwSk8mR2RRnGuqrF/saDry4aZ+9X5bv6RUqwlMrrh8DigktXLdsjk2G1tc7BxA4yR0GCZvTJNGuF36xvf4Fbejd7DoQSqz8pwuEkMRfMQTfSxYNZcleQ0siM6Gsa0X+8bicvMq5C625CYWNV+AL0cOTRqjc2SQw== X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 31:sMbuTKCtRumwvucLFwMh34s2Dzu8WkpxuF/NQzfNaD6ga4IIaT1CFKYxhsyRhAMorUQWNcrDa7FiL9R3RCnZZmHVCo3aliZl4yayWZA2UAYuGN24VUYNYYWu/dAt/dkmcgPbXOSohquGGfzkUDiJMJryR05LF7MfOhCOvGiGityOzApxv5/QfDBKEBKcD4uegnEwQR5seiRafWBLuc45vHUfml6p4nsozj7f8nbOVYY=; 20:kE4zEY67G0ZbnLZMzOLGloaOktIXKuvlsEA4oMct4yGQm5wZVfyXublnw2++4QMEummyZzsZIy4RX0fbtHpQVhFKnqAGkx8AWfSGgcS8xxtu5LZPL1CXOO2RnKDPVJlkad2PdsEK1Md6CrLtbzNWzC12zFXf0jLDOehZCZuXQdY7VhKn8775em+tZuGZcp2DzHTvXGfMkCwVjgaNQV0DWJJhnnr4jrubL3tTrgUEYKvdQWyM3AuL/bo2YBzF9Lt3VzYokyqp+UYbT0pfZjeYJoFrwlvB+RIHtU0yuMdWm1Bnm+UJBAU+0xq9JKCibl1/2DiqppD+m9Egyb8b3gMPsEgWxcNXNja+kSp1rP6QDNArz4l7SRIW3ZlmzBBr9AVkozVqe4pHPdMLofdPXpcAW5QFIW1gFLeAEP7mfUUayXiGCz+iQoV7grDZwPgo6JEUfaK+Sb3WR2g2PvXF8heU85MqhVg48psPl2axLYXhlMrolbn+KRzvxQiCiMO7RnDa X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(211254476889703)(24339691489775); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123558025)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(6072148); SRVR:HE1PR05MB1306; BCL:0; PCL:0; RULEID:; SRVR:HE1PR05MB1306; X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 4:zOJBFIuq1tzE7bMhhamymnd+WzEWRGMYoQKkDV3AUTlvX0Ag3Sx4d/UxXjKb3gwOWRk7cNtAoPVpqw5vu/Va7OdAOF4peVKjFEgXd//g7VsF4krExg3var9ZJ3aS1nLX7FFLIOdITS46/dOWtXkNiwogc7pxAFMouXGL0PMBiI1XiEC6J056E7i9tTXWPy/J7GJEOogIQdAkuk5n0RZzNkkNNVmGMwVDue1BTebAil5R6abp5U8Wb1QT+X+7T5nDg4PQfyg20orC4TX8i2ab4R8F4Btr0YDe2/YrbcMnRhdekOmROuSM53IQRTNb/4bsM1K1yqyjq5G+foR6D5YJS/3YINxr9tb/LwzzrBu2GIV2hJYH0XbirsJQcvaT4pqyc2Yfk5F6H1+ib20ZX8FeXLhHJ8O6J0ZOO2mSTQRurN8HwGSLRC5jkPmx7gzxIsyVsdJxAEXsmHxQA+/9LSx34PuLjVQpr62TzXI2IlKW/z+2QKK+TMs42sbJY/ngbqHBZArZFlLdfpfBWpYiIYvmhGe8rQ2WI0KT616q4g4ta+nBg6wmV64W5UrPKM2+Fy3MKVRwbyPVahyAqJV9zsVa1E4TCRlu9fJto8USBphl8CfjrFulxUh9xTylQKMxfBVjCLRPERSgMsIcyM4cumf2sIij7GKQY+IyyHPn+fq02dkms7OhuarjLkY55yj5QLy+WBwlhC3sQVe+pKV+LKrpOg== X-Forefront-PRVS: 0230B09AC4 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39410400002)(39450400003)(39850400002)(39840400002)(199003)(189002)(68736007)(81166006)(8676002)(6512007)(81156014)(50226002)(3846002)(6116002)(50466002)(6506006)(48376002)(66066001)(6306002)(25786008)(47776003)(6666003)(2950100002)(5003940100001)(6916009)(6486002)(36756003)(5660300001)(101416001)(189998001)(92566002)(7736002)(107886003)(110136004)(33646002)(97736004)(105586002)(38730400002)(106356001)(2351001)(305945005)(76176999)(50986999)(4326007)(53936002)(2906002)(86362001)(42186005)(450100001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR05MB1306; H:dev-h-vrt-005.mth.labs.mlnx; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR05MB1306; 23:w1Ai5VYA5Dz5Q/IshhQUOfRJmAQZzcdoP8CA03Wbs?= =?us-ascii?Q?SQLMamraRUxvO35ZlFr+UHDnSEPrQk/H+vWBneDirtDDixRMmSS7c8enUb6X?= =?us-ascii?Q?idHvvhqpPfuM3XMoN+a9BXvN523TUHv478WHneaWQFOez6qhmlhR1IqofKvu?= =?us-ascii?Q?x4kLBAORaAmwbBISC0EcR83VQOzS/Pjh2wxabV2Bgjn1OHtMHUQGt6OPNdA5?= =?us-ascii?Q?zg2Uv0TD4J4f47z/90qE/obSztfRo+YwU5TeLcnIyQRsrW0i/ntR+YsVrCDa?= =?us-ascii?Q?82OWU/w4H6zMV5dMZU2IPtDcLdaLIPlqJXNsDZrk6mxDTPep/v5JPUcBHUIg?= =?us-ascii?Q?8n9tnfH6VHmnoEUR3okSIn7WelReS/wwmXi6zNIJ4MQrzvufuVm0lP4sG0fd?= =?us-ascii?Q?JLZxcA20WJPuJoPzFH6HdqohWCvN8P5bo3hjMeZr1NRMdBa9k+XmL/5INK9U?= =?us-ascii?Q?9f0xsAqlQ4Ec7Y9WsYsuZDEe0c7eS+wiTG56UPORP1sMw+7cU1A0pGJscodT?= =?us-ascii?Q?VuQqi2zimfhYJiYrJYUR9mJV4KzharrTgYC5rUtmf+/5tZUJaIa98mArfyus?= =?us-ascii?Q?e94db55u02DBZ3P+oNL/OtNifAIGSb8jRBL1a69wIs/kh8Fpz/M2himjtAc1?= =?us-ascii?Q?GIWJ3k9AgRp4X4W55ZVza7nBt2R8ep0RDRHhKvdMfa4KsmxEWIp/YV9pponN?= =?us-ascii?Q?P85RDwH4TDXsxq5VcO9SWadjVGEmhd2/cnEdDvqNcH2/Ir+6+1HpvifLIs4U?= =?us-ascii?Q?S6wo+js7j6RgLR9Ywd5g/8Y/41pjdveuGHijdkHIBo1tcoMVaAKHOTc4agDH?= =?us-ascii?Q?wuFDz4fWNbHNL2NhrALzh1kAZOmtRIcXNStDg2JGX3Rtyai8MTt/hqPw9sZ/?= =?us-ascii?Q?iMwb4aW4HqfiWKL9AVS8FW/JfvPHhOSKW/7S/ZWj2Uu98ktXEmmFjTM5QWA2?= =?us-ascii?Q?kQaup5kXPgO1/vKThnXi6zmO5kcTi4uOdHAXz0EdMr53mt6m8YwrxqGGsntW?= =?us-ascii?Q?+sqp3AsSeH3KbHdYnsAEL4VwAbvyOjpfUAqOFy7ElQ5mcr0/DmAOzW1q1MiA?= =?us-ascii?Q?+vjwxj7+4yBcYU0UP3kRY/z5371Er8azRD+3G8qN8XM/QYi1vuYHg9Sa9DhZ?= =?us-ascii?Q?tauQ82w6vHiPv3+cxHfcPFZ9CUKUTXrMBtNcBBUARZiCKz2+jHAokMweAGYP?= =?us-ascii?Q?wnijhkNXuawaQyR/m8VuKWGjO2PYb+sSWvbObtHKwZZqLe+UhS6Gwpk7GCGi?= =?us-ascii?Q?jglVl9t3dyxmZn3dCux1TmG6e/pnxFL1zYA4TSR?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 6:0ObK1r/th9wIf+chDUsloFVrWw+KiaCuv0qrsNpXV9yPoyILLJWRA0s8ymlcE3xkQ67VsBP46rJmKcR31SzU+UYL6tFuVRPljjULTP3qm8rdfdCyewRiI6SIaN9Y1v5d1aQmB2GS032rf1JPjqX/t+r/B1Fz8x8Pi2yq82hZFX+LwkjzxwB5ffAXoNmpXJ6/sOYF54J352XGMFVlet9Znjz5MEu8aAN7DzPK5P+wK7IVE9dgxRnbNt2ASm7L/wJ9BjhdLVIL1IWTKP2fJ4adPmApzRG0R3HMBaFHpuRA3/jMjEbVXH4VoZ48KpfJlY0pfJ1cPeYMmyQCoQJ7hRvewVfH2G6Sg6heRsl/44CLOmp7Wgwznr0g4mrUbLvDc8lRTtSSfTPhdPRPyLaWLr1WynxyilQK8l1QMVLwErnPEIk=; 5:ATzNVODGoCCIgkE5QfoTOVRoF/cEyD4FRtbjapVcWVtV//ic7YvlKmJYN89oqZ0/5VOPsrVeEy3kaGJiDJAa+BjBzg6/Hk0B0KV6ZANSVEgzkKpXhe0gotjUPNC9/NT28QnXdXAgDugOu8B0lbsWvuYA6ulwQ6G6fgDTnuv7arQ=; 24:8x5MSXiCVVvkz8Tnax4K9prMw7RUHx1322FxPZ9UX6Ik4WYIjrb5Jxz7mDfc3flo1mDQDjBERjnc2yVvPOmM4z8zaZcs7P5dEgA1p73Sa+I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 7:xAkg7c2jM3ngZoEmt3Sreg8q5pnY052Orw49yUFI6ryShqN6ecJbixG+4jP5+D84KUoUw2IOft4eAf2XMIaOEBW8WFUDMD0mIVtGN4JyqQ/i255+dW4iOPky4S6fiNjAUQKtVjX0gisWWqFbLVr4wrUkaQPO+Lq6ZSBrkFfkMCal8EXXZmPfVGLrIpElHm3fPn1mFEa80H/vXyNjPj+rTo5ahOWX2CJ/f6pv6c4/o4culSX9Dp+o6x3pKU6guXgKdTQ1xQGwaHmhMJiUAWL6X8jDiCAoO1p/sH/aB8uBUnAUBNr7dcinIYdLUvlNFI8U9rVnfSbFre064+yq+NQe1Q== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2017 09:10:18.4246 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR05MB1306 X-Mailman-Approved-At: Wed, 01 Mar 2017 12:12:14 +0000 Cc: talatb@mellanox.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: kernel-team-bounces@lists.ubuntu.com From: Or Gerlitz BugLink: https://bugs.launchpad.net/ubuntu/1668019 Enhance the parsing of offloaded TC rules to set HW matching on outer IPv6 encapsulation headers. This effectively adds support for TC tunnel key release action (decapsulation) of SRIOV offloads over IPv6 tunnels. Signed-off-by: Or Gerlitz Reviewed-by: Hadar Hen Zion Signed-off-by: Saeed Mahameed (cherry picked from commit 19f4440141af8cd9b2f280ec38476baa86dc87f9) Signed-off-by: Talat Batheesh --- drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 30 ++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index 2ebbe80..2cf47e7 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -298,6 +298,32 @@ static int parse_tunnel_attr(struct mlx5e_priv *priv, MLX5_SET_TO_ONES(fte_match_set_lyr_2_4, headers_c, ethertype); MLX5_SET(fte_match_set_lyr_2_4, headers_v, ethertype, ETH_P_IP); + } else if (enc_control->addr_type == FLOW_DISSECTOR_KEY_IPV6_ADDRS) { + struct flow_dissector_key_ipv6_addrs *key = + skb_flow_dissector_target(f->dissector, + FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS, + f->key); + struct flow_dissector_key_ipv6_addrs *mask = + skb_flow_dissector_target(f->dissector, + FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS, + f->mask); + + memcpy(MLX5_ADDR_OF(fte_match_set_lyr_2_4, headers_c, + src_ipv4_src_ipv6.ipv6_layout.ipv6), + &mask->src, MLX5_FLD_SZ_BYTES(ipv6_layout, ipv6)); + memcpy(MLX5_ADDR_OF(fte_match_set_lyr_2_4, headers_v, + src_ipv4_src_ipv6.ipv6_layout.ipv6), + &key->src, MLX5_FLD_SZ_BYTES(ipv6_layout, ipv6)); + + memcpy(MLX5_ADDR_OF(fte_match_set_lyr_2_4, headers_c, + dst_ipv4_dst_ipv6.ipv6_layout.ipv6), + &mask->dst, MLX5_FLD_SZ_BYTES(ipv6_layout, ipv6)); + memcpy(MLX5_ADDR_OF(fte_match_set_lyr_2_4, headers_v, + dst_ipv4_dst_ipv6.ipv6_layout.ipv6), + &key->dst, MLX5_FLD_SZ_BYTES(ipv6_layout, ipv6)); + + MLX5_SET_TO_ONES(fte_match_set_lyr_2_4, headers_c, ethertype); + MLX5_SET(fte_match_set_lyr_2_4, headers_v, ethertype, ETH_P_IPV6); } /* Enforce DMAC when offloading incoming tunneled flows. @@ -358,12 +384,10 @@ static int __parse_cls_flower(struct mlx5e_priv *priv, f->key); switch (key->addr_type) { case FLOW_DISSECTOR_KEY_IPV4_ADDRS: + case FLOW_DISSECTOR_KEY_IPV6_ADDRS: if (parse_tunnel_attr(priv, spec, f)) return -EOPNOTSUPP; break; - case FLOW_DISSECTOR_KEY_IPV6_ADDRS: - netdev_warn(priv->netdev, - "IPv6 tunnel decap offload isn't supported\n"); default: return -EOPNOTSUPP; }