Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp1573733rwi; Thu, 20 Oct 2022 14:23:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6MXjsL81odPDAHoL4lFvfMgaz5GOIXmg60S+fP4/XSukHgf/+06XgQzAoODFfRO2iLN4sa X-Received: by 2002:a05:6a00:1ace:b0:565:f52a:d998 with SMTP id f14-20020a056a001ace00b00565f52ad998mr15815675pfv.25.1666300993839; Thu, 20 Oct 2022 14:23:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666300993; cv=none; d=google.com; s=arc-20160816; b=Yh4mwtdBjNfO7krayimfdB4doMQCRK5f15A4qVklfHO7gdi9FheBXCeKPIP+Xkuv2P nkIwLYNnxbbrLYoKrLGvCFRGRnv3GLNn9Yt1N9AlX0x69q+RrnF9VVitoHyLkfNsf22t ZaNcilN0NhbFX6tDUoAOZRvjTsr8coua9qaPIkQRL4JHF3daMj9Y5Taag/xL17BSprLv hMXN9yZuW8tBHqlDDrE94KaECS5kRQkYK+8H4TMfdI9bE9aqelWHfAq5vJDGNy41tCwd ZYAu+5J6EaAldsnQKnbp7r1+wQ6spW7NHakZPGSgeRqeUCxNVaY1/H6x+8ITknqVWIM5 knXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:message-id:user-agent :references:in-reply-to:subject:cc:to:from:date:mime-version; bh=gVrXjJEGfmuc1gn25nOyrrLuiZAhQTfMb/N3tT9O3CI=; b=mCXIxTS1oFkQtg5Wfm+UX6uK/YEcuPj404NSUzA97n4CPGte6q/C73cDkrchqkBLIZ SK34MfZGbXfVgd7YvCfJ/6QRUcK+8T4V1m+U7HiEJGjZKhETHxdM7fF7Xy33Y7cwpv8T VW5m3FEk0bBH9EQYVIq8M3mVtmWqtRCPbOfPkX6Jw6lzTV9RG+AIOvbofwm/okIPp3ex 3qrOalXW05+bphjBomYRlgI+Ll3xs5otyelWHY48yTZV3u0HRjDXOhKqqWq8ekHNpJhq NDKlSaz1/xarZsALxiQcyVq/n00VOINq3FbcZELDTMjGDGBoeIvHXw0rY39U67dUXqLc iI+g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c18-20020a170903235200b00176b9906c4dsi27459665plh.153.2022.10.20.14.23.01; Thu, 20 Oct 2022 14:23:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229785AbiJTVKB (ORCPT + 99 others); Thu, 20 Oct 2022 17:10:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229491AbiJTVJz (ORCPT ); Thu, 20 Oct 2022 17:09:55 -0400 Received: from mailout-taastrup.gigahost.dk (mailout-taastrup.gigahost.dk [46.183.139.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BDF5752DE7; Thu, 20 Oct 2022 14:09:43 -0700 (PDT) Received: from mailout.gigahost.dk (mailout.gigahost.dk [89.186.169.112]) by mailout-taastrup.gigahost.dk (Postfix) with ESMTP id F066718849CE; Thu, 20 Oct 2022 21:09:40 +0000 (UTC) Received: from smtp.gigahost.dk (smtp.gigahost.dk [89.186.169.109]) by mailout.gigahost.dk (Postfix) with ESMTP id D1DD725001FA; Thu, 20 Oct 2022 21:09:40 +0000 (UTC) Received: by smtp.gigahost.dk (Postfix, from userid 1000) id C9D209EC0002; Thu, 20 Oct 2022 21:09:40 +0000 (UTC) X-Screener-Id: 413d8c6ce5bf6eab4824d0abaab02863e8e3f662 MIME-Version: 1.0 Date: Thu, 20 Oct 2022 23:09:40 +0200 From: netdev@kapio-technology.com To: Vladimir Oltean Cc: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org, Florian Fainelli , Andrew Lunn , Vivien Didelot , Eric Dumazet , Paolo Abeni , Kurt Kanzenbach , Hauke Mehrtens , Woojung Huh , UNGLinuxDriver@microchip.com, Sean Wang , Landen Chao , DENG Qingfang , Matthias Brugger , Claudiu Manoil , Alexandre Belloni , Jiri Pirko , Ivan Vecera , Roopa Prabhu , Nikolay Aleksandrov , Shuah Khan , Russell King , Christian Marangi , Daniel Borkmann , Yuwei Wang , Petr Machata , Ido Schimmel , Florent Fourcot , Hans Schultz , Joachim Wiberg , Amit Cohen , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, bridge@lists.linux-foundation.org, linux-kselftest@vger.kernel.org Subject: Re: [PATCH v8 net-next 10/12] net: dsa: mv88e6xxx: mac-auth/MAB implementation In-Reply-To: <20221020132538.reirrskemcjwih2m@skbuf> References: <20221018165619.134535-1-netdev@kapio-technology.com> <20221018165619.134535-1-netdev@kapio-technology.com> <20221018165619.134535-11-netdev@kapio-technology.com> <20221018165619.134535-11-netdev@kapio-technology.com> <20221020132538.reirrskemcjwih2m@skbuf> User-Agent: Gigahost Webmail Message-ID: <3e58594c1223f4591e56409cd5061de7@kapio-technology.com> X-Sender: netdev@kapio-technology.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2022-10-20 15:25, Vladimir Oltean wrote: > > This would not have been needed if dsa_port_set_state() would have > called dsa_port_fast_age(). > > Currently it only does that if dp->learning is true. From previous > conversations I get the idea that with MAB, port learning will be > false. > But I don't understand why; isn't MAB CPU-assisted learning? I'm > looking > at the ocelot hardware support for this and I think it could be > implemented using a similar mechanism, but I certainly don't want to > add > more workarounds such as this in other drivers. > > Are there any other ways to implement MAB other than through CPU > assisted learning? > > We could add one more dp->mab flag which tracks the "mab" brport flag, > and extend dsa_port_set_state() to also call dsa_port_fast_age() in > that > case, but I want to make sure there isn't something extremely obvious > I'm missing about the "learning" flag. > As learning is off on locked ports, see other response, your dp->mab flag idea might be a way to go, just need confirmation that this is needed. >> @@ -6572,8 +6604,10 @@ static int mv88e6xxx_port_bridge_flags(struct >> dsa_switch *ds, int port, >> if (flags.mask & BR_MCAST_FLOOD) { >> bool multicast = !!(flags.val & BR_MCAST_FLOOD); >> >> + mv88e6xxx_reg_lock(chip); >> err = chip->info->ops->port_set_mcast_flood(chip, port, >> multicast); >> + mv88e6xxx_reg_unlock(chip); >> if (err) >> goto out; >> } >> @@ -6581,20 +6615,34 @@ static int mv88e6xxx_port_bridge_flags(struct >> dsa_switch *ds, int port, >> if (flags.mask & BR_BCAST_FLOOD) { >> bool broadcast = !!(flags.val & BR_BCAST_FLOOD); >> >> + mv88e6xxx_reg_lock(chip); >> err = mv88e6xxx_port_broadcast_sync(chip, port, broadcast); >> + mv88e6xxx_reg_unlock(chip); >> if (err) >> goto out; >> } >> >> + if (flags.mask & BR_PORT_MAB) { >> + chip->ports[port].mab = !!(flags.val & BR_PORT_MAB); >> + >> + if (!chip->ports[port].mab) >> + err = mv88e6xxx_atu_locked_entry_flush(ds, port); >> + else >> + err = 0; > > Again, dsa_port_fast_age() is also called when dp->learning is turned > off in dsa_port_bridge_flags(). I don't want to see the mv88e6xxx > driver > doing this manually. > Maybe I am wrong, but I have only been able to trigger fast ageing by setting the STP state of the port to blocked...