Bug 7757 -Removing qos deprecations in carbon
[ovsdb.git] / southbound / southbound-api / src / main / yang / ovsdb.yang
index db28602721daa6eddf10ffa5daf2465220ef5997..0cfd6ff885c9d5166e84aa428fab63aeea18a24b 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 2013-07-15; }
     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";}
@@ -34,6 +34,16 @@ module ovsdb {
         type instance-identifier;
     }
 
+    typedef ovsdb-qos-ref {
+        description "A reference to a ovsdb QoS entry";
+        type instance-identifier;
+    }
+
+    typedef ovsdb-queue-ref {
+        description "A reference to an ovsdb queue entry";
+        type instance-identifier;
+    }
+
     typedef ovsdb-bridge-name {
         type string;
     }
@@ -124,6 +134,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 +160,29 @@ 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 max_backoff {
+                description
+                    "Maximum  number  of  milliseconds  to  wait between
+                connection attempts";
+                type uint32 {
+                    range "1000..max";
+                }
+            }
+            leaf inactivity_probe {
+                description
+                    "Maximum number of milliseconds of idle time on connection
+                to controller before sending an inactivity probe message.
+                A value of 0 disables inactivity probes.";
+                type uint32;
+            }
+
         }
 
         leaf datapath-id {
@@ -177,8 +214,30 @@ module ovsdb {
             type ovsdb-node-ref;
         }
 
+        leaf stp_enable {
+            description
+                "Enable spanning tree on the bridge. By default, STP is
+                 disabled on bridges";
+            type boolean;
+        }
+
         list bridge-external-ids {
-            description "Bridge external id";
+            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";
@@ -190,13 +249,151 @@ module ovsdb {
                 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;
+            }
+        }
+
+        leaf auto-attach {
+            description "The unique identifier of the auto_attach entry for this bridge.";
+            type yang:uuid;
+        }
+    }
+
+    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 "Plugin will not allow multiple connections to the same device.
+        If an application attempts to make more than one connection to the device by
+        putting multiple entries in the config data store, then it is the responsibility
+        of the application to clean the config data store";
+        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;
         }
 
