This patch-set adds support for some features of the Marvell switch chips that can be used to handle packet storms.
The rationale for this was a setup that requires the ability to receive traffic from one port, while a packet storm is occuring on another port (via an external switch with a deliberate loop). This is needed to ensure vital data delivery from a specific port, while mitigating any loops or DoS that a user may introduce on another port (can't guarantee sensible users). [patch 1/7] configures auto negotiation for CPU ports connected with phys to enable pause frame propogation. [patch 2/7] allows setting of port's default output queue priority for any ingressing packets on that port. [patch 3/7] dt-bindings for patch 2. [patch 4/7] allows setting of a port's queue scheduling so that it can prioritise egress of traffic routed from high priority ports. [patch 5/7] dt-bindings for patch 4. [patch 6/7] allows ports to rate limit their egress. This can be used to stop the host CPU from becoming swamped by packet delivery and exhasting descriptors. [patch 7/7] dt-bindings for patch 6. Robert Beckett (7): net/dsa: configure autoneg for CPU port net: dsa: mv88e6xxx: add ability to set default queue priorities per port dt-bindings: mv88e6xxx: add ability to set default queue priorities per port net: dsa: mv88e6xxx: add ability to set queue scheduling dt-bindings: mv88e6xxx: add ability to set queue scheduling net: dsa: mv88e6xxx: add egress rate limiting dt-bindings: mv88e6xxx: add egress rate limiting .../devicetree/bindings/net/dsa/marvell.txt | 38 +++++ drivers/net/dsa/mv88e6xxx/chip.c | 122 ++++++++++++--- drivers/net/dsa/mv88e6xxx/chip.h | 5 +- drivers/net/dsa/mv88e6xxx/port.c | 140 +++++++++++++++++- drivers/net/dsa/mv88e6xxx/port.h | 24 ++- include/dt-bindings/net/dsa-mv88e6xxx.h | 22 +++ net/dsa/port.c | 10 ++ 7 files changed, 327 insertions(+), 34 deletions(-) create mode 100644 include/dt-bindings/net/dsa-mv88e6xxx.h -- 2.18.0