From patchwork Mon Mar 27 11:25:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Talat Batheesh X-Patchwork-Id: 743776 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 3vsCPk2yQdz9s7j; Mon, 27 Mar 2017 23:04:42 +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="w3euUjiy"; 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 1csTO1-000550-OM; Mon, 27 Mar 2017 12:04:37 +0000 Received: from mail-ve1eur01on0041.outbound.protection.outlook.com ([104.47.1.41] helo=EUR01-VE1-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 1csSmM-0008R5-Rv for kernel-team@lists.canonical.com; Mon, 27 Mar 2017 11:25:42 +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=LUDi8h4FgtQDLyWG5lchdQyILZHWkJEaIfIKmg2aAXs=; b=w3euUjiynh584y2d2x+hSm/4I/A/N55EpXtKIokiiW2qOr4tRsb48uTNTGfC3yN/Kmq6R6aIqnp5+cakrbND1sJMliraW/NSvd1fmMdd7mdtcgawwDTDKNI1AIIvm+8gc78cZr1cpW1YGewsWj2AW0JoJFSxleldzA+e/Laobxw= Authentication-Results: lists.canonical.com; dkim=none (message not signed) header.d=none; lists.canonical.com; dmarc=none action=none header.from=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.977.11; Mon, 27 Mar 2017 11:25:40 +0000 From: Talat Batheesh To: Subject: [PATCH 2/2] net/mlx5e: Avoid supporting udp tunnel port ndo for VF reps Date: Mon, 27 Mar 2017 14:25:15 +0300 Message-ID: <1490613915-25800-2-git-send-email-talatb@mellanox.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1490613915-25800-1-git-send-email-talatb@mellanox.com> References: <1490613915-25800-1-git-send-email-talatb@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [193.47.165.251] X-ClientProxiedBy: VI1P194CA0016.EURP194.PROD.OUTLOOK.COM (10.175.178.26) To HE1PR05MB1306.eurprd05.prod.outlook.com (10.162.250.151) X-MS-Office365-Filtering-Correlation-Id: cedd63bf-4f00-482c-7d31-08d47504007a 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:MalSpUiaRgz9r+SVfdcdfw/Fi22ZrifFgNDHjUpPs+2zxeU/fWqagMRU4MjBtOYzMsixmEQrMUAzJ8ubvRyhEHCf59jDIfikg6kMGld2yUZ1d2euPlieh14z4HQFNwS62QUrOY71q0sU+kuELfGHN5Rv6Szi5uxqmgNhGpC2lm+09Rs8coavCl5dVHR0ow+lDT9elkI1JYeY7cB4IG2MhRYKGR235kMllQLOMWFd9DOkA+0sRQNFRp1MifKxpfYPmFWX5zZgg9pCr3W8K29D+5nBYAiZB/YMbdC/FOS/EGM=; 25:+Pd2ptOboopV8JNgIK5p09lnY4l1Ti3OMgNiqfl8Y7RdeRh5BvOuonI6Z697ftCnRFz3rvZmmwYof3ySKQNwoQcOetshDMeF/Khyi5AHxTXWYZqBXsN9SmJ4frJD3DS3pXwvc5vdkvK7P/xNSQb8t4bpvcTWs4isww2WzKAghg1XEuUEskMyj/xQnw7AB9DX48BajUv5A4rn1e0pV8mwgT5MA+/QAy0PerXyAADB99/8TLhf70ynNlECD8zJHTX3szay7qEXiFHYGxRlyD+PNcc7bWt9R4Wa+JTYd1ng+/ejQkYhBQcLsAQqNGznNiH+iSmBsDMfVvoX33wO5OgsA010sWgO/wUyShb7w+VZYZK/VvaauncJYJR81YQfcTLdOCtTCKnkZWIW1oLcjSS1qV+nuCnH2P+X6eOYfH9v28L6T2yFgJ41s2BVm3QOhyUc+q9egRh6jd3Su0drQwKrkQ== X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 31:FhC21/TRWFkySbu/UMPYX76Dx/4MRD9X721dTU9XkR+GChHArJt0Ibu0GmNn3qKl6vp225ybF9lcqEhvJf1swXA3nKu3tHTrqKxLOH6FhntWAiDQGMPTF1n/GdkDet65gnc7vYoQrTfTyYPz0w7iLlq7PrpdsGuEpN8m2I52OqIkKOSTn3RCBqSAsFZUvVICIBP9e13z3VNdd/YHrUTCBDrDAEUItyUC3gI0Tww8XQU=; 20:1E0rlJNn7iy3ENKV8BEzD0SIGjaX1NIo+71IYjRLW9Cs240WkdrjT/f4l+09hKV/VhM32voLc/6zgsL1X3taqjeWWTx794y8PQNtdcG6tep/PsMBZWnqdACpgnG2LEFipRIy6Ne8Nf9gDjG5H6i7504YdiyIcv26tGwj56clljMzu7jOjicK3Dstcgdmk98Xpq64mmfFquOn5c1aKI7nu8cHjW7V6av2JWQbo/q6S3AOeipPgh/SVy+YKQiNoem+bg6qErDl+S01IJZka4G4UsKvTJ6j2FmHsSOrTxipj85oQ0XS2i8qWpVfuWWSuTEiB1gS67vXEZ/WU2+iHlwBT+QoZvS66gMFblBtzNXwHyvTIgb+1yv3ir3TO6d++mE6G1FWnRSRb7f74EKUHIFV0gd/5sheYRdtXOlGOZAoO31WWZTLk3dj/micsKtOV0fnZPLuP0EEckuyJn7YJhyrkV5pDdJih8Yn0IIICHNz0NLKm9HD2d+W3nKHCvGqQWGD 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)(5005006)(8121501046)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123560025)(20161123558025)(20161123555025)(20161123562025)(6072148); SRVR:HE1PR05MB1306; BCL:0; PCL:0; RULEID:; SRVR:HE1PR05MB1306; X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 4:PuQNnoT1GmtF38PwfzCExqdKkE10uL/x1Sq63pP5szeXZkbI2RMU4fZ3rhzCSdkw4OfdtFl16AcUirbeehLhqoioqKTktdGBht5FtmhEnEG2lpdqLeU4L4YaDCZlmO2hqP+YDiTMhwvudqwPp2DxtwTkhbsoEWVIZafOxjRRVrA9KyqxktOo9co/eBiOmyzSvbQ/uRokqp6dKl3vvLD6aFhP07Q8x3tffVKnONb4Kuj7THGh9jAGNajWKA6DVk44iFt2SWd5cHb84ywv92lYMgU8RRPkxJdIFAbE1P+LCZ0OIbuxVTGm6MhM2DNn+BcOesZQcnFVRhtUxLGfyw5zQyJnhEXXxh6QPH6Q5t6H+hy0Kq9+cQXrlNUerybLgObM4RUQ+/qXruzUy9smsS1PtCxz4JRUZIudpJYuKgQQ908fc46TExqYuNrr0lahSY3rrEBR6OU4TRGGbb0ptEMQQbOnIXtl3GMm1dr47r98inFSZmXL/d3dK20MTBmLo+TNVTASg4LPE2p+wvMOIv4pJ52/FXKm6njhaJdKSrSnxv9mwcTYFemRQ2+zLIripsjGLelknuDVx4n/S0ogux5W6FL5q9MYJzkqczTUAOCvtN4ix/HuXcW1Voo3T22yqNzCK61zXgZxR0Gs3RBMtx2VN1exJrpGnvIJqMlhmP0bwFoATfPQPcz/x/l3AOO+B/w3wx3L9v0A2TYAdBlKrQiu8A== X-Forefront-PRVS: 02596AB7DA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39450400003)(39840400002)(39410400002)(39850400002)(39860400002)(6116002)(7736002)(50226002)(47776003)(8676002)(305945005)(53936002)(81166006)(1720100001)(6506006)(38730400002)(110136004)(107886003)(6486002)(3846002)(4326008)(966004)(36756003)(2351001)(48376002)(5003940100001)(6306002)(6512007)(66066001)(54906002)(6916009)(5660300001)(25786009)(6666003)(76176999)(2950100002)(5890100001)(189998001)(2906002)(42186005)(50986999)(33646002)(575784001)(86362001)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR05MB1306; H:dev-h-vrt-005.mth.labs.mlnx; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR05MB1306; 23:zguOYgQjKcGl6thpmoLjESNk7KTKxPPoBnh4J0Dix?= =?us-ascii?Q?UzSma0Ldh+MVIMCNuS/dkdVZgy0vlfEk1esWhaRC882jDLqtnDxBujyaB7Ul?= =?us-ascii?Q?BsPvcUQjLuaOk41F6xmj0hYPQ1H7EQQCDqXwwZxejwr0FY1BUDSqkL2u2KNx?= =?us-ascii?Q?xudhd04AGzBULy6bgJk+xP8QPZp8t5cAg6dPI6NEGO/WW/FjYPoKQxWj/VMm?= =?us-ascii?Q?SmwIjNcSko4M6fUT3qD3twVfXA0Qn6be5zHls4H+4p7KB9kZpLPnqCNFJIZ8?= =?us-ascii?Q?GoaX6ootF3pjo3dUcbZ+UlhAcN6IaFv9LQHPFQ86VNHVf2VdhMKaTxfapIlr?= =?us-ascii?Q?EofW/QjH47MRPVEkePSF3SCOJHkJwnnMeyCGuguInEKxDuARfaLmZuIJjAxr?= =?us-ascii?Q?mfD+oVCSvfLuwTOe85IzCfyjHrDz3RyJotg5yAUzsgAEjVtOgtqg7ydVKbeo?= =?us-ascii?Q?0nu2ppNG8wDESlcpjODczEX5moFw6vV8COX8MeQz+5Lfc2BCgk5dYoERvT5A?= =?us-ascii?Q?MFQWaZohOsLiJvs3JvdoU2SM7mYyAaHFhGeJahBdofvftLTKcj61mzt6qEdy?= =?us-ascii?Q?ivPFfj7VW2jnfBODqutU9ZbRfvVJLhuNynRgCsJTSi3uA8YzafGLZy1HAnhK?= =?us-ascii?Q?ZjFLXCH6A+RWAaE2lQeDaVd2HsDI9jCf/pud1mO3vy/rbuS9fgxTEdIAQ6GF?= =?us-ascii?Q?QGNirz40tRH1rmD6f7Nzs0zYfHAaH5Wz+5h+VofNECQReXtahSffQpLSKlYV?= =?us-ascii?Q?roFn3L3XzE+VV5cYCqLZelKd0Q4f2JrJOCg1SqWouea1RDID872RerGl3E9O?= =?us-ascii?Q?D2w/8PCL5vLc07FZdz5NxILYRgCnxuH15omuuxepIwh+JcXmQmrn7ANtvw9l?= =?us-ascii?Q?WPU6mP6wSTFE9AJzNrThcic1B/WjxAc45EJ8svGkbBnQFhEnzoAjAHVc5yp5?= =?us-ascii?Q?pAnKoTkQCdqybl2Riyu3+3E2e9bGhPj5t04jK9PSuZefFlwO6n30+9f6xWd2?= =?us-ascii?Q?epiEt+u2oiksDlGiY5ihZsuljmDVM/cwiZhWu+xoxDIEgpLYX3ZjArykwjn2?= =?us-ascii?Q?b8P6xx+xlYld8+kYS8ySfUgw2OP0gjoeKIO0pvbV2KT5rzwVu+s6caFMXKXg?= =?us-ascii?Q?Sf587OQi/np8xMZisoGd0wCJrIZ+8rwclWZNm1n1fQ2/4sg2NvGCwhAALGoR?= =?us-ascii?Q?X3NTNTXmjOl/30=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 6:3aVbJEl63n7JZWOSzatiAM47ExxyghAwWsRpSxm9GIVP2i9ddz5vmS/dEDS1tpGSDts2cUtOT9/CNMYdyPBmyrdcbKYcVbyOOrXGcySyOMskONqN4me1UvHm2M6XOAkby8i296+YCVkltatjhMuTdb2pSYanxiFMjcGRwxVcNWQCTS4gGMLBsfKhWYc/khvc1FhD7XMGH8w7PIlm1wmjrY36UPCzDX92H/TSOl2p9hmRPaG3GcyW9sI5gVPOtGRh1wJ6EAr3IUTv0lrhbqfGHTjXL6aOzbR8iQhk15+H2FpphoRal0LTFBpoyR1wdNpJc3Oi1yTrSDvjVuiWaHTYLKSeLtxfORam+EzmhYf9awLlZTw8+7Esn+B5YB3N4hLA9t2pZgfrLTGKpKnBMMx+kDx+j3Cnabqks4aCNTofhjE=; 5:QqwpcZwdbtOSgDO0BbuCSxumjwx3n2vvu0IEag4XaL4ww2qZTVCNoLg9TZEYVzcBFYyW+m4p6RN/xY2LoSL/NaeYTwvn9VlGLL686hApp5c9vkoH0eyzztCdCLucCbibyK5QWZ4Dw16Tr0SiHNjK2g==; 24:Cdm48L7YwaRx1LRUPBE6Wb4Zx+6dM0VKxhK968AJ67D7Jm+nfGSQvCzJK+/gmjWgPRc86xkQuF6cC/bq6EfWL5Bw8X7LuNnNzyIi9RFDeqg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 7:UuB5AGlbHm6S6irtrmmspftg8yRA5zlOh3K0Y5pqfwvvPpNqSgfbI4ZrJtBTHW5jk0OCMLL/4matNuv3fKqBJqPHkJOIODT2sIyqM+iUWoyTeOis7bAN2ahjBTK6UcgrDxLdNR8RcG17O4t965jP9HJVMRixszY+9YiElICQQgr7foUW8vE6JUsdX+M1JXjvt0Aa74q+R5rcTpwZy5jfiFwtBtziRDjeTnuizbVFPsuZZYxxs1CxaIX/jPvH2Ad2LXvTgqgNlc5C/qI+q9ZFqDi7NZepFz5jo++XgYKk1hGTf+Q4UNonCzuNhaBJ2/Fu0DcP34JYqWZtfznDxWL8Uw== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2017 11:25:40.5450 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR05MB1306 X-Mailman-Approved-At: Mon, 27 Mar 2017 12:04:36 +0000 Cc: roid@mellanox.com, noas@mellanox.com, paulb@mellanox.com, 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: Paul Blakey BugLink: http://bugs.launchpad.net/bugs/1676388 [ Upstream commit 1ad9a00ae0efc2e9337148d6c382fad3d27bf99a ] This was added to allow the TC offloading code to identify offloading encap/decap vxlan rules. The VF reps are effectively related to the same mlx5 PCI device as the PF. Since the kernel invokes the (say) delete ndo for each netdev, the FW erred on multiple vxlan dst port deletes when the port was deleted from the system. We fix that by keeping the registration to be carried out only by the PF. Since the PF serves as the uplink device, the VF reps will look up a port there and realize if they are ok to offload that. Tested: ip link add vxlan1 type vxlan id 44 dev ens5f0 dstport 9999 ip link set vxlan1 up ip link del dev vxlan1 Fixes: 4a25730eb202 ('net/mlx5e: Add ndo_udp_tunnel_add to VF representors') Signed-off-by: Paul Blakey Reviewed-by: Or Gerlitz Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller Signed-off-by: Talat Batheesh --- drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 ---- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 8 ++++---- drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 2 -- drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 9 +++++++-- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h index c69a1f8..41db470 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -921,10 +921,6 @@ void mlx5e_destroy_netdev(struct mlx5_core_dev *mdev, struct mlx5e_priv *priv); int mlx5e_attach_netdev(struct mlx5_core_dev *mdev, struct net_device *netdev); void mlx5e_detach_netdev(struct mlx5_core_dev *mdev, struct net_device *netdev); u32 mlx5e_choose_lro_timeout(struct mlx5_core_dev *mdev, u32 wanted_timeout); -void mlx5e_add_vxlan_port(struct net_device *netdev, - struct udp_tunnel_info *ti); -void mlx5e_del_vxlan_port(struct net_device *netdev, - struct udp_tunnel_info *ti); int mlx5e_get_offload_stats(int attr_id, const struct net_device *dev, void *sp); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index db8b172..11817d6 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -3055,8 +3055,8 @@ static int mlx5e_get_vf_stats(struct net_device *dev, vf_stats); } -void mlx5e_add_vxlan_port(struct net_device *netdev, - struct udp_tunnel_info *ti) +static void mlx5e_add_vxlan_port(struct net_device *netdev, + struct udp_tunnel_info *ti) { struct mlx5e_priv *priv = netdev_priv(netdev); @@ -3069,8 +3069,8 @@ void mlx5e_add_vxlan_port(struct net_device *netdev, mlx5e_vxlan_queue_work(priv, ti->sa_family, be16_to_cpu(ti->port), 1); } -void mlx5e_del_vxlan_port(struct net_device *netdev, - struct udp_tunnel_info *ti) +static void mlx5e_del_vxlan_port(struct net_device *netdev, + struct udp_tunnel_info *ti) { struct mlx5e_priv *priv = netdev_priv(netdev); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c index 8503788..871ff3b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c @@ -394,8 +394,6 @@ static const struct net_device_ops mlx5e_netdev_ops_rep = { .ndo_get_phys_port_name = mlx5e_rep_get_phys_port_name, .ndo_setup_tc = mlx5e_rep_ndo_setup_tc, .ndo_get_stats64 = mlx5e_rep_get_stats, - .ndo_udp_tunnel_add = mlx5e_add_vxlan_port, - .ndo_udp_tunnel_del = mlx5e_del_vxlan_port, .ndo_has_offload_stats = mlx5e_has_offload_stats, .ndo_get_offload_stats = mlx5e_get_offload_stats, }; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index 64df64f..5ea80c8 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -243,12 +243,15 @@ static int parse_tunnel_attr(struct mlx5e_priv *priv, skb_flow_dissector_target(f->dissector, FLOW_DISSECTOR_KEY_ENC_PORTS, f->mask); + struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; + struct net_device *up_dev = mlx5_eswitch_get_uplink_netdev(esw); + struct mlx5e_priv *up_priv = netdev_priv(up_dev); /* Full udp dst port must be given */ if (memchr_inv(&mask->dst, 0xff, sizeof(mask->dst))) goto vxlan_match_offload_err; - if (mlx5e_vxlan_lookup_port(priv, be16_to_cpu(key->dst)) && + if (mlx5e_vxlan_lookup_port(up_priv, be16_to_cpu(key->dst)) && MLX5_CAP_ESW(priv->mdev, vxlan_encap_decap)) parse_vxlan_attr(spec, f); else { @@ -972,6 +975,8 @@ static int mlx5e_attach_encap(struct mlx5e_priv *priv, struct mlx5_esw_flow_attr *attr) { struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; + struct net_device *up_dev = mlx5_eswitch_get_uplink_netdev(esw); + struct mlx5e_priv *up_priv = netdev_priv(up_dev); unsigned short family = ip_tunnel_info_af(tun_info); struct ip_tunnel_key *key = &tun_info->key; struct mlx5_encap_entry *e; @@ -992,7 +997,7 @@ static int mlx5e_attach_encap(struct mlx5e_priv *priv, return -EOPNOTSUPP; } - if (mlx5e_vxlan_lookup_port(priv, be16_to_cpu(key->tp_dst)) && + if (mlx5e_vxlan_lookup_port(up_priv, be16_to_cpu(key->tp_dst)) && MLX5_CAP_ESW(priv->mdev, vxlan_encap_decap)) { tunnel_type = MLX5_HEADER_TYPE_VXLAN; } else {