On Sat, Sep 26, 2020 at 10:32:03PM +0300, Vladimir Oltean wrote:
> Currently PTP is broken when ports are in standalone mode (the tagger
> keeps printing this message):
> 
> sja1105 spi0.1: Expected meta frame, is 01-80-c2-00-00-0e in the DSA master 
> multicast filter?
> 
> Sure, one might say "simply add 01-80-c2-00-00-0e to the master's RX
> filter" but things become more complicated because:
> 
> - Actually all frames in the 01-80-c2-xx-xx-xx and 01-1b-19-xx-xx-xx
>   range are trapped to the CPU automatically
> - The switch mangles bytes 3 and 4 of the MAC address via the incl_srcpt
>   ("include source port [in the DMAC]") option, which is how source port
>   and switch id identification is done for link-local traffic on RX. But
>   this means that an address installed to the RX filter would, at the
>   end of the day, not correspond to the final address seen by the DSA
>   master.
> 
> Assume RX filtering lists on DSA masters are typically too small to
> include all necessary addresses for PTP to work properly on sja1105, and
> just request promiscuous mode unconditionally.
> 
> Just an example:
> Assuming the following addresses are trapped to the CPU:
> 01-80-c2-00-00-00 to 01-80-c2-00-00-ff
> 01-1b-19-00-00-00 to 01-1b-19-00-00-ff
> 
> These are 512 addresses.
> Now let's say this is a board with 3 switches, and 4 ports per switch.
> The 512 addresses become 6144 addresses that must be managed by the DSA
> master's RX filtering lists.
> 
> This may be refined in the future, but for now, it is simply not worth
> it to add the additional addresses to the master's RX filter, so simply
> request it to become promiscuous as soon as the driver probes.
> 
> Signed-off-by: Vladimir Oltean <vladimir.olt...@nxp.com>

Reviewed-by: Andrew Lunn <and...@lunn.ch>

    Andrew

Reply via email to