diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2022-02-05 00:03:21 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-02-05 16:27:01 +0100 |
commit | 59085208e4a2183998964844f8684fea0378128d (patch) | |
tree | 5dc961abbafe56d5db8c514449c35e3b07b5239d /net/smc | |
parent | tcp: take care of mixed splice()/sendmsg(MSG_ZEROCOPY) case (diff) | |
download | linux-59085208e4a2183998964844f8684fea0378128d.tar.xz linux-59085208e4a2183998964844f8684fea0378128d.zip |
net: mscc: ocelot: fix all IP traffic getting trapped to CPU with PTP over IP
The filters for the PTP trap keys are incorrectly configured, in the
sense that is2_entry_set() only looks at trap->key.ipv4.dport or
trap->key.ipv6.dport if trap->key.ipv4.proto or trap->key.ipv6.proto is
set to IPPROTO_TCP or IPPROTO_UDP.
But we don't do that, so is2_entry_set() goes through the "else" branch
of the IP protocol check, and ends up installing a rule for "Any IP
protocol match" (because msk is also 0). The UDP port is ignored.
This means that when we run "ptp4l -i swp0 -4", all IP traffic is
trapped to the CPU, which hinders bridging.
Fix this by specifying the IP protocol in the VCAP IS2 filters for PTP
over UDP.
Fixes: 96ca08c05838 ("net: mscc: ocelot: set up traps for PTP packets")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc')
0 files changed, 0 insertions, 0 deletions