From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9EA5142546; Fri, 8 Sep 2023 11:35:28 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9643F402E4; Fri, 8 Sep 2023 11:35:28 +0200 (CEST) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2063.outbound.protection.outlook.com [40.107.100.63]) by mails.dpdk.org (Postfix) with ESMTP id A561140285 for ; Fri, 8 Sep 2023 11:35:26 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e5YwVOhVJcjXhqVn/QlMHrOPbhbmS+Mn8L4/aOjSxMK7Ukftys+1l6E7PYdyl+0Kb6QzAY01iKXLmC08rM4EPE6yH9uoY4VoVxnEkq5ljhTcMS+YUvy3Lq7M6z6YlezghM1TbaC5aD1jY6VfPqGf/r7Jlf/Cf7+aWya0mK/Xhcj7jfadwM1PodlljzLABD51Xpp0vzCCuF6DZDT/KLRiTVEPXB5nRZswE7FZYYzxvOHfAlEzX8yV/0q+6j54Z6kb8icK+iMeW1a+m8RaOEsDnZPbpS++nF8aainz2iw4p9+RCqMgUG0gg/ht49YSZVNfgB5GCzUj2jSjgfyv96fLjw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9Dis/sHvhVALvEwGXpLSlEC+6VaA+EuDHAnZ9F+JkYo=; b=od9T9yQdmLoXmvNbhaKOiWQyFstLSmmNwzuGs5Ih5AKrMt+eRPJ5IMQwqFyOily6sQGwNkRQJkeZz5p9SPg1ifKRyD1UJa1/3NBCx0aStuz7FtoPqUmDdBfMCCB7Dv7a+kk7/w4caOxseAYnW+Pnl4k9TWA3tth7/7+xFBBaHD+Bi67MC0rf4Z+VoF7IuagRb2MPK88GA5Bl1IdEg7YNsnrnkHd3w5z9Es0fg42zjJ1wQ/N1oXSZfPt070cMmJMUmFTBmHj9TdBaVZQD/FP0jKn5dJ8ra9gTHdCHv34J2tFEths+9ZY1oEMKTgFAB4AsL4HI7Qj4w43nPSmxl2l2Xw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9Dis/sHvhVALvEwGXpLSlEC+6VaA+EuDHAnZ9F+JkYo=; b=lfqVFMhee5sGSF3qaWfo5kkYvP7tu2YW92R/V148rye6ROfUh3XGj5uzsRgCRweWqZl68u+fz0hN1ZgDPxnI211HtyQu+TrIYe0Kyb8+yf9Rfxd8au3p8vxdIeX7YC+LMN3DoyfA6STZEvBxKsn1jmlHCVqeQiEhr5L3IAETdTkdmcS2ptzRzqErGIKdTLWDsxkBOMGEXsBg077jhjJjuCgy3xaBHfglxjU44BTc5agA8cx80/kephf8D45Exj9f2PqVUXGyFnz/V58gpV4oJ4+L9xuJMy94slLJdYcGCL838j6MY4Vqx4ybMibVWTRiCGVfK8NOTUW+5ceZSScdmw== Received: from SJ0PR12MB5405.namprd12.prod.outlook.com (2603:10b6:a03:3af::11) by CH0PR12MB5155.namprd12.prod.outlook.com (2603:10b6:610:ba::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.30; Fri, 8 Sep 2023 09:35:24 +0000 Received: from SJ0PR12MB5405.namprd12.prod.outlook.com ([fe80::1523:a1f8:127a:3b64]) by SJ0PR12MB5405.namprd12.prod.outlook.com ([fe80::1523:a1f8:127a:3b64%6]) with mapi id 15.20.6745.034; Fri, 8 Sep 2023 09:35:24 +0000 From: Suanming Mou To: "Jiawei(Jonny) Wang" , Ori Kam , "NBU-Contact-Thomas Monjalon (EXTERNAL)" CC: "dev@dpdk.org" , Raslan Darawsheh Subject: RE: [PATCH 2/3] net/mlx5: extend hws send to kernel action support Thread-Topic: [PATCH 2/3] net/mlx5: extend hws send to kernel action support Thread-Index: AQHZ4jXehSv784sgL0uxgOj14jRx7bAQqw8A Date: Fri, 8 Sep 2023 09:35:24 +0000 Message-ID: References: <20230908092100.38587-1-jiaweiw@nvidia.com> <20230908092100.38587-3-jiaweiw@nvidia.com> In-Reply-To: <20230908092100.38587-3-jiaweiw@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR12MB5405:EE_|CH0PR12MB5155:EE_ x-ms-office365-filtering-correlation-id: f276b8ee-202e-48cf-d6b4-08dbb04eed78 x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hBxhTKK+yLHOT6eOA8R7Uyy3Cag40YY6U/qCRJjdF4zFs7wlpo6IhkGAc5t30EMuLWGQ2ifCeAwC5HnF9Ucl3kOh5+SZgfBY6y7ok+6FPW2hoQyMvXr56KxE8/9JqILwkuK/D8sfzINYQA8siHb8op5oo6lJ1Nsuw/yJKZkoATY5xC2FOqka+VvxvvDqLf6Fu2aJn9hygGRzgEGWu9GB9ILtZz4ultgadj/p70IwPPlIjdb10X4GaRYRyrt6aaH5O59EOh4Vdmnbg68X5xfvUwLVeCiL/xzgPheg+4xCRoJXamDRRxaY+pnH67FuPN5NDCr7kKd48W90k2G3obA8WypGOX3k4b0GLJTwJWRhC2e03BhkN2AcokI+SF/tbZhC7RiOBXxEmKV2o+Rj6C+R6bAUHY2AkN5UFsdqz12p077f07cyQOlAUcZcP97yBe+X7PbyRw6R2tRXA2L1fex1qb4mWAA7xUaEi+hXO6x48ywpzz/lFY6pQQMmgB+LNIqSfLmeCwKwIpY5nBPIvKA86284sUfoN6MPi81/EVgKnIfRb0N6/bqrqgNJc32aa1NBNfxCfTcWJXAL9XUoiiNABFjFyvRAyx7KQ+l7xZatPIOVtiMvvRz0FnlzfYZiIQAY x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR12MB5405.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(39860400002)(346002)(376002)(136003)(366004)(186009)(451199024)(1800799009)(110136005)(122000001)(38100700002)(55016003)(86362001)(33656002)(478600001)(2906002)(9686003)(71200400001)(53546011)(4326008)(7696005)(6506007)(8936002)(8676002)(38070700005)(52536014)(5660300002)(64756008)(316002)(66556008)(66946007)(66476007)(54906003)(66446008)(41300700001)(83380400001)(107886003)(76116006); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?dh4C7d7e7I2J6e1Ooo408FVeTMwAM/e2hWqnhpvVD/xkfd6Xu4mrTYc5bsh3?= =?us-ascii?Q?JPfkz+E35YlDXJAQf/w9qG7VHbfu9hrxoZhlCkur3un9zppHPFYHGqLUSu/P?= =?us-ascii?Q?yIoMTRz0FP2hvKPEQo4XmiNe/8yyYKiRJFGuHyC7/1n0FZ03L1Y0Ea7BQyg8?= =?us-ascii?Q?dKpk///at4bA2K+m60TawQaydURQI+zag7IM2aslZpfeFonZEIDVIJvuVo3c?= =?us-ascii?Q?9WAdjKk9/CTtNJb36fr843RAwlb77zXjYPf/+oGBV6zC2ajPirNd51hSzANY?= =?us-ascii?Q?qPKJiDZALsdNMuMYCpomKzTDm3lsANVkBkXcxDyCd8FKaE5RTGhQG614Tq8b?= =?us-ascii?Q?hOQjGqSrVYIZ/gTQaPhfFDDYoevspyLRAAuiZDNl8rc5bkDCJw2AcDpxNcLW?= =?us-ascii?Q?H54XA2LjRJsr/CZERVzeLqFEOkykfVvcPZw86D9VYUQCB2Uh+8saa7pcR2n2?= =?us-ascii?Q?Uf9VwNAHYW+RmBSatIx5D+79FCqRBHJPzg3XyxvQ66rsdV6vweoAn6+8QLUq?= =?us-ascii?Q?QLYa8afRVwm7+ARrqYtkPrJAeGw0yL2nL3wUvv8L2i16IT2kjnSJx6l2tuPk?= =?us-ascii?Q?o1/ahP+UOk7XwabYtFjDWJXWN84BkDzR3BLee049PFgAHdH50at00Ne+CG6M?= =?us-ascii?Q?c7wzd/XGPirTaxS1RZHaoL9d+vMMKYJWao+X2MIsKA3Rk5GijY22sCSClfEO?= =?us-ascii?Q?Ewl2PDqQdlrNc9hfJsqO0zvdC63aL8J+vG1xk5SEH4XxEorNGBHWedbztvUN?= =?us-ascii?Q?TTn9Z4mU9SleHw6uL+2AIAicn+MC7NXIDq2CkUeMgIXTuqpv/IJvPSC7mpGq?= =?us-ascii?Q?CyTVmWOHnSwtNmFnihpwP5+zTuJJlAauqamAAb92vDd/18eWtYg/ECRvn2gb?= =?us-ascii?Q?sc4ObgJanV9Pp3DNGxV9iuYsdbzoHiEmLv/SZnH1eE/uoCkpo9T249UbbKrh?= =?us-ascii?Q?bw/6SiopLND7oDjOFcOb5mkWoG1omT2LALUisEyFt3/8eIHOpNjyulNhmuHa?= =?us-ascii?Q?pL5C/KDfiYELATjF0SwRTxaD3sqmQFA3Un0dEgdxUApjQVmR42ZFTkpvFEJ6?= =?us-ascii?Q?SAEDMl6hrju3ccKqrs0tQ9Dob9LfLs4K58b55xqjG4KWVL+k84oU60Rie7sR?= =?us-ascii?Q?ey/4a774P3Ov7bbzSVmLBF4V8Dh9I/F6ec090Waxizu3xr+H6Vh0tnbryBtU?= =?us-ascii?Q?lyZFT0VixIItYjGQdfyJ4rv5T4rqymePcMXPlIbb5E+ulHv0UYydL5Z9hxGB?= =?us-ascii?Q?CICDFcYbm7lvlFROKzq3DiS2pj72aQ09lNAg6tK8cWgefg0VYgklO0P5Ky7i?= =?us-ascii?Q?ULTHzcotClBlN7E6SSrXZDyRqQXl4o0XQqjhVZPRfXumr4yuztQ2KlF/A+UU?= =?us-ascii?Q?rPrCYQtwMSXDPCrcrf/xLoba08phV0zkfy5Y5gzrDO3vf9xPeITOKY3jnml1?= =?us-ascii?Q?N3XkUXNPrjUaqiLyqmtDKMfoPAX2soRXW1qhUzUbnkpH42PAsSq15nvXoKT5?= =?us-ascii?Q?thy/RWDIWMACsWSAO7emq6Qk/8geBbb65Ir+e9PAlSPXDeF/0St9uH9YGw?= =?us-ascii?Q?=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR12MB5405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f276b8ee-202e-48cf-d6b4-08dbb04eed78 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Sep 2023 09:35:24.0830 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: rylJFw3zA0tGEL7YZq7S5vGMjTmgLBXaf/5HtL+4kedfmUS5VTdW5ESIww1Tdoo3lZvK0vKgN0KMdi7uGaat1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5155 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > -----Original Message----- > From: Jiawei(Jonny) Wang > Sent: Friday, September 8, 2023 5:21 PM > To: Suanming Mou ; Ori Kam ; > NBU-Contact-Thomas Monjalon (EXTERNAL) > Cc: dev@dpdk.org; Raslan Darawsheh > Subject: [PATCH 2/3] net/mlx5: extend hws send to kernel action support >=20 > The hws send to kernel action was supported in NIC and FDB tables, Curren= tly, > the send to kernel action is created in NIC RX only. >=20 > This patch adds the FDB and NIC-TX tables support for sending to the kern= el > action for HWS. >=20 > Signed-off-by: Jiawei Wang Acked-by: Suanming Mou > --- > drivers/net/mlx5/mlx5.h | 2 +- > drivers/net/mlx5/mlx5_flow_hw.c | 45 +++++++++++++++++++++++---------- > 2 files changed, 33 insertions(+), 14 deletions(-) >=20 > diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index > 6960a07d40..d49b81a360 100644 > --- a/drivers/net/mlx5/mlx5.h > +++ b/drivers/net/mlx5/mlx5.h > @@ -1858,7 +1858,7 @@ struct mlx5_priv { > /* HW steering global tag action. */ > struct mlx5dr_action *hw_tag[2]; > /* HW steering global send to kernel action. */ > - struct mlx5dr_action *hw_send_to_kernel; > + struct mlx5dr_action *hw_send_to_kernel[MLX5DR_TABLE_TYPE_MAX]; > /* HW steering create ongoing rte flow table list header. */ > LIST_HEAD(flow_hw_tbl_ongo, rte_flow_template_table) > flow_hw_tbl_ongo; > struct mlx5_indexed_pool *acts_ipool; /* Action data indexed pool. */ > diff --git a/drivers/net/mlx5/mlx5_flow_hw.c > b/drivers/net/mlx5/mlx5_flow_hw.c index 92a5c92669..84d869a686 100644 > --- a/drivers/net/mlx5/mlx5_flow_hw.c > +++ b/drivers/net/mlx5/mlx5_flow_hw.c > @@ -1439,6 +1439,7 @@ __flow_hw_actions_translate(struct rte_eth_dev > *dev, > uint32_t ct_idx; > int err; > uint32_t target_grp =3D 0; > + int table_type; >=20 > flow_hw_modify_field_init(&mhdr, at); > if (attr->transfer) > @@ -1635,7 +1636,10 @@ __flow_hw_actions_translate(struct rte_eth_dev > *dev, > "Send to kernel action on root > table is not supported in HW steering mode"); > } > action_pos =3D at->actions_off[actions - at->actions]; > - acts->rule_acts[action_pos].action =3D priv- > >hw_send_to_kernel; > + table_type =3D attr->ingress ? > MLX5DR_TABLE_TYPE_NIC_RX : > + ((attr->egress) ? > MLX5DR_TABLE_TYPE_NIC_TX : > + MLX5DR_TABLE_TYPE_FDB); > + acts->rule_acts[action_pos].action =3D > +priv->hw_send_to_kernel[table_type]; > break; > case RTE_FLOW_ACTION_TYPE_MODIFY_FIELD: > err =3D flow_hw_modify_field_compile(dev, attr, > action_start, @@ -4345,8 +4349,11 @@ mlx5_flow_hw_actions_validate(struct > rte_eth_dev *dev, > const struct rte_flow_action_count *count_mask =3D NULL; > bool fixed_cnt =3D false; > uint64_t action_flags =3D 0; > - uint16_t i; > bool actions_end =3D false; > +#ifdef HAVE_MLX5DV_DR_ACTION_CREATE_DEST_ROOT_TABLE > + int table_type; > +#endif > + uint16_t i; > int ret; >=20 > /* FDB actions are only valid to proxy port. */ @@ -4397,7 +4404,10 > @@ mlx5_flow_hw_actions_validate(struct rte_eth_dev *dev, >=20 > RTE_FLOW_ERROR_TYPE_ACTION, > action, > "action not supported > in guest port"); > - if (!priv->hw_send_to_kernel) > + table_type =3D attr->ingress ? > MLX5DR_TABLE_TYPE_NIC_RX : > + ((attr->egress) ? > MLX5DR_TABLE_TYPE_NIC_TX : > + MLX5DR_TABLE_TYPE_FDB); > + if (!priv->hw_send_to_kernel[table_type]) > return rte_flow_error_set(error, ENOTSUP, >=20 > RTE_FLOW_ERROR_TYPE_ACTION, > action, > @@ -5955,13 +5965,19 @@ static void > flow_hw_create_send_to_kernel_actions(struct mlx5_priv *priv __rte_unuse= d) > { #ifdef HAVE_MLX5DV_DR_ACTION_CREATE_DEST_ROOT_TABLE > - priv->hw_send_to_kernel =3D > - mlx5dr_action_create_dest_root(priv->dr_ctx, > - > MLX5_HW_LOWEST_PRIO_ROOT, > - > MLX5DR_ACTION_FLAG_HWS_RX); > - if (!priv->hw_send_to_kernel) { > - DRV_LOG(WARNING, "Unable to create HWS send to kernel > action"); > - return; > + int action_flag; > + int i; > + > + for (i =3D MLX5DR_TABLE_TYPE_NIC_RX; i < MLX5DR_TABLE_TYPE_MAX; > i++) { > + action_flag =3D mlx5_hw_act_flag[1][i]; > + priv->hw_send_to_kernel[i] =3D > + mlx5dr_action_create_dest_root(priv->dr_ctx, > + > MLX5_HW_LOWEST_PRIO_ROOT, > + action_flag); > + if (!priv->hw_send_to_kernel[i]) { > + DRV_LOG(WARNING, "Unable to create HWS send to > kernel action"); > + return; > + } > } > #endif > } > @@ -5969,9 +5985,12 @@ flow_hw_create_send_to_kernel_actions(struct > mlx5_priv *priv __rte_unused) static void > flow_hw_destroy_send_to_kernel_action(struct mlx5_priv *priv) { > - if (priv->hw_send_to_kernel) { > - mlx5dr_action_destroy(priv->hw_send_to_kernel); > - priv->hw_send_to_kernel =3D NULL; > + int i; > + for (i =3D MLX5DR_TABLE_TYPE_NIC_RX; i < MLX5DR_TABLE_TYPE_MAX; > i++) { > + if (priv->hw_send_to_kernel[i]) { > + mlx5dr_action_destroy(priv->hw_send_to_kernel[i]); > + priv->hw_send_to_kernel[i] =3D NULL; > + } > } > } >=20 > -- > 2.18.1