Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
7af6cf1
confd: update ieee802-dot1q-types to revision 2023-10-26
troglobit Sep 7, 2026
40efc76
board: enable ETS qdisc and sync x86_64 QoS kernel options
troglobit Sep 7, 2026
c3865ac
confd: initial QoS support, classification, traffic classes
troglobit Sep 7, 2026
3c781f2
test: infamy: print the RESTCONF error body on HTTP failures
troglobit Sep 8, 2026
c0d613e
test: add QoS test suite
troglobit Sep 7, 2026
84cfa9e
doc: describe per-interface QoS configuration
troglobit Sep 7, 2026
9d8a348
doc: center tables and fit header cells to their content
troglobit Sep 7, 2026
6a5f7ca
doc: tighten code block line height
troglobit Sep 7, 2026
99bff76
linux: offload QoS classification and remarking on Marvell LinkStreet
troglobit Sep 9, 2026
8fba713
test: add QoS bridge classification test
troglobit Sep 9, 2026
58ea0c3
confd: prefer the ets scheduler for transmission selection
troglobit Sep 16, 2026
af02ba0
confd: add a per-port egress rate limit
troglobit Sep 16, 2026
08403f4
test: docker: add iperf3, trafgen and mausezahn to the test container
troglobit Sep 17, 2026
2c49e83
test: add QoS queue assignment test
troglobit Sep 17, 2026
f72146a
test: add QoS strict priority test
troglobit Sep 17, 2026
8ea11bf
test: add QoS weighted sharing test
troglobit Sep 17, 2026
309c0bc
test: add QoS mixed selection test
troglobit Sep 17, 2026
c0a3032
linux: offload QoS transmission selection and rate limit on Marvell L…
troglobit Sep 17, 2026
aa70f11
confd: schedule every port with ets
troglobit Sep 17, 2026
b733f76
test: drop the mqprio branches from the QoS tests
troglobit Sep 17, 2026
df12cdc
test: add QoS rate limit test
troglobit Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
{
"eth0": {
"phy-detached-when-down": true
},
"eth1": {
"broken-mqprio": true
}
}
9 changes: 9 additions & 0 deletions board/aarch64/linux_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -245,13 +245,22 @@ CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_MQPRIO=y
CONFIG_NET_SCH_ETS=y
CONFIG_NET_SCH_TBF=y
CONFIG_NET_SCH_INGRESS=y
CONFIG_NET_CLS_BASIC=y
CONFIG_NET_CLS_BPF=y
CONFIG_NET_CLS_FLOWER=y
CONFIG_NET_CLS_MATCHALL=y
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_CMP=y
CONFIG_NET_EMATCH_META=y
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_GACT=y
CONFIG_NET_ACT_MIRRED=y
CONFIG_NET_ACT_SKBEDIT=y
CONFIG_NET_ACT_PEDIT=y
CONFIG_NET_ACT_CSUM=y
CONFIG_DCB=y
CONFIG_NETLINK_DIAG=y
CONFIG_MPLS=y
Expand Down
4 changes: 3 additions & 1 deletion board/aarch64/microchip-ev23x71a/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ Supported:
Not yet done:

- TSN queueing. PSFP and time aware shaping need `NET_SCH_TAPRIO`,
`NET_ACT_GATE`, `NET_SCH_ETS`, and `NET_SCH_CBS`, all currently off
`NET_ACT_GATE`, and `NET_SCH_CBS`, all currently off. Ingress
classification (`dcb`) and traffic classes (`mqprio`) are configurable
from the QoS model but not yet verified on this board
- HSR/PRP offload, see above
- MAC addresses. With no environment in flash the board falls back to
`lan969x_otp_get_mac()`, which derives 30 addresses for this board
Expand Down
9 changes: 9 additions & 0 deletions board/arm/linux_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -229,13 +229,22 @@ CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_MQPRIO=y
CONFIG_NET_SCH_ETS=y
CONFIG_NET_SCH_TBF=y
CONFIG_NET_SCH_INGRESS=y
CONFIG_NET_CLS_BASIC=y
CONFIG_NET_CLS_BPF=y
CONFIG_NET_CLS_FLOWER=y
CONFIG_NET_CLS_MATCHALL=y
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_CMP=y
CONFIG_NET_EMATCH_META=y
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_GACT=y
CONFIG_NET_ACT_MIRRED=y
CONFIG_NET_ACT_SKBEDIT=y
CONFIG_NET_ACT_PEDIT=y
CONFIG_NET_ACT_CSUM=y
CONFIG_DCB=y
CONFIG_NETLINK_DIAG=y
CONFIG_MPLS=y
Expand Down
60 changes: 0 additions & 60 deletions board/common/rootfs/usr/libexec/infix/init.d/25-mqprio

