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)