vswitch: Fix typos in schema documentation.
[sliver-openvswitch.git] / vswitchd / vswitch.xml
index 7a70909..e0245cd 100644 (file)
       <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
         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 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_type">
-        <p>The type of bonding used for a bonded port.  Currently supported
-          values are <code>slb</code> and <code>active-backup</code>.  Defaults
-          to SLB if unset.</p>
+      <column name="bond_mode">
+        <p>The type of bonding used for a bonded port.  Defaults to
+          <code>balance-slb</code> if unset.
+        </p>
       </column>
 
       <column name="bond_updelay">
         name of the port.  Use only for compatibility with legacy software that
         requires this.
       </column>
+
+      <column name="lacp">
+        <p>Configures LACP on this port.  LACP allows directly connected
+          switches to negotiate which links may be bonded.  LACP may be enabled
+          on non-bonded ports for the benefit of any switches they may be
+          connected to.  <code>active</code> ports are allowed to initiate LACP
+          negotiations.  <code>passive</code> ports are allowed to participate
+          in LACP negotiations initiated by a remote switch, but not allowed to
+          initiate such negotiations themselves. If unset Open vSwitch will
+          choose a reasonable default. </p>
+      </column>
+
     </group>
 
     <group title="Other Features">
             the bond to another in an attempt to keep usage of each
             interface roughly equal.  The default is 10000 (10
             seconds), and the minimum is 1000 (1 second).</dd>
+          <dt><code>bond-detect-mode</code></dt>
+          <dd> Sets the method used to detect link failures in a bonded port.
+            Options are <code>carrier</code> and <code>miimon</code>. Defaults
+            to <code>carrier</code> which uses each interface's carrier to detect
+            failures.  When set to <code>miimon</code>, will check for failures
+            by polling each interface's MII. </dd>
+          <dt><code>bond-miimon-interval</code></dt>
+          <dd> The number of milliseconds between successive attempts to
+            poll each interface's MII.  Only relevant on ports which use
+            <code>miimon</code> to detect failures. </dd>
+          <dt><code>lacp-system-priority</code></dt>
+          <dd> The LACP system priority of this <ref table="Port"/>.  In
+            LACP negotiations, link status decisions are made by the system
+            with the numerically lower priority.  Must be a number between 1
+            and 65535.</dd>
         </dl>
       </column>
     </group>
              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,
         Configuration options whose interpretation varies based on
         <ref column="type"/>.
       </column>
+    </group>
+
+    <group title="Interface Status">
+      <p>
+        Status information about interfaces attached to bridges, updated every
+        5 seconds.  Not all interfaces have all of these properties; virtual
+        interfaces don't have a link speed, for example.  Non-applicable
+        columns will have empty values.
+      </p>
+      <column name="admin_state">
+        <p>
+          The administrative state of the physical network link.
+        </p>
+      </column>
+
+      <column name="link_state">
+        <p>
+          The observed state of the physical network link;
+          i.e. whether a carrier is detected by the interface.
+        </p>
+      </column>
+
+      <column name="link_speed">
+        <p>
+          The negotiated speed of the physical network link.
+          Valid values are positive integers greater than 0.
+        </p>
+      </column>
+
+      <column name="duplex">
+        <p>
+          The duplex mode of the physical network link.
+        </p>
+      </column>
+
+      <column name="mtu">
+        <p>
+          The MTU (maximum transmission unit); i.e. the largest
+          amount of data that can fit into a single Ethernet frame.
+          The standard Ethernet MTU is 1500 bytes.  Some physical media
+          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">
         <p>
           Key-value pairs that report port status.  Supported status
-          values are <code>type</code>-dependent.
+          values are <code>type</code>-dependent; some interfaces may not have
+          a valid <code>driver_name</code>, for example.
         </p>
