diff --git a/README.md b/README.md index 74191f4b2fd481c7348360d8006affe066bd3429..6c7d9cc41f5d08ca311c09493281bfd3701b4842 100644 --- a/README.md +++ b/README.md @@ -336,6 +336,57 @@ config radio 'radio_ec6c9a52acb9' If these values are modified, a `SIGHUP` can be triggered to mapcontroller and the options will be propagated to the agent(s). +### QoS (Service Prioritization) + +Service Prioritization feature allows setting packet priorities which can be +used by the switches and WiFi access points on the traffic path to accelerate +properly marked packet types. + +The configuration of this features boils down to enabling QoS generally and +adding rules. Controller would propagate these rules to agents by sending +Service Prioritization Requests, and then it is up to agents to decide whether +it is possible to enable them or not. + +For now, the only supported rule type is `dscp_pcp`, which allows mapping up to +64 Differentiated Services Code Point (DSCP, `[0, 63]`) values to 8 Priority +Call Point (PCP, `[0, 7]`) values. The sample configuration is provided below. + +``` +config qos 'qos' + option enabled '1' + +config qos_rule 'qos_rule1' + option enabled '1' + option type 'dscp_pcp' + option output '8' + option always_match '1' + option dscp_pcp '1,2,3,4,5,6' +``` + +The `output` value determines the target PCP. If the rule has `output` +less than `8`, a PCP value of that range (`[0, 7]`) would be used as a target +for all possible DSCP values. The value outside the `[0, 8]` range would be +considered malformed and would trigger errors. + +The `always_match` flag is assumed for `dscp_pcp` type because rule matching is +provided through TCLAS objects, which are not available for configuring for +that rule type. + +The `dscp_pcp` is a comma-separated array of up to 64 integers in `[0, 7]` +range. Each integer designates a PCP value which would be used for packets with +the DSCP value corresponding to the index of the said PCP value. + +Note that DSCP/PCP mapping table can't be completely sparse in terms of used +values and has to be made with care. Technically, the agent would have to +convert this table to the list of PCP/DSCP ranges (8 ``[dscp_min, dscp_max]`` +ranges) and up to 21 DSCP exceptions (``[DSCP, PCP]``), which means there can be +no precise conversion between original DSCP/PCP mapping table and the final map. +Agent will do its best to generate a proper map, but will not inform controller +about the possible imprecision. + +The support of the feature on the agent depends on the used WiFi driver. The +agent passes the generated map directly to the driver, and it is up to driver +to decide whether to activate it or not. ## AP-Autoconfig Renew (Network Reconfiguration)