vswitch.xml: Document more details of CFM intervals.
[sliver-openvswitch.git] / vswitchd / vswitch.xml
index f3ea338..b9b7b97 100644 (file)
           numerically lower priority.
         </column>
 
-        <column name="other_config" key="lacp-time">
+        <column name="other_config" key="lacp-time"
+          type='{"type": "string", "enum": ["set", ["fast", "slow"]]}'>
           <p>
             The LACP timing which should be used on this <ref table="Port"/>.
-            Possible values are <code>fast</code>, <code>slow</code> and a
-            positive number of milliseconds.  By default <code>slow</code> is
-            used.  When configured to be <code>fast</code> LACP heartbeats are
-            requested at a rate of once per second causing connectivity
-            problems to be detected more quickly.  In <code>slow</code> mode,
-            heartbeats are requested at a rate of once every 30 seconds.
-          </p>
-
-          <p>
-            Users may manually set a heartbeat transmission rate to increase
-            the fault detection speed further.  When manually set, OVS expects
-            the partner switch to be configured with the same transmission
-            rate.  Manually setting <code>lacp-time</code> to something other
-            than <code>fast</code> or <code>slow</code> is not supported by the
-            LACP specification.
+            By default <code>slow</code> is used.  When configured to be
+            <code>fast</code> LACP heartbeats are requested at a rate of once
+            per second causing connectivity problems to be detected more
+            quickly.  In <code>slow</code> mode, heartbeats are requested at a
+            rate of once every 30 seconds.
           </p>
         </column>
-
-        <column name="other_config" key="lacp-heartbeat"
-                type='{"type": "boolean"}'>
-          Treat LACP like a simple heartbeat protocol for link state
-          monitoring.  Most features of the LACP protocol are disabled
-          when this mode is in use.  The default if not specified is
-          <code>false</code>.
-        </column>
       </group>
 
       <group title="SLB Configuration">
         an <code>ovs-appctl</code> command.
       </column>
 
+      <column name="cfm_fault_status" key="interval">
+        Indicates a CFM fault was triggered due to the reception of a CCM
+        frame having an invalid interval.
+      </column>
+
+      <column name="cfm_fault_status" key="sequence">
+        Indicates a CFM fault was triggered because the CFM module received
+        a CCM frame with a sequence number that it was not expecting.
+      </column>
+
+      <column name="cfm_health">
+        <p>
+          Indicates the health of the interface as a percentage of CCM frames
+          received over 21 <ref column="other_config" key="cfm_interval"/>s.
+          The health of an interface is undefined if it is communicating with
+          more than one <ref column="cfm_remote_mpids"/>.  It reduces if
+          healthy heartbeats are not received at the expected rate, and
+          gradually improves as healthy heartbeats are received at the desired
+          rate. Every 21 <ref column="other_config" key="cfm_interval"/>s, the
+          health of the interface is refreshed.
+        </p>
+        <p>
+          As mentioned above, the faults can be triggered for several reasons.
+          The link health will deteriorate even if heartbeats are received but
+          they are reported to be unhealthy.  An unhealthy heartbeat in this
+          context is a heartbeat for which either some fault is set or is out
+          of sequence.  The interface health can be 100 only on receiving
+          healthy heartbeats at the desired rate.
+        </p>
+      </column>
+
       <column name="cfm_remote_mpids">
         When CFM is properly configured, Open vSwitch will occasionally
         receive CCM broadcasts.  These broadcasts contain the MPID of the
 
       <column name="other_config" key="cfm_interval"
               type='{"type": "integer"}'>
-        The interval, in milliseconds, between transmissions of CFM heartbeats.
-        Three missed heartbeat receptions indicate a connectivity fault.
-        Defaults to 1000.
+        <p>
+          The interval, in milliseconds, between transmissions of CFM
+          heartbeats.  Three missed heartbeat receptions indicate a
+          connectivity fault.
+        </p>
+
+        <p>
+          In standard operation only intervals of 3, 10, 100, 1,000, 10,000,
+          60,000, or 600,000 ms are supported.  Other values will be rounded
+          down to the nearest value on the list.  Extended mode (see <ref
+          column="other_config" key="cfm_extended"/>) supports any interval up
+          to 65,535 ms.  In either mode, the default is 1000 ms.
+        </p>
+
+        <p>We do not recommend using intervals less than 100 ms.</p>
       </column>
 
       <column name="other_config" key="cfm_extended"
         commonly be the same as <ref column="external_ids" key="xs-vif-uuid"/>.
       </column>
 
