diff --git a/calico-cloud/networking/configuring/qos-controls.mdx b/calico-cloud/networking/configuring/qos-controls.mdx
index 3ce80e7aa3..1157efc7a2 100644
--- a/calico-cloud/networking/configuring/qos-controls.mdx
+++ b/calico-cloud/networking/configuring/qos-controls.mdx
@@ -6,11 +6,13 @@ description: Configure QoS (Quality of Service) Controls to limit ingress and/or
## Big picture
-Configure QoS (Quality of Service) Controls to limit ingress and/or egress bandwidth, packet rate and number of connections used by Calico workloads in order to prevent them from overusing or overloading network resources.
+Configure QoS (Quality of Service) Controls to limit ingress and/or egress bandwidth, packet rate and number of connections used by $[prodname] workloads in order to prevent them from overusing or overloading network resources.
+Additionally, it allows configuring Differentiated Services (DiffServ) on egress traffic of $[prodname] workloads and hosts.
## Value
-With QoS controls, $[prodname] enforces network resource limits (bandwidth, packet rate, connections) for Kubernetes pods, ensuring fair resource allocation and preventing performance degradation for other workloads.
+With QoS controls, $[prodname] enforces network resource limits (bandwidth, packet rate, connections) for Kubernetes pods and OpenStack VMs, ensuring fair resource allocation and preventing performance degradation for other workloads.
+$[prodname] can also apply DiffServ on egress traffic to allow upstream devices to prioritise forwarding accordingly.
## Limitations
@@ -26,6 +28,7 @@ $[prodname] implements three types of QoS Controls, which can be configured usin
1. Bandwidth: limiting the bit rate of traffic into/out of the pod
2. Packet rate: limiting the number of packets per second that can be sent or received by the pod
3. Number of established connections: limiting the absolute number of connections that the pod may initiate or accept
+4. Differentiated Services (DiffServ): setting Differentiated Services Code Point (DSCP) on egress traffic leaving clusters or toward hosts
### Annotations
@@ -58,6 +61,7 @@ spec:
- [Configure bandwidth limits](#configure-bandwidth-limits)
- [Configure packet rate limits](#configure-packet-rate-limits)
- [Configure established connection limits](#configure-established-connection-limits)
+- [Configure DiffServ](#configure-diffserv)
### Configure bandwidth limits
@@ -104,3 +108,28 @@ Use the annotations below to configure limits for the number of established conn
| `qos.projectcalico.org/ingressMaxConnections` | Specifies the maximum number of ingress connections.
Min value: `1`
Max value: `4294967295` |
| `qos.projectcalico.org/egressMaxConnections` | Specifies the maximum number of egress connections.
Min value: `1`
Max value: `4294967295` |
+### Configure DiffServ
+
+Use the annotation below to set DSCP on egress traffic toward an endpoint outside cluster or another host in cluster. Unlike, other QoS controls, this annotation can also be set on a [host endpoint](../../reference/host-endpoints).
+For example, to set DSCP AF11 on a host endpoint:
+
+```yaml noValidation
+apiVersion: projectcalico.org/v3
+kind: HostEndpoint
+metadata:
+ name: my-hep
+ annotations:
+ qos.projectcalico.org/dscp: "AF11"
+ labels:
+ app: my-app
+spec:
+ (...)
+```
+
+| Annotation | Description |
+|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `qos.projectcalico.org/dscp` | Specifies the DSCP value of egress traffic toward an endpoint outside cluser or another host in cluster.
Min value: `0`
Max value: `63`
String values: DF, EF, AF11, AF12, AF13, AF21, AF22, AF23, AF31, AF32, AF33, AF41, AF42, AF43, CS0, CS1, CS2, CS3, CS4, CS5, CS6 |
+
+## Additional resources
+
+- [QoS controls on Openstack](../openstack/neutron-api.mdx#qos)
diff --git a/calico-enterprise/networking/configuring/qos-controls.mdx b/calico-enterprise/networking/configuring/qos-controls.mdx
index 3ce80e7aa3..1157efc7a2 100644
--- a/calico-enterprise/networking/configuring/qos-controls.mdx
+++ b/calico-enterprise/networking/configuring/qos-controls.mdx
@@ -6,11 +6,13 @@ description: Configure QoS (Quality of Service) Controls to limit ingress and/or
## Big picture
-Configure QoS (Quality of Service) Controls to limit ingress and/or egress bandwidth, packet rate and number of connections used by Calico workloads in order to prevent them from overusing or overloading network resources.
+Configure QoS (Quality of Service) Controls to limit ingress and/or egress bandwidth, packet rate and number of connections used by $[prodname] workloads in order to prevent them from overusing or overloading network resources.
+Additionally, it allows configuring Differentiated Services (DiffServ) on egress traffic of $[prodname] workloads and hosts.
## Value
-With QoS controls, $[prodname] enforces network resource limits (bandwidth, packet rate, connections) for Kubernetes pods, ensuring fair resource allocation and preventing performance degradation for other workloads.
+With QoS controls, $[prodname] enforces network resource limits (bandwidth, packet rate, connections) for Kubernetes pods and OpenStack VMs, ensuring fair resource allocation and preventing performance degradation for other workloads.
+$[prodname] can also apply DiffServ on egress traffic to allow upstream devices to prioritise forwarding accordingly.
## Limitations
@@ -26,6 +28,7 @@ $[prodname] implements three types of QoS Controls, which can be configured usin
1. Bandwidth: limiting the bit rate of traffic into/out of the pod
2. Packet rate: limiting the number of packets per second that can be sent or received by the pod
3. Number of established connections: limiting the absolute number of connections that the pod may initiate or accept
+4. Differentiated Services (DiffServ): setting Differentiated Services Code Point (DSCP) on egress traffic leaving clusters or toward hosts
### Annotations
@@ -58,6 +61,7 @@ spec:
- [Configure bandwidth limits](#configure-bandwidth-limits)
- [Configure packet rate limits](#configure-packet-rate-limits)
- [Configure established connection limits](#configure-established-connection-limits)
+- [Configure DiffServ](#configure-diffserv)
### Configure bandwidth limits
@@ -104,3 +108,28 @@ Use the annotations below to configure limits for the number of established conn
| `qos.projectcalico.org/ingressMaxConnections` | Specifies the maximum number of ingress connections.
Min value: `1`
Max value: `4294967295` |
| `qos.projectcalico.org/egressMaxConnections` | Specifies the maximum number of egress connections.
Min value: `1`
Max value: `4294967295` |
+### Configure DiffServ
+
+Use the annotation below to set DSCP on egress traffic toward an endpoint outside cluster or another host in cluster. Unlike, other QoS controls, this annotation can also be set on a [host endpoint](../../reference/host-endpoints).
+For example, to set DSCP AF11 on a host endpoint:
+
+```yaml noValidation
+apiVersion: projectcalico.org/v3
+kind: HostEndpoint
+metadata:
+ name: my-hep
+ annotations:
+ qos.projectcalico.org/dscp: "AF11"
+ labels:
+ app: my-app
+spec:
+ (...)
+```
+
+| Annotation | Description |
+|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `qos.projectcalico.org/dscp` | Specifies the DSCP value of egress traffic toward an endpoint outside cluser or another host in cluster.
Min value: `0`
Max value: `63`
String values: DF, EF, AF11, AF12, AF13, AF21, AF22, AF23, AF31, AF32, AF33, AF41, AF42, AF43, CS0, CS1, CS2, CS3, CS4, CS5, CS6 |
+
+## Additional resources
+
+- [QoS controls on Openstack](../openstack/neutron-api.mdx#qos)
diff --git a/calico/networking/configuring/qos-controls.mdx b/calico/networking/configuring/qos-controls.mdx
index cc3af242c3..1157efc7a2 100644
--- a/calico/networking/configuring/qos-controls.mdx
+++ b/calico/networking/configuring/qos-controls.mdx
@@ -6,11 +6,13 @@ description: Configure QoS (Quality of Service) Controls to limit ingress and/or
## Big picture
-Configure QoS (Quality of Service) Controls to limit ingress and/or egress bandwidth, packet rate and number of connections used by Calico workloads in order to prevent them from overusing or overloading network resources.
+Configure QoS (Quality of Service) Controls to limit ingress and/or egress bandwidth, packet rate and number of connections used by $[prodname] workloads in order to prevent them from overusing or overloading network resources.
+Additionally, it allows configuring Differentiated Services (DiffServ) on egress traffic of $[prodname] workloads and hosts.
## Value
With QoS controls, $[prodname] enforces network resource limits (bandwidth, packet rate, connections) for Kubernetes pods and OpenStack VMs, ensuring fair resource allocation and preventing performance degradation for other workloads.
+$[prodname] can also apply DiffServ on egress traffic to allow upstream devices to prioritise forwarding accordingly.
## Limitations
@@ -26,6 +28,7 @@ $[prodname] implements three types of QoS Controls, which can be configured usin
1. Bandwidth: limiting the bit rate of traffic into/out of the pod
2. Packet rate: limiting the number of packets per second that can be sent or received by the pod
3. Number of established connections: limiting the absolute number of connections that the pod may initiate or accept
+4. Differentiated Services (DiffServ): setting Differentiated Services Code Point (DSCP) on egress traffic leaving clusters or toward hosts
### Annotations
@@ -58,6 +61,7 @@ spec:
- [Configure bandwidth limits](#configure-bandwidth-limits)
- [Configure packet rate limits](#configure-packet-rate-limits)
- [Configure established connection limits](#configure-established-connection-limits)
+- [Configure DiffServ](#configure-diffserv)
### Configure bandwidth limits
@@ -104,6 +108,28 @@ Use the annotations below to configure limits for the number of established conn
| `qos.projectcalico.org/ingressMaxConnections` | Specifies the maximum number of ingress connections.
Min value: `1`
Max value: `4294967295` |
| `qos.projectcalico.org/egressMaxConnections` | Specifies the maximum number of egress connections.
Min value: `1`
Max value: `4294967295` |
+### Configure DiffServ
+
+Use the annotation below to set DSCP on egress traffic toward an endpoint outside cluster or another host in cluster. Unlike, other QoS controls, this annotation can also be set on a [host endpoint](../../reference/host-endpoints).
+For example, to set DSCP AF11 on a host endpoint:
+
+```yaml noValidation
+apiVersion: projectcalico.org/v3
+kind: HostEndpoint
+metadata:
+ name: my-hep
+ annotations:
+ qos.projectcalico.org/dscp: "AF11"
+ labels:
+ app: my-app
+spec:
+ (...)
+```
+
+| Annotation | Description |
+|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `qos.projectcalico.org/dscp` | Specifies the DSCP value of egress traffic toward an endpoint outside cluser or another host in cluster.
Min value: `0`
Max value: `63`
String values: DF, EF, AF11, AF12, AF13, AF21, AF22, AF23, AF31, AF32, AF33, AF41, AF42, AF43, CS0, CS1, CS2, CS3, CS4, CS5, CS6 |
+
## Additional resources
- [QoS controls on Openstack](../openstack/neutron-api.mdx#qos)