* [PATCH 3/7] dt-bindings: mv88e6xxx: add ability to set default queue priorities per port
[not found] <20190910154238.9155-1-bob.beckett@collabora.com>
@ 2019-09-10 15:41 ` Robert Beckett
2019-09-10 16:42 ` Florian Fainelli
2019-09-10 15:41 ` [PATCH 5/7] dt-bindings: mv88e6xxx: add ability to set queue scheduling Robert Beckett
2019-09-10 15:41 ` [PATCH 7/7] dt-bindings: mv88e6xxx: add egress rate limiting Robert Beckett
2 siblings, 1 reply; 6+ messages in thread
From: Robert Beckett @ 2019-09-10 15:41 UTC (permalink / raw)
To: netdev
Cc: Robert Beckett, Andrew Lunn, Vivien Didelot, Florian Fainelli,
David S. Miller, Rob Herring, Mark Rutland, devicetree
Document a new setting for Marvell switch chips to set the default queue
priorities per port.
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
---
Documentation/devicetree/bindings/net/dsa/marvell.txt | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/dsa/marvell.txt b/Documentation/devicetree/bindings/net/dsa/marvell.txt
index 6f9538974bb9..e097c3c52eac 100644
--- a/Documentation/devicetree/bindings/net/dsa/marvell.txt
+++ b/Documentation/devicetree/bindings/net/dsa/marvell.txt
@@ -47,6 +47,10 @@ Optional properties:
bus. The node must contains a compatible string of
"marvell,mv88e6xxx-mdio-external"
+Optional properties for ports:
+- defqpri=<n> : Enforced default queue priority for the given port.
+ Valid range is 0..3
+
Example:
mdio {
--
2.18.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 5/7] dt-bindings: mv88e6xxx: add ability to set queue scheduling
[not found] <20190910154238.9155-1-bob.beckett@collabora.com>
2019-09-10 15:41 ` [PATCH 3/7] dt-bindings: mv88e6xxx: add ability to set default queue priorities per port Robert Beckett
@ 2019-09-10 15:41 ` Robert Beckett
2019-09-10 15:41 ` [PATCH 7/7] dt-bindings: mv88e6xxx: add egress rate limiting Robert Beckett
2 siblings, 0 replies; 6+ messages in thread
From: Robert Beckett @ 2019-09-10 15:41 UTC (permalink / raw)
To: netdev
Cc: Robert Beckett, Andrew Lunn, Vivien Didelot, Florian Fainelli,
David S. Miller, Rob Herring, Mark Rutland, devicetree
Document port queue scheduling settings.
Add definitions for specific valid values.
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
---
.../devicetree/bindings/net/dsa/marvell.txt | 12 ++++++++++++
include/dt-bindings/net/dsa-mv88e6xxx.h | 17 +++++++++++++++++
2 files changed, 29 insertions(+)
create mode 100644 include/dt-bindings/net/dsa-mv88e6xxx.h
diff --git a/Documentation/devicetree/bindings/net/dsa/marvell.txt b/Documentation/devicetree/bindings/net/dsa/marvell.txt
index e097c3c52eac..7de90929c3c9 100644
--- a/Documentation/devicetree/bindings/net/dsa/marvell.txt
+++ b/Documentation/devicetree/bindings/net/dsa/marvell.txt
@@ -50,6 +50,18 @@ Optional properties:
Optional properties for ports:
- defqpri=<n> : Enforced default queue priority for the given port.
Valid range is 0..3
+- schedule=<n> : Set ports scheduling mode. Valid values are:
+ MV88E6XXX_PORT_SCHED_ROUND_ROBIN - All output queues
+ use a weighter round robin scheme.
+ MV88E6XXX_PORT_SCHED_STRICT_3 - Output queue 3 uses
+ a strict scheme, where any packets in queue 3 will be
+ egressed first, followed by weighted round robin for
+ the other ports.
+ MV88E6XXX_PORT_SCHED_STRICT_3_2 - Output queue's 2
+ and 3 use strict, other use weighted round robin.
+ MV88E6XXX_PORT_SCHED_STRICT_ALL - All queues use
+ strict priority, where queues drain in descending
+ queue number order.
Example:
diff --git a/include/dt-bindings/net/dsa-mv88e6xxx.h b/include/dt-bindings/net/dsa-mv88e6xxx.h
new file mode 100644
index 000000000000..3f62003841ce
--- /dev/null
+++ b/include/dt-bindings/net/dsa-mv88e6xxx.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Device Tree constants for Marvell 88E6xxx Switch Port Registers
+ *
+ * Copyright (c) 2019, Collabora Ltd.
+ * Copyright (c) 2019, General Electric Company
+ */
+
+#ifndef _DT_BINDINGS_MV88E6XXX_H
+#define _DT_BINDINGS_MV88E6XXX_H
+
+#define MV88E6XXX_PORT_SCHED_ROUND_ROBIN 0
+#define MV88E6XXX_PORT_SCHED_STRICT_3 1
+#define MV88E6XXX_PORT_SCHED_STRICT_3_2 2
+#define MV88E6XXX_PORT_SCHED_STRICT_ALL 3
+
+#endif /* _DT_BINDINGS_MV88E6XXX_H */
--
2.18.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 7/7] dt-bindings: mv88e6xxx: add egress rate limiting
[not found] <20190910154238.9155-1-bob.beckett@collabora.com>
2019-09-10 15:41 ` [PATCH 3/7] dt-bindings: mv88e6xxx: add ability to set default queue priorities per port Robert Beckett
2019-09-10 15:41 ` [PATCH 5/7] dt-bindings: mv88e6xxx: add ability to set queue scheduling Robert Beckett
@ 2019-09-10 15:41 ` Robert Beckett
2 siblings, 0 replies; 6+ messages in thread
From: Robert Beckett @ 2019-09-10 15:41 UTC (permalink / raw)
To: netdev
Cc: Robert Beckett, Andrew Lunn, Vivien Didelot, Florian Fainelli,
David S. Miller, Rob Herring, Mark Rutland, devicetree
Document port egress rate limiting settings.
Add defines for specifying egress rate limiting mode.
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
---
.../devicetree/bindings/net/dsa/marvell.txt | 22 +++++++++++++++++++
include/dt-bindings/net/dsa-mv88e6xxx.h | 5 +++++
2 files changed, 27 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/dsa/marvell.txt b/Documentation/devicetree/bindings/net/dsa/marvell.txt
index 7de90929c3c9..d33c1958f420 100644
--- a/Documentation/devicetree/bindings/net/dsa/marvell.txt
+++ b/Documentation/devicetree/bindings/net/dsa/marvell.txt
@@ -62,6 +62,28 @@ Optional properties for ports:
MV88E6XXX_PORT_SCHED_STRICT_ALL - All queues use
strict priority, where queues drain in descending
queue number order.
+- egress-limit-mode=<n> : Set port egress rate limiting mode. Valid values are:
+ MV88E6XXX_PORT_EGRESS_COUNT_MODE_FRAMES - Count layer
+ 2 frames (assumed to be 64kb).
+ MV88E6XXX_PORT_EGRESS_COUNT_MODE_L1 - Count all layer
+ 1 bits
+ MV88E6XXX_PORT_EGRESS_COUNT_MODE_L2 - Count all layer
+ 2 bits
+ MV88E6XXX_PORT_EGRESS_COUNT_MODE_L3 - Count all layer
+ 3 bits
+ Must also specify egress-limit-count.
+- egress-limit-count=<n>: Set port egress rate limiting count. If
+ egress-limit-mode is FRAMES, this specifies the
+ maximum number of ethernet frames to allow to egress
+ from this port per second, otherwise it is number of
+ bits as counted based on the mode allowed to egress
+ from this port per second.
+ The HW has limitations which the driver adheres to:
+ between 64 Kbps to 1 Mbps in 16 Kbps increments
+ between 1 Mbps to 100 Mbps in 1Mbps increments
+ between 100 Mbps to 1 Gbps in 10 Mbps increments.
+ Other values will be rounded down the previous
+ increment.
Example:
diff --git a/include/dt-bindings/net/dsa-mv88e6xxx.h b/include/dt-bindings/net/dsa-mv88e6xxx.h
index 3f62003841ce..33ecd94f5e22 100644
--- a/include/dt-bindings/net/dsa-mv88e6xxx.h
+++ b/include/dt-bindings/net/dsa-mv88e6xxx.h
@@ -9,6 +9,11 @@
#ifndef _DT_BINDINGS_MV88E6XXX_H
#define _DT_BINDINGS_MV88E6XXX_H
+#define MV88E6XXX_PORT_EGRESS_COUNT_MODE_FRAMES 0
+#define MV88E6XXX_PORT_EGRESS_COUNT_MODE_L1 1
+#define MV88E6XXX_PORT_EGRESS_COUNT_MODE_L2 2
+#define MV88E6XXX_PORT_EGRESS_COUNT_MODE_L3 3
+
#define MV88E6XXX_PORT_SCHED_ROUND_ROBIN 0
#define MV88E6XXX_PORT_SCHED_STRICT_3 1
#define MV88E6XXX_PORT_SCHED_STRICT_3_2 2
--
2.18.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 3/7] dt-bindings: mv88e6xxx: add ability to set default queue priorities per port
2019-09-10 15:41 ` [PATCH 3/7] dt-bindings: mv88e6xxx: add ability to set default queue priorities per port Robert Beckett
@ 2019-09-10 16:42 ` Florian Fainelli
2019-09-10 16:49 ` Vivien Didelot
0 siblings, 1 reply; 6+ messages in thread
From: Florian Fainelli @ 2019-09-10 16:42 UTC (permalink / raw)
To: Robert Beckett, netdev
Cc: Andrew Lunn, Vivien Didelot, David S. Miller, Rob Herring,
Mark Rutland, devicetree, Jiri Pirko, Ido Schimmel
On 9/10/19 8:41 AM, Robert Beckett wrote:
> Document a new setting for Marvell switch chips to set the default queue
> priorities per port.
>
> Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
> ---
> Documentation/devicetree/bindings/net/dsa/marvell.txt | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/net/dsa/marvell.txt b/Documentation/devicetree/bindings/net/dsa/marvell.txt
> index 6f9538974bb9..e097c3c52eac 100644
> --- a/Documentation/devicetree/bindings/net/dsa/marvell.txt
> +++ b/Documentation/devicetree/bindings/net/dsa/marvell.txt
> @@ -47,6 +47,10 @@ Optional properties:
> bus. The node must contains a compatible string of
> "marvell,mv88e6xxx-mdio-external"
>
> +Optional properties for ports:
> +- defqpri=<n> : Enforced default queue priority for the given port.
> + Valid range is 0..3
This is a vendor specific driver/property,
marvell,default-queue-priority (which be cheapskate on words) would be
more readable. But still, I have some more fundamental issues with the
general approach, see my response in the cover letter.
--
Florian
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/7] dt-bindings: mv88e6xxx: add ability to set default queue priorities per port
2019-09-10 16:42 ` Florian Fainelli
@ 2019-09-10 16:49 ` Vivien Didelot
2019-09-10 20:46 ` Vladimir Oltean
0 siblings, 1 reply; 6+ messages in thread
From: Vivien Didelot @ 2019-09-10 16:49 UTC (permalink / raw)
To: Florian Fainelli
Cc: Robert Beckett, netdev, Andrew Lunn, David S. Miller, Rob Herring,
Mark Rutland, devicetree, Jiri Pirko, Ido Schimmel
Hi Robert,
On Tue, 10 Sep 2019 09:42:24 -0700, Florian Fainelli <f.fainelli@gmail.com> wrote:
> This is a vendor specific driver/property,
> marvell,default-queue-priority (which be cheapskate on words) would be
> more readable. But still, I have some more fundamental issues with the
> general approach, see my response in the cover letter.
As Florian said, the DT is unlikely to welcome vendor specific nodes for
configuration which may be generic through standard network userspace tools.
Thanks,
Vivien
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/7] dt-bindings: mv88e6xxx: add ability to set default queue priorities per port
2019-09-10 16:49 ` Vivien Didelot
@ 2019-09-10 20:46 ` Vladimir Oltean
0 siblings, 0 replies; 6+ messages in thread
From: Vladimir Oltean @ 2019-09-10 20:46 UTC (permalink / raw)
To: Vivien Didelot
Cc: Florian Fainelli, Robert Beckett, netdev, Andrew Lunn,
David S. Miller, Rob Herring, Mark Rutland, devicetree,
Jiri Pirko, Ido Schimmel
Hi guys,
On 10/09/2019, Vivien Didelot <vivien.didelot@gmail.com> wrote:
> Hi Robert,
>
> On Tue, 10 Sep 2019 09:42:24 -0700, Florian Fainelli <f.fainelli@gmail.com>
> wrote:
>> This is a vendor specific driver/property,
>> marvell,default-queue-priority (which be cheapskate on words) would be
>> more readable. But still, I have some more fundamental issues with the
>> general approach, see my response in the cover letter.
>
> As Florian said, the DT is unlikely to welcome vendor specific nodes for
> configuration which may be generic through standard network userspace
> tools.
>
>
> Thanks,
>
> Vivien
>
While I do agree that the DT bindings are a big no-no for QoS
settings, the topic is interesting.
What is the user space knob for configuring port-default priority (say
RX queue)?
Something like this maybe? (a very forced "matchall" with rxnfc)
ethtool --config-nfc eth0 flow-type ether src 00:00:00:00:00:00 m
00:00:00:00:00:00 action 5
Regards,
-Vladimir
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-09-10 20:46 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20190910154238.9155-1-bob.beckett@collabora.com>
2019-09-10 15:41 ` [PATCH 3/7] dt-bindings: mv88e6xxx: add ability to set default queue priorities per port Robert Beckett
2019-09-10 16:42 ` Florian Fainelli
2019-09-10 16:49 ` Vivien Didelot
2019-09-10 20:46 ` Vladimir Oltean
2019-09-10 15:41 ` [PATCH 5/7] dt-bindings: mv88e6xxx: add ability to set queue scheduling Robert Beckett
2019-09-10 15:41 ` [PATCH 7/7] dt-bindings: mv88e6xxx: add egress rate limiting Robert Beckett
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).