bridge: Pull monitoring out of bonding logic.
[openvswitch] / vswitchd / vswitch.xml
index d9e71b336c41f3a617eeade854f53918ee49b3d9..ad1bffa3d9daa212952288a33553892a69d1cd37 100644 (file)
@@ -1,15 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
 <database title="Open vSwitch Configuration Database">
 <?xml version="1.0" encoding="utf-8"?>
 <database title="Open vSwitch Configuration Database">
-  <p>A database with this schema holds the configuration for one Open
-    vSwitch daemon.  The root of the configuration for the daemon is
-    the <ref table="Open_vSwitch"/> table, which must have exactly one
+  <p>
+    A database with this schema holds the configuration for one Open
+    vSwitch daemon.  The top-level configuration for the daemon is the
+    <ref table="Open_vSwitch"/> table, which must have exactly one
     record.  Records in other tables are significant only when they
     record.  Records in other tables are significant only when they
-    can be reached directly or indirectly from the
-    <ref table="Open_vSwitch"/> table.</p>
+    can be reached directly or indirectly from the <ref
+    table="Open_vSwitch"/> table.  Records that are not reachable from
+    the <ref table="Open_vSwitch"/> table are automatically deleted
+    from the database, except for records in a few distinguished
+    ``root set'' tables noted below.
+  </p>
 
   <table name="Open_vSwitch" title="Open vSwitch configuration.">
 
   <table name="Open_vSwitch" title="Open vSwitch configuration.">
-    Configuration for an Open vSwitch daemon.  There must be exactly one record
-    in the <ref table="Open_vSwitch"/> table.
+    Configuration for an Open vSwitch daemon.  There must be exactly
+    one record in the <ref table="Open_vSwitch"/> table.
 
     <group title="Configuration">
       <column name="bridges">
 
     <group title="Configuration">
       <column name="bridges">
       <column name="system_version">
         <p>
           The version of the system identified by <ref column="system_type"/>,
       <column name="system_version">
         <p>
           The version of the system identified by <ref column="system_type"/>,
-          e.g. <code>5.5.0-24648p</code> on XenServer 5.5.0 build 24648.
+          e.g. <code>5.6.100-39265p</code> on XenServer 5.6.100 build 39265.
         </p>
         <p>
           System integrators are responsible for choosing and setting an
         </p>
         <p>
           System integrators are responsible for choosing and setting an
         connection should be configured.  See the <ref table="Manager"/> table
         for more information.
       </column>
         connection should be configured.  See the <ref table="Manager"/> table
         for more information.
       </column>
-
-      <column name="managers">
-        <p>
-          Remote database clients to which the Open vSwitch's database server
-          should connect or to which it should listen.  Adding an OVSDB target
-          to this set is equivalent to adding it to <ref
-          column="manager_options"/> with all of the default options.
-        </p>
-
-        <p>
-          Use of this column is deprecated and may be removed sometime in the
-          future.  New applications should use and set <ref
-          column="manager_options"/> instead.
-        </p>
-      </column>
     </group>
   </table>
 
     </group>
   </table>
 
 
     <group title="Bonding Configuration">
       <p>A port that has more than one interface is a ``bonded port.'' Bonding
 
     <group title="Bonding Configuration">
       <p>A port that has more than one interface is a ``bonded port.'' Bonding
