From patchwork Sun Feb 26 09:09:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Talat Batheesh X-Patchwork-Id: 734203 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 3vYDpr1RnBz9s8L; Wed, 1 Mar 2017 23:12:36 +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="RXUYo1IY"; 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 1cj37R-00062k-7D; Wed, 01 Mar 2017 12:12:33 +0000 Received: from mail-db5eur01on0041.outbound.protection.outlook.com ([104.47.2.41] 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 1chuqV-0007pu-I7 for kernel-team@lists.canonical.com; Sun, 26 Feb 2017 09:10:23 +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=1xcHe2uMthWyBviVdnjZiA0wOd1Ih5bH/WorFhvgeVg=; b=RXUYo1IYUkM+2/minAQ0Ruy71aBgenrCJvFJ29tQZoFZ6n0XfPNK3BMuuXbViUNX4jUfVRkNzHWDAjOfbhPTj3TDQp+kzSE9Ack2yAxo42VUAYSFJ6rAcSEVREk/6gBw2oMR7ppzAWPCYgiDFF+ERnodHHdagEVDabM0VqtsDbg= 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:20 +0000 From: Talat Batheesh To: Subject: [PATCH 07/18] net/mlx5e: Use the full tunnel key info for encapsulation offload house-keeping Date: Sun, 26 Feb 2017 11:09:52 +0200 Message-ID: <1488100203-31976-7-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: 92e5a345-1f88-4ad9-52ac-08d45e274a2e 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:H9nEceNmw6wa3f3HJrYUgdA54Gl99zbPJxBZncRJroMYr9Bzh3iyLE8mRt7FiZ/Kxdf/t7aNblKSH0pE8/bU9aHtwFHzT1NOQEWNX0yV4NL69MXjY7fVetInCR0wxZDCff966LknMS7mEOQ6iQk6lg0JqLj6NiiHSIXt1NPAqlbE+H48B+BLjbkvDa23HKH7KubGajT3HRMnRn2+rkkQ1mV0CeRiiCF/7H1Hm0CSXxvld0W9VFYyCpXYO5tVpCenMPNGLmz4TqgbWniiM4gb+FBVQ/K4Jcr1Bf6Ehct4Wqo=; 25:MVjh2/Sw9PkYoPgeR5z5bpGAjT9vo9WwT3FaNr662hX+ppxmkKvmbp6Z+3lCSZgPIsdkrMkiJN+gRy4ADn/OpY3KQRJPcCaN8hsTfZBhYghXKSA9ZZSJluOwctbb/Ax9ynafttzGxL/9cCV3CndPjRBprgAcJi7ZVFRq+7lGQ96Fc+RVo8q4Fw/ZCHdOSaBt73nI35pNCaCZOmZGCPNbcAAEMjBWjzOqSXBDMSiCsUhKfT8YkIZV6X1/HrQoR3RK0ZjoyUAY2NSb2fzLy7BMpLu0wA6Y/CsFCKoB3Gt4L3NlABxIXtueKBVjsIOkR5d510dCWk7K7ioh5M3GflLwDoXg6Xvvv/D45qse0t44jMbmMx/1mzxp4YTOe5wWA3fKM/Zd/izY3lTS3IVm2hOsVOERW1kRaz38Qs1pzZ5aBhwJBiECbN7pQPVO7LJ0d+6Tb3ycYOPVWDhfNwB6leP0cA== X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 31:QwDfcPwr0KYoKmoi9vmzc7kjv3nm+EI7TFOwVIlrsfMJOCb/T34/SC3FqYp2ntDzAc72h+asZu0dRun6Zgvb1YbhXtgNwbH6R8oLdKao7z0DWNYHBHMNezRZzE5cG/f9qJqP7xbMigHqfwL50j0T5yCH5w1/Ajm7xrokdURbWIkNuHfiRlIKeLnuV3ZhSJbmGXXkXo2yv7rqEP8XAMOAPi7TTEmksTEOH7AWi9bIRNJHMw1RnMKBlSlzbW5MRnWo; 20:eiW7OsjzScYhh2hT3kqJ5FKs++qqLGSWjjweYu8aMqlnlY1fdHbJ4Aq77QmHHzeDoZmVpX4mM78RPxZIWz8DtsLp7wq5hH4KrK+ZEEC0O2Rb7hXxzkaMgJioZVFdvwtM1w3Qp2Eh4OxS9IWcDoCHsbG/W0h+2tk60xOt2ovS1chtSqdDH0o8wnMJsfY/spHu0ahM9pzINr3OpRU/G6MOjHhzs5dizzZP8AWVFSwreBZ1w3dUzbEH0auAyEl/9kIpIr3JwJsG/AUp0DrnUZZ6sQzydHjgcWrZwBKhwFLNIYDlGVXe1+L/hV+Tm30XovyDao3aUmeQ+XArZmZeV6CmkO7cJrpHuPAcGHFVtrT8npmlfpAF/f9IMYZw3HBZhTFFpxGMt4dCc2/MUN9BXUr7bWV6V2nEdOdA35yu8hAf6bvJ11PEshuFFv/EQ09fhIhAZeb1YDxvXCTWDxA/LP/Q6+TKXovVtxx8Uye0rKMyMFY4sXVVViwEY326n2A78Gim 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:Jy2scC1xANIDQfWarquyLTuULrzgx+UU/bFFEQI7QynSG3BF+rZw03DfWos5pqC14kvuaVHyrefLEjTbywwJXYumh1HkK3n87h9BOFuYoUc6tWNjdaEHOonSi9Ij3sRUIX0jjWsgOPTeG4X/NyKmkUSMZAuYv7Qr2RH8zThz27qF7TTmLktmTXt1vPKGMctayQojoaRb28FUW71geuT34I3LuxoRiGCk5Ah3redshk1sUQ7CziVpZtfpk5o9FL4zbW8mvf/LaQTj0BVnn4vQzlOfINPoYP4IdY9xPUbs/2BzTZkBJADSQDPxqXJMR8kdci0CLsYujFwqp4ZjD0UTLqmHuGZCwPgWjMwiY/ZBkk4MOgoqGBBIVkUE3LVW3HPyw20lsmv0jxk+NBtJQPB3w/Qauh6j2gDnyZcXtsma18MGPVnDz0p3DMyrlFMoTDCxpdpjTrvzlvp4fzlgkARx5rVvofgVTYbkQp3jLuBvU0HBaJVYU9qljUcLEmr+nVVa1vYHe51gqu3WgpaH6Sixbj3dwW9AurjbOedE9VlHGa3A0AG4ykUaqYrh0LRezdW9CLEAixMPRS8MF7rpF9kQ9YomKqwIWXuqlI7jWLJxBv8i848mbkRiV/aYSbJi4tztMjwEWgla5huOzD0JkvnxWvAATxqdi9xsV5oytDbqX61XxZrxdDDnCQG9eGHjpQ+FGkvVE/ZQN/eNeTJiDfrmDw== 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)(5890100001)(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:uuRV2u/4yTbTjc+RjPOBwOL2bcELUK5TmJPXtx5oA?= =?us-ascii?Q?yKG+Wx1uomKUhIO3f447kma07vViUYGtYnA/iTNHNKTNUb+sCHcaid+SEKpz?= =?us-ascii?Q?EJhyxLJZlUJFBKdC4NQa3SAek05V0kBapKCwKE3WUE0sarNMdJUY0+oZqwdM?= =?us-ascii?Q?iST8UGCCM/fsClP2mhediqSDLUmzopag16G9rll71pbWXJQ3u41KNGpwLz2L?= =?us-ascii?Q?N9BtSwFQQxnuAq/baP42/44cozi7Lf9FB2gvzn4hqi0X3/GUAb4J1OBVBthJ?= =?us-ascii?Q?vXw94nEnNRVLJeNLQ8/FANa9ybJEloMxqUuaKJ5iYrDUD0tRmSElHbMOj3kO?= =?us-ascii?Q?ZxBXR529U3JVmy/wSshc9alyfrnB8FfSm4UtrX8yNc3pMQ6q189P+RJcDJGw?= =?us-ascii?Q?kS0+tQR/qKD8ki+zXT9yvg75C0VepZ2tyeD3QIeRPkWj+TpsbJhPfokUBwGY?= =?us-ascii?Q?kceAKUfUiF6RrVsB1W+6gEyG2CO2YzGSolPaR7bGDnIG3wQcnjMuVajgtDWw?= =?us-ascii?Q?wEgs8hZenr7YbyMvnLtxDBiU64gq2/aqvduvUxdbZ+leFh4IoyXZkk3Fd/zw?= =?us-ascii?Q?INI8hbj8nZQQuLVomJcnKd7KnVDu/HwjNEIR3FFQiRPiXCJ9BSWV9oJz/v9L?= =?us-ascii?Q?xynYU4VfEPh2lI7QBy9sPF1iFSELWAvhGRJgTVUYlC3ZVdlCfqLxnujmkTDc?= =?us-ascii?Q?Lswx5+RzKoBpimhCt1mySKY+y3jJ/esNUMMkiGs+Gw9M1L6WUXkxNrMdB1Tc?= =?us-ascii?Q?Gysqb3TzvTUyMLE0IOy4vExhOOs5+WLzpv7neX6hlyI6nMXw69XcPtifrSb4?= =?us-ascii?Q?0yCXCEbOWDccyazTN09MDUMxsNEegncXUUfNwxhtQRkntOhk3NGKMKUlI4ss?= =?us-ascii?Q?sQdfQK39ach/GTO4N4jlMntUBQ5EaLeqOfKII+ungLakjVbxWngin8rU8shz?= =?us-ascii?Q?xUH08toSMdUsMPgSF5kbyasILGCpHqiV6pm+7yckUoqkQG+wMMF9JTVKDZ53?= =?us-ascii?Q?K/yYzZz2rMOgsVC8yOxKfW3jKu8fyo76ZUsXmLIfehnqXpX1uCkvq64qOsqg?= =?us-ascii?Q?kZz/4nkRpotQBRIqlQJ3H/3XQfKXij3xDEl5mNGqruhojUScfFk9rQSso5Z7?= =?us-ascii?Q?MP8i4j/8ckoulUv1fZBSr8h8rjO/jKYa45/uUnUT3XjbWBy4uktgUaaRmZPL?= =?us-ascii?Q?dpsKXZWsXjw8xg6EHD9obzim8g6lC5QlB7FiUwX9LUpjipd7nx3UP+pi9Auc?= =?us-ascii?Q?u2sH03TU6RAZdh4udHNyBvX0H42jqOf/d5ScD5wD37PSTxY8VLdhAI3mCj0M?= =?us-ascii?B?Zz09?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 6:+Z+JbduU1qQABhAnuqMHVMDApSap3zzoM23hMQ6G4PvlX2/620kavshfB0EkKClsI2XSuLnwLqjiJueq3avoCIDy3X6Q5mOGk3Vd/T5wqi2ZKRvXX9HL5CVz3Ov++qFvN43eyTB2EXPfb1RlQLa6lPIw5pIBzjt6gAupXnsK1ivUsk0qp6Qi6BmGgbVXAR92Ve1qBPcH6PCaCJUutf44+4jx6pJMbi/X4L1oG/H7J0KFe2j24JiQGAErV2gkiF2BhD5H3skf6kVS39CWGLCg59A5J6BIUWVO0L2qSoFIuIZB6acGIlRGqDk1MfDbRjKtukMLqmKvqziKVcRdt+p6XY7/abq3pSJ2QTXxi4GnwwSOXTetLSqjmAGQh9RmDJcIN4Fgdejmp+88KLNomhJKLnp/blMwbQLG6v8HnNTEhVY=; 5:gvT/kFnnur8UmQoItDPK40zZGu0jGQ8ANDfcXwqJFeUr7NI/ZP+7cPiPkTiuzhk9c6S0VNQDUdluINrspwmW2nVx30e5ums5zOo8IHatd5g7gUsOU6IM/1ljFnDH1BJNmoeI8FKTEce4pWMi4AZNESnumqcqUHUqB+Zn8Mwowog=; 24:UZHL9b8iYjPK7S+g3IEW/libQ33U6n2lw6WmKBC8KpWB/z95L65alk83ypGD0kv3h0+EmAuYFm4mGZwLkDBuFSSv5OrDRqq6z/Oqvsqw2sY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB1306; 7:nfhdS4NHWmWFxBpHhaJDOcSgHRqP0c4aU7yvsUfwqw8a/zkzx0BytIshZvGh0pf7h69ae2+h4MsoodvuBxwRdrAM2SCwtzGhHonp4qSNmiy9LBzrab1z0TEImUCg3ZwnKnabpbrSgQR7jGfVPRzpdIZmbjK4ZREiyfK7eRqaBXXCDlmlUAVUvcQIjgxAQNaY4Ozq+Mi/Cwdh5uYlM4NExKUSmWO7CSrqJHexULKYZgfVpEQIC94ypVKM7hF7YQjmzXNxhnB72hhMcw2HyKcxT3sSW/J2nsfM9TaE50FyD4p399Lg+vBeCpLiYLlJTzXOvHQkL0Vm5X3TuFuKqPiwqg== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2017 09:10:20.2463 (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 Currently we use subset of the input tunnel key fields (id, ip daddr, dst port) which are provided by upper layers to indentify flows that should go through the same encapsulation and maintain the HW encapsulation table. This is redundant and can get us wrong. Instead, keep a copy of the ip tunnel info provided by the user through TC and have the tunnel key part as the key to our internal hash. Signed-off-by: Or Gerlitz Reviewed-by: Hadar Hen Zion Signed-off-by: Saeed Mahameed (cherry picked from commit 76f7444dd5a4349af40e4c67e4b995d4ae3c5c92) Signed-off-by: Talat Batheesh --- drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 38 +++++++++-------------- drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 9 ++---- 2 files changed, 17 insertions(+), 30 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index aafb518..f7f2def 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -668,15 +668,15 @@ static int parse_tc_nic_actions(struct mlx5e_priv *priv, struct tcf_exts *exts, return 0; } -static inline int cmp_encap_info(struct mlx5_encap_info *a, - struct mlx5_encap_info *b) +static inline int cmp_encap_info(struct ip_tunnel_key *a, + struct ip_tunnel_key *b) { return memcmp(a, b, sizeof(*a)); } -static inline int hash_encap_info(struct mlx5_encap_info *info) +static inline int hash_encap_info(struct ip_tunnel_key *key) { - return jhash(info, sizeof(*info), 0); + return jhash(key, sizeof(*key), 0); } static int mlx5e_route_lookup_ipv4(struct mlx5e_priv *priv, @@ -762,6 +762,7 @@ static int mlx5e_create_encap_header_ipv4(struct mlx5e_priv *priv, struct net_device **out_dev) { int max_encap_size = MLX5_CAP_ESW(priv->mdev, max_encap_header_size); + struct ip_tunnel_key *tun_key = &e->tun_info.key; struct neighbour *n = NULL; struct flowi4 fl4 = {}; char *encap_header; @@ -777,13 +778,13 @@ static int mlx5e_create_encap_header_ipv4(struct mlx5e_priv *priv, switch (e->tunnel_type) { case MLX5_HEADER_TYPE_VXLAN: fl4.flowi4_proto = IPPROTO_UDP; - fl4.fl4_dport = e->tun_info.tp_dst; + fl4.fl4_dport = tun_key->tp_dst; break; default: err = -EOPNOTSUPP; goto out; } - fl4.daddr = e->tun_info.daddr; + fl4.daddr = tun_key->u.ipv4.dst; err = mlx5e_route_lookup_ipv4(priv, mirred_dev, out_dev, &fl4, &n, &saddr, &ttl); @@ -805,9 +806,9 @@ static int mlx5e_create_encap_header_ipv4(struct mlx5e_priv *priv, case MLX5_HEADER_TYPE_VXLAN: encap_size = gen_vxlan_header_ipv4(*out_dev, encap_header, e->h_dest, ttl, - e->tun_info.daddr, - saddr, e->tun_info.tp_dst, - e->tun_info.tun_id); + tun_key->u.ipv4.dst, + saddr, tun_key->tp_dst, + tunnel_id_to_key32(tun_key->tun_id)); break; default: err = -EOPNOTSUPP; @@ -831,13 +832,11 @@ static int mlx5e_attach_encap(struct mlx5e_priv *priv, struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; unsigned short family = ip_tunnel_info_af(tun_info); struct ip_tunnel_key *key = &tun_info->key; - struct mlx5_encap_info info; struct mlx5_encap_entry *e; struct net_device *out_dev; + int tunnel_type, err; uintptr_t hash_key; bool found = false; - int tunnel_type; - int err; /* udp dst port must be set */ if (!memchr_inv(&key->tp_dst, 0, sizeof(key->tp_dst))) @@ -853,8 +852,6 @@ static int mlx5e_attach_encap(struct mlx5e_priv *priv, if (mlx5e_vxlan_lookup_port(priv, be16_to_cpu(key->tp_dst)) && MLX5_CAP_ESW(priv->mdev, vxlan_encap_decap)) { - info.tp_dst = key->tp_dst; - info.tun_id = tunnel_id_to_key32(key->tun_id); tunnel_type = MLX5_HEADER_TYPE_VXLAN; } else { netdev_warn(priv->netdev, @@ -862,22 +859,17 @@ static int mlx5e_attach_encap(struct mlx5e_priv *priv, return -EOPNOTSUPP; } - switch (family) { - case AF_INET: - info.daddr = key->u.ipv4.dst; - break; - case AF_INET6: + if (family == AF_INET6) { netdev_warn(priv->netdev, "IPv6 tunnel encap offload isn't supported\n"); - default: return -EOPNOTSUPP; } - hash_key = hash_encap_info(&info); + hash_key = hash_encap_info(key); hash_for_each_possible_rcu(esw->offloads.encap_tbl, e, encap_hlist, hash_key) { - if (!cmp_encap_info(&e->tun_info, &info)) { + if (!cmp_encap_info(&e->tun_info.key, key)) { found = true; break; } @@ -892,7 +884,7 @@ static int mlx5e_attach_encap(struct mlx5e_priv *priv, if (!e) return -ENOMEM; - e->tun_info = info; + e->tun_info = *tun_info; e->tunnel_type = tunnel_type; INIT_LIST_HEAD(&e->flows); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h index 8661dd3..cea1660 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h @@ -36,6 +36,7 @@ #include #include #include +#include #include #define MLX5_MAX_UC_PER_VPORT(dev) \ @@ -274,18 +275,12 @@ enum { #define MLX5_FLOW_CONTEXT_ACTION_VLAN_POP 0x40 #define MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH 0x80 -struct mlx5_encap_info { - __be32 daddr; - __be32 tun_id; - __be16 tp_dst; -}; - struct mlx5_encap_entry { struct hlist_node encap_hlist; struct list_head flows; u32 encap_id; struct neighbour *n; - struct mlx5_encap_info tun_info; + struct ip_tunnel_info tun_info; unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ struct net_device *out_dev;