From: Vladimir Oltean <olteanv@gmail.com>
To: Tobias Waldekranz <tobias@waldekranz.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>,
Mattias Forsblad <mattias.forsblad@gmail.com>,
netdev@vger.kernel.org, "David S . Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>, Andrew Lunn <andrew@lunn.ch>,
Vivien Didelot <vivien.didelot@gmail.com>,
Roopa Prabhu <roopa@nvidia.com>,
Nikolay Aleksandrov <razor@blackwall.org>,
Mattias Forsblad <mattias.forsblad+netdev@gmail.com>,
Joachim Wiberg <troglobit@gmail.com>,
Ido Schimmel <idosch@idosch.org>,
"Allan W. Nielsen" <allan.nielsen@microchip.com>,
Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
Subject: Re: [PATCH net-next 0/3] bridge: dsa: switchdev: mv88e6xxx: Implement local_receive bridge flag
Date: Fri, 18 Mar 2022 18:26:53 +0200 [thread overview]
Message-ID: <20220318162653.b2myvmiurlfdxj6d@skbuf> (raw)
In-Reply-To: <87ee2zjlik.fsf@waldekranz.com>
On Fri, Mar 18, 2022 at 05:03:31PM +0100, Tobias Waldekranz wrote:
> On Fri, Mar 18, 2022 at 14:44, Vladimir Oltean <olteanv@gmail.com> wrote:
> > On Fri, Mar 18, 2022 at 01:09:08PM +0100, Tobias Waldekranz wrote:
> >> >> > So have you seriously considered making the bridge ports that operate in
> >> >> > 'dumb hub' mode have a pvid which isn't installed as a 'self' entry on
> >> >> > the bridge device?
> >> >>
> >> >> Just so there's no confusion, you mean something like...
> >> >>
> >> >> ip link add dev br0 type bridge vlan_filtering 1 vlan_default_pvid 0
> >> >>
> >> >> for p in swp0 swp1; do
> >> >> ip link set dev $p master br0
> >> >> bridge vlan add dev $p vid 1 pvid untagged
> >> >> done
> >> >>
> >> >> ... right?
> >> >>
> >> >> In that case, the repeater is no longer transparent with respect to
> >> >> tagged packets, which the application requires.
> >> >
> >> > If you are sure that there exists one VLAN ID which is never used (like
> >> > 4094), what you could do is you could set the port pvids to that VID
> >> > instead of 1, and add the entire VLAN_N_VID range sans that VID in the
> >> > membership list of the two ports, as egress-tagged.
> >>
> >> Yeah, I've thought about this too. If the device's only role is to act
> >> as a repeater, then you can get away with it. But you will have consumed
> >> all rows in the VTU and half of the rows in the ATU (we add an entry for
> >> the broadcast address in every FID). So if you want to use your other
> >> ports for regular bridging you're left with a very limited feature set.
> >
> > But VLANs in other bridges would reuse the same FIDs, at least in the
> > current mv88e6xxx implementation with no FDB isolation, no? So even
> > though the VTU is maxed out, it wouldn't get 'more' maxed out.
>
> I'm pretty sure that mv88e6xxx won't allow the same VID to be configured
> on multiple bridges. A quick test seems to support that:
>
> root@coronet:~# ip link add dev br0 type bridge vlan_filtering 1
> root@coronet:~# ip link add dev br1 type bridge vlan_filtering 1
> root@coronet:~# ip link set dev br0 up
> root@coronet:~# ip link set dev br1 up
> root@coronet:~# ip link set dev swp1 master br0
> root@coronet:~# ip link set dev swp2 master br1
> RTNETLINK answers: Operation not supported
Ok, I forgot about mv88e6xxx_port_check_hw_vlan() even though I was
there on multiple occasions. Thanks for reminding me.
> > As for the broadcast address needing to be present in the ATU, honestly
> > I don't know too much about that. I see that some switches have a
> > FloodBC bit, wouldn't that be useful?
>
> mv88e6xxx can handle broadcast in two ways:
>
> 1. Always flood broadcast, independent of all other settings.
>
> 2. Treat broadcast as multicast, only allow flooding if unknown
> multicast is allowed on the port, or if there's an entry in the ATU
> (making it known) that allows it.
>
> The kernel driver uses (2), because that is the only way (I know of)
> that we can support the BCAST_FLOOD flag. In order to make BCAST_FLOOD
> independent of MCAST_FLOOD, we have to load an entry allowing bc to
> egress on all ports by default. De Morgan comes back to guide us once
> more :)
Ok, so this alternative falls flat on its face due to excessive resource
usage. Next...
Does your application require bridged foreign interfaces with the other
switch ports? In other words, is there a reason to keep the CPU port in
the flood domain of the switch, other than current software limitations?
prev parent reply other threads:[~2022-03-18 16:28 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-01 12:31 [PATCH net-next 0/3] bridge: dsa: switchdev: mv88e6xxx: Implement local_receive bridge flag Mattias Forsblad
2022-03-01 12:31 ` [PATCH 1/3] net: bridge: Implement bridge flag local_receive Mattias Forsblad
2022-03-01 16:43 ` Ido Schimmel
2022-03-01 22:36 ` Nikolay Aleksandrov
2022-03-02 6:27 ` Mattias Forsblad
2022-03-14 16:29 ` Ido Schimmel
2022-03-14 16:33 ` Ido Schimmel
2022-03-14 16:48 ` Mattias Forsblad
2022-03-02 3:25 ` Roopa Prabhu
2022-03-01 22:43 ` Nikolay Aleksandrov
2022-03-02 6:33 ` Mattias Forsblad
2022-03-02 6:38 ` Mattias Forsblad
2022-03-01 12:31 ` [PATCH 2/3] dsa: Handle the local_receive flag in the DSA layer Mattias Forsblad
2022-03-01 12:31 ` [PATCH 3/3] mv88e6xxx: Offload the local_receive flag Mattias Forsblad
2022-03-02 12:19 ` kernel test robot
2022-03-02 13:30 ` kernel test robot
2022-03-01 17:14 ` [PATCH net-next 0/3] bridge: dsa: switchdev: mv88e6xxx: Implement local_receive bridge flag Florian Fainelli
2022-03-01 21:04 ` Tobias Waldekranz
2022-03-17 14:05 ` Vladimir Oltean
2022-03-18 7:58 ` Tobias Waldekranz
2022-03-18 11:11 ` Vladimir Oltean
2022-03-18 12:09 ` Tobias Waldekranz
2022-03-18 12:44 ` Vladimir Oltean
2022-03-18 16:03 ` Tobias Waldekranz
2022-03-18 16:26 ` Vladimir Oltean [this message]
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=20220318162653.b2myvmiurlfdxj6d@skbuf \
--to=olteanv@gmail.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=allan.nielsen@microchip.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=idosch@idosch.org \
--cc=kuba@kernel.org \
--cc=mattias.forsblad+netdev@gmail.com \
--cc=mattias.forsblad@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=razor@blackwall.org \
--cc=roopa@nvidia.com \
--cc=tobias@waldekranz.com \
--cc=troglobit@gmail.com \
--cc=vivien.didelot@gmail.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