OVSDB QoS - move QoS and Queue lists to OVSDB Node 65/30465/2
authorEric Multanen <eric.w.multanen@intel.com>
Tue, 1 Dec 2015 21:50:18 +0000 (13:50 -0800)
committerEric Multanen <eric.w.multanen@intel.com>
Thu, 3 Dec 2015 10:17:58 +0000 (02:17 -0800)
The QoS and Queue tables are root tables in OVSDB.  Updates to
these tables can occur independently from the port table - so
this patch proposes to move lists of QoS and Queue entries to
the ovsdb-node-attributes (i.e. OVSDB Node) object in the MD-SAL.

v2 - removed the 'do not merge' notice from subject line

Change-Id: I77654f144ec6876f0a807b6b723d723e691215f1
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
southbound/southbound-api/src/main/yang/ovsdb.yang

index 4e9c5e4880346f43c2b0caa34be4182ee8b0e159..70459cf54811ab6179a3981f19943e24dfd67874 100755 (executable)
@@ -486,6 +486,112 @@ module ovsdb {
                 type uint32;
             }
         }
+
+        list qos-entries {
+            key "qos-uuid";
+            leaf qos-uuid {
+                description "The unique identifier of the QoS.";
+                type yang:uuid;
+            }
+            leaf qos-type {
+                type identityref {
+                    base qos-type-base;
+                }
+            }
+            list queue-list {
+                description "The list of queues used by the QoS";
+                key "queue-uuid";
+                leaf queue-uuid {
+                    description "The unique identifier of the queue.";
+                    type yang:uuid;
+                }
+            }
+            list qos-external-ids {
+                key "qos-external-id-key";
+                leaf qos-external-id-key {
+                    description "qos external-id name/key";
+                    type string;
+                    mandatory true;
+                }
+                leaf qos-external-id-value {
+                    description "qos-external-id value";
+                    type string;
+                    mandatory true;
+                }
+            }
+            list qos-other-config {
+                description "
+                    other_config : max-rate
+                        optional string, containing an integer.";
+
+                key "other-config-key";
+                leaf other-config-key {
+                    description "qos-other-config name/key";
+                    type string;
+                }
+                leaf other-config-value {
+                    description "qos-other-config value";
+                    type string;
+                }
+            }
+        }
+
+        list queues {
+            key "queue-uuid";
+            leaf queue-uuid {
+                description "The unique identifier of the queue.";
+                type yang:uuid;
+            }
+            leaf dscp {
+                type uint8;
+            }
+            list queues-other-config {
+                description "
+                Configuration for linux-htb QoS:
+
+                other_config : min-rate optional string
+                    containing an integer, at least 1.
+                    Minimum guaranteed bandwidth, in bit/s.
+
+                other_config : max-rate optional string
+                    containing an integer, at least 1.
+                    Maximum allowed bandwidth, in bit/s. Optional. If specified, the queue’s rate will not be allowed
+                    to exceed the specified value, even if excess bandwidth is available. If unspecified, defaults to no
+                    limit.
+
+                other_config : burst optional string
+                    containing an integer, at least 1.
+                    Burst size, in bits. This is the maximum amount of ‘‘credits’’ that a queue can accumulate while it
+                    is idle. Optional. Details of the linux−htb implementation require a minimum burst size, so a
+                    too-small burst will be silently ignored.
+
+                other_config : priority optional string.
+                    containing an integer, in range 0 to 4,294,967,295.
+                    A queue with a smaller priority will receive all the excess bandwidth that it can use before a
+                    queue with a larger value receives any. Specific priority values are unimportant; only relative
+                    ordering matters. Defaults to 0 if unspecified.
+
+                Configuration for linux-htb QoS:
+
+                other_config : min-rate optional string
+                    containing an integer, at least 1.
+                    Minimum guaranteed bandwidth, in bit/s.
+
+                other_config : max-rate optional string
+                    containing an integer, at least 1.
+                    Maximum allowed bandwidth, in bit/s. Optional. If specified, the queue’s rate will not be allowed
+                    to exceed the specified value, even if excess bandwidth is available. If unspecified, defaults to no
+                    limit..";
+
+                key "queue-other-config-key";
+                leaf queue-other-config-key {
+                    type string;
+                }
+                leaf queue-other-config-value {
+                    type string;
+                }
+            }
+        }
      }
 
     identity interface-type-base {
@@ -880,105 +986,9 @@ module ovsdb {
             }
         }
 
-        list port-qos {
-            leaf qos-uuid {
-                description "The unique identifier of the QoS.";
-                type yang:uuid;
-            }
-            leaf qos-type {
-                type identityref {
-                    base qos-type-base;
-                }
-            }
-            list queues {
-                key "queue-key";
-                leaf queue-key {
-                    type uint64;
-                }
-                list queue-value {
-                    leaf queue-uuid {
-                        description "The unique identifier of the queue.";
-                        type yang:uuid;
-                    }
-                    leaf dscp {
-                        type uint8;
-                    }
-                    list queues-other-config {
-                        description "
-                        Configuration for linux-htb QoS:
-
-                        other_config : min-rate optional string
-                            containing an integer, at least 1.
-                            Minimum guaranteed bandwidth, in bit/s.
-
-                        other_config : max-rate optional string
-                            containing an integer, at least 1.
-                            Maximum allowed bandwidth, in bit/s. Optional. If specified, the queue’s rate will not be allowed
-                            to exceed the specified value, even if excess bandwidth is available. If unspecified, defaults to no
-                            limit.
-
-                        other_config : burst optional string
-                            containing an integer, at least 1.
-                            Burst size, in bits. This is the maximum amount of ‘‘credits’’ that a queue can accumulate while it
-                            is idle. Optional. Details of the linux−htb implementation require a minimum burst size, so a
-                            too-small burst will be silently ignored.
-
-                        other_config : priority optional string.
-                            containing an integer, in range 0 to 4,294,967,295.
-                            A queue with a smaller priority will receive all the excess bandwidth that it can use before a
-                            queue with a larger value receives any. Specific priority values are unimportant; only relative
-                            ordering matters. Defaults to 0 if unspecified.
-
-                        Configuration for linux-htb QoS:
-
-                        other_config : min-rate optional string
-                            containing an integer, at least 1.
-                            Minimum guaranteed bandwidth, in bit/s.
-
-                        other_config : max-rate optional string
-                            containing an integer, at least 1.
-                            Maximum allowed bandwidth, in bit/s. Optional. If specified, the queue’s rate will not be allowed
-                            to exceed the specified value, even if excess bandwidth is available. If unspecified, defaults to no
-                            limit..";
-
-                        key "queue-other-config-key";
-                        leaf queue-other-config-key {
-                            type string;
-                        }
-                        leaf queue-other-config-value {
-                            type string;
-                        }
-                    }
-                }
-            }
-            list qos-external-ids {
-                key "qos-external-id-key";
-                leaf qos-external-id-key {
-                    description "qos external-id name/key";
-                    type string;
-                    mandatory true;
-                }
-                leaf qos-external-id-value {
-                    description "qos-external-id value";
-                    type string;
-                    mandatory true;
-                }
-            }
-            list qos-other-config {
-                description "
-                    other_config : max-rate
-                        optional string, containing an integer.";
-
-                key "other-config-key";
-                leaf other-config-key {
-                    description "qos-other-config name/key";
-                    type string;
-                }
-                leaf other-config-value {
-                    description "qos-other-config value";
-                    type string;
-                }
-            }
+        leaf qos {
+            description "The unique identifier of the QoS entry for this port.";
+            type yang:uuid;
         }
     }