+      <column name="external_ids" key="iface-status"
+              type='{"type": "string",
+                    "enum": ["set", ["active", "inactive"]]}'>
+        <p>
+          Hypervisors may sometimes have more than one interface associated
+          with a given <ref column="external_ids" key="iface-id"/>, only one of
+          which is actually in use at a given time.  For example, in some
+          circumstances XenServer has both a ``tap'' and a ``vif'' interface
+          for a single <ref column="external_ids" key="iface-id"/>, but only
+          uses one of them at a time.  A hypervisor that behaves this way must
+          mark the currently in use interface <code>active</code> and the
+          others <code>inactive</code>.  A hypervisor that never has more than
+          one interface for a given <ref column="external_ids" key="iface-id"/>
+          may mark that interface <code>active</code> or omit <ref
+          column="external_ids" key="iface-status"/> entirely.
+        </p>
+
+        <p>
+          During VM migration, a given <ref column="external_ids"
+          key="iface-id"/> might transiently be marked <code>active</code> on
+          two different hypervisors.  That is, <code>active</code> means that
+          this <ref column="external_ids" key="iface-id"/> is the active
+          instance within a single hypervisor, not in a broader scope.
+        </p>
+      </column>
+
       <column name="external_ids" key="xs-vif-uuid">
         The virtual interface associated with this interface.
       </column>
 
       <column name="other_config" key="dscp"
                 type='{"type": "integer"}'>
-        The Differentiated Service Code Point (DSCP) is specified in the IP
-        header. They are specified using 6 bits in the Type of Service (TOS)
-        field in the IP header. DSCP provides a mechanism to classify the
-        network traffic and provide the Quality of Service (QoS) on IP
-        networks.
-        The DSCP value passed is used when establishing the connection between
-        the controller and the Open vSwitch.  The connection must be reset
-        for the new DSCP values to take effect.  If no value is
-        specified, a default value of 192 is chosen for connection
-        establishment.  Valid DSCP values must have their lower 2 bits set to 0.
+        The Differentiated Service Code Point (DSCP) is specified using 6 bits
+        in the Type of Service (TOS) field in the IP header. DSCP provides a
+        mechanism to classify the network traffic and provide Quality of
+        Service (QoS) on IP networks.
+
+        The DSCP value specified here is used when establishing the connection
+        between the controller and the Open vSwitch.  The connection must be
+        reset for the new DSCP values to take effect.  If no value is
+        specified, a default value of 48 is chosen.  Valid DSCP values must be
+        in the range 0 to 63.
       </column>
     </group>
 
 
       <column name="other_config" key="dscp"
                 type='{"type": "integer"}'>
-        The Differentiated Service Code Point (DSCP) is specified in the IP
-        header. They are specified using 6 bits in the Type of Service (TOS)
-        field in the IP header. DSCP provides a mechanism to classify the
-        network traffic and provide the Quality of Service (QoS) on IP
-        networks.
-        The DSCP value passed when establishing the connection between
-        the manager and the Open vSwitch Database.  The connection must be
+        The Differentiated Service Code Point (DSCP) is specified using 6 bits
+        in the Type of Service (TOS) field in the IP header. DSCP provides a
+        mechanism to classify the network traffic and provide Quality of
+        Service (QoS) on IP networks.
+
+        The DSCP value specified here is used when establishing the connection
+        between the manager and the Open vSwitch.  The connection must be
         reset for the new DSCP values to take effect.  If no value is
-        specified, a default value of 192 is chosen for connection
-        establishment.  Valid DSCP values must have their lower 2 bits set to 0.
+        specified, a default value of 48 is chosen.  Valid DSCP values must be
+        in the range 0 to 63.
       </column>
     </group>