From c45ab5e9b76adc4097a3243bfc07502e658ccd5c Mon Sep 17 00:00:00 2001 From: Ethan Jackson Date: Tue, 15 Mar 2011 11:50:53 -0700 Subject: [PATCH] qos: Remove min-rate requirement for linux-htb and linux-hfsc. One could quite reasonably desire to create a queue with no min-rate. For example, a default queue could be reasonably configured without a min-rate or a max-rate. This commit removes the requirement that min-rate be configured on all queues. If not configured, defaults to something very small. --- lib/netdev-linux.c | 13 ++----------- vswitchd/vswitch.xml | 4 ++-- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c index a27a625f..baaa1e66 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c @@ -2497,12 +2497,7 @@ htb_parse_class_details__(struct netdev *netdev, return EINVAL; } - /* min-rate. Don't allow a min-rate below 1500 bytes/s. */ - if (!min_rate_s) { - /* min-rate is required. */ - return EINVAL; - } - hc->min_rate = strtoull(min_rate_s, NULL, 10) / 8; + hc->min_rate = min_rate_s ? strtoull(min_rate_s, NULL, 10) / 8 : 0; hc->min_rate = MAX(hc->min_rate, 1500); hc->min_rate = MIN(hc->min_rate, htb->max_rate); @@ -2977,11 +2972,7 @@ hfsc_parse_class_details__(struct netdev *netdev, min_rate_s = shash_find_data(details, "min-rate"); max_rate_s = shash_find_data(details, "max-rate"); - if (!min_rate_s) { - return EINVAL; - } - - min_rate = strtoull(min_rate_s, NULL, 10) / 8; + min_rate = min_rate_s ? strtoull(min_rate_s, NULL, 10) / 8 : 0; min_rate = MAX(min_rate, 1500); min_rate = MIN(min_rate, hfsc->max_rate); diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml index 244b24e5..470f3897 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -1384,7 +1384,7 @@ column="type"/> of linux-htb are:

min-rate
-
Minimum guaranteed bandwidth, in bit/s. Required.
+
Minimum guaranteed bandwidth, in bit/s.
max-rate
Maximum allowed bandwidth, in bit/s. Optional. If specified, the queue's rate will not be allowed to exceed the specified value, even @@ -1407,7 +1407,7 @@ column="type"/> of linux-hfsc are:

min-rate
-
Minimum guaranteed bandwidth, in bit/s. Required.
+
Minimum guaranteed bandwidth, in bit/s.
max-rate
Maximum allowed bandwidth, in bit/s. Optional. If specified, the queue's rate will not be allowed to exceed the specified value, even -- 2.30.2