This file was deleted.

9 changes: 9 additions & 0 deletions board/riscv64/linux_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -193,13 +193,22 @@ CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_MQPRIO=y
CONFIG_NET_SCH_ETS=y
CONFIG_NET_SCH_TBF=y
CONFIG_NET_SCH_INGRESS=y
CONFIG_NET_CLS_BASIC=y
CONFIG_NET_CLS_BPF=y
CONFIG_NET_CLS_FLOWER=y
CONFIG_NET_CLS_MATCHALL=y
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_CMP=y
CONFIG_NET_EMATCH_META=y
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_GACT=y
CONFIG_NET_ACT_MIRRED=y
CONFIG_NET_ACT_SKBEDIT=y
CONFIG_NET_ACT_PEDIT=y
CONFIG_NET_ACT_CSUM=y
CONFIG_DCB=y
CONFIG_NETLINK_DIAG=y
CONFIG_MPLS=y
Expand Down
14 changes: 14 additions & 0 deletions board/x86_64/linux_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -219,9 +219,23 @@ CONFIG_VLAN_8021Q=y
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_MQPRIO=y
CONFIG_NET_SCH_ETS=y
CONFIG_NET_SCH_TBF=y
CONFIG_NET_SCH_INGRESS=y
CONFIG_NET_CLS_BASIC=y
CONFIG_NET_CLS_BPF=y
CONFIG_NET_CLS_FLOWER=y
CONFIG_NET_CLS_MATCHALL=y
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_CMP=y
CONFIG_NET_EMATCH_META=y
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_GACT=y
CONFIG_NET_ACT_SKBEDIT=y
CONFIG_NET_ACT_PEDIT=y
CONFIG_NET_ACT_CSUM=y
CONFIG_DCB=y
CONFIG_NETLINK_DIAG=y
CONFIG_MPLS=y
CONFIG_NET_MPLS_GSO=y
Expand Down
18 changes: 18 additions & 0 deletions doc/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,24 @@ All notable changes to the project are documented in this file.
- Document the release and maintenance policy: which versions receive
updates, what may go into a patch release, and the levels of long-term
maintenance available, see [Releases & Support][relsup]
- Add per-interface Quality of Service configuration: which header field
a port trusts (PCP, DSCP, or both in order), the default priority, PCP
and DSCP to priority maps with standard presets, an egress traffic
class table with strict-priority or weighted transmission selection per
class, and PCP and DSCP remarking on transmit. The defaults are on out
of the box on every port: trust PCP, one traffic class per
transmit queue mapped per IEEE 802.1Q-2022 Table 8-5, replacing the
fixed boot-time queue setup, see [QoS](qos.md)
- Add a per-port egress rate limit under
`/interfaces/interface/qos/egress/rate-limit`, one token bucket above
the traffic classes, see [QoS](qos.md)
- Transmission selection is rendered with the `ets` scheduler on every
port, so drivers that offload it take the class algorithms and weights
into the switch fabric, not only the priority to class map
- Marvell LinkStreet 88E6390 and 88E6393X switch ports offload QoS
classification, trust order, remarking, transmission selection and the
egress rate limit to the switch, so they apply to hardware forwarded
traffic as well

### Added

Expand Down
17 changes: 12 additions & 5 deletions doc/extra.css
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,21 @@ body {
--md-primary-bg-color: #5c5f5c;
}

/* Center Markdown Tables (requires md_in_html extension) */
.center-table {
/* Center all Markdown tables, like figures */
.md-typeset .md-typeset__scrollwrap {
text-align: center;
}

.md-typeset .center-table :is(td,th):not([align]) {
/* Reset alignment for table cells */
text-align: initial;
/* Material forces a 5rem minimum width on header cells, which makes
* narrow numeric tables sprawl past the page. Fit headers to content. */
.md-typeset table:not([class]) th {
min-width: 0;
}

/* Material's 1.4 line height leaves gaps between box-drawing characters
* in CLI output and diagrams. Applies to code blocks as a whole. */
.md-typeset pre {
line-height: 1.15;
}

/* CLI terminal output styling */
Expand Down
4 changes: 4 additions & 0 deletions doc/img/qos-pipeline.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading