Adds the "Quality of Service" to the OpenDayLight Neutron
[neutron.git] / model / src / main / yang / neutron-qos.yang
diff --git a/model/src/main/yang/neutron-qos.yang b/model/src/main/yang/neutron-qos.yang
new file mode 100644 (file)
index 0000000..1f3e724
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2016 Intel Corporation.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+module neutron-qos {
+
+    yang-version 1;
+
+    namespace "urn:opendaylight:neutron-qos";
+
+    prefix neutron-qos;
+
+    import ietf-yang-types { prefix "yang"; revision-date "2013-07-15"; }
+    import neutron-attrs { prefix "attrs"; }
+
+    organization "OpenDaylight Neutron Group";
+
+    contact "Pramod Raghavendra Jayathirth <pramod.rj07@gmail.com>";
+
+    description "This YANG module defines qos attributes that are used
+        by OpenDaylight Neutron YANG module.";
+
+    revision "2016-06-13" {
+        description
+                "OpenDaylight Boron release";
+    }
+
+    grouping qos-policy-attributes {
+        leaf shared {
+            type boolean;
+            description "Whether the policy is shared or not";
+        }
+    }
+
+    grouping qos-rule-type {
+        leaf rule-type {
+            type string;
+            config false;
+            description "The type of the qos rule";
+        }
+    }
+
+    grouping bandwidthlimit-rule-attributes {
+        leaf uuid {
+            type yang:uuid;
+            description "The rule id of the associated rule";
+        }
+        leaf tenant-id {
+            type yang:uuid;
+            description "The tenant id of OpenStack Tenant";
+        }
+        leaf max-kbps {
+            type uint64;
+            description "The maximum KBPS value";
+        }
+        leaf max-burst-kbps {
+            type uint64;
+            description "The burst over the maximum KBPS value";
+        }
+    }
+
+    grouping dscpmarking-rule-attributes {
+        leaf uuid {
+            type yang:uuid;
+            description "The rule id of the associated rule";
+        }
+        leaf tenant-id {
+            type yang:uuid;
+            description "The tenant id of OpenStack Tenant";
+        }
+        leaf dscp-mark {
+            type uint8 {
+                range "0 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36
+                | 38 | 40 | 46 | 48 | 56";
+            }
+            description "the value of dscp mark";
+        }
+    }
+
+    grouping qos-attributes {
+        container qos-policies {
+            list qos-policy {
+                key "uuid";
+                uses attrs:base-attributes;
+                uses qos-policy-attributes;
+                list bandwidth-limit-rules {
+                    key "uuid";
+                    uses bandwidthlimit-rule-attributes;
+                }
+                list dscpmarking-rules {
+                    key "uuid";
+                    uses dscpmarking-rule-attributes;
+                }
+            }
+        }
+        container qos-rule-types {
+            list rule-types {
+                key "rule-type";
+                config false;
+                uses qos-rule-type;
+            }
+        }
+    }
+}