On Mon, Jul 29, 2019 at 06:26:14PM +0000, Petr Machata wrote: > Spectrum systems have a configurable limit on how far into the packet they > parse. By default, the limit is 96 bytes. > > An IPv6 PTP packet is layered as Ethernet/IPv6/UDP (14+40+8 bytes), and > sequence ID of a PTP event is only available 32 bytes into payload, for a > total of 94 bytes. When an additional 802.1q header is present as > well (such as when ptp4l is running on a VLAN port), the parsing limit is > exceeded. Such packets are not recognized as PTP, and are not timestamped. > > Therefore generalize the current VXLAN-specific parsing depth setting to > allow reference-counted requests from other modules as well. Keep it in the > VXLAN module, because the MPRS register also configures UDP destination > port number used for VXLAN, and is thus closely tied to the VXLAN code > anyway. > > Then invoke the new interfaces from both VXLAN (in obvious places), as well > as from PTP code, when the (global) timestamping configuration changes from > disabled to enabled or vice versa. > > Fixes: 8748642751ed ("mlxsw: spectrum: PTP: Support SIOCGHWTSTAMP, > SIOCSHWTSTAMP ioctls") > Signed-off-by: Petr Machata <pe...@mellanox.com>
Reviewed-by: Ido Schimmel <ido...@mellanox.com>