Small fix to model
[ovsdb.git] / southbound / southbound-api / src / main / yang / ovsdb.yang
old mode 100644 (file)
new mode 100755 (executable)
index b0178c8..a9d915b
@@ -13,6 +13,11 @@ module ovsdb {
         description "Initial revision of southbound model";
     }
 
+    typedef ovsdb-termination-point-ref {
+        description "A reference to an ovsdb termination point";
+        type instance-identifier;
+    }
+
     typedef ovsdb-bridge-ref {
         description "A reference to an ovsdb bridge";
         type instance-identifier;
@@ -51,6 +56,20 @@ module ovsdb {
            RFC 2579: Textual Conventions for SMIv2";
     }
 
+    identity datapath-type-base {
+        description "Base identity for all OVSDB datapath types";
+    }
+
+    identity datapath-type-system {
+        description "Datapath type for the kernel datapath";
+        base datapath-type-base;
+    }
+
+    identity datapath-type-netdev {
+        description "Datapath type for the userspace datapath";
+        base datapath-type-base;
+    }
+
     identity ovsdb-bridge-protocol-base {
         description "Base identity for all ovsdb-bridge-protocols";
     }
@@ -85,6 +104,20 @@ module ovsdb {
         base ovsdb-bridge-protocol-base;
     }
 
+    identity ovsdb-fail-mode-base {
+        description "Base identity for ovsdb-failmode";
+    }
+
+    identity ovsdb-fail-mode-standalone {
+        description "Identity for ovsdb-failmode standalone";
+        base ovsdb-fail-mode-base;
+    }
+
+    identity ovsdb-fail-mode-secure {
+        description "Identity for ovsdb-failmode standalone";
+        base ovsdb-fail-mode-base;
+    }
+
     grouping ovsdb-bridge-attributes {
         leaf bridge-uuid {
             description "The unique identifier of the bridge";
@@ -105,11 +138,34 @@ module ovsdb {
             }
         }
 
+        list controller-entry {
+            description "Bridge controller info";
+            key "target";
+            leaf target {
+                description "Uri telling bridge how to connect to controller";
+                type inet:uri;
+            }
+        }
+
         leaf datapath-id {
             description "Datapath-id of the bridge";
             type datapath-id;
         }
 
+        leaf datapath-type {
+            description "The datapath type of the bridge";
+            type identityref {
+                base datapath-type-base;
+            }
+        }
+
+        leaf fail-mode {
+            description "Failmode of the bridge";
+            type identityref {
+                base ovsdb-fail-mode-base;
+            }
+        }
+
         leaf flow-node {
             description "Flow node corresponding to this bridge";
             type flow-node-ref;
@@ -124,14 +180,38 @@ module ovsdb {
     grouping ovsdb-node-attributes {
         uses overlay:ip-port-locator;
 
+        leaf ovs-version {
+            type string;
+        }
+
         list managed-node-entry {
             key "bridge-ref";
             leaf bridge-ref {
                 type ovsdb-bridge-ref;
             }
         }
-    }
 
+        list datapath-type-entry {
+            key "datapath-type";
+            leaf datapath-type {
+                description "Datapath types supported by OVSDB node";
+                type identityref {
+                    base datapath-type-base;
+                }
+            }
+        }
+
+        list interface-type-entry {
+            key "interface-type";
+            leaf interface-type {
+                description "Interface types supported by OVSDB node";
+                type identityref {
+                    base interface-type-base;
+                }
+            }
+        }
+
+     }
 
     identity interface-type-base {
         description "Base identity for all OVSDB interface types";
@@ -157,6 +237,56 @@ module ovsdb {
         base interface-type-base;
     }
 
+    identity interface-type-tap {
+        description "Interface type for tun/tap interfaces";
+        base interface-type-base;
+    }
+
+    identity interface-type-geneve {
+        description "Interface type for geneve interfaces";
+        base interface-type-base;
+    }
+
+    identity interface-type-gre {
+        description "Interface type for gre interfaces";
+        base interface-type-base;
+    }
+
+    identity interface-type-ipsec-gre {
+        description "Interface type for ipsec-gre interfaces";
+        base interface-type-base;
+    }
+
+    identity interface-type-gre64 {
+        description "Interface type for gre64 interfaces";
+        base interface-type-base;
+    }
+
+    identity interface-type-ipsec-gre64 {
+        description "Interface type for ipsec-gre64 interfaces";
+        base interface-type-base;
+    }
+
+    identity interface-type-lisp {
+        description "Interface type for lisp interfaces";
+        base interface-type-base;
+    }
+
+    identity interface-type-dpdk {
+        description "Interface type for dpdk interfaces";
+        base interface-type-base;
+    }
+
+    identity interface-type-dpdkr {
+        description "Interface type for dpdk ring interfaces";
+        base interface-type-base;
+    }
+
+    identity interface-type-dpdkvhost {
+        description "Interface type for dpdkvhost interfaces";
+        base interface-type-base;
+    }
+
     grouping ovsdb-port-interface-attributes {
         leaf port-uuid {
             description "The unique identifier of the OVSDB port";
@@ -173,12 +303,47 @@ module ovsdb {
             type string;
         }
 
+        leaf bridge-name {
+            description "Create termination point on this bridge";
+            type string;
+        }
+
         leaf interface-type {
             description "The type of the OVSDB interface";
             type identityref {
                 base interface-type-base;
             }
         }
+
+        list options {
+            description "Port/Interface related optional input values";
+            key "option";
+            leaf option {
+                description "Option name";
+                type string;
+            }
+            leaf value {
+                description "Option value";
+                type string;
+            }
+        }
+
+        leaf ofport {
+            description "Port/Interface related optional ofport";
+            type uint16;
+        }
+
+        leaf ofport_request {
+            description "Port/Interface related optional ofport_request, in range 1 to 65279";
+            type uint16 {
+                range "1..65279";
+            }
+        }
+
+        leaf attached-to {
+            description "Reference to the bridge where terminiation point is attached.";
+            type ovsdb-bridge-ref;
+        }
     }
 
     augment "/topo:network-topology/topo:topology/topo:node" {