Merge "Bug 5149: Support LLDP on ovsdb interface"
[ovsdb.git] / southbound / southbound-api / src / main / yang / ovsdb.yang
index b828acc18055daf7fd192d840b29fe7be774b99a..9d8b8a2ed5efb7534761cacc3093c6ff69a7653f 100755 (executable)
@@ -457,7 +457,7 @@ module ovsdb {
                in the datapath.
 
              other_config : enable-statistics: optional string
-               either ture or false. Set this value to true to enable populating the
+                either ture or false. Set this value to true to enable populating the
                 statistics column or to false to explicitly disable it.";
 
             key "other-config-key";
@@ -486,6 +486,137 @@ module ovsdb {
                 type uint32;
             }
         }
+
+        list qos-entries {
+            key "qos-id";
+            leaf qos-id {
+                description "An identifier used for QoS entries in the MD-SAL.";
+                type inet:uri;
+            }
+            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-number";
+                leaf queue-number {
+                       description "The queue number of the record in the QoS entry";
+                       type uint32;
+                }
+                leaf queue-uuid {
+                    description "The unique identifier of the queue record.";
+                    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-id";
+            leaf queue-id {
+                description "An identifier used for Queue entries in the MD-SAL.";
+                type inet:uri;
+            }
+            leaf queue-uuid {
+                description "The unique identifier of the queue.";
+                type yang:uuid;
+            }
+            leaf dscp {
+                type uint8;
+            }
+            list queues-external-ids {
+                key "queues-external-id-key";
+                leaf queues-external-id-key {
+                    description "queues external-id name/key";
+                    type string;
+                    mandatory true;
+                }
+                leaf queues-external-id-value {
+                    description "queues-external-id value";
+                    type string;
+                    mandatory true;
+                }
+            }
+            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 {
@@ -572,6 +703,20 @@ module ovsdb {
         base interface-type-base;
     }
 
+    identity qos-type-base {
+        description "the base identity for qos";
+    }
+
+    identity qos-type-linux-htb {
+        description "linux hierarchy token bucket classifier";
+        base qos-type-base;
+    }
+
+    identity qos-type-linux-hfsc {
+        description "linux hierarchical fair service curve classifier";
+        base qos-type-base;
+    }
+
     grouping ovsdb-port-interface-attributes {
         leaf port-uuid {
             description "The unique identifier of the OVSDB port";
@@ -701,7 +846,7 @@ module ovsdb {
 
             other_config : lacp-fallback-ab: optional string
                 either true or false Determines the behavior of openvswitch bond in LACP mode.
-               If the partner switch does not support LACP, setting this
+                If the partner switch does not support LACP, setting this
                 option to true allows openvswitch to fallback to active-backup.
                 If the option is set to false, the bond will be disabled.
                 In both the cases, once the partner switch is configured
@@ -865,6 +1010,31 @@ module ovsdb {
                 mandatory true;
             }
         }
+
+        list interface-lldp {
+            description "Auto Attach configuration for a particular interface.
+                If LLDP is enabled on an interface, the interface processes received
+                LLDP packets and never passes them to OpenFlow or forwards them.
+
+                lldp : enable: optional string, either true or false
+                       True to enable LLDP on this Interface. If not specified, LLDP
+                       will be disabled by default.";
+
+            key "lldp-key";
+            leaf lldp-key {
+                description "lldp name/key";
+                type string;
+            }
+            leaf lldp-value {
+                description "lldp value";
+                type string;
+            }
+        }
+
+        leaf qos {
+            description "The unique identifier of the QoS entry for this port.";
+            type yang:uuid;
+        }
     }
 
     augment "/topo:network-topology/topo:topology/topo:node" {