From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3BB33A0525; Mon, 20 Jan 2020 09:25:08 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 105351252; Mon, 20 Jan 2020 09:25:07 +0100 (CET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2081.outbound.protection.outlook.com [40.107.20.81]) by dpdk.org (Postfix) with ESMTP id D683A11A2 for ; Mon, 20 Jan 2020 09:25:05 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cKMoldGQLFtj9kjwMlS2XTqcWeNIOrFdi+DGb9bQlv82JB2iVhDBv7cCw3Y0loUj55VymgHV01Zq4+QJyfrXxSL9PIw4A1x5O13Cplyo67TT6dfMdRVZTUMy7dlXbPVNhz/7UZNurwjiWp/lI10V12WuhWHCmj4ALG9jtRq8LKoZ3aVQvFyWCMKxRPn6v1NMA2VlHHnliCAoGZTx0yZHJ1nQMQrXyju+Sd3wWmsEJjODsqvsscv60/+aMhK6maE5Y49Y0nR14uruZf60KaE7PrIwblvqp+wLqexu6knjF/Gd8Jep8sWKxwlhygR6VUsa70Z7wTk9hA3PCLyteBMP6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8D6iqRazXmnqwgy3wNKWT5rxqe2j4ndNIUQmOUoqNcs=; b=IWIxYC0VEyUbzJmY0SSpQdbuXk3ji/K6/4XxhvGBreKy1FTtuMNTbws9/wwIviJgtg1h+pRQ0fK2Ajo0FS33Tu18+eqWXv1sa4EyY9wA8c0yyNeeeGMIZH2jJKxwetOV80jhO/F17D90VJihGdiVCLONf7/2tVUpbitWK2qbXrDTgtzA5H5vS5HBzlinN2mbFwg/R4+UiD/D9qoRv3eoN8zeEXQ+RVbSy+7z/wxWn+p2bRopx1E4GR/Jksc+NgW2yF/s0gZEb5m1kFZvKojqnEUfGPvm6Hd7UTNMvTHAtevifmgYfloIZ+f074vQkVXVp4YWAwsIKfqjlpaEf5ONuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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:X-MS-Exchange-SenderADCheck; bh=8D6iqRazXmnqwgy3wNKWT5rxqe2j4ndNIUQmOUoqNcs=; b=Rq0oNUDQT9586mWORLxecHNmBhGG1UJeNMUMklZdanI0VFJkEot4odu06dIMUUejLkbIrqKW4WAoJluKW/sGO14/uEE5jhXmb44afrPSL801WwvzVW/M40o24EiHUtjiTZAXYTJu0av3drnqRJU+Y/7/SUDwQc2F2Z4LsWsAT3k= Received: from AM0PR05MB6707.eurprd05.prod.outlook.com (10.186.174.145) by AM0PR05MB4980.eurprd05.prod.outlook.com (20.176.215.80) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.19; Mon, 20 Jan 2020 08:25:04 +0000 Received: from AM0PR05MB6707.eurprd05.prod.outlook.com ([fe80::f0b7:a92b:aeb5:5761]) by AM0PR05MB6707.eurprd05.prod.outlook.com ([fe80::f0b7:a92b:aeb5:5761%5]) with mapi id 15.20.2644.026; Mon, 20 Jan 2020 08:25:04 +0000 From: Raslan Darawsheh To: Dekel Peled , Matan Azrad , Slava Ovsiienko CC: Ori Kam , "dev@dpdk.org" Thread-Topic: [PATCH] net/mlx5: add GTP item support Thread-Index: AQHVzJwTvRCk3hHrAEKWINxhNL5ZXqfzPOvw Date: Mon, 20 Jan 2020 08:25:04 +0000 Message-ID: References: <49eff920c2ff1280ecbec9da80a20e6fb72c6423.1579199284.git.dekelp@mellanox.com> In-Reply-To: <49eff920c2ff1280ecbec9da80a20e6fb72c6423.1579199284.git.dekelp@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=rasland@mellanox.com; x-originating-ip: [212.29.221.74] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 626b9cc8-76fe-41f2-d9c9-08d79d82403a x-ms-traffictypediagnostic: AM0PR05MB4980:|AM0PR05MB4980: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 0288CD37D9 x-forefront-antispam-report: SFV:NSPM; SFS:(10001)(10009020)(4636009)(376002)(39860400002)(346002)(396003)(136003)(366004)(199004)(189003)(55016002)(9686003)(53546011)(6506007)(26005)(76116006)(316002)(81166006)(81156014)(64756008)(66556008)(66446008)(8936002)(8676002)(66946007)(86362001)(66476007)(52536014)(110136005)(54906003)(71200400001)(966005)(186003)(7696005)(5660300002)(30864003)(478600001)(45080400002)(2906002)(6636002)(33656002)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR05MB4980; H:AM0PR05MB6707.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: x5+bujrqim0lBvDwsI/gAB988utBoPPWxsCgWR2H4dBwUwD43Tb3ultrChqbjr5W+J3pSxOXksRUKAj7vT40PCeCSPItAkPox+Zm8u+KdFLzFtRx84d/3TCmhleXoFuZfdHWJq/hCyIjjBISBHC6GXwNMlW9nuxpsP7svgkr5d0dNheljcOt0id+lR3b9+2t4+SDDB867wbHZQ0jswEZnSLip2PizIZcKaBsY4LAyxub/fPQVt2f/iuIQfac+qEEgwt+LJNhpilZYzPg7fnNgdmiDbGW7caFs8Ox+/Y5RDKpi4uQFMMG4mnSkBgcFrywfqKFoAo6H4SviPgYsodER18Yh1gUfTfObTBVVec6eOQeD0yDFOs6oiNRDoHYBk8SA7nPcgdk9POyMscdUqFQZI0miKMv/MyrHAdWYI84UpGOGsZ7W+cUT4EjIQyql7B59j2XJyijZlueH540srkUOuTCpOIUN9BMY2NRnjnvYNGJR3Zsk3wBshIajEbxgIuiDg5EMg7ZMC+/tHiMmNTpIiY2DhDAaJXH3HU5JgM9dLbf4l02vYzDdjowIHqnqKzmOV3TV2gisyp8QBxil7F/tMKymkGjKuLyGNuBjDNl+kzZtRL3VcUZDXGXk3S5MKI2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 626b9cc8-76fe-41f2-d9c9-08d79d82403a X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jan 2020 08:25:04.3907 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: MZABFZ2nlxHPGckSepkkGacwO0+7o4pGPXnuYz0ezCcfPt5e9MQe5pvSJBxtKb3ZfrX8U6eSDfifCiv0OMAK2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB4980 Subject: Re: [dpdk-dev] [PATCH] net/mlx5: add GTP item support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi, > -----Original Message----- > From: Dekel Peled > Sent: Thursday, January 16, 2020 8:36 PM > To: Matan Azrad ; Slava Ovsiienko > > Cc: Raslan Darawsheh ; Ori Kam > ; dev@dpdk.org > Subject: [PATCH] net/mlx5: add GTP item support >=20 > This patch adds to MLX5 PMD support of matching on GTP item, fields > msg_type and teid, according to RFC [1]. > GTP item validation and translation functions are added and called. > GTP tunnel type is added to supported tunnels. >=20 > [1] > https://eur03.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fmails. > dpdk.org%2Farchives%2Fdev%2F2019- > December%2F152799.html&data=3D02%7C01%7Crasland%40mellanox.co > m%7C3c010e7e37ce48e72b9f08d79ab3352b%7Ca652971c7d2e4d9ba6a4d149 > 256f461b%7C0%7C0%7C637147966796528630&sdata=3Dv%2FIYIQZrg9PL8S > qeP8%2BUcbtXsES1VndUw4EmFY930e4%3D&reserved=3D0 >=20 > Signed-off-by: Dekel Peled > Acked-by: Ori Kam > --- > doc/guides/nics/mlx5.rst | 10 +++ > doc/guides/rel_notes/release_20_02.rst | 1 + > drivers/net/mlx5/mlx5.h | 1 + > drivers/net/mlx5/mlx5_devx_cmds.c | 3 + > drivers/net/mlx5/mlx5_flow.c | 4 ++ > drivers/net/mlx5/mlx5_flow.h | 5 +- > drivers/net/mlx5/mlx5_flow_dv.c | 114 > +++++++++++++++++++++++++++++++++ > drivers/net/mlx5/mlx5_prm.h | 10 ++- > drivers/net/mlx5/mlx5_rxtx.h | 2 +- > 9 files changed, 146 insertions(+), 4 deletions(-) >=20 > diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index > 92228d3..ea749ac 100644 > --- a/doc/guides/nics/mlx5.rst > +++ b/doc/guides/nics/mlx5.rst > @@ -90,6 +90,7 @@ Features > - Statistics query including Basic, Extended and per queue. > - Rx HW timestamp. > - Tunnel types: VXLAN, L3 VXLAN, VXLAN-GPE, GRE, MPLSoGRE, MPLSoUDP, > IP-in-IP, Geneve. > +- Tunnel types: VXLAN, L3 VXLAN, VXLAN-GPE, GRE, MPLSoGRE, > MPLSoUDP, IP-in-IP, Geneve, GTP. > - Tunnel HW offloads: packet type, inner/outer RSS, IP and UDP checksum > verification. > - NIC HW offloads: encapsulation (vxlan, gre, mplsoudp, mplsogre), NAT, > routing, TTL > increment/decrement, count, drop, mark. For details please see > :ref:`mlx5_offloads_support`. > @@ -159,6 +160,11 @@ Limitations > - VF: flow rules created on VF devices can only match traffic targeted a= t the > configured MAC addresses (see ``rte_eth_dev_mac_addr_add()``). >=20 > +- Match on GTP tunnel header item supports the following fields only: > + > + - msg_type > + - teid > + > .. note:: >=20 > MAC addresses not already present in the bridge table of the associat= ed > @@ -788,6 +794,10 @@ Below are some firmware configurations listed. >=20 > FLEX_PARSER_PROFILE_ENABLE=3D0 >=20 > +- enable GTP flow matching:: > + > + FLEX_PARSER_PROFILE_ENABLE=3D3 > + > Prerequisites > ------------- >=20 > diff --git a/doc/guides/rel_notes/release_20_02.rst > b/doc/guides/rel_notes/release_20_02.rst > index 8cd3470..81b7f4e 100644 > --- a/doc/guides/rel_notes/release_20_02.rst > +++ b/doc/guides/rel_notes/release_20_02.rst > @@ -61,6 +61,7 @@ New Features > Updated Mellanox mlx5 driver with new features and improvements, > including: >=20 > * Added support for RSS using L3/L4 source/destination only. > + * Added support for matching on GTP tunnel header item. >=20 >=20 > Removed Items > diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index > c3df825..f2cdac2 100644 > --- a/drivers/net/mlx5/mlx5.h > +++ b/drivers/net/mlx5/mlx5.h > @@ -195,6 +195,7 @@ struct mlx5_hca_attr { > uint32_t vport_inline_mode:3; > uint32_t tunnel_stateless_geneve_rx:1; > uint32_t geneve_max_opt_len:1; /* 0x0: 14DW, 0x1: 63DW */ > + uint32_t tunnel_stateless_gtp:1; > uint32_t lro_cap:1; > uint32_t tunnel_lro_gre:1; > uint32_t tunnel_lro_vxlan:1; > diff --git a/drivers/net/mlx5/mlx5_devx_cmds.c > b/drivers/net/mlx5/mlx5_devx_cmds.c > index 9893287..c95b822 100644 > --- a/drivers/net/mlx5/mlx5_devx_cmds.c > +++ b/drivers/net/mlx5/mlx5_devx_cmds.c > @@ -415,6 +415,9 @@ struct mlx5_devx_obj * > hcattr, max_geneve_opt_len); > attr->wqe_inline_mode =3D > MLX5_GET(per_protocol_networking_offload_caps, > hcattr, wqe_inline_mode); > + attr->tunnel_stateless_gtp =3D MLX5_GET > + > (per_protocol_networking_offload_caps, > + hcattr, tunnel_stateless_gtp); > if (attr->wqe_inline_mode !=3D > MLX5_CAP_INLINE_MODE_VPORT_CONTEXT) > return 0; > if (attr->eth_virt) { > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index cb9d265..cbfc809 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -318,6 +318,10 @@ struct mlx5_flow_tunnel_info { > .tunnel =3D MLX5_FLOW_LAYER_IPV6_ENCAP, > .ptype =3D RTE_PTYPE_TUNNEL_IP, > }, > + { > + .tunnel =3D MLX5_FLOW_LAYER_GTP, > + .ptype =3D RTE_PTYPE_TUNNEL_GTPU, > + }, > }; >=20 > /** > diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h > index 27d82ac..1ed9422 100644 > --- a/drivers/net/mlx5/mlx5_flow.h > +++ b/drivers/net/mlx5/mlx5_flow.h > @@ -122,6 +122,9 @@ enum mlx5_feature_name { > /* Queue items. */ > #define MLX5_FLOW_ITEM_TX_QUEUE (1u << 27) >=20 > +/* Pattern tunnel Layer bits (continued). */ #define > +MLX5_FLOW_LAYER_GTP (1u << 28) > + > /* Outer Masks. */ > #define MLX5_FLOW_LAYER_OUTER_L3 \ > (MLX5_FLOW_LAYER_OUTER_L3_IPV4 | > MLX5_FLOW_LAYER_OUTER_L3_IPV6) @@ -136,7 +139,7 @@ enum > mlx5_feature_name { > (MLX5_FLOW_LAYER_VXLAN | MLX5_FLOW_LAYER_VXLAN_GPE | \ > MLX5_FLOW_LAYER_GRE | MLX5_FLOW_LAYER_NVGRE | > MLX5_FLOW_LAYER_MPLS | \ > MLX5_FLOW_LAYER_IPIP | MLX5_FLOW_LAYER_IPV6_ENCAP | \ > - MLX5_FLOW_LAYER_GENEVE) > + MLX5_FLOW_LAYER_GENEVE | MLX5_FLOW_LAYER_GTP) >=20 > /* Inner Masks. */ > #define MLX5_FLOW_LAYER_INNER_L3 \ > diff --git a/drivers/net/mlx5/mlx5_flow_dv.c > b/drivers/net/mlx5/mlx5_flow_dv.c index e8a764c..f0be8ed 100644 > --- a/drivers/net/mlx5/mlx5_flow_dv.c > +++ b/drivers/net/mlx5/mlx5_flow_dv.c > @@ -27,6 +27,7 @@ > #include > #include > #include > +#include >=20 > #include "mlx5.h" > #include "mlx5_defs.h" > @@ -1474,6 +1475,56 @@ struct field_modify_info modify_tcp[] =3D { } >=20 > /** > + * Validate GTP item. > + * > + * @param[in] dev > + * Pointer to the rte_eth_dev structure. > + * @param[in] item > + * Item specification. > + * @param[in] item_flags > + * Bit-fields that holds the items detected until now. > + * @param[out] error > + * Pointer to error structure. > + * > + * @return > + * 0 on success, a negative errno value otherwise and rte_errno is set= . > + */ > +static int > +flow_dv_validate_item_gtp(struct rte_eth_dev *dev, > + const struct rte_flow_item *item, > + uint64_t item_flags, > + struct rte_flow_error *error) > +{ > + struct mlx5_priv *priv =3D dev->data->dev_private; > + const struct rte_flow_item_gtp *mask =3D item->mask; > + const struct rte_flow_item_gtp nic_mask =3D { > + .msg_type =3D 0xff, > + .teid =3D RTE_BE32(0xffffffff), > + }; > + > + if (!priv->config.hca_attr.tunnel_stateless_gtp) > + return rte_flow_error_set(error, ENOTSUP, > + RTE_FLOW_ERROR_TYPE_ITEM, > item, > + "GTP support is not enabled"); > + if (item_flags & MLX5_FLOW_LAYER_TUNNEL) > + return rte_flow_error_set(error, ENOTSUP, > + RTE_FLOW_ERROR_TYPE_ITEM, > item, > + "multiple tunnel layers not" > + " supported"); > + if (!(item_flags & MLX5_FLOW_LAYER_OUTER_L4_UDP)) > + return rte_flow_error_set(error, EINVAL, > + RTE_FLOW_ERROR_TYPE_ITEM, > item, > + "no outer UDP layer found"); > + if (!mask) > + mask =3D &rte_flow_item_gtp_mask; > + return mlx5_flow_item_acceptable > + (item, (const uint8_t *)mask, > + (const uint8_t *)&nic_mask, > + sizeof(struct rte_flow_item_gtp), > + error); > +} > + > +/** > * Validate the pop VLAN action. > * > * @param[in] dev > @@ -4483,6 +4534,13 @@ struct field_modify_info modify_tcp[] =3D { > case MLX5_RTE_FLOW_ITEM_TYPE_TAG: > case MLX5_RTE_FLOW_ITEM_TYPE_TX_QUEUE: > break; > + case RTE_FLOW_ITEM_TYPE_GTP: > + ret =3D flow_dv_validate_item_gtp(dev, items, > item_flags, > + error); > + if (ret < 0) > + return ret; > + last_item =3D MLX5_FLOW_LAYER_GTP; > + break; > default: > return rte_flow_error_set(error, ENOTSUP, >=20 > RTE_FLOW_ERROR_TYPE_ITEM, > @@ -6165,6 +6223,57 @@ struct field_modify_info modify_tcp[] =3D { > icmp_v->hdr.icmp_code & icmp_m->hdr.icmp_code); } >=20 > +/** > + * Add GTP item to matcher and to the value. > + * > + * @param[in, out] matcher > + * Flow matcher. > + * @param[in, out] key > + * Flow matcher value. > + * @param[in] item > + * Flow pattern to translate. > + * @param[in] inner > + * Item is inner pattern. > + */ > +static void > +flow_dv_translate_item_gtp(void *matcher, void *key, > + const struct rte_flow_item *item, int inner) { > + const struct rte_flow_item_gtp *gtp_m =3D item->mask; > + const struct rte_flow_item_gtp *gtp_v =3D item->spec; > + void *headers_m; > + void *headers_v; > + void *misc3_m =3D MLX5_ADDR_OF(fte_match_param, matcher, > + misc_parameters_3); > + void *misc3_v =3D MLX5_ADDR_OF(fte_match_param, key, > misc_parameters_3); > + uint16_t dport =3D RTE_GTPU_UDP_PORT; > + > + if (inner) { > + headers_m =3D MLX5_ADDR_OF(fte_match_param, matcher, > + inner_headers); > + headers_v =3D MLX5_ADDR_OF(fte_match_param, key, > inner_headers); > + } else { > + headers_m =3D MLX5_ADDR_OF(fte_match_param, matcher, > + outer_headers); > + headers_v =3D MLX5_ADDR_OF(fte_match_param, key, > outer_headers); > + } > + if (!MLX5_GET16(fte_match_set_lyr_2_4, headers_v, udp_dport)) { > + MLX5_SET(fte_match_set_lyr_2_4, headers_m, udp_dport, > 0xFFFF); > + MLX5_SET(fte_match_set_lyr_2_4, headers_v, udp_dport, > dport); > + } > + if (!gtp_v) > + return; > + if (!gtp_m) > + gtp_m =3D &rte_flow_item_gtp_mask; > + MLX5_SET(fte_match_set_misc3, misc3_m, gtpu_msg_type, gtp_m- > >msg_type); > + MLX5_SET(fte_match_set_misc3, misc3_v, gtpu_msg_type, > + gtp_v->msg_type & gtp_m->msg_type); > + MLX5_SET(fte_match_set_misc3, misc3_m, gtpu_teid, > + rte_be_to_cpu_32(gtp_m->teid)); > + MLX5_SET(fte_match_set_misc3, misc3_v, gtpu_teid, > + rte_be_to_cpu_32(gtp_v->teid & gtp_m->teid)); } > + > static uint32_t matcher_zero[MLX5_ST_SZ_DW(fte_match_param)] =3D { 0 }; >=20 > #define HEADER_IS_ZERO(match_criteria, headers) > \ > @@ -7331,6 +7440,11 @@ struct field_modify_info modify_tcp[] =3D { > items); > last_item =3D MLX5_FLOW_ITEM_TX_QUEUE; > break; > + case RTE_FLOW_ITEM_TYPE_GTP: > + flow_dv_translate_item_gtp(match_mask, > match_value, > + items, tunnel); > + last_item =3D MLX5_FLOW_LAYER_GTP; > + break; > default: > break; > } > diff --git a/drivers/net/mlx5/mlx5_prm.h b/drivers/net/mlx5/mlx5_prm.h > index a805363..6ad214b 100644 > --- a/drivers/net/mlx5/mlx5_prm.h > +++ b/drivers/net/mlx5/mlx5_prm.h > @@ -682,7 +682,11 @@ struct mlx5_ifc_fte_match_set_misc3_bits { > u8 icmp_code[0x8]; > u8 icmpv6_type[0x8]; > u8 icmpv6_code[0x8]; > - u8 reserved_at_1a0[0xe0]; > + u8 reserved_at_120[0x20]; > + u8 gtpu_teid[0x20]; > + u8 gtpu_msg_type[0x08]; > + u8 gtpu_msg_flags[0x08]; > + u8 reserved_at_170[0x90]; > }; >=20 > /* Flow matcher. */ > @@ -1235,7 +1239,9 @@ struct > mlx5_ifc_per_protocol_networking_offload_caps_bits { > u8 swp[0x1]; > u8 swp_csum[0x1]; > u8 swp_lso[0x1]; > - u8 reserved_at_23[0xd]; > + u8 reserved_at_23[0x8]; > + u8 tunnel_stateless_gtp[0x1]; > + u8 reserved_at_25[0x4]; > u8 max_vxlan_udp_ports[0x8]; > u8 reserved_at_38[0x6]; > u8 max_geneve_opt_len[0x1]; > diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h > index e362b4a..b6a33c5 100644 > --- a/drivers/net/mlx5/mlx5_rxtx.h > +++ b/drivers/net/mlx5/mlx5_rxtx.h > @@ -40,7 +40,7 @@ > #include "mlx5_glue.h" >=20 > /* Support tunnel matching. */ > -#define MLX5_FLOW_TUNNEL 9 > +#define MLX5_FLOW_TUNNEL 10 >=20 > struct mlx5_rxq_stats { > #ifdef MLX5_PMD_SOFT_COUNTERS > -- > 1.8.3.1 Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh