On Mon, Jan 18, 2021 at 18:50, Andrew Lunn [off-list ref] wrote:
quoted
I suppose the real solution is having userspace do some "bridge mdb add"
yoga, but since no code currently uses
MV88E6XXX_G1_ATU_DATA_STATE_MC_STATIC_DA_MGMT, I don't think there's any
way to actually achieve this. And I have no idea how to represent the
requirement that "frames with this multicast DA are only to be directed
at the CPU" in a hardware-agnostic way.
The switchdev interface for this exists, because there can be
multicast listeners on the bridge. When they join a group, they ask
the switch to put in a HOST MDB, which should cause the traffic for
That is not quite the same thing as "management" though. Adding the
group to the host MDB will not allow it to pass through blocked (in the
STP sense) ports for example. With a management entry, the switch will
trap the packet with a TO_CPU tag, which means no ingress policy can get
in the way of it reaching the CPU.
the group to be sent to the host. What you don't have is the
exclusivity. If there is an IGMP report for the DA received on another
port, IGMP snooping will add an MDB entry to forward traffic out that
port.
Exclusivity should not be an issue as these protocols use groups outside
of the ranges allocated for IGMP/MLD.
I see a few ways forward:
1. Extending the MRP-support in the bridge to support other protocols
(e.g. ERP). If DSA gets a callback saying that a ring has been setup
with a certain role, we know which groups to add. Good for defined
protocols - does not help anyone who needs to be able to configure
custom groups.
2. Adding yet another flag to MDB entries to mark them as "trap"
entries. I do not see thing going anywhere since the big fish have
already solved this with...
3. ... TC, through the "trap" action. We could detect filters which only
match on DA, with the action "trap"; and convert those to MGMT
entries in the ATU. I think this could be the way forward for user
defined entries.
4. Devlink trap configuration. Maybe? I have not managed to wrap my head
around this yet.