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
| ... | ... |
@@ -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 |