net: mscc: ocelot: support matching on EtherType
authorVladimir Oltean <vladimir.oltean@nxp.com>
Mon, 20 Apr 2020 16:27:41 +0000 (19:27 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Apr 2020 18:40:51 +0000 (11:40 -0700)
commit86b956de119c09818d0aabaf668280d8e4bd0d4b
tree1cebfeecfbf052575f0f81c3e05878e5f3b14744
parent44dd5efc97dae0dc09ea9316597826c8b0fd1578
net: mscc: ocelot: support matching on EtherType

Currently, the filter's protocol is ignored except for a few special
cases (IPv4 and IPv6).

The EtherType can be matched inside VCAP IS2 by using a MAC_ETYPE key.
So there are 2 cases in which EtherType matches are supported:

  - As part of a larger MAC_ETYPE rule, such as:

    tc filter add dev swp0 ingress protocol ip \
            flower skip_sw src_mac 42:be:24:9b:76:20 action drop

  - Standalone (matching on protocol only):

    tc filter add dev swp0 ingress protocol arp \
            flower skip_sw action drop

As before, if the protocol is not specified, is it implicitly "all" and
the EtherType mask in the MAC_ETYPE half key is set to zero.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mscc/ocelot_flower.c