From patchwork Mon Dec 6 16:57:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 12658951 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 11861C4332F for ; Mon, 6 Dec 2021 17:04:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241974AbhLFRH6 (ORCPT ); Mon, 6 Dec 2021 12:07:58 -0500 Received: from mail-eopbgr70045.outbound.protection.outlook.com ([40.107.7.45]:64823 "EHLO EUR04-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1348529AbhLFRBt (ORCPT ); Mon, 6 Dec 2021 12:01:49 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=One3y0bq0UUnFCkGcKdpCS1kiAQNkf8UdwmrajUNIuX0s1fMKh7Jovv9jsnEaxgte420umOr7y+d2nwD0zJt1PR9yECpsIWpJ2z3Uep+v+0EfmdsDulnE/1/pSnnr1AKrfFK81VHNrXVMOBdsAGHt1kfaPzJQ5Ce+sPtz920cKSAyvjVx/JPgc6mplxY2HHx1a0U3xPJhpTvytjrJrXgm+uflx1NJj/Zo1gI82U2lVNuUuLdGzbm8TJpS0cHlUI/4YsT65pauiTpG/KpD8EEkrQFifzr7UDenYqpuj2pm+5m2+PavvXWLesHrC/r7l2zX52q8pNmNbCmt98l/aD/qA== 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=Xl0VsTfGiE0/EU6l8C+56U9OBGwLA/bQ9jRjKn2r9Fg=; b=JA6XBUAxCLsuP6wtUho1c3p4osxvWxOATnqomGhK8YHS4NusYV8RqgA1HWs8jiyUQV2ySdSE+erVyOjowhCqb9sTYUvMc9c+n4D3zJn7PPhEvnjhqm2JBE+FhJxCiCHSz/lqZC49cIVTmpJIWV8MCT4p/m6/vQ92224uPa8+Juxwo5jH4FUnUOEDivqKfoKV346xi9xBbB+hr9+3oA9zfiV5Af25kbj4EHg2ak9JWTd9Q7X+C5URyB5uQXdOJ/4BdsTLWMnYlCsTFjOpMwdGfC8Ie7bUGYjr+qcqyD/CO5L/klhB/H42/7OkeS03YeDalXGWds3BRssUskpis9oHeQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xl0VsTfGiE0/EU6l8C+56U9OBGwLA/bQ9jRjKn2r9Fg=; b=Stp8mf9M5w8CPWDrq9AUodD2Y0et2ed/1P/t1Kuh33cU9dI047nMaF5c9HMkUrlBxZbiXVcYQgOyygJupSgqt4KV8YiC2kV5cZqoCLs3gvpAE0nf/Djc6x4hmmDj1T77An6iW57tAnsCENYm6Va1BD2kBYT43vE1RU9yXuxJnlQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) by VI1PR04MB4912.eurprd04.prod.outlook.com (2603:10a6:803:5b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.20; Mon, 6 Dec 2021 16:58:15 +0000 Received: from VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::796e:38c:5706:b802]) by VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::796e:38c:5706:b802%3]) with mapi id 15.20.4755.022; Mon, 6 Dec 2021 16:58:15 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: Florian Fainelli , Andrew Lunn , Vivien Didelot , Tobias Waldekranz , DENG Qingfang , =?utf-8?q?Alvin_=C5=A0ipraga?= , Kurt Kanzenbach , Hauke Mehrtens , Woojung Huh , UNGLinuxDriver@microchip.com, Sean Wang , Landen Chao , Matthias Brugger , Claudiu Manoil , Alexandre Belloni , Linus Walleij , George McCollister Subject: [PATCH v3 net-next 00/12] Rework DSA bridge TX forwarding offload API Date: Mon, 6 Dec 2021 18:57:46 +0200 Message-Id: <20211206165758.1553882-1-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.25.1 X-ClientProxiedBy: AM4PR0501CA0062.eurprd05.prod.outlook.com (2603:10a6:200:68::30) To VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) MIME-Version: 1.0 Received: from localhost.localdomain (188.25.173.50) by AM4PR0501CA0062.eurprd05.prod.outlook.com (2603:10a6:200:68::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11 via Frontend Transport; Mon, 6 Dec 2021 16:58:14 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eb8ac109-fe73-4002-6407-08d9b8d9987d X-MS-TrafficTypeDiagnostic: VI1PR04MB4912:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fZk75MRRDV1UH9yTKRBSOJNQWN4Gm3R8iGpuMJsOQ9uvwzh0NvpY/ye47ZoHPGqHeTxxAiOugMnyN0LWKCypLw0fki23uhD1Nos7NQGc62ImM7JOWQUuqhnNuTuzFlwIGDZ6ollgNhdrxWKwr/LaIhrtkxrPpAgGLAouBC4Wr51IUicwpaS8yTfZEO+OTdlp5G7VVVdKmygjkbMuRNEinXEuJQvUao+RNeePLoeQQPPuCTRGFKirD3S0uOgnpsKEafl5FZw2zN4lxfpQ+ctP9LZcfjLLKG6mprSwZSzyz47PE+HFMohICXeqhN9KgW6d6CV1SPbplkX3utGtm0u1t8+Rz9X2BYMKT2Z/+1rairCcJfYnYW6Ozr/GuMlgFuIul7FuyyiMRXS9EAMBlTQCpzFIfh4mN2/AChWVcmSZZRF1SCC5nLjPVDGo3rWhxJ4rScNC/bYB1REKJfm4sSSEEeIsWNmP0X4GNt6MDJQCPi5NuQwtbo+SaaRanBxGqdo9f36FtgV4tKpzY57Zh4ZTjjwHK9NSvZdXZ2ofrIXwjrsq/YK3OUp7pWhg0Fb/cay/3FhU2DNAzl7QBbRRw/QBrRpanW3PCtIc74kytLnzGFp3tajzbiPGm2zLoYzLjqk7ahmhNMUyLrUpArUOc8WVip6nwYsizzBgPWO1pVjH4f5JAtJq+nTOFTjRsf43turUZ/jNVX9BdYdakO9lz/nXlo8wfF0fTM0ZknRsRrFzYpvQ+oszxISEVwxcg/RlpzrS21QcQ3PXDWzDUIjJ5N+BslMtBDWXwllN0vFO+X40X2U= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5136.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66556008)(66476007)(6506007)(1076003)(54906003)(66946007)(4326008)(6666004)(5660300002)(7416002)(508600001)(316002)(966005)(52116002)(6512007)(83380400001)(86362001)(2616005)(36756003)(26005)(6916009)(38350700002)(186003)(6486002)(2906002)(38100700002)(44832011)(8676002)(8936002)(956004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?B3xtou8VHTUL5UNHbOnt5EyMZYac?= =?utf-8?q?AdcpRcF9QXTqt0g7b3VgVpEnaZKIiRqiM3R3xrAbv/Fl11VQbXxa0czoqLfompr/Q?= =?utf-8?q?qvRj4ukO69ptX727wS6HcsoCOND2uvo6RXkXX8RgIGgA8kh1REtjlEmzz4F1o0gDy?= =?utf-8?q?bvGDYtp1zMa4X6vokoozxbYouFx51sa9ZBSoMkTfPCpYQt/iSIs415Ls+wJtwmXnx?= =?utf-8?q?MIzrXqj2+g5k+2agb9zoAqkfDWfcLeh6X71oisfCrUSV8UQRpBImNU8F9IUFFRQOu?= =?utf-8?q?KJkNupSQb5vncC/qTrkH38Oxf1SyWTpcUg6fNDLsiy3ZWXplMQURu+MD0IWwZqg21?= =?utf-8?q?HWPyw0O6/ZWyzsroUelLsOKNeynFgivS9zcjgRJkTY0EsOqBFqnyMi+cFaSIJ93bn?= =?utf-8?q?/RYmW81ZEI34at/S6JqMb9eANGolD0iK6Dj04lHtSBmfx9vOwt+93mxAaiUvFIatG?= =?utf-8?q?T768zr8kKQkEeyssUs9caQE2NcGaImAxYu18oC+/r7FbRp5tLfOZZQkZ0QGCLevzq?= =?utf-8?q?BePfICgcMqMoLx7FD4XglSF0D2EdlabTN/zt5eSIgRT1iS6saazWIiQ2bEQI2RIXc?= =?utf-8?q?gnfAPpAa3evdms0404h4cXSMzXrrDxyMR90JoH8GKQGnyEJZIj//xLAoZHVQfJhBY?= =?utf-8?q?29EpI2T1ID5NX7oqDHSEL9GVOErFGa/IE8WnG3hF63IN4bzBtQPUu0DK+Y5yI2TWf?= =?utf-8?q?Y7Gz6ntlwIWcjxEH6iu+3e14KSqsMKNyp6ITtPop70Mi2ZqJd4AsRkSig+y1/EuFU?= =?utf-8?q?DsC5Xva8gxWRRTK0RxRK6FUZF9k4UwzMz+xuKP0Eh9P4lBbEBY5b0CKyQF4aHW8il?= =?utf-8?q?b0ClxgmV/6p+c3lp7bF+70wuFVqzfBSkmSgDBDZcXt9gEnj9EVyQ6J1t9oO9E54I6?= =?utf-8?q?1usoNgvOqNCNYnHfUmDWZTDhLjTEH5kEvv+lwf0360DiPW/psj46gcAhLvBAahU2k?= =?utf-8?q?PAwba63WJtRvimAgV7K02iXSEmKocHAocyIrFk4NOQuYlZB5aUYS4091FJNAoMRd6?= =?utf-8?q?GSTPxUcWWxbGsiDRq5ZaYEISNUmgeOSUeuv2HkYVkP9QFuy317r2w8pqdDA8Vk1Sq?= =?utf-8?q?/uFui0l0qrbfpwlzmQUiOqQ/XwiuUBZKW6+wgVI+zmuuSLvYW/4XtpfP45aMUzedA?= =?utf-8?q?wb7yzht9WJIXN5FgkKEm1DyxjqB1RnZ9QL40ychmc/tUj9BRADbLrpwfixL2Y2lcU?= =?utf-8?q?BvtKY6bPYi7V6lKHT1fsjCRp3Lu1wYCl7adj6K43erKUPO0J6ShoIEQjS4+GbQMX5?= =?utf-8?q?zEawKH6+6t09RZJ5e0NeiUb8q2vIiLCgflMQFmUIqB41iJzTqFaQaIp5d5zOr2GVG?= =?utf-8?q?SCF/jlps8TM6m3C0MvMAxu8ghieg/RZAy72wWeg1ljOaLdsVdMc2OdQIUV/W9P3km?= =?utf-8?q?EoTv7JrKr+fqJAJUVYAeHEhfmPoMVLKW0QX2ChzFA0G36osGqENc/Moy0QFFuYtPJ?= =?utf-8?q?p867zk3opDKx1zk3QHgDKcwssHo8Is2yIHEqId25FphT73YehJRWJ//VZeST1fIZn?= =?utf-8?q?EO86K2Oo8CLGMt3XN63skGr8Le7+iRWuuQ29ZBPF6sRw41TazPaDpK0=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb8ac109-fe73-4002-6407-08d9b8d9987d X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5136.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2021 16:58:15.6966 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wlmq1IVWfTAtvEBjbw5PkP2mg4fUnwTQWzdviavHFePTKTHmv5iOcKHKHQZ3YlrIbFyNxe9ahn5dx/IiBM6BJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4912 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org This change set is preparation work for DSA support of bridge FDB isolation. It replaces struct net_device *dp->bridge_dev with a struct dsa_bridge *dp->bridge that contains some extra information about that bridge, like a unique number kept by DSA. Up until now we computed that number only with the bridge TX forwarding offload feature, but it will be needed for other features too, like for isolation of FDB entries belonging to different bridges. Hardware implementations vary, but one common pattern seems to be the presence of a FID field which can be associated with that bridge number kept by DSA. The idea was outlined here: https://patchwork.kernel.org/project/netdevbpf/patch/20210818120150.892647-16-vladimir.oltean@nxp.com/ (the difference being that with this new proposal, drivers would not need to call dsa_bridge_num_find, instead the bridge_num would be part of the struct dsa_bridge :: num passed as argument). No functional change is intended for drivers that don't already make use of the bridge TX forwarding offload. I've tested the changes on the felix, sja1105 and mv88e6xxx drivers, but nonetheless I'm copying all DSA driver maintainers due to API changes that are taking place. Compared to v1 and v2, the amount of patches is larger, but the contents is mostly the same, just split up hopefully a bit better for review. Vladimir Oltean (12): net: dsa: make dp->bridge_num one-based net: dsa: assign a bridge number even without TX forwarding offload net: dsa: mt7530: iterate using dsa_switch_for_each_user_port in bridging ops net: dsa: mv88e6xxx: iterate using dsa_switch_for_each_user_port in mv88e6xxx_port_check_hw_vlan net: dsa: mv88e6xxx: compute port vlan membership based on dp->bridge_dev comparison net: dsa: hide dp->bridge_dev and dp->bridge_num in the core behind helpers net: dsa: hide dp->bridge_dev and dp->bridge_num in drivers behind helpers net: dsa: rename dsa_port_offloads_bridge to dsa_port_offloads_bridge_dev net: dsa: export bridging offload helpers to drivers net: dsa: keep the bridge_dev and bridge_num as part of the same structure net: dsa: add a "tx_fwd_offload" argument to ->port_bridge_join net: dsa: eliminate dsa_switch_ops :: port_bridge_tx_fwd_{,un}offload drivers/net/dsa/b53/b53_common.c | 9 +- drivers/net/dsa/b53/b53_priv.h | 5 +- drivers/net/dsa/dsa_loop.c | 9 +- drivers/net/dsa/hirschmann/hellcreek.c | 5 +- drivers/net/dsa/lan9303-core.c | 7 +- drivers/net/dsa/lantiq_gswip.c | 25 +++-- drivers/net/dsa/microchip/ksz_common.c | 7 +- drivers/net/dsa/microchip/ksz_common.h | 4 +- drivers/net/dsa/mt7530.c | 58 +++++----- drivers/net/dsa/mv88e6xxx/chip.c | 142 +++++++++++-------------- drivers/net/dsa/ocelot/felix.c | 8 +- drivers/net/dsa/qca8k.c | 13 +-- drivers/net/dsa/rtl8366rb.c | 9 +- drivers/net/dsa/sja1105/sja1105_main.c | 40 ++++--- drivers/net/dsa/xrs700x/xrs700x.c | 10 +- include/linux/dsa/8021q.h | 9 +- include/net/dsa.h | 108 +++++++++++++++---- net/dsa/dsa2.c | 67 +++++++----- net/dsa/dsa_priv.h | 59 ++-------- net/dsa/port.c | 124 ++++++++++----------- net/dsa/slave.c | 33 +++--- net/dsa/switch.c | 20 ++-- net/dsa/tag_8021q.c | 20 ++-- net/dsa/tag_dsa.c | 5 +- net/dsa/tag_ocelot.c | 2 +- net/dsa/tag_sja1105.c | 11 +- 26 files changed, 440 insertions(+), 369 deletions(-)