net: dsa: sja1105: implement the port MTU callbacks
authorVladimir Oltean <vladimir.oltean@nxp.com>
Fri, 27 Mar 2020 19:55:45 +0000 (21:55 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Mar 2020 23:07:25 +0000 (16:07 -0700)
commitc279c7261a834470a7b9f005993bf149ee594d85
tree2cd0902f190d3bb5280b7f1a29012b665bb411dc
parent6ae5834b983ac191ce2a66fbdc59bb33477a63cc
net: dsa: sja1105: implement the port MTU callbacks

On this switch, the frame length enforcements are performed by the
ingress policers. There are 2 types of those: regular L2 (also called
best-effort) and Virtual Link policers (an ARINC664/AFDX concept for
defining L2 streams with certain QoS abilities). To avoid future
confusion, I prefer to call the reset reason "Best-effort policers",
even though the VL policers are not yet supported.

We also need to change the setup of the initial static config, such that
DSA calls to .change_mtu (which are expensive) become no-ops and don't
reset the switch 5 times.

A driver-level decision is to unconditionally allow single VLAN-tagged
traffic on all ports. The CPU port must accept an additional VLAN header
for the DSA tag, which is again a driver-level decision.

The policers actually count bytes not only from the SDU, but also from
the Ethernet header and FCS, so those need to be accounted for as well.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/sja1105/sja1105.h
drivers/net/dsa/sja1105/sja1105_main.c