On Sat, Sep 26, 2020 at 08:30:54PM +0300, Vladimir Oltean wrote:
> Currently DSA assumes that taggers don't mess with the destination MAC
> address of the frames on RX. That is not always the case. Some DSA
> headers are placed before the Ethernet header (ocelot), and others
> simply mangle random bytes from the destination MAC address (sja1105
> with its incl_srcpt option).
...
> So give drivers the possibility to signal that their tagging protocol
> will get randomly dropped otherwise, and let DSA deal with fixing that.
> @@ -317,6 +317,13 @@ struct dsa_switch {
> */
> bool mtu_enforcement_ingress;
>
> + /* Some tagging protocols either mangle or shift the destination MAC
> + * address, in which case the DSA master would drop packets on ingress
> + * if what it understands out of the destination MAC address is not in
> + * its RX filter.
> + */
> + bool promisc_on_master;
> +
> size_t num_ports;
> };
Hi Vladimir
I actually think this is a property of the tagger, not the DSA
driver. In fact, DSA drivers never handle actual frames, they are all
about the control plane, not the data plane. So i think this bool
should be in the tagger structure, dsa_device_ops.
Andrew