bridge: Don't configure QoS without Queues.
authorEthan Jackson <ethan@nicira.com>
Sat, 7 May 2011 00:02:02 +0000 (17:02 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 23 May 2011 16:18:31 +0000 (09:18 -0700)
It doesn't make sense to create a QoS object without any queues.
Before this patch, OVS would configure the QoS object and as a
result drop all traffic going through the affected interface.  With
this patch, OVS will simply clear QoS configuration on the
interface.

Bug #5583.

vswitchd/bridge.c

index f304ac0..e43af3c 100644 (file)
@@ -4632,7 +4632,7 @@ iface_update_carrier(struct iface *iface)
 static void
 iface_update_qos(struct iface *iface, const struct ovsrec_qos *qos)
 {
-    if (!qos || qos->type[0] == '\0') {
+    if (!qos || qos->type[0] == '\0' || qos->n_queues < 1) {
         netdev_set_qos(iface->netdev, NULL, NULL);
     } else {
         struct iface_delete_queues_cbdata cbdata;