Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d611da8
confd: update ieee802-dot1q-types to revision 2023-10-26
troglobit Sep 7, 2026
0b5bffd
board: enable ETS qdisc and sync x86_64 QoS kernel options
troglobit Sep 7, 2026
f9cd564
confd: initial QoS support, classification, traffic classes
troglobit Sep 7, 2026
3178ebf
test: infamy: print the RESTCONF error body on HTTP failures
troglobit Sep 8, 2026
8280c33
test: add QoS test suite
troglobit Sep 7, 2026
834b980
doc: describe per-interface QoS configuration
troglobit Sep 7, 2026
ccdfe24
doc: center tables and fit header cells to their content
troglobit Sep 7, 2026
f76ac3e
doc: tighten code block line height
troglobit Sep 7, 2026
34919fb
linux: offload QoS classification and remarking on Marvell LinkStreet
troglobit Oct 5, 2026
ca2d45d
test: add QoS bridge classification test
troglobit Sep 9, 2026
e92ddc8
confd: prefer the ets scheduler for transmission selection
troglobit Sep 16, 2026
84966f9
confd: add a per-port egress rate limit
troglobit Sep 16, 2026
ac89e6e
test: add QoS queue assignment test
troglobit Sep 17, 2026
b9fc8ea
test: add QoS strict priority test
troglobit Sep 17, 2026
e5bb922
test: add QoS weighted sharing test
troglobit Sep 17, 2026
2adc2b0
test: add QoS mixed selection test
troglobit Sep 17, 2026
24a366c
linux: offload QoS transmission selection and rate limit on Marvell L…
troglobit Sep 17, 2026
3dc77f1
confd: schedule every port with ets
troglobit Sep 17, 2026
24af10a
test: drop the mqprio branches from the QoS tests
troglobit Sep 17, 2026
b459e6b
test: add QoS rate limit test
troglobit Sep 18, 2026
5e0eb68
test: infamy: say why a test skipped
troglobit Sep 22, 2026
d2a6db6
test: infamy: ask the device what it can do
troglobit Sep 22, 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
17 changes: 17 additions & 0 deletions doc/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,22 @@ All notable changes to the project are documented in this file.
- WiFi channel survey is on request: `show hardware <radio> survey`, the
Scan channels button on the WebUI WiFi page, or the `channel-survey`
action. The always-on `survey` container under the radio is gone
- 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][]
- Add a per-port egress rate limiting in new [QoS][] sub-system
- 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

### Fixes

Expand Down Expand Up @@ -257,6 +273,7 @@ All notable changes to the project are documented in this file.
[limits]: https://www.kernelkit.org/infix/latest/limitations/
[migrate]: https://www.kernelkit.org/infix/latest/upgrade/#configuration-migration
[relsup]: https://github.com/kernelkit/infix/blob/main/doc/releases.md
[QoS]: https://www.kernelkit.org/infix/latest/qos/
[snmp]: https://www.kernelkit.org/infix/latest/snmp/
[tftp]: https://www.kernelkit.org/infix/latest/tftp/
[tactical]: https://github.com/kernelkit/infix/blob/main/board/aarch64/novarq-tactical-1000/README.md
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