-        allows for load balancing and fail-over.  Open vSwitch supports
-        ``source load balancing'' (SLB) and "active backup" bonding.  SLB
-        bonding assigns flows to slaves based on source MAC address and output
-        VLAN, with periodic rebalancing as traffic patterns change.  Active
-        backup bonding assigns all flows to one slave, failing over to a backup
-        slave when the active slave is disabled.  Neither form of bonding
-        require 802.3ad or other special support from the upstream switch to
-        which the slave devices are connected.</p>
+        allows for load balancing and fail-over.  Some kinds of bonding will
+        work with any kind of upstream switch:</p>
+
+      <dl>
+        <dt><code>balance-slb</code></dt>
+        <dd>
+          Balances flows among slaves based on source MAC address and output
+          VLAN, with periodic rebalancing as traffic patterns change.
+        </dd>
+
+        <dt><code>active-backup</code></dt>
+        <dd>
+          Assigns all flows to one slave, failing over to a backup slave when
+          the active slave is disabled.
+        </dd>
+      </dl>
+
+      <p>
+        The following mode requires the upstream switch to support 802.3ad with
+        successful LACP negotiation.  If LACP negotiation fails then
+        <code>balance-slb</code> mode is used as a fallback:
+      </p>
+
+      <dl>
+        <dt><code>balance-tcp</code></dt>
+        <dd>
+          Balances flows among slaves based on L2, L3, and L4 protocol
+          information such as destination MAC address, IP address, and TCP
+          port.
+        </dd>
+      </dl>
 
       <p>These columns apply only to bonded ports.  Their values are
         otherwise ignored.</p>
 
       <column name="bond_mode">
 
       <p>These columns apply only to bonded ports.  Their values are
         otherwise ignored.</p>
 
       <column name="bond_mode">
-        <p>The type of bonding used for a bonded port.  Currently supported
-          values are <code>balance-slb</code> and <code>active-backup</code>.
-          Defaults to SLB if unset.</p>
+        <p>The type of bonding used for a bonded port.  Defaults to
+          <code>balance-slb</code> if unset.
+        </p>
       </column>
 
       <column name="bond_updelay">
       </column>
 
       <column name="bond_updelay">
              where GRE is not available.  Note that only the tunneling component
              of the protocol is implemented.  Due to the non-standard use of
              CAPWAP, UDP ports 58881 and 58882 are used as the source and
              where GRE is not available.  Note that only the tunneling component
              of the protocol is implemented.  Due to the non-standard use of
              CAPWAP, UDP ports 58881 and 58882 are used as the source and
-             destinations ports respectivedly.  Each tunnel must be uniquely
+             destination ports respectively.  Each tunnel must be uniquely
              identified by the combination of <code>remote_ip</code> and
              <code>local_ip</code>.  If two ports are defined that are the same
              except one includes <code>local_ip</code> and the other does not,
              identified by the combination of <code>remote_ip</code> and
              <code>local_ip</code>.  If two ports are defined that are the same
              except one includes <code>local_ip</code> and the other does not,
           and many kinds of virtual interfaces can be configured with
           higher MTUs.
         </p>
           and many kinds of virtual interfaces can be configured with
           higher MTUs.
         </p>
+        <p>
+          This column will be empty for an interface that does not
+          have an MTU as, for example, some kinds of tunnels do not.
+        </p>
       </column>
 
       <column name="status">
       </column>
 
       <column name="status">
         column="type"/> of <code>linux-htb</code> are:</p>
       <dl>
         <dt><code>min-rate</code></dt>
         column="type"/> of <code>linux-htb</code> are:</p>
       <dl>
         <dt><code>min-rate</code></dt>
-        <dd>Minimum guaranteed bandwidth, in bit/s.  Required.</dd>
+        <dd>Minimum guaranteed bandwidth, in bit/s.</dd>
         <dt><code>max-rate</code></dt>
         <dd>Maximum allowed bandwidth, in bit/s.  Optional.  If specified, the
           queue's rate will not be allowed to exceed the specified value, even
         <dt><code>max-rate</code></dt>
         <dd>Maximum allowed bandwidth, in bit/s.  Optional.  If specified, the
           queue's rate will not be allowed to exceed the specified value, even
         column="type"/> of <code>linux-hfsc</code> are:</p>
       <dl>
         <dt><code>min-rate</code></dt>
         column="type"/> of <code>linux-hfsc</code> are:</p>
       <dl>
         <dt><code>min-rate</code></dt>
