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 53AE3A0540; Mon, 20 Jul 2020 10:08:54 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BFA111AFB; Mon, 20 Jul 2020 10:08:52 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2082.outbound.protection.outlook.com [40.107.22.82]) by dpdk.org (Postfix) with ESMTP id 2894F1023; Mon, 20 Jul 2020 10:08:51 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hPWg+m37uM0QwRcuQ5MaHZe4RWv+i6/LP3IRCC7oEi0QUsaMuDrRipzgKxBXIVi+1wb/zSVB7EheIdoQAVDMB0eJXHVErIx8Q0HMnT2prXdbyALHkEmDJqXX8xwBIEYzQt5LCNznbRV77rfiWZXKnrz4XuRYFX4gwgz75PigPs62DZO7/kHRJZCMlvpYZ7zDkuPWwpw8PC0udRV16QNiKG9v0nbtdeilC9TJpFhbqtGXuWx/8/F2fH5e5qQIP4YYDWhIFmpdAllFQkgucFAddPQcjQZZa5/8XbY/1i7nH06eOefwVqwBYmvoheo+pDLSgpxIL4jxfXIODYoVtGW9bg== 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=Ux2K7JnLWWYusBCwFA4dy8T4P61PzmvbH+gfXbGwf5g=; b=XfYdPjgHR6L+eTCx/0jhC6MyiPi9PBV06aIsxeBDnGnEoW6iYZ9M4OQyUomEKtb+UL1OgDtK6lphqODuaSjUE0hz/fqBqvvHruPEDmhxpMi8GbJFjQZ3jdtgYAXhqRsbg2crunxCFEanDyb/jsl7B2SwqRPbFbw9lx8MkRIfF0o+MCAiRaayvGfIrM6usYd1cijzsrXTXOV9ldWpRk5k8mMtnMRjhTIwofJnU9EuMEsggzYFumsOjWVZNDDAfEWgIi7VQuzsdpr2lr87WYDwUNUQZvh5EcPtTK8iMb8D55WjRYu23Kv1Xrxt/9xExyn3cX2ACtVLqWWcwREiaZdcSA== 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=Ux2K7JnLWWYusBCwFA4dy8T4P61PzmvbH+gfXbGwf5g=; b=fVUgSE3WjA5ReRKbEHPe8OlUXJnCCvOg5G52jNH4ct2cphxSSIYl8Uf6o3Yklcapcx4LOd5REGYv/lNm4TTmAiS23o3F6ZSdiIKtB8FpesJy/XzaQ22RsZONQytW/WqxzSboRPv//Bt3PVYhSjVsHjN6n+06mn8mUwXrveG9xdU= Received: from AM0PR05MB6707.eurprd05.prod.outlook.com (2603:10a6:20b:15b::17) by AM4PR05MB3459.eurprd05.prod.outlook.com (2603:10a6:205:8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.23; Mon, 20 Jul 2020 08:08:49 +0000 Received: from AM0PR05MB6707.eurprd05.prod.outlook.com ([fe80::ecd3:6008:3784:4012]) by AM0PR05MB6707.eurprd05.prod.outlook.com ([fe80::ecd3:6008:3784:4012%5]) with mapi id 15.20.3195.025; Mon, 20 Jul 2020 08:08:49 +0000 From: Raslan Darawsheh To: Gregory Etelson , "dev@dpdk.org" CC: Matan Azrad , "stable@dpdk.org" , Shahaf Shuler , Slava Ovsiienko , Ori Kam , Yongseok Koh Thread-Topic: [PATCH] net/mlx5: fix tunnel PMD flow prioriry Thread-Index: AQHWW0Rao0eotM47pk2aiDY0zoG9gKkQIcVw Date: Mon, 20 Jul 2020 08:08:49 +0000 Message-ID: References: <20200716073959.3236-1-getelson@mellanox.com> In-Reply-To: <20200716073959.3236-1-getelson@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: mellanox.com; dkim=none (message not signed) header.d=none;mellanox.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [84.242.49.134] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 4b05658f-c35f-468a-0970-08d82c842273 x-ms-traffictypediagnostic: AM4PR05MB3459: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1148; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ko+I4m8j3zx3GyY2n2EGwf569yLVj7J/+voQS90tCWAF+UhklxEsHb/ACqIqBWpSY8jZHEoVYueXQfBSOK74wOVWy4DtzkxJL7hymv5cXZZ1XDvpypcncRbVsqEkEkpwSVJ1ISfmSgeYj+c3wW5t1nDW5D7LwuN16FiHmq92jO1kS47poBYkpF7mbBx7xB1pfhd15cjN+JW+vZiPFnmgCzaZfmvYmMXOAXdZ2RKGAjlj6r3d+KJLRZDohYSxINkT63ApPd/JL6Q4Oah3ZUPahmrUMh8W0OLNMWv+SqBmlq7pXy8rwnfr/8XO7dUK4pr3 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB6707.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(376002)(346002)(136003)(396003)(366004)(66446008)(66556008)(186003)(52536014)(64756008)(66476007)(76116006)(2906002)(4326008)(5660300002)(33656002)(450100002)(8936002)(66946007)(316002)(86362001)(71200400001)(107886003)(53546011)(83380400001)(6506007)(8676002)(55016002)(54906003)(478600001)(110136005)(26005)(7696005)(9686003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 00W6LeAMcAuzyjxSIhK/2Tr9K46B347QtaPNFMXot97IzqvbAKLxAe1wDhftqjcN+v0KzcNVFnbWsIWt7WLndLxNJ8svTX2HRYzqX2/X7IYKEpN22gvwamZ2Qc6M/LY7xbdJMw4NJjcM7MOUuMEzS5cr7b5a4v6SxHGMKUk38aauhDd6VC8IbkIIH01ro2pPBn8n3C/mWmm+125+Xi/+hslMt8uy3cBe4hT3LnsN77iXzM+0ECAMTdfLuXqKdRBC4ri3XV09OaiFORUd0+i6U8sxJLR4GLgg//Bk9jTm/I8IwptGefbct+tVAT5OEmXQEfifbmcB24aI3c8QkrNi4C5+h6KfRyk4k/onrj0/loe6o2lE7tDotVO1+oyuI5ABKq9hSKAWHUeqg1ZbR262Z2v4Uac9sXXRMH/6oF8UuKQIfoBxKzj+fQuB7h3a/AAFmkSx3QtLmn/7ESHpvdtFaL/ZKUgQY4Ukmkk8q0HTQNe4kESFAps2XDwVxB+PoGwo Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB6707.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b05658f-c35f-468a-0970-08d82c842273 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jul 2020 08:08:49.6830 (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: GRU84RbVH5LkOHplNi9UOIe3midISUVMo9a8amNROOZ1KGnHedET8cJnstqXlXgeOV9y/GRBXUjtD4lRmS8aFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3459 Subject: Re: [dpdk-dev] [PATCH] net/mlx5: fix tunnel PMD flow prioriry 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: Gregory Etelson > Sent: Thursday, July 16, 2020 10:40 AM > To: dev@dpdk.org > Cc: Gregory Etelson ; Matan Azrad > ; Raslan Darawsheh ; > stable@dpdk.org; Shahaf Shuler ; Slava Ovsiienko > ; Ori Kam ; Yongseok > Koh > Subject: [PATCH] net/mlx5: fix tunnel PMD flow prioriry >=20 > PMD flow priority is different from application flow priority. Flow > rules with higher match granularity assigned higher PMD priority. Also > PMD splits internally RSS flows according to flow RSS layer. >=20 > Final PMD flow rule priority derived from the last match item network > level, after PMD adjusts flow rule, where L4 match gets the highest > priority and L2 the lowest. >=20 > The patch adjusts tunnels flow rule priority calculation for PMDs > running verb API. >=20 > Introduce MLX5_TUNNEL_PRIO_GET macro. >=20 > Fixes: 4a78c88e3bae ("net/mlx5: fix Verbs flow tunnel") > Cc: stable@dpdk.org >=20 > Signed-off-by: Gregory Etelson > Acked-by: Matan Azrad > --- > drivers/net/mlx5/mlx5_flow.h | 4 ++++ > drivers/net/mlx5/mlx5_flow_dv.c | 21 +++++++-------------- > drivers/net/mlx5/mlx5_flow_verbs.c | 8 ++++---- > 3 files changed, 15 insertions(+), 18 deletions(-) >=20 > diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h > index 43cbda8712..89a827eb45 100644 > --- a/drivers/net/mlx5/mlx5_flow.h > +++ b/drivers/net/mlx5/mlx5_flow.h > @@ -516,6 +516,10 @@ struct mlx5_flow_rss_desc { > uint16_t queue[]; /**< Destination queues to redirect traffic to. */ > }; >=20 > +/* PMD flow priority for tunnel */ > +#define MLX5_TUNNEL_PRIO_GET(rss_desc) \ > + ((rss_desc)->level >=3D 2 ? MLX5_PRIORITY_MAP_L2 : > MLX5_PRIORITY_MAP_L4) > + >=20 > /** Device flow handle structure for DV mode only. */ > struct mlx5_flow_handle_dv { > diff --git a/drivers/net/mlx5/mlx5_flow_dv.c > b/drivers/net/mlx5/mlx5_flow_dv.c > index 8b5b6838fa..7944e5d6fd 100644 > --- a/drivers/net/mlx5/mlx5_flow_dv.c > +++ b/drivers/net/mlx5/mlx5_flow_dv.c > @@ -8462,8 +8462,7 @@ __flow_dv_translate(struct rte_eth_dev *dev, > case RTE_FLOW_ITEM_TYPE_GRE: > flow_dv_translate_item_gre(match_mask, > match_value, > items, tunnel); > - matcher.priority =3D rss_desc->level >=3D 2 ? > - MLX5_PRIORITY_MAP_L2 : > MLX5_PRIORITY_MAP_L4; > + matcher.priority =3D > MLX5_TUNNEL_PRIO_GET(rss_desc); > last_item =3D MLX5_FLOW_LAYER_GRE; > break; > case RTE_FLOW_ITEM_TYPE_GRE_KEY: > @@ -8474,37 +8473,32 @@ __flow_dv_translate(struct rte_eth_dev *dev, > case RTE_FLOW_ITEM_TYPE_NVGRE: > flow_dv_translate_item_nvgre(match_mask, > match_value, > items, tunnel); > - matcher.priority =3D rss_desc->level >=3D 2 ? > - MLX5_PRIORITY_MAP_L2 : > MLX5_PRIORITY_MAP_L4; > + matcher.priority =3D > MLX5_TUNNEL_PRIO_GET(rss_desc); > last_item =3D MLX5_FLOW_LAYER_GRE; > break; > case RTE_FLOW_ITEM_TYPE_VXLAN: > flow_dv_translate_item_vxlan(match_mask, > match_value, > items, tunnel); > - matcher.priority =3D rss_desc->level >=3D 2 ? > - MLX5_PRIORITY_MAP_L2 : > MLX5_PRIORITY_MAP_L4; > + matcher.priority =3D > MLX5_TUNNEL_PRIO_GET(rss_desc); > last_item =3D MLX5_FLOW_LAYER_VXLAN; > break; > case RTE_FLOW_ITEM_TYPE_VXLAN_GPE: > flow_dv_translate_item_vxlan_gpe(match_mask, > match_value, items, > tunnel); > - matcher.priority =3D rss_desc->level >=3D 2 ? > - MLX5_PRIORITY_MAP_L2 : > MLX5_PRIORITY_MAP_L4; > + matcher.priority =3D > MLX5_TUNNEL_PRIO_GET(rss_desc); > last_item =3D MLX5_FLOW_LAYER_VXLAN_GPE; > break; > case RTE_FLOW_ITEM_TYPE_GENEVE: > flow_dv_translate_item_geneve(match_mask, > match_value, > items, tunnel); > - matcher.priority =3D rss_desc->level >=3D 2 ? > - MLX5_PRIORITY_MAP_L2 : > MLX5_PRIORITY_MAP_L4; > + matcher.priority =3D > MLX5_TUNNEL_PRIO_GET(rss_desc); > last_item =3D MLX5_FLOW_LAYER_GENEVE; > break; > case RTE_FLOW_ITEM_TYPE_MPLS: > flow_dv_translate_item_mpls(match_mask, > match_value, > items, last_item, tunnel); > - matcher.priority =3D rss_desc->level >=3D 2 ? > - MLX5_PRIORITY_MAP_L2 : > MLX5_PRIORITY_MAP_L4; > + matcher.priority =3D > MLX5_TUNNEL_PRIO_GET(rss_desc); > last_item =3D MLX5_FLOW_LAYER_MPLS; > break; > case RTE_FLOW_ITEM_TYPE_MARK: > @@ -8546,8 +8540,7 @@ __flow_dv_translate(struct rte_eth_dev *dev, > case RTE_FLOW_ITEM_TYPE_GTP: > flow_dv_translate_item_gtp(match_mask, > match_value, > items, tunnel); > - matcher.priority =3D rss_desc->level >=3D 2 ? > - MLX5_PRIORITY_MAP_L2 : > MLX5_PRIORITY_MAP_L4; > + matcher.priority =3D > MLX5_TUNNEL_PRIO_GET(rss_desc); > last_item =3D MLX5_FLOW_LAYER_GTP; > break; > default: > diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c > b/drivers/net/mlx5/mlx5_flow_verbs.c > index 781c97fd2e..602375d062 100644 > --- a/drivers/net/mlx5/mlx5_flow_verbs.c > +++ b/drivers/net/mlx5/mlx5_flow_verbs.c > @@ -1723,25 +1723,25 @@ flow_verbs_translate(struct rte_eth_dev *dev, > case RTE_FLOW_ITEM_TYPE_VXLAN: > flow_verbs_translate_item_vxlan(dev_flow, items, > item_flags); > - subpriority =3D MLX5_PRIORITY_MAP_L2; > + subpriority =3D MLX5_TUNNEL_PRIO_GET(rss_desc); > item_flags |=3D MLX5_FLOW_LAYER_VXLAN; > break; > case RTE_FLOW_ITEM_TYPE_VXLAN_GPE: > flow_verbs_translate_item_vxlan_gpe(dev_flow, > items, > item_flags); > - subpriority =3D MLX5_PRIORITY_MAP_L2; > + subpriority =3D MLX5_TUNNEL_PRIO_GET(rss_desc); > item_flags |=3D MLX5_FLOW_LAYER_VXLAN_GPE; > break; > case RTE_FLOW_ITEM_TYPE_GRE: > flow_verbs_translate_item_gre(dev_flow, items, > item_flags); > - subpriority =3D MLX5_PRIORITY_MAP_L2; > + subpriority =3D MLX5_TUNNEL_PRIO_GET(rss_desc); > item_flags |=3D MLX5_FLOW_LAYER_GRE; > break; > case RTE_FLOW_ITEM_TYPE_MPLS: > flow_verbs_translate_item_mpls(dev_flow, items, > item_flags); > - subpriority =3D MLX5_PRIORITY_MAP_L2; > + subpriority =3D MLX5_TUNNEL_PRIO_GET(rss_desc); > item_flags |=3D MLX5_FLOW_LAYER_MPLS; > break; > default: > -- > 2.25.1 Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh