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 C54FAA0350; Tue, 23 Jun 2020 10:41:53 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 462AB1D5EB; Tue, 23 Jun 2020 10:41:34 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50080.outbound.protection.outlook.com [40.107.5.80]) by dpdk.org (Postfix) with ESMTP id EEB9C1D5C8 for ; Tue, 23 Jun 2020 10:41:31 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VH/iLA63WXDYO6HGgm03sfRRyw5BiBA5VKHR23Oej/jnVgaWXwUrqnawpd6Yt36LlOX66Fx6fi5UlHPqe1sb1xlvkAY9qbxCXRRzPBGCWOq/3Vfh1YfYVZ/AOMxukBkj00bsWuJwwuIMxZnVIfH60hRo4uPnSuosy/gQ10SGPT5X8rxR6QGMIqWyGqwU5HYHEhKlXdtC0HZaHMmd6kSQaAOZeidOrU2pG5mG4isuyB2Y8XWrHsO090sN5D2e/pB+EASyxVcsdJrbz61Q3MPJOp7xOxmJtfbrQuBwb2UVH9t6xA8jphP6wa0VYL+Gtg0iMm3I3NSa2qLPkCcyYp/p8Q== 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=uGwVy9b+VAlgLTeNRNNCTzq3FkL7LSapKDpIlhc6QE4=; b=KJ0YMaZCLN4KOOGm+GyhKnWPu84wrenVHNLVjgKpbMQDNRo1dJQ6ZLsrE/9Fp5UtnQZXhra+2vsagT64+FEvcv4rZJEHNnrj5OEVXMlo5i9tPU5ii8ljLhB1ERD09Vbc6INFgxOwB5F9sgSaz8aTfTvMl1W3gIHnmzrQEzchaM15D7TsklcliqZLeldHg4Vvj8wEMmgB/J1koNxIg3dS2Wr7VxGh5sIv14gak5gIQs9N3CJLHxjAM5ox/gqPVnpq0XHI5cb1FBz7jbadPMYmVz9KmsJO1l9R6j0d6hjL1wv3Vd4SLNV/gyp6X39vhkJy6XJvUnk6Z3C38Ej2tn+Flw== 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=uGwVy9b+VAlgLTeNRNNCTzq3FkL7LSapKDpIlhc6QE4=; b=afSD0gGX1xDNCK2A7D4hqG2XKOTYGowyMeYbDr7a9tBe5UTm2Mg1ltU5WrQN0xN7GK7k2Y2R4dsVkZhmQ4tKBeHGKgngAyiG1kb7wYaZlg6HbzPnkPWIhYPMu2xEPCy7PZH8fNQv3jvy7nBung+T4xnUOXa5iaUkzOnh+JWzA/Q= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR0502MB3874.eurprd05.prod.outlook.com (2603:10a6:208:1a::29) by AM0PR0502MB3618.eurprd05.prod.outlook.com (2603:10a6:208:18::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.22; Tue, 23 Jun 2020 08:41:31 +0000 Received: from AM0PR0502MB3874.eurprd05.prod.outlook.com ([fe80::84e5:30fb:782e:5e60]) by AM0PR0502MB3874.eurprd05.prod.outlook.com ([fe80::84e5:30fb:782e:5e60%4]) with mapi id 15.20.3109.021; Tue, 23 Jun 2020 08:41:31 +0000 From: Shiri Kuzin To: dev@dpdk.org Cc: matan@mellanox.com, viacheslavo@mellanox.com Date: Tue, 23 Jun 2020 11:41:07 +0300 Message-Id: <1592901667-12161-4-git-send-email-shirik@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1592901667-12161-1-git-send-email-shirik@mellanox.com> References: <1592901667-12161-1-git-send-email-shirik@mellanox.com> Content-Type: text/plain X-ClientProxiedBy: AM0PR04CA0088.eurprd04.prod.outlook.com (2603:10a6:208:be::29) To AM0PR0502MB3874.eurprd05.prod.outlook.com (2603:10a6:208:1a::29) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from mellanox.com (94.188.199.18) by AM0PR04CA0088.eurprd04.prod.outlook.com (2603:10a6:208:be::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.22 via Frontend Transport; Tue, 23 Jun 2020 08:41:30 +0000 X-Mailer: git-send-email 1.8.3.1 X-Originating-IP: [94.188.199.18] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 5ca18fcf-6203-428c-57ae-08d817513a17 X-MS-TrafficTypeDiagnostic: AM0PR0502MB3618: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-Forefront-PRVS: 04433051BF X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HEOIneTjMkZdyGfx6j05w/pgAqufYGE92JDr6LJ38mv7ft9qAgs6otT27vbRCPovyDahAfBQc8VtaoQT9X1EI6DsTjWSJC85TCkRfNtRgAWyESjV/4bfUtOIfFPKRZ67JqWGVeknj8BeCJC/gH9s1jw4JPFgkjg9UMkeSEoyiMdHMEWUMPJNg4zuwAWpMBmpgg4Dycy+wixPJSPHFnKTC6F0VRTpVyRS+7pc1YXGVmC3KtKIZENA8iJxSOI9c7cAE8vu99BKlASrBHesRc9hj0+g270xnLC93x+R1I+r48XCN9ZIEDdCaOYE/zzmg1DUj5m9g3XyJKmEoHpgKyQ84OUCykzuhlPxfq1EeFQMil4bRcEnZLll8+OoFjPuw0eW X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR0502MB3874.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(366004)(346002)(39860400002)(396003)(136003)(2906002)(478600001)(66476007)(66556008)(8886007)(107886003)(55016002)(4326008)(52116002)(7696005)(316002)(36756003)(8936002)(8676002)(83380400001)(86362001)(186003)(16526019)(6666004)(956004)(2616005)(6916009)(66946007)(5660300002)(26005)(309714004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Ha5U+jQsIe1+d7CVSojHMBcfT+d9K+jClqYylhmpdMfkWCe6xag2qqZSiVuJ0B37yJfIiBau5mfn85/2BNnTo0nHXhmW2awfojAAG35NYKIwITt1JXudmmJcJff8cuil2QBrUGumI3FwAFL7ktTpNa/mzZqIekM9EHZcZ9scRmG70E5+33MUfW70yzVvo0pGr1hHrvssKUgUnw9sjhhbxCAEsNmszUCChtPg95hAhi3c+ZlvraxCog6mMroIAA4GPN72Qb2ONK0lOpSloPZHjg8AZjzxJsSLg4RJW9AnfGP/aqqkYwhdAPn7nXWab+CZ1rX8tknfOiOdf+XXKA9Km0e5MO/hUJewnqL5FEuJJCUSt0559iZ8lZR8NJHi6MjgFSdnKtR6XTdOnrisWoTBYnrF3vuTIizmMxCD5y8wTZS0Jw8COYEUKSpO7949b6MOupyzUPF0yKCf1//RMEVkMy1L0NZVj4iKrqd1rb7caD4= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ca18fcf-6203-428c-57ae-08d817513a17 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2020 08:41:30.9652 (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: bz3Yuzp3lhZucTVj/cRk0AfvtaIhX96XP9BUMK/4PYGr/6LnSPfqcEs+rYg5/Ip7syF70xJNkl+GL+Qgwdyuxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3618 Subject: [dpdk-dev] [PATCH 3/3] net/mlx5: add new devarg for LACP packets control 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" The new devarg will control the steering of the lacp traffic. When setting dv_lacp_by_user = 0 the lacp traffic will be steered to kernel and managed there. When setting dv_lacp_by_user = 1 the lacp traffic will not be steered and the user will need to manage it. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- doc/guides/nics/mlx5.rst | 10 ++++++++++ doc/guides/rel_notes/release_20_08.rst | 1 + drivers/net/mlx5/mlx5.c | 6 ++++++ drivers/net/mlx5/mlx5.h | 2 ++ drivers/net/mlx5/mlx5_trigger.c | 9 +++++++++ 5 files changed, 28 insertions(+) diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index 0ff3c53..b51aa67 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -796,6 +796,16 @@ Driver options Enabled by default if supported. +- ``lacp_by_user`` parameter [int] + + A nonzero value enables the control of LACP traffic by the user application. + When a bond exists in the driver, by default it should be managed by the + kernel and therefore LACP traffic should be steered to the kernel. + If this devarg is set to 1 it will allow the user to manage the bond by + itself and not steer LACP traffic to the kernel. + + Disabled by default (set to 0). + - ``mr_ext_memseg_en`` parameter [int] A nonzero value enables extending memseg when registering DMA memory. If diff --git a/doc/guides/rel_notes/release_20_08.rst b/doc/guides/rel_notes/release_20_08.rst index cc39984..f03762b 100644 --- a/doc/guides/rel_notes/release_20_08.rst +++ b/doc/guides/rel_notes/release_20_08.rst @@ -67,6 +67,7 @@ New Features Updated Mellanox mlx5 driver with new features and improvements, including: * Added new PMD devarg ``reclaim_mem_mode``. + * Added new devarg ``lacp_by_user``. * **Added vDPA device APIs to query virtio queue statistics.** diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index ddbe29d..07c6add 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -140,6 +140,9 @@ /* Enable extensive flow metadata support. */ #define MLX5_DV_XMETA_EN "dv_xmeta_en" +/* Device parameter to let the user manage the lacp traffic of bonded device */ +#define MLX5_LACP_BY_USER "lacp_by_user" + /* Activate Netlink support in VF mode. */ #define MLX5_VF_NL_EN "vf_nl_en" @@ -1352,6 +1355,8 @@ struct mlx5_dev_ctx_shared * return -rte_errno; } config->dv_xmeta_en = tmp; + } else if (strcmp(MLX5_LACP_BY_USER, key) == 0) { + config->lacp_by_user = !!tmp; } else if (strcmp(MLX5_MR_EXT_MEMSEG_EN, key) == 0) { config->mr_ext_memseg_en = !!tmp; } else if (strcmp(MLX5_MAX_DUMP_FILES_NUM, key) == 0) { @@ -1419,6 +1424,7 @@ struct mlx5_dev_ctx_shared * MLX5_DV_ESW_EN, MLX5_DV_FLOW_EN, MLX5_DV_XMETA_EN, + MLX5_LACP_BY_USER, MLX5_MR_EXT_MEMSEG_EN, MLX5_REPRESENTOR, MLX5_MAX_DUMP_FILES_NUM, diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 93bde5a..46e66eb 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -210,6 +210,8 @@ struct mlx5_dev_config { unsigned int dv_esw_en:1; /* Enable E-Switch DV flow. */ unsigned int dv_flow_en:1; /* Enable DV flow. */ unsigned int dv_xmeta_en:2; /* Enable extensive flow metadata. */ + unsigned int lacp_by_user:1; + /* Enable user to manage LACP traffic. */ unsigned int swp:1; /* Tx generic tunnel checksum and TSO offload. */ unsigned int devx:1; /* Whether devx interface is available or not. */ unsigned int dest_tir:1; /* Whether advanced DR API is available. */ diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c index c7c2ee6..ef74609 100644 --- a/drivers/net/mlx5/mlx5_trigger.c +++ b/drivers/net/mlx5/mlx5_trigger.c @@ -464,6 +464,15 @@ " configured - only Eswitch group 0 flows are" " supported.", dev->data->port_id); } + if (!priv->config.lacp_by_user && priv->pf_bond >= 0) { + ret = mlx5_flow_lacp_miss(dev); + if (ret) + DRV_LOG(INFO, "port %u LACP rule cannot be created - " + "forward LACP to kernel.", dev->data->port_id); + else + DRV_LOG(INFO, "LACP traffic will be missed in port %u." + , dev->data->port_id); + } if (priv->isolated) return 0; if (dev->data->promiscuous) { -- 1.8.3.1