-        <p>The only currently defined key-value pair is:</p>
+        <p>The currently defined key-value pairs are:</p>
+        <dl>
+          <dt><code>driver_name</code></dt>
+          <dd>The name of the device driver controlling the network
+            adapter.</dd>
+        </dl>
+        <dl>
+          <dt><code>driver_version</code></dt>
+          <dd>The version string of the device driver controlling the
+            network adapter.</dd>
+        </dl>
+        <dl>
+          <dt><code>firmware_version</code></dt>
+          <dd>The version string of the network adapter's firmware, if
+            available.</dd>
+        </dl>
         <dl>
           <dt><code>source_ip</code></dt>
           <dd>The source IP address used for an IPv4 tunnel end-point,
-            such as <code>gre</code> or <code>capwap</code>.  Not
-            supported by all implementations.</dd>
+            such as <code>gre</code> or <code>capwap</code>.</dd>
+        </dl>
+        <dl>
+            <dt><code>tunnel_egress_iface</code></dt>
+            <dd>Egress interface for tunnels.  Currently only relevant for GRE
+                and CAPWAP tunnels.  On Linux systems, this column will show
+                the name of the interface which is responsible for routing
+                traffic destined for the configured <code>remote_ip</code>.
+                This could be an internal interface such as a bridge port.</dd>
+        </dl>
+        <dl>
+            <dt><code>tunnel_egress_iface_carrier</code></dt>
+            <dd>Whether a carrier is detected on <ref
+            column="tunnel_egress_iface"/>.  Valid values are <code>down</code>
+            and <code>up</code>.</dd>
         </dl>
       </column>
     </group>
         </dl>
       </column>
 
-      <column name="tunnel_egress_iface">
-        Egress interface for tunnels.  Currently only relevant for GRE and
-        CAPWAP tunnels.  On Linux systems, this column will show the name of
-        the interface which is responsible for routing traffic destined for the
-        configured <code>remote_ip</code>.  This could be an internal interface
-        such as a bridge port.
-      </column>
-
       <column name="other_config">
-        Key-value pairs for rarely used interface features.  Currently,
-        there are none defined.
+        Key-value pairs for rarely used interface features.
+        <dl>
+          <dt><code>lacp-port-priority</code></dt>
+          <dd> The LACP port priority of this <ref table="Interface"/>.  In
+            LACP negotiations <ref table="Interface"/>s with numerically lower
+            priorities are preferred for aggregation.  Must be a number between
+            1 and 65535.</dd>
+        </dl>
       </column>
 
       <column name="statistics">
         unique.  No common key-value pairs are currently defined.
       </column>
     </group>
+
+    <group title="Controller Status">
+      <column name="is_connected">
+        <code>true</code> if currently connected to this controller,
+        <code>false</code> otherwise.
+      </column>
+
+      <column name="role">
+        <p>The level of authority this controller has on the associated
+          bridge. Possible values are:</p>
+        <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>
+        </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
+            error.  Slave controllers do not receive OFPT_PACKET_IN or
+            OFPT_FLOW_REMOVED messages, but they do receive OFPT_PORT_STATUS
+            messages.</dd>
+        </dl>
+      </column>
+
+      <column name="status">
+        <p>Key-value pairs that report controller status.</p>
+        <dl>
+          <dt><code>last_error</code></dt>
+          <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
+            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>
+        </dl>
+      </column>
+    </group>
   </table>
 
   <table name="Manager" title="OVSDB management connection.">
         unique.  No common key-value pairs are currently defined.
       </column>
     </group>
+
+    <group title="Status">
+      <column name="is_connected">
+        <code>true</code> if currently connected to this manager,
+        <code>false</code> otherwise.
+      </column>
+
+      <column name="status">
+        <p>Key-value pairs that report manager status.</p>
+        <dl>
+          <dt><code>last_error</code></dt>
+          <dd>A human-readable description of the last error on the connection
+            to the manager; 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 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),
+            <code>ACTIVE</code> (connected, remote host responsive), and
+            <code>IDLE</code> (remote host unresponsive, disconnecting).  These
+            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>
+        </dl>
+      </column>
+    </group>
   </table>
 
   <table name="NetFlow">