-        <dd>Minimum guaranteed bandwidth, in bit/s.  Required.</dd>
+        <dd>Minimum guaranteed bandwidth, in bit/s.</dd>
         <dt><code>max-rate</code></dt>
         <dd>Maximum allowed bandwidth, in bit/s.  Optional.  If specified, the
           queue's rate will not be allowed to exceed the specified value, even
         <dt><code>max-rate</code></dt>
         <dd>Maximum allowed bandwidth, in bit/s.  Optional.  If specified, the
           queue's rate will not be allowed to exceed the specified value, even
           <dd>The specified TCP <var>port</var> (default: 6633) on the host at
             the given <var>ip</var>, which must be expressed as an IP address
             (not a DNS name).</dd>
           <dd>The specified TCP <var>port</var> (default: 6633) on the host at
             the given <var>ip</var>, which must be expressed as an IP address
             (not a DNS name).</dd>
-          <dt><code>discover</code></dt>
-          <dd>
-            <p>Enables controller discovery.</p>
-            <p>In controller discovery mode, Open vSwitch broadcasts a DHCP
-              request with vendor class identifier <code>OpenFlow</code> across
-              all of the bridge's network devices.  It will accept any valid
-              DHCP reply that has the same vendor class identifier and includes
-              a vendor-specific option with code 1 whose contents are a string
-              specifying the location of the controller in the same format as
-              <ref column="target"/>.</p>
-            <p>The DHCP reply may also, optionally, include a vendor-specific
-              option with code 2 whose contents are a string specifying the URI
-              to the base of the OpenFlow PKI
-              (e.g. <code>http://192.168.0.1/openflow/pki</code>).  This URI is
-              used only for bootstrapping the OpenFlow PKI at initial switch
-              setup; <code>ovs-vswitchd</code> does not use it at all.</p>
-          </dd>
         </dl>
         <p>
           The following connection methods are currently supported for service
         </dl>
         <p>
           The following connection methods are currently supported for service
           </dd>
         </dl>
 
           </dd>
         </dl>
 
-        <p>If not specified, the default is implementation-specific.  If
-          <ref column="target"/> is <code>discover</code>, the connection mode
-          is always treated as <code>in-band</code> regardless of the actual
-          setting.</p>
+        <p>If not specified, the default is implementation-specific.</p>
       </column>
     </group>
 
       </column>
     </group>
 
         </column>
     </group>
 
         </column>
     </group>
 
-    <group title="Additional Discovery Configuration">
-      <p>These values are considered only when <ref column="target"/>
-        is <code>discover</code>.</p>
-
-      <column name="discover_accept_regex">
-        A POSIX
-        extended regular expression against which the discovered controller
-        location is validated.  The regular expression is implicitly
-        anchored at the beginning of the controller location string, as
-        if it begins with <code>^</code>.  If not specified, the default
-        is implementation-specific.
-      </column>
-
-      <column name="discover_update_resolv_conf">
-        Whether to update <code>/etc/resolv.conf</code> when the
-        controller is discovered.  If not specified, the default
-        is implementation-specific.  Open vSwitch will only modify
-        <code>/etc/resolv.conf</code> if the DHCP response that it receives
-        specifies one or more DNS servers.
-      </column>
-    </group>
-
     <group title="Additional In-Band Configuration">
       <p>These values are considered only in in-band control mode (see
     <group title="Additional In-Band Configuration">
       <p>These values are considered only in in-band control mode (see
-        <ref column="connection_mode"/>) and only when <ref column="target"/>
-        is not <code>discover</code>.  (For controller discovery, the network
-        configuration obtained via DHCP is used instead.)</p>
+        <ref column="connection_mode"/>).</p>
 
       <p>When multiple controllers are configured on a single bridge, there
         should be only one set of unique values in these columns.  If different
 
       <p>When multiple controllers are configured on a single bridge, there
         should be only one set of unique values in these columns.  If different
         <dl>
           <dt><code>other</code></dt>
           <dd>Allows the controller access to all OpenFlow features.</dd>
         <dl>
           <dt><code>other</code></dt>
           <dd>Allows the controller access to all OpenFlow features.</dd>
-        </dl>
-        <dl>
           <dt><code>master</code></dt>
           <dd>Equivalent to <code>other</code>, except that there may be at
             most one master controller at a time.  When a controller configures
             itself as <code>master</code>, any existing master is demoted to
             the <code>slave</code>role.</dd>
           <dt><code>master</code></dt>
           <dd>Equivalent to <code>other</code>, except that there may be at
             most one master controller at a time.  When a controller configures
             itself as <code>master</code>, any existing master is demoted to
             the <code>slave</code>role.</dd>
-        </dl>
-        <dl>
           <dt><code>slave</code></dt>
           <dd>Allows the controller read-only access to OpenFlow features.
             Attempts to modify the flow table will be rejected with an
           <dt><code>slave</code></dt>
           <dd>Allows the controller read-only access to OpenFlow features.
             Attempts to modify the flow table will be rejected with an
           <dd>A human-readable description of the last error on the connection
             to the controller; i.e. <code>strerror(errno)</code>.  This key
             will exist only if an error has occurred.</dd>
           <dd>A human-readable description of the last error on the connection
             to the controller; i.e. <code>strerror(errno)</code>.  This key
             will exist only if an error has occurred.</dd>
-        </dl>
-        <dl>
           <dt><code>state</code></dt>
           <dd>The state of the connection to the controller.  Possible values
           <dt><code>state</code></dt>
           <dd>The state of the connection to the controller.  Possible values
-            are: <code>VOID</code>, <code>BACKOFF</code>,
-            <code>CONNECTING</code>, <code>ACTIVE</code>, and
-            <code>IDLE</code>.</dd>
-        </dl>
-        <dl>
-          <dt><code>time_in_state</code></dt>
-          <dd>Seconds since connecting to (if currently connected) or
-            disconnecting from (if currently disconnected) this
-            controller.</dd>
+            are: <code>VOID</code> (connection is disabled),
+            <code>BACKOFF</code> (attempting to reconnect at an increasing
+            period), <code>CONNECTING</code> (attempting to connect),
+            <code>ACTIVE</code> (connected, remote host responsive), and
+            <code>IDLE</code> (remote host idle, sending keep-alive).  These
+            values may change in the future.  They are provided only for human
+            consumption.</dd>
+          <dt><code>sec_since_connect</code></dt>
+          <dd>The amount of time since this controller last successfully
+            connected to the switch (in seconds). Value is empty if controller
+            has never successfully connected.</dd>
+          <dt><code>sec_since_disconnect</code></dt>
+          <dd>The amount of time since this controller last disconnected from
+            the switch (in seconds). Value is empty if controller has never
+            disconnected.</dd>
         </dl>
       </column>
     </group>
         </dl>
       </column>
     </group>
           <dd>The state of the connection to the manager.  Possible values
             are: <code>VOID</code> (connection is disabled),
             <code>BACKOFF</code> (attempting to reconnect at an increasing
           <dd>The state of the connection to the manager.  Possible values
             are: <code>VOID</code> (connection is disabled),
             <code>BACKOFF</code> (attempting to reconnect at an increasing
-            period), <code>CONNECT_IN_PROGRESS</code> (attempting to connect),
+            period), <code>CONNECTING</code> (attempting to connect),
             <code>ACTIVE</code> (connected, remote host responsive), and
             <code>ACTIVE</code> (connected, remote host responsive), and
-            <code>IDLE</code> (remote host unresponsive, disconnecting).  These
+            <code>IDLE</code> (remote host idle, sending keep-alive).  These
             values may change in the future.  They are provided only for human
             consumption.</dd>
         </dl>
         <dl>
             values may change in the future.  They are provided only for human
             consumption.</dd>
         </dl>
         <dl>
-          <dt><code>time_in_state</code></dt>
-          <dd>Milliseconds since the <code>state</code> key changed.</dd>
+          <dt><code>sec_since_connect</code></dt>
+          <dd>The amount of time since this manager last successfully connected
+            to the database (in seconds). Value is empty if manager has never
+            successfully connected.</dd>
+        </dl>
+        <dl>
+          <dt><code>sec_since_disconnect</code></dt>
+          <dd>The amount of time since this manager last disconnected from the
+            database (in seconds). Value is empty if manager has never
+            disconnected.</dd>
         </dl>
       </column>
     </group>
         </dl>
       </column>
     </group>