From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B913CA09FF for ; Tue, 5 Jan 2021 03:36:39 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AC037160791; Tue, 5 Jan 2021 03:36:39 +0100 (CET) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 5E94A160771; Tue, 5 Jan 2021 03:36:36 +0100 (CET) IronPort-SDR: 4bU3G5kMAj50h2mfZ+xjHNXmDjXTZ09i9XSnn1FRm2piHAhIrp0AvXAEwztd6sYz/avhte/B7C wvXNNKA4C/sw== X-IronPort-AV: E=McAfee;i="6000,8403,9854"; a="156825859" X-IronPort-AV: E=Sophos;i="5.78,475,1599548400"; d="scan'208";a="156825859" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jan 2021 18:36:35 -0800 IronPort-SDR: x7JUZ43iwitQAavKTC3MeHg3VTkesZ/+JJgNzzAvZXG/n92+2NhwEu5XoWR//p4y81OQkYgKCc cfFqEZqh4WVQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,475,1599548400"; d="scan'208";a="350180054" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga008.fm.intel.com with ESMTP; 04 Jan 2021 18:36:35 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 4 Jan 2021 18:36:35 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 4 Jan 2021 18:36:35 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.52) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Mon, 4 Jan 2021 18:36:33 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bqppDi/JdjAX1ICB8fPfreED3yF5SUs/2wp0FMYPdUP7roqLqwbtcFqxoVK3aQbrFS7jjKPeu+V4qAc+LCXddLxPsXYpPesGeORJU2nuAFjZgkcRqv4VQ+pQKOhF3eLzTZFRBtD2RrbkzSEtueZrGnYY18eTgp2BvaEaaPVv3YeYAbCujR0j8/jzdimdnNvMcCa7QRyYEOa46qP/sycHGOxBDIthJ04UatGuf+5ni0ZsReAGXqr0arBPeuONVjLJvTmBPc4FwQ5/HW+E08LCmhqxQdFkG2bqjs+EMjJe5lr71oAWT8HTEY8lFaOjxIH0zTX2UxINENn52HKtcRfTqg== 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=6hb0i2rNEqX2CZsaNjKKjd06Ak+eS67j7TyP2XZSuS8=; b=WXSMJLXjaYkPJAyyIHJmSn7LIlj0klog38tmdkivSpuy5QE0xHbJ/E7myNzVwi9INEpTKoCJzGhC5zCU/FyejCbXOeuyAfog3WI/cTuDchDH+e5sHdpO1ryLxBYCXc84a8kZI/HPj8hw/MePCO0U99ZnZMmOoCIcDn5f096HXoPPC4TehfxPWJUVNnRVu/UKSqe/uvSnYRNPpYp1TXfWZ4maS4QCTmbPq98C+KObjVG6lNiXGTm/U/01LnK2HOPsLEFjJzGBUWsE4WsCvcFbOlhJhjgLRr/DMBi7cX2IWmGDJ5MlpTPrd2oSZ3dZHo3b8sZMrcxvSPiVt6pEf8l1ww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6hb0i2rNEqX2CZsaNjKKjd06Ak+eS67j7TyP2XZSuS8=; b=LkVXrvspkAl1bNyiF3vqAyKc88GiqoRkjrW+arhgO/LO1EexkBl027/IbVKnggiQWlEdB7U3Kf7V/trzTXXhkgIrJBdw8Y7u6sJ4FkUXIW/Dr9EXUX3lXtO3UaL6SaEM9I3uYZcPYj7swAr7iYadxHoS6rq6HTQwIfkIZxlmfoQ= Received: from MN2PR11MB3807.namprd11.prod.outlook.com (2603:10b6:208:f0::24) by MN2PR11MB3839.namprd11.prod.outlook.com (2603:10b6:208:fa::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.21; Tue, 5 Jan 2021 02:36:31 +0000 Received: from MN2PR11MB3807.namprd11.prod.outlook.com ([fe80::4d7f:d51:79bc:e596]) by MN2PR11MB3807.namprd11.prod.outlook.com ([fe80::4d7f:d51:79bc:e596%4]) with mapi id 15.20.3721.024; Tue, 5 Jan 2021 02:36:31 +0000 From: "Xing, Beilei" To: "Guo, Jia" , "dev@dpdk.org" CC: "stable@dpdk.org" , "Sun, Chenmin" Thread-Topic: [PATCH v3] net/i40e: fix flex payload rule conflict issue Thread-Index: AQHW3ysA4FkQ/3Xq+UifyGNulhr1YqoQuAKAgAegnMA= Date: Tue, 5 Jan 2021 02:36:30 +0000 Message-ID: References: <20201229054639.92132-1-beilei.xing@intel.com> <20210101040341.21133-1-beilei.xing@intel.com> <6828c56a8f01400c9cea311be2a6679d@intel.com> In-Reply-To: <6828c56a8f01400c9cea311be2a6679d@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: af0a5198-4f6e-4606-fa62-08d8b122b5ce x-ms-traffictypediagnostic: MN2PR11MB3839: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3044; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Wl6BG56TtCF16J9vWYKMq4Vm7yYgMeNtQZErYbqXI7Mo1dLhNqIDuAinlA4nl7UO8yw7NBdSfBLFQzUhLwP/oePBUcfqEQZcOuR5BnKMopEoElADk2fzphjmoB0nYcucVoimskeLGruWqXnRKU4N6m2SW5eLg7ZBKKiTt/GiUKI92oS8Bznyj+WivEXfSC/BVdFPji9nP4oHEdRtr3GKl+6gQS6gjGjMKv8kMGrS0GOUaqFPcQ7iPmbcxplysrow1eRkRIs/mfy41qIf8HbLkyUiqtEU73GVaRYwU1FCD9QjuaEadONQ0c4ts5Mi9tU3Jr+mclq9rjqAPJ4gXVKOyJeWlgvBq2VMbtuJDb+jKmoLdUTFckzE98EJVN02htJjUyDJqV2UQtPHCCjr3b0XYw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB3807.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(39860400002)(136003)(396003)(366004)(376002)(9686003)(54906003)(66476007)(2906002)(76116006)(66946007)(66446008)(450100002)(86362001)(83380400001)(66556008)(55016002)(7696005)(26005)(33656002)(8936002)(478600001)(53546011)(52536014)(316002)(71200400001)(110136005)(8676002)(64756008)(5660300002)(4326008)(107886003)(6506007)(186003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?/t9wfVnrYoCW2WdTnwdsBhcCpfaIj0Kw6pa1dnBpjm5/US2UCKXqtRi4+VEj?= =?us-ascii?Q?g1eQ9gv8/IW39cSZlEOBn1dg/t7YqUUWsvh0dNh4q3Ot/NXYkIROg78d5h9n?= =?us-ascii?Q?6Ye0ixXcSgKEsdeO1cVbIq1bT9IYow3oFZaY60f+FDJo+bqr4SX0m5eynGUA?= =?us-ascii?Q?Ep81DldB656wm8kXiFQ+Fv2VLEyzHq3kKKAkiSlt/+EtLs/Q1zCmQBYwEcbD?= =?us-ascii?Q?dzQlbCkdudccdkqy7NjysuSRC5AlSH97PelzWQsmWESKqa/bnI4TDmOu37N4?= =?us-ascii?Q?oRwbhDKTe0yX+wRDhH6nY2Db+U9BTTPfkQbW+qxhAGw09AUrKbZ/thsXqIHr?= =?us-ascii?Q?XehMiFZKAqLZ7iWCTaVwDbEDMDbjj06xLSN7CjNga9tVYOhOqpRgYZAkc5+a?= =?us-ascii?Q?ZcqsQ6J6PpqEEvgaDrry3AvoFvjS12vHpjvJTpE5d/EAfYqxcxKh6/zkE6lU?= =?us-ascii?Q?1NJ5LuMy0ectRRF6ZRCKgAyCdnvfj5WjbFt0Lq0tS51GmAzNcU4wtlm+aEL/?= =?us-ascii?Q?FDEaT4KoRKSKcTV4Oy6N9WmizfU0Tf96CHAHJQ5y/jODim2+7o1zUwjT7+e/?= =?us-ascii?Q?xWMSOtuAncVDy3M13VRsKGhXJ5GAfKyZW2y7QLIvABeO28C5e2dh70r7TXy7?= =?us-ascii?Q?XLtHVn8P5KjhVH0rNozsFggECJSdDOQazPbkiLltykV8GJ52zoy5RHEn9R6J?= =?us-ascii?Q?4n7MZPIGmERp2DZW48SZTHbJ/ntvKh/uZkJCalYUJ1XjSc9wTZDXQtRKBjdj?= =?us-ascii?Q?li+vux9Q2dlVPYY/dG4q0ier2PZwdFmqsZXSSvfQC0rysZz/RAIdeC2gKPVs?= =?us-ascii?Q?1SXcSb2OgEzMroxBr6BsAdRHdlXKYDqjfOOnux1IAA3Shl1zlJXNp1Jvvr3Q?= =?us-ascii?Q?79/mRf7Fbvmf8hGKN4rqqODJUabwFBrqoSxl56RRIeBgX2j6NJrBAdcCedIk?= =?us-ascii?Q?PaviOOmMIbAZ4hgM1t5YBtIU/G2DFF0fDBndgUSehLA=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB3807.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: af0a5198-4f6e-4606-fa62-08d8b122b5ce X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2021 02:36:30.9130 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: HBQHRcEbLTk7vw7mpCsIuglm28vjVbXVuBnsf/vPZ15ourHoWoMqCM2NQVG0sAQJyQW+3Y+tsfA990Rfy6ckhg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3839 X-OriginatorOrg: intel.com Subject: Re: [dpdk-stable] [PATCH v3] net/i40e: fix flex payload rule conflict issue X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" > -----Original Message----- > From: Guo, Jia > Sent: Thursday, December 31, 2020 2:07 PM > To: Xing, Beilei ; dev@dpdk.org > Cc: stable@dpdk.org; Sun, Chenmin > Subject: RE: [PATCH v3] net/i40e: fix flex payload rule conflict issue >=20 >=20 > > -----Original Message----- > > From: Xing, Beilei > > Sent: Friday, January 1, 2021 12:04 PM > > To: Guo, Jia ; dev@dpdk.org > > Cc: Xing, Beilei ; stable@dpdk.org; Sun, > > Chenmin > > Subject: [PATCH v3] net/i40e: fix flex payload rule conflict issue > > > > From: Beilei Xing > > > > With the following commands, the second flow can't be created successfu= lly. > > > > 1. flow create 0 ingress pattern eth / ipv4 / udp / > > raw relative is 1 pattern is 0102030405 / end > > actions drop / end > > 2. flow destroy 0 rule 0 > > 3. flow create 0 ingress pattern eth / ipv4 / udp / > > raw relative is 1 pattern is 010203040506 / end > > actions drop / end > > > > The root cause is that a flag for flex pit isn't reset. > > > > Fixes: 6ced3dd72f5f ("net/i40e: support flexible payload parsing for > > FDIR") > > Cc: stable@dpdk.org > > > > Reported-by: Chenmin Sun > > Signed-off-by: Beilei Xing > > --- > > > > v3 changes: > > - Add flow count for flexible payload flow. > > v2 changeds: > > - Add fix line. > > > > drivers/net/i40e/i40e_ethdev.h | 3 +++ > > drivers/net/i40e/i40e_fdir.c | 16 ++++++++++++++-- > > drivers/net/i40e/i40e_flow.c | 4 ++++ > > 3 files changed, 21 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/net/i40e/i40e_ethdev.h > > b/drivers/net/i40e/i40e_ethdev.h index 696c5aaf7e..aac226999c 100644 > > --- a/drivers/net/i40e/i40e_ethdev.h > > +++ b/drivers/net/i40e/i40e_ethdev.h > > @@ -636,6 +636,7 @@ struct i40e_fdir_flow_ext { bool is_udp; /* > > ipv4|ipv6 udp flow */ enum i40e_flxpld_layer_idx layer_idx; struct > > i40e_fdir_flex_pit flex_pit[I40E_MAX_FLXPLD_LAYER * > > I40E_MAX_FLXPLD_FIED]; > > +bool is_flex_flow; > > }; > > > > /* A structure used to define the input for a flow director filter > > entry */ @@ > > -784,6 +785,8 @@ struct i40e_fdir_info { bool > > flex_mask_flag[I40E_FILTER_PCTYPE_MAX]; > > > > bool inset_flag[I40E_FILTER_PCTYPE_MAX]; /* Mark if input set is set > > */ > > + > > +uint32_t flex_flow_count[I40E_MAX_FLXPLD_LAYER]; > > }; > > > > /* Ethertype filter number HW supports */ diff --git > > a/drivers/net/i40e/i40e_fdir.c b/drivers/net/i40e/i40e_fdir.c index > > 50c0eee9f2..4400b607c8 100644 > > --- a/drivers/net/i40e/i40e_fdir.c > > +++ b/drivers/net/i40e/i40e_fdir.c > > @@ -355,6 +355,7 @@ i40e_init_flx_pld(struct i40e_pf *pf) > > I40E_PRTQF_FLX_PIT(index + 1), 0x0000FC29);/*non- used*/ > > I40E_WRITE_REG(hw, I40E_PRTQF_FLX_PIT(index + 2), 0x0000FC2A);/*non- > > used*/ > > +pf->fdir.flex_pit_flag[i] =3D 0; > > } > > > > /* initialize the masks */ > > @@ -1513,8 +1514,6 @@ i40e_flow_set_fdir_flex_pit(struct i40e_pf *pf, > > I40E_WRITE_REG(hw, I40E_PRTQF_FLX_PIT(field_idx), flx_pit); > > min_next_off++; } > > - > > -pf->fdir.flex_pit_flag[layer_idx] =3D 1; > > } > > > > static int > > @@ -1738,6 +1737,8 @@ i40e_flow_add_del_fdir_filter(struct rte_eth_dev > > *dev, fdir_info->fdir_guarantee_free_space > 0) wait_status =3D false= ; > > } else { > > +layer_idx =3D filter->input.flow_ext.layer_idx; > > + >=20 > Assume that flow_ext.layer_idx should be assign to the layer_idx at the > condition of " (!filter->input.flow_ext.customized_pctype) ", right? Yes, thanks for the comment, will fix in next version. >=20 > > node =3D i40e_sw_fdir_filter_lookup(fdir_info, > > &check_filter.fdir.input); > > if (!node) { > > @@ -1785,6 +1786,17 @@ i40e_flow_add_del_fdir_filter(struct > > rte_eth_dev *dev, goto error_op; } > > > > +if (filter->input.flow_ext.is_flex_flow) { if (add) { > > +fdir_info->flex_flow_count[layer_idx]++; > > +pf->fdir.flex_pit_flag[layer_idx] =3D 1; > > +} else { > > +fdir_info->flex_flow_count[layer_idx]--; > > +if (!fdir_info->flex_flow_count[layer_idx]) > > +pf->fdir.flex_pit_flag[layer_idx] =3D 0; > > +} > > +} > > + > > if (add) { > > fdir_info->fdir_actual_cnt++; > > if (fdir_info->fdir_invalprio =3D=3D 1 && diff --git > > a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index > > b09ff6590d..bbd666b7a0 100644 > > --- a/drivers/net/i40e/i40e_flow.c > > +++ b/drivers/net/i40e/i40e_flow.c > > @@ -3069,6 +3069,7 @@ i40e_flow_parse_fdir_pattern(struct rte_eth_dev > > *dev, > > &flex_pit, sizeof(struct i40e_fdir_flex_pit)); > > filter->input.flow_ext.layer_idx =3D layer_idx; > > filter->input.flow_ext.raw_id =3D raw_id; > > +filter->input.flow_ext.is_flex_flow =3D true; > > break; > > case RTE_FLOW_ITEM_TYPE_VF: > > vf_spec =3D item->spec; > > @@ -5515,6 +5516,9 @@ i40e_flow_flush_fdir_filter(struct i40e_pf *pf) > > pf->fdir.flex_mask_flag[pctype] =3D 0; } > > > > +for (i =3D 0; i < I40E_MAX_FLXPLD_LAYER; i++) > > +pf->fdir.flex_pit_flag[i] =3D 0; > > + > > /* Disable FDIR processing as all FDIR rules are now flushed */ > > i40e_fdir_rx_proc_enable(dev, 0); } > > -- > > 2.26.2 >=20