ofproto-dpif-sflow: allow sFlow to infer the agent device.
[sliver-openvswitch.git] / vswitchd / vswitch.xml
index 8eba5cb..84d91da 100644 (file)
         </p>
       </column>
 
+      <column name="other_config" key="bond-hash-basis"
+              type='{"type": "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.  Does
+        not affect bonding modes which do not employ load balancing such as
+        <code>active-backup</code>.
+      </column>
+
       <group title="Link Failure Detection">
         <p>
           An important part of link bonding is detecting that links are down so
           when this mode is in use.  The default if not specified is
           <code>false</code>.
         </column>
-
-        <column name="other_config" key="bond-hash-basis"
-                type='{"type": "integer"}'>
-          An integer hashed along with flows when choosing output slaves.  When
-          changed, all flows will be assigned different hash values possibly
-          causing slave selection decisions to change.
-        </column>
       </group>
 
       <group title="SLB Configuration">
       </column>
     </group>
 
+    <group title="VLAN Splinters">
+      <p>
+       The ``VLAN splinters'' feature increases Open vSwitch compatibility
+       with buggy network drivers in old versions of Linux that do not
+       properly support VLANs when VLAN devices are not used, at some cost
+       in memory and performance.
+      </p>
+
+      <p>
+       When VLAN splinters are enabled on a particular interface, Open vSwitch
+       creates a VLAN device for each in-use VLAN.  For sending traffic tagged
+       with a VLAN on the interface, it substitutes the VLAN device.  Traffic
+       received on the VLAN device is treated as if it had been received on
+        the interface on the particular VLAN.
+      </p>
+
+      <p>
+        VLAN splinters consider a VLAN to be in use if:
+      </p>
+
+      <ul>
+        <li>
+          The VLAN is listed within the <ref table="Port" column="trunks"/>
+          column of the <ref table="Port"/> record of an interface on which
+          VLAN splinters are enabled.
+
+          An empty <ref table="Port" column="trunks"/> does not influence the
+          in-use VLANs: creating 4,096 VLAN devices is impractical because it
+          will exceed the current 1,024 port per datapath limit.
+        </li>
+
+        <li>
+          An OpenFlow flow within any bridge matches the VLAN.
+        </li>
+      </ul>
+
+      <p>
+        The same set of in-use VLANs applies to every interface on which VLAN
+        splinters are enabled.  That is, the set is not chosen separately for
+        each interface but selected once as the union of all in-use VLANs based
+        on the rules above.
+      </p>
+
+      <p>
+        It does not make sense to enable VLAN splinters on an interface for an
+        access port, or on an interface that is not a physical port.
+      </p>
+
+      <p>
+       VLAN splinters are deprecated.  When broken device drivers are no
+       longer in widespread use, we will delete this feature.
+      </p>
+
+      <column name="other_config" key="enable-vlan-splinters"
+              type='{"type": "boolean"}'>
+        <p>
+          Set to <code>true</code> to enable VLAN splinters on this interface.
+          Defaults to <code>false</code>.
+        </p>
+
+        <p>
+          VLAN splinters increase kernel and userspace memory overhead, so do
+          not use them unless they are needed.
+        </p>
+      </column>
+    </group>
+
     <group title="Common Columns">
       The overall purpose of these columns is described under <code>Common
       Columns</code> at the beginning of this document.
     </group>
   </table>
 
-  <table name="Mirror" title="Port mirroring (SPAN/RSPAN/ERSPAN).">
+  <table name="Mirror" title="Port mirroring.">
     <p>A port mirror within a <ref table="Bridge"/>.</p>
     <p>A port mirror configures a bridge to send selected frames to special
     ``mirrored'' ports, in addition to their normal destinations.  Mirroring
-    traffic may also be referred to as SPAN, RSPAN, or ERSPAN, depending on how
+    traffic may also be referred to as SPAN or RSPAN, depending on how
     the mirrored traffic is sent.</p>
 
     <column name="name">
         will be discarded.</p>
         <p>
           The output port may be any kind of port supported by Open vSwitch.
-          It may be, for example, a physical port (sometimes called SPAN), or a
-          GRE tunnel (sometimes called ERSPAN).
+          It may be, for example, a physical port (sometimes called SPAN) or a
+          GRE tunnel.
         </p>
       </column>
 
       </column>
     </group>
 
+    <group title="Statistics: Mirror counters">
+      <p>
+        Key-value pairs that report mirror statistics.
+      </p>
+      <column name="statistics" key="tx_packets">
+        Number of packets transmitted through this mirror.
+      </column>
+      <column name="statistics" key="tx_bytes">
+        Number of bytes transmitted through this mirror.
+      </column>
+    </group>
+
     <group title="Common Columns">
       The overall purpose of these columns is described under <code>Common
       Columns</code> at the beginning of this document.
 
     <column name="agent">
       Name of the network device whose IP address should be reported as the
-      ``agent address'' to collectors.  If not specified, the IP address
+      ``agent address'' to collectors.  If not specified, the agent device is
+      figured from the first target address and the routing table.  If the
+      routing table does not contain a route to the target, the IP address
       defaults to the <ref table="Controller" column="local_ip"/> in the
       collector's <ref table="Controller"/>.  If an agent IP address cannot be
-      determined either way, sFlow is disabled.
+      determined any of these ways, sFlow is disabled.
     </column>
 
     <column name="header">