From: netdev@kapio-technology.com
To: Vladimir Oltean <olteanv@gmail.com>
Cc: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Andrew Lunn" <andrew@lunn.ch>,
"Eric Dumazet" <edumazet@google.com>,
"Paolo Abeni" <pabeni@redhat.com>,
"Kurt Kanzenbach" <kurt@linutronix.de>,
"Hauke Mehrtens" <hauke@hauke-m.de>,
"Woojung Huh" <woojung.huh@microchip.com>,
"maintainer:MICROCHIP KSZ SERIES ETHERNET SWITCH DRIVER"
<UNGLinuxDriver@microchip.com>,
"Sean Wang" <sean.wang@mediatek.com>,
"Landen Chao" <Landen.Chao@mediatek.com>,
"DENG Qingfang" <dqfext@gmail.com>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"Claudiu Manoil" <claudiu.manoil@nxp.com>,
"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
"Clément Léger" <clement.leger@bootlin.com>,
"Jiri Pirko" <jiri@resnulli.us>,
"Ivan Vecera" <ivecera@redhat.com>,
"Roopa Prabhu" <roopa@nvidia.com>,
"Nikolay Aleksandrov" <razor@blackwall.org>,
"Russell King" <linux@armlinux.org.uk>,
"Christian Marangi" <ansuelsmth@gmail.com>,
"open list" <linux-kernel@vger.kernel.org>,
"moderated list:ARM/Mediatek SoC support"
<linux-arm-kernel@lists.infradead.org>,
"moderated list:ARM/Mediatek SoC support"
<linux-mediatek@lists.infradead.org>,
"open list:RENESAS RZ/N1 A5PSW SWITCH DRIVER"
<linux-renesas-soc@vger.kernel.org>,
"moderated list:ETHERNET BRIDGE"
<bridge@lists.linux-foundation.org>
Subject: Re: [RFC PATCH net-next 2/5] net: dsa: propagate flags down towards drivers
Date: Wed, 18 Jan 2023 23:35:08 +0100 [thread overview]
Message-ID: <e4acb7edb300d41a9459890133b928b4@kapio-technology.com> (raw)
In-Reply-To: <20230117231750.r5jr4hwvpadgopmf@skbuf>
On 2023-01-18 00:17, Vladimir Oltean wrote:
> On Tue, Jan 17, 2023 at 07:57:11PM +0100, Hans J. Schultz wrote:
>> Dynamic FDB flag needs to be propagated through the DSA layer to be
>> added to drivers.
>> Use a u16 for fdb flags for future use, so that other flags can also
>> be
>> sent the same way without having to change function interfaces.
>>
>> Signed-off-by: Hans J. Schultz <netdev@kapio-technology.com>
>> ---
>> @@ -3364,6 +3368,7 @@ static int dsa_slave_fdb_event(struct net_device
>> *dev,
>> struct dsa_port *dp = dsa_slave_to_port(dev);
>> bool host_addr = fdb_info->is_local;
>> struct dsa_switch *ds = dp->ds;
>> + u16 fdb_flags = 0;
>>
>> if (ctx && ctx != dp)
>> return 0;
>> @@ -3410,6 +3415,9 @@ static int dsa_slave_fdb_event(struct net_device
>> *dev,
>> orig_dev->name, fdb_info->addr, fdb_info->vid,
>> host_addr ? " as host address" : "");
>>
>> + if (fdb_info->is_dyn)
>> + fdb_flags |= DSA_FDB_FLAG_DYNAMIC;
>> +
>
> Hmm, I don't think this is going to work with the
> assisted_learning_on_cpu_port
> feature ("if (switchdev_fdb_is_dynamically_learned(fdb_info))"). The
> reason being
> that a "dynamically learned" FDB entry (defined as this):
>
> static inline bool
> switchdev_fdb_is_dynamically_learned(const struct
> switchdev_notifier_fdb_info *fdb_info)
> {
> return !fdb_info->added_by_user && !fdb_info->is_local;
> }
>
> is also dynamic in the DSA_FDB_FLAG_DYNAMIC sense. But we install a
> static FDB entry for it on the CPU port.
>
> And in your follow-up patch 3/5, you make all drivers except mv88e6xxx
> ignore all DSA_FDB_FLAG_DYNAMIC entries (including the ones snooped
> from
> address learning on software interfaces). So this breaks those drivers
> which don't implement DSA_FDB_FLAG_DYNAMIC but do set
> ds->assisted_learning_on_cpu_port
> to true.
I am not sure I understand you entirely.
From my standpoint I see it as so: that until now any fdb entry coming
to port_fdb_add() (or port_fdb_del()) are seen as static entries. And
this changes nothing with respect to those static entries as how drivers
handle them.
When the new dynamic flag is true, all drivers will ignore it in patch
#3, so basically nothing will change by that. Then in patch #5 the
dynamic flag is handled by the mv88e6xxx driver.
I don't know the assisted_learning_on_cpu_port feature you mention, but
there has still not been anything but static entries going towards
port_fdb_add() yet...
>
> I think you also want to look at the added_by_user flag to disambiguate
> between a dynamic FDB entry added from learning (which it's ok to
> offload as static, because software ageing will remove it) and one
> added
> by the user.
>
>> INIT_WORK(&switchdev_work->work, dsa_slave_switchdev_event_work);
>> switchdev_work->event = event;
>> switchdev_work->dev = dev;
>> @@ -3418,6 +3426,7 @@ static int dsa_slave_fdb_event(struct net_device
>> *dev,
>> ether_addr_copy(switchdev_work->addr, fdb_info->addr);
>> switchdev_work->vid = fdb_info->vid;
>> switchdev_work->host_addr = host_addr;
>> + switchdev_work->fdb_flags = fdb_flags;
>>
>> dsa_schedule_work(&switchdev_work->work);
>>
next prev parent reply other threads:[~2023-01-18 22:35 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-17 18:57 [RFC PATCH net-next 0/5] ATU and FDB synchronization on locked ports Hans J. Schultz
2023-01-17 18:57 ` [RFC PATCH net-next 1/5] net: bridge: add dynamic flag to switchdev notifier Hans J. Schultz
2023-01-17 23:08 ` Vladimir Oltean
2023-01-18 22:14 ` netdev
2023-01-19 9:33 ` Vladimir Oltean
2023-01-19 13:40 ` Vladimir Oltean
2023-01-20 21:16 ` netdev
2023-01-17 18:57 ` [RFC PATCH net-next 2/5] net: dsa: propagate flags down towards drivers Hans J. Schultz
2023-01-17 23:17 ` Vladimir Oltean
2023-01-18 22:35 ` netdev [this message]
2023-01-18 23:01 ` Vladimir Oltean
2023-01-22 11:08 ` netdev
2023-01-17 18:57 ` [RFC PATCH net-next 3/5] drivers: net: dsa: add fdb entry flags incoming to switchcore drivers Hans J. Schultz
2023-01-17 18:57 ` [RFC PATCH net-next 4/5] net: bridge: ensure FDB offloaded flag is handled as needed Hans J. Schultz
2023-01-17 18:57 ` [RFC PATCH net-next 5/5] net: dsa: mv88e6xxx: implementation of dynamic ATU entries Hans J. Schultz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e4acb7edb300d41a9459890133b928b4@kapio-technology.com \
--to=netdev@kapio-technology.com \
--cc=Landen.Chao@mediatek.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=alexandre.belloni@bootlin.com \
--cc=andrew@lunn.ch \
--cc=ansuelsmth@gmail.com \
--cc=bridge@lists.linux-foundation.org \
--cc=claudiu.manoil@nxp.com \
--cc=clement.leger@bootlin.com \
--cc=davem@davemloft.net \
--cc=dqfext@gmail.com \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=hauke@hauke-m.de \
--cc=ivecera@redhat.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=kurt@linutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=razor@blackwall.org \
--cc=roopa@nvidia.com \
--cc=sean.wang@mediatek.com \
--cc=woojung.huh@microchip.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox