From patchwork Tue Aug 25 13:58:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 1351087 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.a=rsa-sha256 header.s=selector1 header.b=FxFOYjgY; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BbVxl74Y5z9sTN for ; Wed, 26 Aug 2020 00:00:27 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726630AbgHYOAA (ORCPT ); Tue, 25 Aug 2020 10:00:00 -0400 Received: from mail-eopbgr80071.outbound.protection.outlook.com ([40.107.8.71]:60483 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726432AbgHYN7I (ORCPT ); Tue, 25 Aug 2020 09:59:08 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fbpSwMzeX7Lri9OwM7cGfOVuatBWzMX5POK0WixtFnps0DI52e5uY8QJ1FaEXDWbq9REekEid+Mo0Hr3W00nRiVhLC+UGdq00ny3/l4+/83B6v0xWesVRuCHv2zR7Vp1Hyj64S7NYMOjxgtsbc46Hl/U53D0UaGW/H2ocTAR6QRyK+9KfurURytfXpvgQX2GamONwLA6TM2/1e4thi1FmuO3Z0qoIwWRBCr9CgMNqiBr0uGz7jVtbQfVPXFiA6NdZhNYcbTDTTYRS/kjnCiqpoCgtKeiZxascPZMSYf6yjwcYbLEZEW5YQb9SYuwBC2Xu9Mx0uzzFZ6YJV0sRZ2NlQ== 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=WvkU8vjx/B/j1i27s0r0IqbNH323qdEnByiZ5k4+B4M=; b=F+/Ar6JUxScxp3lblp5eecI/C9D9jf2lrmR0+YHlrlggz/LxHDaJFhyYfYxkDdzzsQRmuBBcUNQk2ycWlSowyZeKQvqBoOHEajHug0uKaiRM2k+dtNKTTp5fOkoyfdo7CjDn4FkzRGX/LNstcHVoALJxt8bKpTpmXYy7ajU9jAqdYgVZ2ak7LzqfX82SZ1eGpXDgL4ZLodCcLjQAkJP3CRJ3e8z2o8pVDHpYT6UlaqMvlfn2PG4ZpsLYQkRUrcCx+84pzX732BaULimhhq+Zp+kFVgFuRIby4JJ9/7U2vtRScvE7cS59Va+8yMEsxc1eLPV3AUG16p4SfhhbEWebrw== 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=WvkU8vjx/B/j1i27s0r0IqbNH323qdEnByiZ5k4+B4M=; b=FxFOYjgYZgGd06aAXfDjZHyexW0icfb3aOcN1ZSi2pZfOySEbPRi4w7cMj1pfXGsXDqMI6YnmyLI0Ax9H+IGimrkRlqQiCKKqilamUhO2qygVcZcbae17cVUxkeDjx2ITz3/4boAdhx/qFzFsll1AWs4ifht9RWmVfsarI/ljnA= Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none;davemloft.net; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM0PR0502MB3649.eurprd05.prod.outlook.com (2603:10a6:208:22::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.25; Tue, 25 Aug 2020 13:58:59 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::5038:5c70:6fef:90a6]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::5038:5c70:6fef:90a6%5]) with mapi id 15.20.3305.026; Tue, 25 Aug 2020 13:58:59 +0000 From: Parav Pandit To: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org Cc: roid@mellanox.com, saeedm@mellanox.com, Parav Pandit , Jiri Pirko Subject: [PATCH net-next 1/3] devlink: Add comment block for missing port attributes Date: Tue, 25 Aug 2020 16:58:37 +0300 Message-Id: <20200825135839.106796-2-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200825135839.106796-1-parav@mellanox.com> References: <20200825135839.106796-1-parav@mellanox.com> X-ClientProxiedBy: AM0PR10CA0048.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::28) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from c-235-9-1-005.mtl.labs.mlnx (94.188.199.18) by AM0PR10CA0048.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.25 via Frontend Transport; Tue, 25 Aug 2020 13:58:57 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [94.188.199.18] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 20870688-9bae-4e95-eedf-08d848ff02fb X-MS-TrafficTypeDiagnostic: AM0PR0502MB3649: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr,ExtFwd X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rEOMb9koDk/avB0gWxi0Jc2zsLm+lHyOCnhc9CsFxt7V4L6fBE/d0x341JDOSdNw9eI2zv8fw5LwMb8FNek0FT/UpgAi95OvBpXKLtHXx/LMvBZbt+/TEvmXzooou8uG6LsccN/zVxZlNZQCakL7zCqf71J3AOZrZ6h2uLoJOFajdc0T88zJqJizyyzWy8nA9nNfRWOjqmkWd5qSfSNqng3Dgsf70KSY5UKszitB0gDTbcvpmwpi3Oy4ZjLGTeTcdZj+g7E7nnMLCNnTbn9EVQmJF+3oFPxikwJBazdNuijtTEClGjZ2afD2Y9YT9kZk2/VqCTzoJhRoD6afqHHRvw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR05MB4866.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(346002)(366004)(376002)(136003)(396003)(6506007)(6666004)(956004)(86362001)(36756003)(8936002)(54906003)(83380400001)(5660300002)(316002)(8676002)(4326008)(52116002)(6486002)(4744005)(6512007)(1076003)(478600001)(2906002)(2616005)(66946007)(26005)(186003)(66476007)(66556008)(16526019);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: x4erY+bE52wu2+po+ZRkWiej20YMle6kRJui1A2SdKkglPkL3Dq5IF6eF/Z799Dj5hAYbDEgG7WwTLXmG9hlGcRxJ/NoAoyGZ5/VYSifUrhWFHKeMitbl1ahcRsH3mT0ll7kEakX67lYOFrzjnZf0FoA7puuxdDz+81/1adBy35JXz6dVipyIz85Vk+FcBRCSBIZOOHg9Kg4wbTGIwwJG96V4Zkm0Vnlti5bUl+DUAMa95TBm7Z1wf1gr3W1k643uFIDvbKS46NL7H44PQ7NtXMQTX1acAaeMGbe4McdIYIF024C89wU9RpXexgz3sKA1RZ8FixR+OWoG9j1bpdxT1vF929yRFJI84fCII75R/Hl+nZC4rNx7/jbkn6BmYD5r9bd8lqQRTJmiHCeqb6kjWS5+HuXlr39BTlTkr9viSDg1Mk6mWoI42q2qVPSG5j45JNLTmuPRmW80ZRpGs8kd5n7JkQOfpn9AAGZAt5As/jt9b8KmkTQHyHkxoBQ4B7FmXPn2KQDCBlxUOaIuSq9urKUxxBCWKh1dtQXsnlFb5oRJlN9IXCN/TUKhBGjISymmw4BcTp4OPfIcD21fbVEs6/wAB1PGiXJ+OCdib0g9zdrMVEOWh3kSOEJjPYm6mK83fQ3SYzVG8pWrtv85r8PtA== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20870688-9bae-4e95-eedf-08d848ff02fb X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2020 13:58:57.8929 (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: DnqDEoiSwk7hXgX8YrJq8UstKbWlb8ksvQdHvZLX8f0D1LGfNt4WKymdIf8nMqKKIfiXC/GFeSSpPeNTyyYjDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3649 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add comment block for physical, PF and VF port attributes. Signed-off-by: Parav Pandit Reviewed-by: Jiri Pirko Reviewed-by: Roi Dayan --- include/net/devlink.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/net/devlink.h b/include/net/devlink.h index 8f3c8a443238..3c7ba3e1f490 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -73,6 +73,9 @@ struct devlink_port_pci_vf_attrs { * @splittable: indicates if the port can be split. * @lanes: maximum number of lanes the port supports. 0 value is not passed to netlink. * @switch_id: if the port is part of switch, this is buffer with ID, otherwise this is NULL + * @phys: physical port attributes + * @pci_pf: PCI PF port attributes + * @pci_vf: PCI VF port attributes */ struct devlink_port_attrs { u8 split:1, From patchwork Tue Aug 25 13:58:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 1351090 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.a=rsa-sha256 header.s=selector1 header.b=hWGBiuaX; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BbW1p4DgCz9sTg for ; Wed, 26 Aug 2020 00:03:58 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726747AbgHYODt (ORCPT ); Tue, 25 Aug 2020 10:03:49 -0400 Received: from mail-eopbgr80071.outbound.protection.outlook.com ([40.107.8.71]:60483 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726473AbgHYN71 (ORCPT ); Tue, 25 Aug 2020 09:59:27 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WdUWMBNDC9QatA3CiRcAUeu2BKn67rnhQHc43Du6EB8Nb1kW+tmP5gaKla40RoR78cb2Yy8SaqhT7PB/SGAdUEaq+88oaKjqG3aV/di+QoQFnNfBtIz7QaUgarnXraOd+NMN+wz77xXf/+MaiM2cgdnJQmreNvNejIor2JNhgaYaTXfYxPoRJjj4+q+NjeqyEEuKflwUanm609OcUWlOfPJpxuQE7wDhv/XN2uELN/aCs78ewz5eWZhvTYN08Nu2HcT3SFkP6GC7wpcuu1Ky35/PIyDTNTpSld3vqSpAf4FLPpdRWt+ZjS0fVzokPqDvQU5XPJMnhEXOUm/uHKcyNQ== 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=4Z1Jppa0dK038+xxPQERpTNBmBezDbhHQPdlQ2lSkhA=; b=IzSzHWxFDoWTXXV9Vfpp6eS/b6uOC9/orNPu1OBcwytVkNkuF8ozsQEyS65kk1Sf/XOtGWH4EYy8m/K1WK8ofqT9fxUTtYJOt/QCytqBaMXBjWZ6V4rYf9HoVnHEtypbikxD5IbihOZG6wjau8jw8jVVmNFWVNGxf6HPQi7FLQPpNRZ/GGndgu6VKMJs4VYBdN389OsRRTioeUKQeW5faeG44v78dJnTY/dD+ah1/cshAGoqxL4JsiATJdoj6zRl5JeQLhTimQeVE2RAFcW+7i7slvx5V807VAAXf0W41OzLHpD6/Fppzn3W8ZtViH9T4dkegEFdGEH/3nOL246/IQ== 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=4Z1Jppa0dK038+xxPQERpTNBmBezDbhHQPdlQ2lSkhA=; b=hWGBiuaXg8RlX66eYQXrKT/xO9vW8jtbWXfre+5X1/50+EJh2G2MOOJlnKE+pRSiAkMaHYQ6tUoKMeBVpS0xwazsO8r1g7h530tkcFRKB8p1z84U8s8k3brBd0dgZiqB217cRWeCewsHCJxTNqdkbzUFfXEnGrDh7fZixE2FVMo= Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none;davemloft.net; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM0PR0502MB3649.eurprd05.prod.outlook.com (2603:10a6:208:22::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.25; Tue, 25 Aug 2020 13:58:59 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::5038:5c70:6fef:90a6]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::5038:5c70:6fef:90a6%5]) with mapi id 15.20.3305.026; Tue, 25 Aug 2020 13:58:59 +0000 From: Parav Pandit To: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org Cc: roid@mellanox.com, saeedm@mellanox.com, Parav Pandit , Jiri Pirko Subject: [PATCH net-next 2/3] devlink: Consider other controller while building phys_port_name Date: Tue, 25 Aug 2020 16:58:38 +0300 Message-Id: <20200825135839.106796-3-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200825135839.106796-1-parav@mellanox.com> References: <20200825135839.106796-1-parav@mellanox.com> X-ClientProxiedBy: AM0PR10CA0048.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::28) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from c-235-9-1-005.mtl.labs.mlnx (94.188.199.18) by AM0PR10CA0048.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.25 via Frontend Transport; Tue, 25 Aug 2020 13:58:58 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [94.188.199.18] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d4159f1c-55b0-4904-0afe-08d848ff0395 X-MS-TrafficTypeDiagnostic: AM0PR0502MB3649: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr,ExtFwd X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3w62JuNuGXRYO15XcRX0xCiicj+gqIXU2GdLx43E/8epjbdI7mOZ1XANy1tXs51YeNLEuRCXf5B/caAlrlJoKdHnQrqPOoNE+GErw/K/vKwfI1sKAqtELsPXl5stjv7i/FFBonYPSaM6dpr+KuVMsM16OftJVJPqYNkk+hTR0EvkMsVy6FPgU+xUeibcUqSWN7hrciKmC3jtwMDvkIPPHhTF4/Nlo6qalvJGGc30OyvDJinJt5usA+L+CcZX6SF+yOeZGf9P0A6bSjhnbGXZq3IhZbAWhZrzs0B+HMRYNPngbnFrq6HJiAMAYDLOFsOhG4oLD0exqKi2CflQ14Ywfg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR05MB4866.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(346002)(366004)(376002)(136003)(396003)(6506007)(6666004)(956004)(86362001)(36756003)(8936002)(54906003)(83380400001)(5660300002)(316002)(8676002)(4326008)(52116002)(6486002)(6512007)(1076003)(478600001)(2906002)(2616005)(66946007)(26005)(186003)(66476007)(66556008)(16526019);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: PWRPebJaLUgYFuHKerC2th89aXa515IyHSVtfj7LyKSHvWro61dxWNrhxx6Go2PSrTfO5V7RMHGLy4XB20/TOFFD3rVqauP3aA84r0leCXi4FXyx0VCJ0MbvSTSSJMbD7D8240nelUolTx/x9xU56N5TivK5dADcedOUvhQVjRgkD3Y21YcsuQpnBcD+XQQVdRxAx+5WdM4wOcN2Z1oFygeUytoIKwBrbaJR9SyORCtZfYZDprlUazwSb7snHyBSxDZn4BrDfh1qEGR4Jh5CBgu8/oOvAqI6nUagfalmP08AW7x7f9VUBUFe3z7yhRfMW70Gb0kYup7SHM2a0P5xRwV8Iou4QdcF0ltLWHhzqHLqlAUtL/dHkmjIsizfG1RaJCdEYnLlpsW6BzT+LQ5b5pAneWbfwWt4KroyPk0TW2+vmuOhbSA3ZwijEJNJeW8Oui3QPY3UsPJ3el67b9q3kj6BxzQwEtst2p6CVH3TZWvRrAc4yAQRbc1euptG+T+KFHW7MrpvyiZgpre1txyIvJzYCKUKXAaK2ecok6f3Qa4Fnsyntk17MBAPmEDrQ2N9I4gPnZZtAoyuVFCmcVTAuWN0UspOXa0fSgQ+VQc5nLfmR+C1CZwaMmN9GFmrk0YfFPHE7C2okVW6pBHu49LOqg== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: d4159f1c-55b0-4904-0afe-08d848ff0395 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2020 13:58:58.9103 (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: lecJsoLrIauwvh419cwETO/H/h0kCoR25+CAJ9qaeYWjDqCmVMMK81x+8Z6xBCTj/E0petArit2RnYCf3POJTQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3649 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org A devlink port may be for a controller consist of PCI device. A devlink instance holds ports of two types of controllers. (1) controller discovered on same system where eswitch resides This is the case where PCI PF/VF of a controller and devlink eswitch instance both are located on a single system. (2) controller located on other system. This is the case where a controller is located in one system and its devlink eswitch ports are located in a different system. In this case devlink instance of the eswitch only have access to ports of the controller. When a devlink eswitch instance serves the devlink ports of both controllers together, PCI PF/VF numbers may overlap. Due to this a unique phys_port_name cannot be constructed. To differentiate ports of a controller external/remote to the devlink instance, consider external controller number while forming the phys_port_name. Also return this optional controller number of the port via netlink interface. An example output: $ devlink port show pci/0000:00:08.0/2 pci/0000:00:08.0/2: type eth netdev eth7 controller 0 flavour pcivf pfnum 0 vfnum 1 splittable false function: hw_addr 00:00:00:00:00:00 $ devlink port show -jp pci/0000:00:08.0/2 { "port": { "pci/0000:00:08.0/1": { "type": "eth", "netdev": "eth7", "controller": 0, "flavour": "pcivf", "pfnum": 0, "vfnum": 1, "splittable": false, "function": { "hw_addr": "00:00:00:00:00:00" } } } } An example representor netdev udev name consist of controller annotation for external controller with controller number = 0, for PF 0 and VF 1: udevadm test-builtin net_id /sys/class/net/eth7 Using default interface naming scheme 'v245'. ID_NET_NAMING_SCHEME=v245 ID_NET_NAME_PATH=enp0s8f0nc0pf0vf1 Unload module index Unloaded link configuration context. Signed-off-by: Parav Pandit Reviewed-by: Jiri Pirko Reviewed-by: Roi Dayan --- include/net/devlink.h | 7 ++++++- include/uapi/linux/devlink.h | 1 + net/core/devlink.c | 29 +++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/include/net/devlink.h b/include/net/devlink.h index 3c7ba3e1f490..612f107b94ab 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -71,16 +71,20 @@ struct devlink_port_pci_vf_attrs { * @flavour: flavour of the port * @split: indicates if this is split port * @splittable: indicates if the port can be split. + * @controller_valid: indicates if the controller_num field is valid. * @lanes: maximum number of lanes the port supports. 0 value is not passed to netlink. * @switch_id: if the port is part of switch, this is buffer with ID, otherwise this is NULL * @phys: physical port attributes * @pci_pf: PCI PF port attributes * @pci_vf: PCI VF port attributes + * @controller_num: Controller number if a port is for other controller. */ struct devlink_port_attrs { u8 split:1, - splittable:1; + splittable:1, + controller_valid:1; u32 lanes; + u32 controller_num; enum devlink_port_flavour flavour; struct netdev_phys_item_id switch_id; union { @@ -1206,6 +1210,7 @@ void devlink_port_type_ib_set(struct devlink_port *devlink_port, void devlink_port_type_clear(struct devlink_port *devlink_port); void devlink_port_attrs_set(struct devlink_port *devlink_port, struct devlink_port_attrs *devlink_port_attrs); +void devlink_port_attrs_controller_set(struct devlink_port *devlink_port, u32 controller); void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u16 pf); void devlink_port_attrs_pci_vf_set(struct devlink_port *devlink_port, u16 pf, u16 vf); diff --git a/include/uapi/linux/devlink.h b/include/uapi/linux/devlink.h index cfef4245ea5a..886cddf6a0a9 100644 --- a/include/uapi/linux/devlink.h +++ b/include/uapi/linux/devlink.h @@ -458,6 +458,7 @@ enum devlink_attr { DEVLINK_ATTR_PORT_LANES, /* u32 */ DEVLINK_ATTR_PORT_SPLITTABLE, /* u8 */ + DEVLINK_ATTR_PORT_CONTROLLER_NUMBER, /* u32 */ /* add new attributes above here, update the policy in devlink.c */ __DEVLINK_ATTR_MAX, diff --git a/net/core/devlink.c b/net/core/devlink.c index 58c8bb07fa19..b9b71f119446 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -553,6 +553,11 @@ static int devlink_nl_port_attrs_put(struct sk_buff *msg, default: break; } + + if (attrs->controller_valid && + nla_put_u32(msg, DEVLINK_ATTR_PORT_CONTROLLER_NUMBER, attrs->controller_num)) + return -EMSGSIZE; + return 0; } @@ -7711,6 +7716,22 @@ void devlink_port_attrs_set(struct devlink_port *devlink_port, } EXPORT_SYMBOL_GPL(devlink_port_attrs_set); +/** + * devlink_port_attrs_controller_set - Set external controller identifier + * + * @devlink_port: devlink port + * @controller: associated controller number for the devlink port instance + * devlink_port_attrs_controller_set() Sets the external controller identifier + * for the port. This should be called by the driver for a devlink port which is associated + * with the controller which is external to the devlink instance. + */ +void devlink_port_attrs_controller_set(struct devlink_port *devlink_port, u32 controller) +{ + devlink_port->attrs.controller_valid = true; + devlink_port->attrs.controller_num = controller; +} +EXPORT_SYMBOL_GPL(devlink_port_attrs_controller_set); + /** * devlink_port_attrs_pci_pf_set - Set PCI PF port attributes * @@ -7762,6 +7783,14 @@ static int __devlink_port_phys_port_name_get(struct devlink_port *devlink_port, if (!devlink_port->attrs_set) return -EOPNOTSUPP; + if (attrs->controller_valid) { + n = snprintf(name, len, "c%u", attrs->controller_num); + if (n >= len) + return -EINVAL; + len -= n; + name += n; + } + switch (attrs->flavour) { case DEVLINK_PORT_FLAVOUR_PHYSICAL: case DEVLINK_PORT_FLAVOUR_VIRTUAL: From patchwork Tue Aug 25 13:58:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 1351089 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.a=rsa-sha256 header.s=selector1 header.b=MrnDsKfI; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BbVzq59xZz9sTK for ; Wed, 26 Aug 2020 00:02:15 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726158AbgHYOB7 (ORCPT ); Tue, 25 Aug 2020 10:01:59 -0400 Received: from mail-db8eur05on2088.outbound.protection.outlook.com ([40.107.20.88]:29408 "EHLO EUR05-DB8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726578AbgHYN77 (ORCPT ); Tue, 25 Aug 2020 09:59:59 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OFG696tWOnkVCaQgGQGJo/UdCHhT5W3P8gvCrqgh7dCCOtSXT6OKerStI29WrZGsNStOVux61BoNaBcATHPqn1kuevzZ5p2PqKaJJdoaH4Bwy1efcsXKWtOHni2hHPFMt+fiRpPOXaUSRmAwCMfDxZbCQSBMSktqzFjr4wj29izA97CM8aeBIdO7JbQCp8FVaGZrpwYK3MhyC0grwk2a57RnVwLeqa5WQI23McQHsUpkvd4KLzhcB4M7eySJaqy8XcClHo7LpHfAoW34r5m11JMbQhQFvyu+NnHBaRpS5Y9I4/HjfyBPyPpd+/gvAXUxk2+LM3t2UrFffiGgyGmJKQ== 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=S+wKe8tCDxP/yn/NxPVg+1s9/aG+ZBIVjbrZ/Qr7LnY=; b=OTeiTl1pJ3fbkuL11YIApQtDoP0cohF+wAZnzgr9M0Uwsi9awzF1d/cknnT7bp8gCqAFonejzLS/EsMDGlQ364HSXPqkx4Kc6KvZTOhdXxf3F5CSnZfSRN6szf3X1CURCCvY0goIQWA9oVxJXbtr7P7qZZIzt1IRYB7/eIRfGGIHoLI2g4Cm3jv/EMQVWhFB5o11qxYd7Qw9w8hNvNbbpd2ST2sHKQJLVMTfcWb1jUabVoXa4GDYdI0vZe40zOihYornV8sjCOyNyOUypDyCfZt7hmdSc7VeygC5jZr4r2TQT/zvzxrEppHD0a4GWBghjM5FLtmhr9dKT17bzQ75rQ== 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=S+wKe8tCDxP/yn/NxPVg+1s9/aG+ZBIVjbrZ/Qr7LnY=; b=MrnDsKfIz2gQ419xnNYaITqWm5XHmYr/YZDFlVFjmlKklvaW9lcY3UPVrh1ymB7GvezzKTSWE6KUpYj5RelnQk3np21fuJOZSCOKeWOcYMGkxLovH2775nn6XacvooN9Vlm/Itc1JLUcK9LCQw+5dN7eq31LcBzy4LdKNLVtlsM= Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none;davemloft.net; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM0PR0502MB3649.eurprd05.prod.outlook.com (2603:10a6:208:22::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.25; Tue, 25 Aug 2020 13:59:00 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::5038:5c70:6fef:90a6]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::5038:5c70:6fef:90a6%5]) with mapi id 15.20.3305.026; Tue, 25 Aug 2020 13:59:00 +0000 From: Parav Pandit To: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org Cc: roid@mellanox.com, saeedm@mellanox.com, Parav Pandit , Jiri Pirko Subject: [PATCH net-next 3/3] net/mlx5: E-switch, Set controller attribute for PCI PF and VF ports Date: Tue, 25 Aug 2020 16:58:39 +0300 Message-Id: <20200825135839.106796-4-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200825135839.106796-1-parav@mellanox.com> References: <20200825135839.106796-1-parav@mellanox.com> X-ClientProxiedBy: AM0PR10CA0048.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::28) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from c-235-9-1-005.mtl.labs.mlnx (94.188.199.18) by AM0PR10CA0048.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.25 via Frontend Transport; Tue, 25 Aug 2020 13:58:59 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [94.188.199.18] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c3f361c3-f2ce-4c0e-9f67-08d848ff043e X-MS-TrafficTypeDiagnostic: AM0PR0502MB3649: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr,ExtFwd X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:457; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WQvbnw1yXQBzkoc18l+1SUavfijRugmnBJtpkoxw6W10vSy+hiH79EP67DBrkJpeoUAc6aRonqCWKv9UPLPeqOFQS3+Cs1TuNJQmjvUcie719l8u17XLoJwL8Sti1X9qHHIFXN+7mmeMknJ9slD8CjqYF6OlHA935VWggcMkvavmHKz1aK+mKtenh6++uWmEanN+ItZBu62IAO2rzTpFwGrMjXIad1n1ciHofjt0I3HoTEAj+a8k5ov3cj9NWPmtxNr7WBA/Z/f6I8Cuz2OCWB22/2AsrFsFxI40q1Fcu7HGV8MN2s7sFKvqLtiS3zAobX76DfXRhqFejzZnVH3OkQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR05MB4866.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(346002)(366004)(376002)(136003)(396003)(6506007)(6666004)(956004)(86362001)(36756003)(8936002)(54906003)(83380400001)(5660300002)(316002)(8676002)(4326008)(52116002)(6486002)(6512007)(1076003)(478600001)(2906002)(2616005)(66946007)(26005)(186003)(66476007)(66556008)(16526019);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: YMVhs0GQD57DgjrXr+5Ts5SyhgXu3lE1SI6svbYgd19vSDgYZg3B25S/3P6oqKE6NFtsETbz3wRYXWeC/gmzf1U3WVzuXbplIixLD75b9jy4NgHtTtVi+yqr7muNAZU0gUayG2T1AyMt4BOXW7sxmJ5aJPgo8rEsdfd+QIrumLDPe3rELjzFkLp05uPtnDbFAL+5xn6eGaafSKovsoq4OklcQzkexjJCr7yLOyyzqAWYPWBom2+Tut9nO1QDrU3MrVKGfrXheuJ0u5JiOm9WH5XXPoGs028e9RQcO1nOYLq+9lM30F9fu3O8CaK1Kms4XJaYp5XlSNek8n8R2f0HjxK6PeerRX9uTpKFMYy5uGNKpaB0hDoixjzVTAuXEuOCEU8PjU9Mth84Iw+u8BF/9gLpvk6avt4Xyv4qu0QWCf12EnppT2brQdPKYazsSxMeuN7Z1N+45d9I1HQZYKGPbvlPDg2Q41uFZHtW4C0AuegvlMXrhrb7Bvdelcmm1MvrANNQ7xDOHu1xbZ2oSome1dXrL5/876NpdbEnR62LZHw91qiVZ4oV+z+mdk9KYzUzt2VKeT2MyyjPRPJ12//twY528kaF3DbzibHIWu/8wgwFZmQgj2ACL3suas4JZv8+fXK60E3J98p+snoayfQBOg== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3f361c3-f2ce-4c0e-9f67-08d848ff043e X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2020 13:58:59.9757 (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: cNLwWTomNzX586u9E+WAQBqY+kDG0meayT/s4V9sX/NiKjmXzUbJTbryMDoKD19vprViOmznLVHDLN5w30VyJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3649 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org ECPF supports one external host controller. When a port belongs to an external host controller, setup external controller port attribute. An example of a VF port of a ECPF supporting for an external controller: $ devlink port show pci/0000:00:08.0/2 pci/0000:00:08.0/2: type eth netdev eth7 controller 0 flavour pcivf pfnum 0 vfnum 1 splittable false function: hw_addr 00:00:00:00:00:00 $ devlink port show -jp pci/0000:00:08.0/2 { "port": { "pci/0000:00:08.0/2": { "type": "eth", "netdev": "eth7", "controller": 0, "flavour": "pcivf", "pfnum": 0, "vfnum": 1, "splittable": false, "function": { "hw_addr": "00:00:00:00:00:00" } } } } An example representor netdev udev name consist of controller annotation for external controller with controller number = 0, for PF 0 and VF 1: $ udevadm test-builtin net_id /sys/class/net/eth7 Using default interface naming scheme 'v245'. ID_NET_NAMING_SCHEME=v245 ID_NET_NAME_PATH=enp0s8f0nc0pf0vf1 Unload module index Unloaded link configuration context. Signed-off-by: Parav Pandit Reviewed-by: Jiri Pirko Reviewed-by: Roi Dayan --- .../net/ethernet/mellanox/mlx5/core/en_rep.c | 5 +++++ .../net/ethernet/mellanox/mlx5/core/eswitch.h | 1 + .../mellanox/mlx5/core/eswitch_offloads.c | 21 +++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c index e13e5d1b3eae..9c79d9b84ebd 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c @@ -1210,6 +1210,7 @@ is_devlink_port_supported(const struct mlx5_core_dev *dev, static int register_devlink_port(struct mlx5_core_dev *dev, struct mlx5e_rep_priv *rpriv) { + struct mlx5_esw_offload *offloads = &dev->priv.eswitch->offloads; struct devlink *devlink = priv_to_devlink(dev); struct mlx5_eswitch_rep *rep = rpriv->rep; struct devlink_port_attrs attrs = {}; @@ -1232,10 +1233,14 @@ static int register_devlink_port(struct mlx5_core_dev *dev, } else if (rep->vport == MLX5_VPORT_PF) { memcpy(rpriv->dl_port.attrs.switch_id.id, &ppid.id[0], ppid.id_len); rpriv->dl_port.attrs.switch_id.id_len = ppid.id_len; + if (mlx5_core_is_ecpf_esw_manager(dev)) + devlink_port_attrs_controller_set(&rpriv->dl_port, offloads->host_number); devlink_port_attrs_pci_pf_set(&rpriv->dl_port, pfnum); } else if (mlx5_eswitch_is_vf_vport(dev->priv.eswitch, rpriv->rep->vport)) { memcpy(rpriv->dl_port.attrs.switch_id.id, &ppid.id[0], ppid.id_len); rpriv->dl_port.attrs.switch_id.id_len = ppid.id_len; + if (mlx5_core_is_ecpf_esw_manager(dev)) + devlink_port_attrs_controller_set(&rpriv->dl_port, offloads->host_number); devlink_port_attrs_pci_vf_set(&rpriv->dl_port, pfnum, rep->vport - 1); } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h index 867d8120b8a5..7455fbd21a0a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h @@ -217,6 +217,7 @@ struct mlx5_esw_offload { atomic64_t num_flows; enum devlink_eswitch_encap_mode encap; struct ida vport_metadata_ida; + unsigned int host_number; /* ECPF supports one external host */ }; /* E-Switch MC FDB table hash node */ diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c index d2516922d867..56b42ab66f3b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c @@ -2110,6 +2110,23 @@ int mlx5_esw_funcs_changed_handler(struct notifier_block *nb, unsigned long type return NOTIFY_OK; } +static int mlx5_esw_host_number_init(struct mlx5_eswitch *esw) +{ + const u32 *query_host_out; + + if (!mlx5_core_is_ecpf_esw_manager(esw->dev)) + return 0; + + query_host_out = mlx5_esw_query_functions(esw->dev); + if (IS_ERR(query_host_out)) + return PTR_ERR(query_host_out); + + esw->offloads.host_number = MLX5_GET(query_esw_functions_out, query_host_out, + host_params_context.host_number); + kvfree(query_host_out); + return 0; +} + int esw_offloads_enable(struct mlx5_eswitch *esw) { struct mlx5_vport *vport; @@ -2124,6 +2141,10 @@ int esw_offloads_enable(struct mlx5_eswitch *esw) mutex_init(&esw->offloads.termtbl_mutex); mlx5_rdma_enable_roce(esw->dev); + err = mlx5_esw_host_number_init(esw); + if (err) + goto err_vport_metadata; + err = esw_set_passing_vport_metadata(esw, true); if (err) goto err_vport_metadata; From patchwork Tue Sep 8 14:42:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 1359781 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.a=rsa-sha256 header.s=selector1 header.b=P1AQCfIM; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4Bm7k938Wtz9sSP for ; Wed, 9 Sep 2020 01:05:21 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729992AbgIHPFM (ORCPT ); Tue, 8 Sep 2020 11:05:12 -0400 Received: from mail-db8eur05on2046.outbound.protection.outlook.com ([40.107.20.46]:7648 "EHLO EUR05-DB8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729779AbgIHPEd (ORCPT ); Tue, 8 Sep 2020 11:04:33 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CCfKUDG/X2FJT1PgY8A8+oJooJFXnNUdn0W9u6LFQ9R/MsgLT9RLDhuiE/qg0kGiWP7qqJ/DEFASi5URHWch7cfrAO7L2+UJsnIXukH1rW50vK1ygmwQpaMz1nEUG/UGJwO0ok3SqMyag04Mavauz7CWEyxRrgSgv1v8wOaTzv7WYrWkWuasXn6f6xqyGidX6fJlEmaiPjtDwuFkjWOYAQdCgj8w9FOJL2R3mJtzE8+Es9A+2cXc2Zbz6d2o9lFCy7OX1bbId7uc+Y1+Oza1c5a/kTxxsmhQcygJavw+ZiSI2bjBgtHRh/PJQlRUN1V61HuZ/tMUKfqghiHUOl8E7Q== 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=U7gqZAl2HSpIB7nRQ94eh+jmaK9JClNcuBtRTmPhfa0=; b=bxCB+Pj1XJcGzmwNZMbmBT7dxbr9Tr47DmX3LVbb/4bT2Rn1NNXzzThWKCwUfEJ+fgPMIVgVLYw0nOZNDwz5zAqOlH83NL6NFBNhlfi1s3fuXNQFlx0H97guP9+yJncBuMBnzkUSLdwlLdtwxViHwVjwhkrnA5SHZUT3XeIC4Fa14DyJQ3tYGZkgb0HQQjMPWO12eFCkElaC98oCYy+o0ZP7YC8qsksS47V0MH1ymiJ+okbfz8W7wPVOAwHPMBNEvi/Rt6JqkdRrhUzbYxyLVNpRfEHVDEiECoC5X5J6BDvAYgobISsjX9WqqAlp3uF9/5sgrkKGzwezMajlhSLfPg== 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=U7gqZAl2HSpIB7nRQ94eh+jmaK9JClNcuBtRTmPhfa0=; b=P1AQCfIMzNeA9phY9FB3QsOvD3qVrzDooolEJ1K29J9xnvBPPj2/q0pm0DMx0XAGwEu71aFdHb1RJzy0OtustCk7r4brMg7SJKsqpt6MZIvBOkzye7J0EBmsN6JAuqXAxbnP7hJa9ZKD8dEoItQi0hkeFzwDeHQ5Amrw6ZKFGw4= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM0PR05MB4353.eurprd05.prod.outlook.com (2603:10a6:208:67::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.15; Tue, 8 Sep 2020 14:43:16 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::349f:cbf4:ddcf:ce18]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::349f:cbf4:ddcf:ce18%3]) with mapi id 15.20.3348.019; Tue, 8 Sep 2020 14:43:16 +0000 From: Parav Pandit To: kuba@kernel.org, davem@davemloft.net, netdev@vger.kernel.org Cc: Parav Pandit , Jiri Pirko Subject: [PATCH net-next v2 4/6] devlink: Introduce external controller flag Date: Tue, 8 Sep 2020 17:42:39 +0300 Message-Id: <20200908144241.21673-5-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200908144241.21673-1-parav@mellanox.com> References: <20200825135839.106796-1-parav@mellanox.com> <20200908144241.21673-1-parav@mellanox.com> X-ClientProxiedBy: SA9PR11CA0020.namprd11.prod.outlook.com (2603:10b6:806:6e::25) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SA9PR11CA0020.namprd11.prod.outlook.com (2603:10b6:806:6e::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16 via Frontend Transport; Tue, 8 Sep 2020 14:43:15 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d007f08c-5a52-438a-08e7-08d854058569 X-MS-TrafficTypeDiagnostic: AM0PR05MB4353: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CYu/txYx0/vo03RD9ks2XO3PoMBtZbnXkMI8Jz03pwDLbO4ZfjGn9/WWzVjH51fgRljQcUf9Q9avyBpQF3aD1cFt/A3rZTa7zVrWQNuoZL7QJZwXQF2Sqx3B3f/4UkIMP1yHVEG3tIMVLM8ksE8bTxekfJzC0ejw7AivZXyxMe37u8ufrJb8Z56ywOdUyfl5Xkei5bBEBDZBMLOpIiO6/grEeQA2nYUXWkH/98cuRWLg43zxH0U3PLmQiwOhmO+DRQkt20yrAfHf1jKh0awY10znOS63oVClt0kF4xfUC7Ki0/wJvSdtfDKKACD2hDkq X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR05MB4866.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6486002)(6666004)(498600001)(26005)(1076003)(6512007)(6506007)(86362001)(4326008)(52116002)(54906003)(5660300002)(2906002)(36756003)(66946007)(8676002)(83380400001)(66556008)(66476007)(956004)(16526019)(8936002)(2616005)(186003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 8U6nL9eK+lfkgY/EJsjMEz9QkFXUX5n6JO1k4NxbYCi6LH4eRxctMsttV2e7YbvHyA5NxI9bLNUuvfpFY+SwyWZAOSfPnuf16pDoeTmQolierm9s7YF3lw9AnemF6RW8si4IQXD3oeDMdLTuw2HqDpInq53bCc2uDyqDmzYFKaWeXiFE1GBZvvku4jGEv4IrKYOkz3+Mu6K2djKh9jeBaUw0PhOM4sDYvLcHvoGhet+fUFMQxBrzPajN++Srw5snrpVp9O3EV1NMf+uXasEJ4CB/VeUDFaj3irfGJwrpycV9vl+eAUAJBlavSL2Y9YJsujBDJpDjHEQeWPwLtmZYmARKHOUrjX/BYPwj5hhn6gPJuKefsP6tIgRCHC2PCXQMJOtPJeCPU9HkP3KmcKCIwbMLJrw7CQl8/IfTQa1TZhaLVOFUGy8OHdBTkc/tLlTHv+3QU9a8N8dMYP20d7K+FzCQO6+2+c5bz7JVOiCPOVOweIKfi/HSQFu8o5ud/SDISAHq2L4tSHzz+ELvL7WTBXb+DrOTPSR6A4eds7hhhaWBZqy/7X+9vFJWN92hLTffcy1pF2aEBR8yCAt4jws8rUBQs3nL54PcLOFLMtWsGfKby1CFV3Lo4vz+wQe6I0rITktS15sKxfa1blBkbE7PaQ== X-MS-Exchange-Transport-Forked: True X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: d007f08c-5a52-438a-08e7-08d854058569 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2020 14:43:16.7935 (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: M14skbKVqqdT3wCSISlT4rbhOhxnBx5yDdbAbSw9xwzX4cBBZY+mrU2Dv3RaEQRVRPLqXDRjFIIXk7dlY79oWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB4353 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Parav Pandit A devlink eswitch port may represent PCI PF/VF ports of a controller. A controller either located on same system or it can be an external controller located in host where such NIC is plugged in. Add the ability for driver to specify if a port is for external controller. Use such flag in the mlx5_core driver. An example of an external controller having VF1 of PF0 belong to controller 1. $ devlink port show pci/0000:06:00.0/2 pci/0000:06:00.0/2: type eth netdev ens2f0pf0vf1 flavour pcivf pfnum 0 vfnum 1 external true splittable false function: hw_addr 00:00:00:00:00:00 $ devlink port show pci/0000:06:00.0/2 -jp { "port": { "pci/0000:06:00.0/2": { "type": "eth", "netdev": "ens2f0pf0vf1", "flavour": "pcivf", "pfnum": 0, "vfnum": 1, "external": true, "splittable": false, "function": { "hw_addr": "00:00:00:00:00:00" } } } } Signed-off-by: Parav Pandit Reviewed-by: Jiri Pirko --- Changelog: v1->v2: - Addressed comments from Jiri and Jakub - New patch - Split 'external' attribute from 'external controller number'. - Merged mlx5_core driver to avoid compiliation break --- drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 6 ++++-- include/net/devlink.h | 8 ++++++-- include/uapi/linux/devlink.h | 1 + net/core/devlink.c | 12 ++++++++++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c index e13e5d1b3eae..5b3599caa007 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c @@ -1215,11 +1215,13 @@ static int register_devlink_port(struct mlx5_core_dev *dev, struct devlink_port_attrs attrs = {}; struct netdev_phys_item_id ppid = {}; unsigned int dl_port_index = 0; + bool external; u16 pfnum; if (!is_devlink_port_supported(dev, rpriv)) return 0; + external = mlx5_core_is_ecpf_esw_manager(dev); mlx5e_rep_get_port_parent_id(rpriv->netdev, &ppid); dl_port_index = mlx5_esw_vport_to_devlink_port_index(dev, rep->vport); pfnum = PCI_FUNC(dev->pdev->devfn); @@ -1232,12 +1234,12 @@ static int register_devlink_port(struct mlx5_core_dev *dev, } else if (rep->vport == MLX5_VPORT_PF) { memcpy(rpriv->dl_port.attrs.switch_id.id, &ppid.id[0], ppid.id_len); rpriv->dl_port.attrs.switch_id.id_len = ppid.id_len; - devlink_port_attrs_pci_pf_set(&rpriv->dl_port, pfnum); + devlink_port_attrs_pci_pf_set(&rpriv->dl_port, pfnum, external); } else if (mlx5_eswitch_is_vf_vport(dev->priv.eswitch, rpriv->rep->vport)) { memcpy(rpriv->dl_port.attrs.switch_id.id, &ppid.id[0], ppid.id_len); rpriv->dl_port.attrs.switch_id.id_len = ppid.id_len; devlink_port_attrs_pci_vf_set(&rpriv->dl_port, - pfnum, rep->vport - 1); + pfnum, rep->vport - 1, external); } return devlink_port_register(devlink, &rpriv->dl_port, dl_port_index); } diff --git a/include/net/devlink.h b/include/net/devlink.h index efff9274d248..2dad8c9151f4 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -60,19 +60,23 @@ struct devlink_port_phys_attrs { /** * struct devlink_port_pci_pf_attrs - devlink port's PCI PF attributes * @pf: Associated PCI PF number for this port. + * @external: when set, indicates if a port is for an external controller */ struct devlink_port_pci_pf_attrs { u16 pf; + u8 external:1; }; /** * struct devlink_port_pci_vf_attrs - devlink port's PCI VF attributes * @pf: Associated PCI PF number for this port. * @vf: Associated PCI VF for of the PCI PF for this port. + * @external: when set, indicates if a port is for an external controller */ struct devlink_port_pci_vf_attrs { u16 pf; u16 vf; + u8 external:1; }; /** @@ -1215,9 +1219,9 @@ void devlink_port_type_ib_set(struct devlink_port *devlink_port, void devlink_port_type_clear(struct devlink_port *devlink_port); void devlink_port_attrs_set(struct devlink_port *devlink_port, struct devlink_port_attrs *devlink_port_attrs); -void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u16 pf); +void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u16 pf, bool external); void devlink_port_attrs_pci_vf_set(struct devlink_port *devlink_port, - u16 pf, u16 vf); + u16 pf, u16 vf, bool external); int devlink_sb_register(struct devlink *devlink, unsigned int sb_index, u32 size, u16 ingress_pools_count, u16 egress_pools_count, u16 ingress_tc_count, diff --git a/include/uapi/linux/devlink.h b/include/uapi/linux/devlink.h index cfef4245ea5a..40823ed7e05a 100644 --- a/include/uapi/linux/devlink.h +++ b/include/uapi/linux/devlink.h @@ -458,6 +458,7 @@ enum devlink_attr { DEVLINK_ATTR_PORT_LANES, /* u32 */ DEVLINK_ATTR_PORT_SPLITTABLE, /* u8 */ + DEVLINK_ATTR_PORT_EXTERNAL, /* u8 */ /* add new attributes above here, update the policy in devlink.c */ __DEVLINK_ATTR_MAX, diff --git a/net/core/devlink.c b/net/core/devlink.c index 49e911c19881..6f5f85372721 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -526,6 +526,8 @@ static int devlink_nl_port_attrs_put(struct sk_buff *msg, if (nla_put_u16(msg, DEVLINK_ATTR_PORT_PCI_PF_NUMBER, attrs->pci_pf.pf)) return -EMSGSIZE; + if (nla_put_u8(msg, DEVLINK_ATTR_PORT_EXTERNAL, attrs->pci_pf.external)) + return -EMSGSIZE; break; case DEVLINK_PORT_FLAVOUR_PCI_VF: if (nla_put_u16(msg, DEVLINK_ATTR_PORT_PCI_PF_NUMBER, @@ -533,6 +535,8 @@ static int devlink_nl_port_attrs_put(struct sk_buff *msg, nla_put_u16(msg, DEVLINK_ATTR_PORT_PCI_VF_NUMBER, attrs->pci_vf.vf)) return -EMSGSIZE; + if (nla_put_u8(msg, DEVLINK_ATTR_PORT_EXTERNAL, attrs->pci_vf.external)) + return -EMSGSIZE; break; case DEVLINK_PORT_FLAVOUR_PHYSICAL: case DEVLINK_PORT_FLAVOUR_CPU: @@ -7716,8 +7720,9 @@ EXPORT_SYMBOL_GPL(devlink_port_attrs_set); * * @devlink_port: devlink port * @pf: associated PF for the devlink port instance + * @external: indicates if the port is for an external controller */ -void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u16 pf) +void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u16 pf, bool external) { struct devlink_port_attrs *attrs = &devlink_port->attrs; int ret; @@ -7728,6 +7733,7 @@ void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u16 pf) return; attrs->pci_pf.pf = pf; + attrs->pci_pf.external = external; } EXPORT_SYMBOL_GPL(devlink_port_attrs_pci_pf_set); @@ -7737,9 +7743,10 @@ EXPORT_SYMBOL_GPL(devlink_port_attrs_pci_pf_set); * @devlink_port: devlink port * @pf: associated PF for the devlink port instance * @vf: associated VF of a PF for the devlink port instance + * @external: indicates if the port is for an external controller */ void devlink_port_attrs_pci_vf_set(struct devlink_port *devlink_port, - u16 pf, u16 vf) + u16 pf, u16 vf, bool external) { struct devlink_port_attrs *attrs = &devlink_port->attrs; int ret; @@ -7750,6 +7757,7 @@ void devlink_port_attrs_pci_vf_set(struct devlink_port *devlink_port, return; attrs->pci_vf.pf = pf; attrs->pci_vf.vf = vf; + attrs->pci_vf.external = external; } EXPORT_SYMBOL_GPL(devlink_port_attrs_pci_vf_set); From patchwork Tue Sep 8 14:42:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 1359782 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.a=rsa-sha256 header.s=selector1 header.b=EYVDhTO8; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4Bm7lj043Gz9sSJ for ; Wed, 9 Sep 2020 01:06:41 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729738AbgIHPGc (ORCPT ); Tue, 8 Sep 2020 11:06:32 -0400 Received: from mail-eopbgr80070.outbound.protection.outlook.com ([40.107.8.70]:62631 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729773AbgIHPEa (ORCPT ); Tue, 8 Sep 2020 11:04:30 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T3/54HbzFlpfHa57qy+20Z8yr+pCvScbwhOuf/o6MpIAnF0s7wxo7mySOcgHB0tSdQLCfBLOEQTnSbMQxMwv417sFG0pxw5+PNxZzTEnYE9vA0un7G4XfTPozKrzBnfu9RisA10QyU9wTLYS0oTnzCFxS/OWdPdW6E05njjXgOsQ7dZHG4XuN5nMULAW1lk/0P9t87NefvplbnbBkxciVjR6rYWsDHv4sC4VxEMH+1jJ0MJtvmqotaOHbLVj1lzowC0p9qLDKHMIXHych5ovd1/eTl7gc9G6YQx34xPkqGfBA3GFEg68zrOu9ti5VUXu4jY84sMhynR4pt96O/YQgA== 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=VZfo7fw2oXyFycIP8mBNtK3m0omfP7EdL7Y5sj4CvVw=; b=EBTmjczQgUM1Zzv6PwYXRps7NWN+7uy63zOpg3f9UsMbEsYLFN9mGQg8UylbDRP2JdL5cRzQ9ghgv5VX6HEgrRKXDg3grNCYb7T5O//x6wEu9r2jpa3GMcII1tQi/qb8lNLsbSNYdSjQzCEMiJiEqeYIx+S/AWzN9r/u3fIrZE/5YA47zoxoeQJ6NgTVRxtiL6l0IGiBJCvd9TgQdEP1jnHgs+kaQ8FsRXYsMQX+ziEs82OYSR981rAnWGIT0bgQ9Se/NQUYWsUeIAsyaSL28F75fOvnprYTwuAhm04ic35VvSj0016GLVARKDHo8KmovEoCQ2iv9jiA6lnSFhk2Yg== 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=VZfo7fw2oXyFycIP8mBNtK3m0omfP7EdL7Y5sj4CvVw=; b=EYVDhTO8xQMMsBUT4eh3lt3y17SfrtEhCGTjaS+uMHYq6WhEUtgMB+LvahzXsMKdWZlSMoTVED95JllyxJuDbf/ox0xr4lRSWBZzSaPa364YDqP8ob5irH5ImvIWKgkEGcyp+iFQxaEpkil/UbMPBi+IysO3gGE6dGoRQ+BV0pw= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM8PR05MB7331.eurprd05.prod.outlook.com (2603:10a6:20b:1dd::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16; Tue, 8 Sep 2020 14:43:21 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::349f:cbf4:ddcf:ce18]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::349f:cbf4:ddcf:ce18%3]) with mapi id 15.20.3348.019; Tue, 8 Sep 2020 14:43:21 +0000 From: Parav Pandit To: kuba@kernel.org, davem@davemloft.net, netdev@vger.kernel.org Cc: Parav Pandit , Jiri Pirko Subject: [PATCH net-next v2 6/6] devlink: Use controller while building phys_port_name Date: Tue, 8 Sep 2020 17:42:41 +0300 Message-Id: <20200908144241.21673-7-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200908144241.21673-1-parav@mellanox.com> References: <20200825135839.106796-1-parav@mellanox.com> <20200908144241.21673-1-parav@mellanox.com> X-ClientProxiedBy: SA9PR11CA0020.namprd11.prod.outlook.com (2603:10b6:806:6e::25) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SA9PR11CA0020.namprd11.prod.outlook.com (2603:10b6:806:6e::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16 via Frontend Transport; Tue, 8 Sep 2020 14:43:20 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: a878b64c-6a09-4acd-7839-08d854058859 X-MS-TrafficTypeDiagnostic: AM8PR05MB7331: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:513; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uMPcH+v9z38wMTZGc9NFTd8sSJTQeCcYJETMy6aoGiT/WVhfXMeu8oxkOx4EkxbbklL5oAdf4dQ6gyoB2Yxz/VjwM43c/zKj8/QMLYaX5MN0ofXv8TzfGb4YNyfS2q/UivTpsH9lknTllH/eGn5n9BEONNS9Qryq5Riokku5wBcnlxMxGhmcyOE+Fgu2003SiLfz8j/KyAR3GZeE/wJ5GWuKOP9qB/VqYn64qPyif7E4zbma0Ult/ENMdF2YxX+1yXEf6Rz/NbcH9vkbW0Im44iQM4g7TvteTGgFbJHOXrxZfae+6rgaEIbMK+msvGousehS37RqNh3vAOpclbmYZQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR05MB4866.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6512007)(8676002)(5660300002)(66476007)(66946007)(66556008)(2906002)(36756003)(2616005)(956004)(54906003)(186003)(8936002)(86362001)(498600001)(16526019)(6506007)(26005)(6486002)(1076003)(52116002)(6666004)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: MVDh8PfTUGW7JQvyQEo1JDtiJYIEjExNnHVf2gm8r8ZTolAU96Chcv5DPfhl9/mOLV/GcQlk0BqcekeYr5hrn223mv3v5qg9wi5+cRhca6Ii9HTfKBn8TsYqouCT+AGI32zKTkTzfZO3b29cPc7/4eq5sIgB58CS9JUCUZMiPzRJ7VPEGc0DPyEvOzSewlk+fZjsV21O3/Tt1lI5a0AYpfUUV8cFIpmVHLxpoCO9VBk37Hscy5CPzkj2NGkNraw5mG42CTOjc09ihW9cNeF8hUKnY7wm3M0mEGb6NWbfobegB7fVRjoqzqMNR16/DVmeg7OZhF5T9MBmVkeOJIrkQ938qY1V8y3SP5pmcoQBAU7I8ih1qlRsrd+ctG1p/0pWQH4iA5IGHmKOgflmHeCr9E71EDLczj+h5307Psu6Yq1SiJ58oOaGsKt0IP2do2U4Hb3d35y3slWqMIj6mesXohY5qa/50hm12KP97Q/GzvPQT0H+XYfjJgdC/S+XeVsCslQVH+zqNHaINdyHHg8C3Afj0/38KtGg40ccmrUv6cHHd1DG977Op6Mb/dPOgMR09UtMyvSJPgfSfW2J+bmH1NOoqRLsP6pgBLmhHAE/eJRjaz5zBZso52s0lBE2Ca1L3zRJngWaU1gPac3fXN4a+A== X-MS-Exchange-Transport-Forked: True X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: a878b64c-6a09-4acd-7839-08d854058859 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2020 14:43:21.7096 (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: dCZvppl9ZG4LYNiK94pfjk+PQ/rOyh4tg3RNAAOo6+BxVhmFV6oDaAFmDRqZCDgnU+m50hizaJ+jUJQSK2seJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR05MB7331 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Parav Pandit Now that controller number attribute is available, use it when building phsy_port_name for external controller ports. An example devlink port and representor netdev name consist of controller annotation for external controller with controller number = 1, for a VF 1 of PF 0: $ devlink port show pci/0000:06:00.0/2 pci/0000:06:00.0/2: type eth netdev ens2f0c1pf0vf1 flavour pcivf controller 1 pfnum 0 vfnum 1 external true splittable false function: hw_addr 00:00:00:00:00:00 $ devlink port show pci/0000:06:00.0/2 -jp { "port": { "pci/0000:06:00.0/2": { "type": "eth", "netdev": "ens2f0c1pf0vf1", "flavour": "pcivf", "controller": 1, "pfnum": 0, "vfnum": 1, "external": true, "splittable": false, "function": { "hw_addr": "00:00:00:00:00:00" } } } } Controller number annotation is skipped for non external controllers to maintain backward compatibility. Signed-off-by: Parav Pandit Reviewed-by: Jiri Pirko --- Changelog: v1->v2: - New patch --- net/core/devlink.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/net/core/devlink.c b/net/core/devlink.c index 9cf5b118253b..91c12612f2b7 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -7793,9 +7793,23 @@ static int __devlink_port_phys_port_name_get(struct devlink_port *devlink_port, WARN_ON(1); return -EINVAL; case DEVLINK_PORT_FLAVOUR_PCI_PF: + if (attrs->pci_pf.external) { + n = snprintf(name, len, "c%u", attrs->pci_pf.controller); + if (n >= len) + return -EINVAL; + len -= n; + name += n; + } n = snprintf(name, len, "pf%u", attrs->pci_pf.pf); break; case DEVLINK_PORT_FLAVOUR_PCI_VF: + if (attrs->pci_vf.external) { + n = snprintf(name, len, "c%u", attrs->pci_vf.controller); + if (n >= len) + return -EINVAL; + len -= n; + name += n; + } n = snprintf(name, len, "pf%uvf%u", attrs->pci_vf.pf, attrs->pci_vf.vf); break;