• Vladimir Oltean's avatar
    net: mscc: ocelot: fix all IP traffic getting trapped to CPU with PTP over IP · 59085208
    Vladimir Oltean authored
    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: 96ca08c0 ("net: mscc: ocelot: set up traps for PTP packets")
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    59085208
ocelot.c 74.5 KB