Bug 3831 - add stt interface type to model
[ovsdb.git] / southbound / southbound-api / src / main / yang / ovsdb.yang
index 2908f7bfed10053b7982a2a1f6671c4f467bb6a0..18b2452267776bd3473b58a0cea6ee05d3082583 100755 (executable)
@@ -5,7 +5,7 @@ module ovsdb {
 
     import network-topology {prefix "topo"; revision-date "2013-10-21"; }
     import yang-ext { prefix "ext"; }
-    import ietf-inet-types { prefix inet; }
+    import ietf-inet-types { prefix inet; revision-date 2010-09-24; }
     import overlay { prefix overlay; }
     import ietf-yang-types { prefix yang; revision-date "2013-07-15";}
     import opendaylight-l2-types { prefix ethertype; revision-date "2013-08-27";}
@@ -124,6 +124,10 @@ module ovsdb {
             description "The unique identifier of the bridge";
             type yang:uuid;
         }
+        leaf bridge-openflow-node-ref {
+            description "A reference to the openflow node";
+            type instance-identifier;
+        }
 
         leaf bridge-name {
             description "The name of the bridge";
@@ -146,6 +150,14 @@ module ovsdb {
                 description "Uri telling bridge how to connect to controller";
                 type inet:uri;
             }
+            leaf controller-uuid {
+                description "The unique identifier of the controller";
+                type yang:uuid;
+            }
+            leaf is-connected {
+                type boolean;
+            }
+
         }
 
         leaf datapath-id {
@@ -176,12 +188,173 @@ module ovsdb {
             description "The OVSDB which this bridge belongs to";
             type ovsdb-node-ref;
         }
+
+        list bridge-external-ids {
+            description
+               "Key-value pairs for use by external frameworks that integrate
+            with Open vSwitch.
+
+            external_ids : bridge-id: optional string
+
+            A unique identifier of the bridge. On Citrix XenServer this
+            will commonly be the same as external_ids:xs-network-uuids.
+
+            external_ids : xs-network-uuids: optional string
+
+            Semicolon-delimited set of universally unique identifier(s)
+            for the network with which this bridge is associated on a
+            Citrix XenServer host. The network identifiers are RFC 4122
+            UUIDs as displayed by, e.g., xe network−list.";
+
+            key "bridge-external-id-key";
+            leaf bridge-external-id-key {
+                description "external-id name/key";
+                type string;
+                mandatory true;
+            }
+            leaf bridge-external-id-value {
+                description "bridge-external-id value";
+                type string;
+                mandatory true;
+            }
+        }
+
+        list bridge-other-configs {
+            description
+               "Key-value pairs for configuring rarely used features.
+
+            other_config : hwaddr: optional string
+               An Ethernet address in the form xx:xx:xx:xx:xx:xx to set the
+               hardware address of the local port and influence the datapath
+               ID.
+
+            other_config : forward-bpdu: optional string
+               either true or false. Option to allow forwarding of BPDU frames when NORMAL
+               action is invoked. Frames with reserved Ethernet
+               addresses (e.g. STP BPDU) will be forwarded when this option
+               is enabled and the switch is not providing that functionality.
+
+            other_config : mac-aging-time: optional string
+               containing an integer, at least 1 The maximum number of seconds to retain a
+               MAC learning entry for which no packets have been seen. The
+               default is currently 300 seconds (5 minutes). The value, if
+               specified, is forced into a reasonable range, currently 15
+                  to 3600 seconds.
+
+            other_config : mac-table-size: optional string
+               containing an integer, at least 1 The maximum number of MAC addresses to
+               learn. The default is currently 2048. The value, if
+               specified, is forced into a reasonable range, currently 10
+               to 1,000,000.
+
+            other_config : datapath-id: optional string
+               Exactly 16 hex digits to set the OpenFlow datapath ID to a
+               specific value. May not be all-zero.
+
+            other_config : dp-desc: optional string
+               Human readable description of datapath. It it a maximum
+               256 byte-long free-form string to describe the datapath for
+               debugging purposes.
+
+            other_config : disable-in-band: optional string
+               either true or false
+               If set to true, disable in-band control on the bridge
+               regardless of controller and manager settings.
+
+            other_config : in-band-queue: optional string
+               containing an integer, in range 0 to 4,294,967,295 A queue ID as a
+               nonnegative integer.
+
+             other_config : stp-system-id: optional string
+                The bridge’s STP identifier (the lower 48 bits of the
+                bridge-id) in the form xx:xx:xx:xx:xx:xx. By default, the
+                identifier is the MAC address of the bridge.
+
+             other_config : stp-priority: optional string
+                containing an integer, in range 0 to 65,535 The bridge’s relative priority
+                value for determining the root bridge (the upper 16 bits of
+                the bridgeid).  A bridge with the lowest bridge-id is elected
+                the root. By default, the priority is 0x8000.
+
+             other_config : stp-hello-time: optional string
+                containing an integer, in range 1 to 10 The interval between transmissions
+                of hello messages by designated ports, in seconds. By default
+                the hello interval is 2 seconds.
+
+             other_config : stp-max-age: optional string
+                containing an integer, in range 6 to 40 The maximum age of the information
+                transmitted by the bridge when it is the root bridge, in
+                seconds.  By default, the maximum age is 20 seconds.
+
+             other_config : stp-forward-delay: optional string
+                containing an integer, in range 4 to 30 The delay to wait between
+                transitioning root and designated ports to forwarding, in
+                seconds. By default, the forwarding delay is 15 seconds.
+
+             other_config : mcast-snooping-aging-time: optional string,
+                containing an integer, at least 1 The maximum number of
+                seconds to retain a multicast snooping entry for which no
+                packets have been seen. The default is currently 300
+                seconds (5 minutes). The value, if specified, is forced into
+                a reasonable range, currently 15 to 3600 seconds.
+
+             other_config : mcast-snooping-table-size: optional string,
+                containing an integer, at least 1 The maximum number of
+                multicast snooping addresses to learn. The default is
+                currently 2048.  The value, if specified, is forced into a
+                reasonable range, currently 10 to 1,000,000.
+
+             other_config : mcast-snooping-disable-flood-unregistered:
+                optional string, either true or false If set to false,
+                unregistered multicast packets are forwarded to all ports.
+                If set to true, unregistered multicast packets are forwarded
+                to ports connected to multicast routers.";
+
+            key "bridge-other-config-key";
+            leaf bridge-other-config-key {
+                description "bridge-other-config name/key";
+                type string;
+            }
+            leaf bridge-other-config-value {
+                description "bridge-other-config value";
+                type string;
+            }
+        }
+
+    }
+
+    grouping ovsdb-connection-info-attributes {
+          leaf remote-ip {
+            type inet:ip-address;
+            description "Ovsdb Connection Remote IP";
+          }
+          leaf remote-port {
+            type inet:port-number;
+            description "Ovsdb Connection Remote Port Number";
+          }
+          leaf local-ip {
+            type inet:ip-address;
+            description "Ovsdb Connection Local IP";
+          }
+          leaf local-port {
+            type inet:port-number;
+            description "Ovsdb Connection Local Port Number IP";
+          }
     }
 
     grouping ovsdb-node-attributes {
-        uses overlay:ip-port-locator;
+        description "";
+        container connection-info{
+            uses ovsdb-connection-info-attributes;
+        }
+
+        leaf db-version {
+            description "The database schema version";
+            type string;
+        }
 
         leaf ovs-version {
+            description "The Open_vSwitch version number";
             type string;
         }
 
@@ -212,6 +385,89 @@ module ovsdb {
             }
         }
 
+        list openvswitch-external-ids {
+            description "Key-value pairs for use by external frameworks that integrate
+                  with Open vSwitch.
+
+            external_ids : system-id: optional string
+               A unique identifier for the Open vSwitch’s physical host.
+               The form of the identifier depends on the type of the host.
+               On a Citrix XenServer, this will likely be the same as
+               external_ids:xs-system-uuid.
+
+           external_ids : xs-system-uuid: optional string
+               The Citrix XenServer universally unique identifier for the
+                physical host as displayed by xe-host−list.";
+
+            key "external-id-key";
+            leaf external-id-key {
+                description "external-id name/key";
+                type string;
+                mandatory true;
+            }
+            leaf external-id-value {
+                description "external-id value";
+                type string;
+                mandatory true;
+            }
+        }
+
+        list openvswitch-other-configs {
+            description "Key-value pairs for configuring rarely used features.
+
+            other_config : stats-update-interval: optional string
+               This option will affect the update of the statistics column
+               in the following tables: Port, Interface , Mirror.
+
+            other_config : flow-restore-wait: optional string
+               either true or false When ovs−vswitchd starts up, it has an empty flow
+               table and therefore it handles all arriving packets in its
+               default fashion according to its configuration, by
+               dropping them or sending them to an OpenFlow controller or
+               switching them as a standalone switch.
+
+            other_config : flow-limit: optional string
+               containing an integer, at least 0. The maximum number of flows allowed in
+               the datapath flow table.
+
+            other_config : n-dpdk-rxqs: optional string
+               containing an integer, at least 1 Specifies the number of rx queues to be
+               created for each dpdk interface. If not specified or
+               specified to 0, one rx queue will be created for each dpdk
+               interface by default.
+
+            other_config : pmd-cpu-mask: optional string
+               Specifies CPU mask for setting the cpu affinity of
+               PMD (Poll Mode Driver) threads. Value should be in the form
+               of hex string, similar to the dpdk EAL ’-c COREMASK’ option
+               input or the ’taskset’ mask input.
+
+            other_config : n-handler-threads: optional string
+               containing an integer, at least 1 Specifies the number of threads for
+               software datapaths to use for handling new flows. The default
+               the number of online CPU cores minus the number of
+               revalidators.
+
+            other_config : n-revalidator-threads: optional string,
+               containing an integer, at least 1 Specifies the number of
+               threads for software datapaths to use for revalidating flows
+               in the datapath.
+
+             other_config : enable-statistics: optional string
+               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";
+            leaf other-config-key {
+                description "other-config name/key";
+                type string;
+            }
+            leaf other-config-value {
+                description "other-config value";
+                type string;
+            }
+         }
+
      }
 
     identity interface-type-base {
@@ -293,6 +549,11 @@ module ovsdb {
         base interface-type-base;
     }
 
+    identity interface-type-stt {
+        description "Interface type for stt interfaces";
+        base interface-type-base;
+    }
+
     grouping ovsdb-port-interface-attributes {
         leaf port-uuid {
             description "The unique identifier of the OVSDB port";
@@ -309,11 +570,6 @@ 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 {
@@ -346,11 +602,6 @@ module ovsdb {
             }
         }
 
-        leaf attached-to {
-            description "Reference to the bridge where terminiation point is attached.";
-            type ovsdb-bridge-ref;
-        }
-
         leaf vlan-tag {
             description "The VLAN tag of the termination point.";
             type ethertype:vlan-id;
@@ -388,11 +639,159 @@ module ovsdb {
                 }
             }
         }
-    }
 
-    grouping ovsdb-external-ids-attributes {
-        list external-ids {
-            description "Port/Interface external id";
+        list port-other-configs {
+            description "Other config attributes for Ports
+
+            other_config : priority-tags: optional string
+               either true or false An 802.1Q header contains two important pieces of
+               information: a VLAN ID and a priority.
+
+            other_config : bond-hash-basis: optional string
+               containing an integer An integer hashed along with flows when choosing output
+               slaves in load balanced bonds. When changed, all flows will be
+               assigned different hash values possibly causing slave selection
+               decisions to change.
+
+            other_config : bond-detect-mode: optional string
+               either miimon or carrier The means used to detect link failures. Defaults to
+               carrier which uses each interface’s carrier to detect failures.
+               When set to miimon, will check for failures by polling each
+               interface’s MII.
+
+            other_config : bond-miimon-interval: optional string
+               containing an integer The interval, in milliseconds, between successive
+               attempts to poll each interface’s MII. Relevant only when
+               other_config:bond-detect-mode is miimon
+
+            other_config : lacp-system-id: optional string
+               The LACP system ID of this Port. The system ID of a LACP bond
+               is used to identify itself to its partners. Must be a nonzero
+               MAC address. Defaults to the bridge Ethernet address if unset.
+
+            other_config : lacp-system-priority: optional string
+               containing an integer, in range 1 to 65,535 The LACP system priority of this
+               Port. In LACP negotiations, link status decisions are made by
+               the system with the numerically lower priority.
+
+            other_config : lacp-time: optional string
+                either slow or fast. The LACP timing which should be used on this Port. By default
+                slow is used. When configured to be fast LACP heartbeats are
+                requested at a rate of once per second causing connectivity
+                problems to be detected more quickly. In slow mode, heartbeats
+                are requested at a rate of once every 30 seconds.
+
+            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
+                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
+                to LACP mode, the bond will use LACP.
+
+            other_config : bond-rebalance-interval: optional string,
+                containing an integer, in range 0 to 10,000 For a load
+                balanced bonded port, the number of milliseconds between
+                successive attempts to rebalance the bond, that is, to move
+                flows from one interface on the bond to another in an attempt
+                to keep usage of each interface roughly equal. If zero, load
+                balancing is disabled on the bond (link failure still cause
+                flows to move). If less than 1000ms, the rebalance interval
+                will be 1000ms.
+
+            other_config : stp-enable: optional string
+               either true or false. If spanning tree is enabled on the bridge, member ports are
+               enabled by default (with the exception of bond, internal, and
+               mirror ports which do not work with STP). If this column’s
+               value is false spanning tree is disabled on the port.
+
+            other_config : stp-port-num: optional string
+               containing an integer, in range 1 to 255 The port number used for the lower 8
+               bits of the port-id. By default, the numbers will be assigned
+               automatically. If any port’s number is manually configured on
+               a bridge, then they must all be.
+
+            other_config : stp-port-priority: optional string
+               containing an integer, in range 0 to 255 The port’s relative priority value
+               for determining the root port (the upper 8 bits of the port-id).
+
+            other_config : stp-path-cost: optional string
+                containing an integer, in range 0 to 65,535 Spanning tree path cost for the
+                port. A lower number indicates a faster link. By default, the
+                cost is based on the maximum speed of the link.
+
+             other_config : rstp-enable: optional string
+                 either true or false
+                 If rapid spanning tree is enabled on the bridge, member ports
+                 are enabled by default (with the exception of bond, internal,
+                 and mirror ports which do not work with RSTP). If this
+                 column’s value is false rapid spanning tree is disabled on
+                 the port.
+
+             other_config : rstp-port-priority: optional string
+                 containing an integer, in range 0 to 240 The port’s relative priority value
+                 for determining the root port, in multiples of 16. By default,
+                 the port priority is 0x80 (128).
+
+             other_config : rstp-port-num: optional string
+                 containing an integer, in range 1 to 4,095 The local RSTP port number, used
+                 as the lower 12 bits of the port-id.
+
+             other_config : rstp-port-path-cost: optional string
+                 containing an integer The port path cost. The Port’s contribution, when it
+                 is the Root Port, to the Root Path Cost for the Bridge.
+
+             other_config : rstp-port-admin-edge: optional string
+                 either true or false
+
+             other_config : rstp-port-auto-edge: optional string
+                 either true or false The auto edge port parameter for the Port. Default
+                 is true.
+
+             other_config : rstp-port-mcheck: optional string
+                 either true or false The mcheck port parameter for the Port. Default is false.
+
+              other_config : mcast-snooping-flood: optional string
+                  either true or false If set to true, multicast packets are
+                  unconditionally forwarded to the specific port";
+
+            key "other-config-key";
+            leaf other-config-key {
+                description "port-other-config name/key";
+                type string;
+            }
+            leaf other-config-value {
+                description "port-other-config value";
+                type string;
+            }
+        }
+
+        list interface-other-configs {
+            description "Other config attributes for Interfaces
+
+            other_config : enable-vlan-splinters: optional string
+               either true or false. Set to true to enable VLAN splinters on this
+               interface. Defaults to false.";
+
+            key "other-config-key";
+            leaf other-config-key {
+                description "interface-other-config name/key";
+                type string;
+            }
+            leaf other-config-value {
+                description "interface-other-config value";
+                type string;
+            }
+        }
+
+        list port-external-ids {
+            description "Port external ids
+
+            external_ids : fake-bridge-id-*: optional string
+               External IDs for a fake bridge (see the fake_bridge column) are defined by
+               prefixing a Bridge external_ids key with
+               fake−bridge−, e.g. fake−bridge−xs−network−uuids.";
+
             key "external-id-key";
             leaf external-id-key {
                 description "external-id name/key";
@@ -404,22 +803,50 @@ module ovsdb {
                 type string;
                 mandatory true;
             }
-         }
-    }
+        }
 
-    grouping ovsdb-other-config-attributes {
-        list other-configs {
-            description "Other config attributes for OVSDB tables";
-            key "other-config-key";
-            leaf other-config-key {
-                description "other-config name/key";
+        list interface-external-ids {
+            description "Interface external ids
+
+            external_ids : attached-mac: optional string.
+               The MAC address programmed into the ‘‘virtual hardware’’ for this interface, in
+               the form xx:xx:xx:xx:xx:xx. For Citrix XenServer, this is the
+               value of the MAC field in the VIF record for this interface.
+
+            external_ids : iface-id: optional string.
+               A system-unique identifier for the interface. On XenServer, this will commonly
+               be the same as external_ids:xs-vif-uuid.
+
+            external_ids : iface-status: optional string
+               either active or inactive Hypervisors may sometimes have more than one interface
+               associated with a given external_ids:iface-id, only one of
+               which is actually in use at a given time.
+
+            external_ids : xs-vif-uuid: optional string.
+               The virtual interface associated with this interface.
+
+            external_ids : xs-network-uuid: optional string.
+               The virtual network to which this interface is attached.
+
+            external_ids : vm-id: optional string.
+               The VM to which this interface belongs. On XenServer, this will be the same as
+               external_ids:xsvm-uuid.
+
+            external_ids : xs-vm-uuid: optional string.
+               The VM to which this interface belongs";
+
+            key "external-id-key";
+            leaf external-id-key {
+                description "external-id name/key";
                 type string;
+                mandatory true;
             }
-            leaf other-config-value {
-                description "other-config value";
+            leaf external-id-value {
+                description "external-id value";
                 type string;
+                mandatory true;
             }
-         }
+        }
     }
 
     augment "/topo:network-topology/topo:topology/topo:node" {
@@ -432,14 +859,11 @@ module ovsdb {
         description "Augment topology node for an ovsdb node";
         ext:augment-identifier "ovsdb-node-augmentation";
         uses ovsdb-node-attributes;
-        uses ovsdb-external-ids-attributes;
-        uses ovsdb-other-config-attributes;
     }
 
     augment "/topo:network-topology/topo:topology/topo:node/topo:termination-point" {
         description "Augment topology node termination-point for an ovsdb port/interface";
         ext:augment-identifier "ovsdb-termination-point-augmentation";
         uses ovsdb-port-interface-attributes;
-        uses ovsdb-external-ids-attributes;
     }
 }