@@ -228,7 +425,19 @@ module ovsdb {
         }
 
         list openvswitch-external-ids {
-            description "Open_vSwitch table 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";
@@ -243,7 +452,50 @@ module ovsdb {
         }
 
         list openvswitch-other-configs {
-            description "Open_vSwitch table 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";
@@ -255,6 +507,213 @@ module ovsdb {
             }
          }
 
+         list manager-entry {
+            description "Node managers info";
+            config false;
+            key "target";
+            leaf target {
+                description "Uri that user set to connect to the controller";
+                type inet:uri;
+            }
+            leaf connected {
+                type boolean;
+            }
+            leaf number_of_connections {
+                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-ref {
+                    description "Instance identifier to a Queue in the MD-SAL.";
+                    type ovsdb-queue-ref;
+                }
+
+            }
+            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;
+                }
+            }
+        }
+
+        list autoattach {
+            key "autoattach-id";
+            leaf autoattach-id {
+                description "An identifier used for AutoAttach table in the MD-SAL.";
+                type inet:uri;
+            }
+            leaf bridge-id {
+                description "Node-id of the Bridge table from where Autoattach table can be referenced.";
+                type inet:uri;
+            }
+            leaf autoattach-uuid {
+                description "The unique identifier of the autoattach table.";
+                type yang:uuid;
+            }
+            leaf system-name {
+                type string;
+                description "The  system_name string is exported in LLDP messages.
+                    It should uniquely identify the bridge in the network.";
+            }
+            leaf system-description {
+                type string;
+                description "The system_description string is exported in LLDP messages.
+                    It should describe the type of software and hardware.";
+            }
+            list mappings {
+                description "Map  of integer-integer pairs, key in range 0 to 16,777,215,
+                    value in range 0 to 4,095. A mapping from SPB network Individual Service
+                    Identifier  (ISID) to VLAN id.";
+                key "mappings-key";
+                leaf mappings-key {
+                    type uint32 {
+                        range "0..16777215";
+                    }
+                }
+                leaf mappings-value {
+                    type uint16 {
+                        range "0..4095";
+                    }
+                }
+            }
+            list autoattach-external-ids {
+                description
+                   "Key-value pairs for use by external frameworks that integrate with
+                    Open vSwitch, rather than by Open vSwitch itself.";
+
+                key "autoattach-external-id-key";
+                leaf autoattach-external-id-key {
+                    description "external-id name/key";
+                    type string;
+                    mandatory true;
+                }
+                leaf autoattach-external-id-value {
+                    description "autoattach-external-id value";
+                    type string;
+                    mandatory true;
+                }
+            }
+        }
      }
 
     identity interface-type-base {
@@ -276,6 +735,11 @@ module ovsdb {
         base interface-type-base;
     }
 
+    identity interface-type-vxlan-gpe {
+        description "Interface type for vxlan gpe interfaces";
+        base interface-type-base;
+    }
+
     identity interface-type-patch {
         description "Interface type for patch interfaces";
         base interface-type-base;
@@ -336,6 +800,45 @@ module ovsdb {
         base interface-type-base;
     }
 
+    identity interface-type-stt {
+        description "Interface type for stt interfaces";
+        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;
+    }
+
+    identity qos-type-linux-sfq {
+        description "linux stochastic fairness queueing classifier";
+        base qos-type-base;
+    }
+
+    identity qos-type-linux-codel {
+        description "linux controlled delay classifier";
+        base qos-type-base;
+    }
+
+    identity qos-type-linux-fq-codel {
+        description "linux fair queueing controlled delay classifier";
+        base qos-type-base;
+    }
+
+    identity qos-type-egress-policer {
+        description "DPDK user space egress policer";
+        base qos-type-base;
+    }
+
     grouping ovsdb-port-interface-attributes {
         leaf port-uuid {
             description "The unique identifier of the OVSDB port";
@@ -352,6 +855,14 @@ module ovsdb {
             type string;
         }
 
+        leaf ifindex {
+            description "The ifindex is useful for seamless integration with protocols such as SNMP and sFlow.
+                It is a positive interface index as defined for SNMP MIB-II in RFCs 1213 and 2863 if the interface
+                has one, otherwise 0. It is a read-only column and an integer in the range 0 to 4,294,967,295";
+            type uint32;
+            config false;
+        }
+
         leaf interface-type {
             description "The type of the OVSDB interface";
             type identityref {
@@ -422,8 +933,158 @@ module ovsdb {
             }
         }
 
+        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";
+            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";
@@ -438,7 +1099,35 @@ module ovsdb {
         }
 
         list interface-external-ids {
-            description "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";
@@ -451,6 +1140,194 @@ 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;
+            }
+        }
+
+        list interface-bfd {
+            description "BFD configuration for a particular interface.
+                BFD, defined in RFC 5880 and RFC 5881, allows point-to-point
+                detection of connectivity failures by occasional transmission of
+                BFD control messages.
+
+                bfd : enable: optional string, either true or false
+                       True to enable BFD on this Interface. If not specified, BFD
+                       will be disabled by default.
+
+                bfd : min_rx: optional string
+                       containing an integer, at least 1.
+                       The shortest interval, in milliseconds, at which this BFD session
+                       offers to receive BFD control messages.  The remote endpoint may
+                       choose to send messages at a slower rate.  Defaults to 1000.
+
+                bfd : min_tx: optional string
+                       containing an integer, at least 1.
+                       The shortest interval, in milliseconds, at which this BFD session is
+                       willing to transmit BFD control messages.  Messages will actually be
+                       transmitted at a slower rate if the remote endpoint is not willing to
+                       receive as quickly as specified.  Defaults to 100.
+
+                bfd : decay_min_rx: optional string
+                       containing an integer
+                       An alternate receive interval, in milliseconds, that must be greater
+                       than or equal to bfd:min_rx.  The implementation switches from
+                       bfd:min_rx to bfd:decay_min_rx when there is no obvious incoming
+                       data traffic at the interface, to reduce the CPU and bandwidth cost
+                       of monitoring an idle interface.  This feature may be disabled by
+                       setting a value of 0. This feature is reset whenever bfd:decay_min_rx
+                       bfd:min_rx changes.
+
+                bfd : forwarding_if_rx: optional string, either true or false
+                       When true, traffic received on the Interface is used to
+                       indicate the capability of packet I/O. BFD control packets are
+                       still transmitted and received.  At least one BFD control
+                       packet must be received every 100 * bfd:min_rx amount of time.
+                       Otherwise, even if traffic are received, the bfd-status:forwarding
+                       will be false.
+
+                bfd : cpath_down: optional string, either true or false
+                       Set to true to notify the remote endpoint that traffic should not be
+                       forwarded to this system for some reason other than a connectivity
+                       failure on the interface being monitored.  The typical underlying
+                       reason is concatenated path down, that is, that connectivity
+                       beyond the local system is down.  Defaults to false.
+
+                bfd : cpath_down: optional string, either true or false
+                       Set to true to notify the remote endpoint that traffic should not be
+                       forwarded to this system for some reason other than a connectivity
+                       failure on the interface being monitored.  The typical underlying
+                       reason is concatenated path down, that is, that connectivity
+                       beyond the local system is down.  Defaults to false.
+
+                bfd : check_tnl_key: optional string, either true or false
+                       Set to true to make BFD accept only control messages with a tunnel
+                       key of zero.  By default, BFD accepts control messages with any
+                       tunnel key.
+
+                bfd : bfd_local_dst_mac: optional string, mac address
+                       Set to an Ethernet address in the form xx:xx:xx:xx:xx:xx
+                       to set the MAC used as destination for transmitted BFD packets. The
+                       default is 00:23:20:00:00:01
+
+                bfd : bfd_remote_dst_mac: optional string, mac address
+                       Set to an Ethernet address in the form xx:xx:xx:xx:xx:xx
+                       to set the MAC used for checking the destination of received BFD packets.
+                       Packets with different destination MAC will not be considered as BFD packets.
+                       If not specified the destination MAC address of received BFD packets
+                       are not checked.
+
+                bfd : bfd_src_ip: optional string, ip address
+                       Set to an IPv4 address to set the IP address used as source
+                       for transmitted BFD packets.  The default is 169.254.1.1
+
+                bfd : bfd_dst_ip: optional string, ip address
+                       Set to an IPv4 address to set the IP address used as destination
+                       for transmitted BFD packets.  The default is 169.254.1.0";
+
+            key "bfd-key";
+            leaf bfd-key {
+                description "bfd name/key";
+                type string;
+            }
+            leaf bfd-value {
+                description "bfd value";
+                type string;
+            }
+        }
+
+        list interface-bfd-status {
+            description "BFD status for a particular interface.
+                The switch sets key-value pairs in the bfd_status column to
+                report the status of BFD on this interface.  When BFD is not
+                enabled, with bfd:enable, the switch clears all key-value
+                pairs from bfd_status.
+
+                bfd_status : state: optional string, one of [admin_down, down, init, up]
+                       Reports the state of the BFD session.  The BFD session is fully
+                       healthy and negotiated if UP.
+
+                bfd_status : forwarding: optional string, true or false
+                       Reports whether the BFD session believes this Interface
+                       may be used to forward traffic.  Typically this means
+                       the local session is signaling UP, and the remote
+                       system isn't signaling a problem such as concatenated path down.
+
+                bfd_status : diagnostic: optional string
+                       A diagnostic code specifying the local system's reason for the
+                       last change in session state. The error messages are defined in
+                       section 4.1 of [RFC 5880].
+
+                bfd_status : remote_state: optional string, one of [admin_down, down, init, up]
+                       Reports the state of the remote endpoint's BFD session.
+
+                bfd_status : remote_diagnostic: optional string
+                       A diagnostic code specifying the remote system's reason for the
+                       last change in session state. The error messages are defined in
+                       section 4.1 of [RFC 5880].
+
+                bfd_status : flap_count: optional string,
+                       containing an integer, minimum 0
+                       Counts the number of bfd_status:forwarding flaps since start.
+                       A flap is considered as a change of the bfd_status:forwarding value.";
+
+            key "bfd-status-key";
+            leaf bfd-status-key {
+                description "bfd-status name/key";
+                type string;
+            }
+            leaf bfd-status-value {
+                description "bfd-status value";
+                type string;
+            }
+        }
+
+        list qos-entry {
+            key "qos-key";
+            max-elements 1;
+            leaf qos-key {
+                description "Fixed key to reference the QoS entry in MD-SAL.";
+                type uint32 {
+                    range "1..1";
+                }
+                mandatory true;
+            }
+            leaf qos-ref {
+                description "Instance identifier of a QoS entry in the MD-SAL.";
+                type ovsdb-qos-ref;
+                mandatory true;
+            }
+        }
+
+        leaf ingress-policing-rate {
+            description "Maximum rate for data received on this interface in kbps.
+                Data received faster than this rate is dropped.  Set to 0 (default)
+                to disable policing";
+            type uint32;
+        }
+
+        leaf ingress-policing-burst {
+            description "Maximum burst size for data received on this interface in kb.
+                The default burst size if set to 0 is 1000 kb.  This value has no
+                effect if ingress-policing-rate is 0.";
+            type uint32;
+        }
     }
 
     augment "/topo:network-topology/topo:topology/topo:node" {