bridge: Don't configure QoS without Queues.
authorEthan Jackson <ethan@nicira.com>
Sat, 7 May 2011 00:02:02 +0000 (17:02 -0700)
committerEthan Jackson <ethan@nicira.com>
Sat, 7 May 2011 00:04:41 +0000 (17:04 -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 d883596..56943f6 100644 (file)
@@ -3534,7 +3534,7 @@ iface_delete_queues(unsigned int queue_id,
 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;