Browse code

sdn: set veth TX queue length to unblock QoS

docker/libnetwork appear to create the pod veth interfaces with
an explicitly 0 txqlen instead of leaving the default 1000 that
the kernel would assign. A txqlen of 0 blocks any packets when
QoS is enabled for a port due to the way the Linux HTB shaper
works. Explicitly set the veth txqlen to make QoS work again.

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1378000

Dan Williams authored on 2016/09/28 05:03:42
Showing 1 changed files
... ...
@@ -95,6 +95,7 @@ add_ovs_flows() {
95 95
     # Pod ingress == OVS bridge egress
96 96
     # linux-htb used here since that's the Kubernetes default traffic shaper too
97 97
     if [ -n "${ingress_bw}" ]; then
98
+        ip link set dev ${veth_host} qlen 1000
98 99
         qos=$(ovs-vsctl create qos type=linux-htb other-config:max-rate=${ingress_bw})
99 100
         ovs-vsctl set port ${veth_host} qos=${qos}
100 101
     fi