Conversation
The new upcoming QoS model needs num-traffic-class-type, added to ieee802-dot1q-types by IEEE Std 802.1Qcw-2023. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Per-interface transmission selection is rendered as tc mqprio when the driver offloads it and tc ets otherwise. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Add a qos container to every interface, with names and types from IEEE 802.1Q-2022 wherever the standard defines the concept. The defaults are a complete pipeline, trust DSCP then PCP and one traffic class per transmit queue per Table 8-5, rendered on every physical port from boot, which retires the 25-mqprio script. Ingress classification is programmed through the kernel's DCB APP table and apptrust list. Few drivers have those operations, so when the calls fail the same maps are rendered as 'tc flower' rules on the port's ingress, in trust order, setting the skb priority; on a NIC or SoC MAC that covers all traffic, on a switch the CPU path. The orders a driver accepts cannot be queried, so a table keyed by driver name reports them as a capability. The traffic class table is programmed as 'tc mqprio' with 'hw 1', else as 'tc ets' in the kernel, which numbers bands the opposite way so the map, quanta and strict count invert. A single-queue port has no queue structure to respect and gets the kernel's eight classes; the root qdisc tells where it ended up and is reported as the offload capability. Strict classes must be the highest-numbered ones, the only layout ets can express. Egress remarking uses the same DCB table via 'dcb rewr'; without it DSCP is rewritten with 'tc pedit' on egress, PCP has no software counterpart since act_vlan cannot change the priority alone. Policing and storm control are omitted for now. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
A 4xx or 5xx from rousette carries the offending node and reason in the response body, which the exception message drops. Print it before raising. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
The QoS model has no test coverage. The tests run on any target: the software rendering is verified where mqprio and DCB are not offloaded, the hardware tables where they are, and DSCP classification end to end through a routed VLAN interface. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Update QoS page, which so far has covered only the Marvell hardware defaults and the hard-coded VLAN PCP mapping. Rewrite it around the new infix-if-qos.yang model, with the IEEE 802.1Q Table 8-5 factory default, the Table 34-1 layout for reserved streams and what offload capabilities mean on hardware with and without DCB support. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Figures are centered on the page, tables were left-aligned. The old .center-table class was never used; a rule on Material's table wrapper centers every table without markup. Material also gives every header cell a 5rem minimum width, so a nine column table of single digits overflows the page. Let headers size to their content. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Material's 1.4 line height leaves visible gaps between box-drawing characters in CLI output and diagrams. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
WIP
Checklist
Tick relevant boxes, this PR is-a or has-a: