mcast-snooping: Add Multicast Listener Discovery support
[cascardo/ovs.git] / vswitchd / vswitch.xml
index 635e2dc..b1d30f6 100644 (file)
       <column name="other_config" key="n-dpdk-rxqs"
               type='{"type": "integer", "minInteger": 1}'>
         <p>
-          Specifies the number of rx queues to be created for each dpdk
+          Specifies the maximum 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.
         </p>
 
     </group>
 
+    <group title="Capabilities">
+      <p>
+        These columns report capabilities of the Open vSwitch instance.
+      </p>
+      <column name="datapath_types">
+        <p>
+          This column reports the different dpifs registered with the system.
+          These are the values that this instance supports in the <ref
+          column="datapath_type" table="Bridge"/> column of the <ref
+          table="Bridge"/> table.
+        </p>
+      </column>
+      <column name="iface_types">
+        <p>
+          This column reports the different netdevs registered with the system.
+          These are the values that this instance supports in the <ref
+          column="type" table="Interface"/> column of the <ref
+          table="Interface"/> table.
+        </p>
+      </column>
+    </group>
+
     <group title="Database Configuration">
       <p>
         These columns primarily configure the Open vSwitch database
           a different type of mirror instead.
         </p>
       </column>
+
+      <column name="auto_attach">
+          Auto Attach configuration.
+      </column>
     </group>
 
     <group title="OpenFlow Configuration">
 
     <group title="Multicast Snooping Configuration">
       Multicast snooping (RFC 4541) monitors the Internet Group Management
-      Protocol (IGMP) traffic between hosts and multicast routers.  The
-      switch uses what IGMP snooping learns to forward multicast traffic
-      only to interfaces that are connected to interested receivers.
-      Currently it supports IGMPv1 and IGMPv2 protocols.
+      Protocol (IGMP) and Multicast Listener Discovery traffic between hosts
+      and multicast routers.  The switch uses what IGMP and MLD snooping
+      learns to forward multicast traffic only to interfaces that are connected
+      to interested receivers.  Currently it supports IGMPv1, IGMPv2, IGMPv3,
+      MLDv1 and MLDv2 protocols.
 
       <column name="mcast_snooping_enable">
         Enable multicast snooping on the bridge. For now, the default
 
     <group title="Other Features">
       <column name="datapath_type">
-        Name of datapath provider.  The kernel datapath has
-        type <code>system</code>.  The userspace datapath has
-        type <code>netdev</code>.
+        Name of datapath provider.  The kernel datapath has type
+        <code>system</code>.  The userspace datapath has type
+        <code>netdev</code>.  A manager may refer to the <ref
+        table="Open_vSwitch" column="datapath_types"/> column of the <ref
+        table="Open_vSwitch"/> table for a list of the types accepted by this
+        Open vSwitch instance.
       </column>
 
       <column name="external_ids" key="bridge-id">
 
       <column name="other_config" key="forward-bpdu"
               type='{"type": "boolean"}'>
-        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.  If STP is enabled
-        on the port, STP BPDUs will never be forwarded.  If the Open
-        vSwitch bridge is used to connect different Ethernet networks,
-        and if Open vSwitch node does not run STP, then this option
-        should be enabled.  Default is disabled, set to
-        <code>true</code> to enable.
-
-        The following destination MAC addresss will not be forwarded when this
-        option is enabled.
+
+       <p>
+          Controls forwarding of BPDUs and other network control frames when
+          NORMAL action is invoked.  When this option is <code>false</code> or
+          unset, frames with reserved Ethernet addresses (see table below) will
+          not be forwarded.  When this option is <code>true</code>, such frames
+          will not be treated specially.
+       </p>
+
+       <p>
+         The above general rule has the following exceptions:
+       </p>
+
+       <ul>
+         <li>
+           If STP is enabled on the bridge (see the <ref column="stp_enable"
+           table="Bridge"/> column in the <ref table="Bridge"/> table), the
+           bridge processes all received STP packets and never passes them to
+           OpenFlow or forwards them.  This is true even if STP is disabled on
+           an individual port.
+         </li>
+
+         <li>
+           If LLDP is enabled on an interface (see the <ref column="lldp"
+           table="Interface"/> column in the <ref table="Interface"/> table),
+           the interface processes received LLDP packets and never passes them
+           to OpenFlow or forwards them.
+         </li>
+       </ul>
+
+       <p>
+         Set this option to <code>true</code> if the Open vSwitch bridge
+         connects different Ethernet networks and is not configured to
+         participate in STP.
+       </p>
+
+        <p>
+         This option affects packets with the following destination MAC
+         addresses:
+       </p>
+
         <dl>
           <dt><code>01:80:c2:00:00:00</code></dt>
           <dd>IEEE 802.1D Spanning Tree Protocol (STP).</dd>
     <group title="System-Specific Details">
       <column name="type">
         <p>
-          The interface type, one of:
+          The interface type.  The types supported by a particular instance of
+          Open vSwitch are listed in the <ref table="Open_vSwitch"
+          column="iface_types"/> column in the <ref table="Open_vSwitch"/>
+          table.  The following types are defined:
         </p>
 
         <dl>
 
           <dt><code>geneve</code></dt>
           <dd>
-            An Ethernet over Geneve (<code>http://tools.ietf.org/html/draft-gross-geneve-00</code>)
+            An Ethernet over Geneve (<code>http://tools.ietf.org/html/draft-ietf-nvo3-geneve-00</code>)
             IPv4 tunnel.
 
-            Geneve supports options as a means to transport additional metadata,
-            however, currently only the 24-bit VNI is supported. This is planned
-            to be extended in the future.
+            A description of how to match and set Geneve options can be found
+            in the <code>ovs-ofctl</code> manual page.
           </dd>
 
           <dt><code>gre</code></dt>
             </p>
           </dd>
 
+          <dt><code>stt</code></dt>
+          <dd>
+             The Stateless TCP Tunnel (STT) is particularly useful when tunnel
+             endpoints are in end-systems, as it utilizes the capabilities of
+             standard network interface cards to improve performance.  STT utilizes
+             a TCP-like header inside the IP header. It is stateless, i.e., there is
+             no TCP connection state of any kind associated with the tunnel.  The
+             TCP-like header is used to leverage the capabilities of existing
+             network interface cards, but should not be interpreted as implying
+             any sort of connection state between endpoints.
+             Since the STT protocol does not engage in the usual TCP 3-way handshake,
+             so it will have difficulty traversing stateful firewalls.
+             The protocol is documented at
+             http://www.ietf.org/archive/id/draft-davie-stt-06.txt
+
+             All traffic uses a default destination port of 7471. STT is only
+             available in kernel datapath on kernel 3.5 or newer.
+          </dd>
+
           <dt><code>patch</code></dt>
           <dd>
             A pair of virtual devices that act as a patch cable.
         These options apply to interfaces with <ref column="type"/> of
         <code>geneve</code>, <code>gre</code>, <code>ipsec_gre</code>,
         <code>gre64</code>, <code>ipsec_gre64</code>, <code>vxlan</code>,
-        and <code>lisp</code>.
+        <code>lisp</code> and <code>stt</code>.
       </p>
 
       <p>
           </li>
           <li>
             A positive 24-bit (for Geneve, VXLAN, and LISP), 32-bit (for GRE)
-            or 64-bit (for GRE64) number.  The tunnel receives only packets
-            with the specified key.
+            or 64-bit (for GRE64 and STT) number.  The tunnel receives only
+            packets with the specified key.
           </li>
           <li>
             The word <code>flow</code>.  The tunnel accepts packets with any
           </li>
           <li>
             A positive 24-bit (for Geneve, VXLAN and LISP), 32-bit (for GRE) or
-            64-bit (for GRE64) number.  Packets sent through the tunnel will
-            have the specified key.
+            64-bit (for GRE64 and STT) number.  Packets sent through the tunnel
+            will have the specified key.
           </li>
           <li>
             The word <code>flow</code>.  Packets sent through the tunnel will
 
          </group>
 
-      <group title="Tunnel Options: gre and ipsec_gre only">
+      <group title="Tunnel Options: gre, ipsec_gre, geneve, and vxlan">
         <p>
-          Only <code>gre</code> and <code>ipsec_gre</code> interfaces support
-          these options.
+          <code>gre</code>, <code>ipsec_gre</code>, <code>geneve</code>, and
+          <code>vxlan</code> interfaces support these options.
         </p>
 
         <column name="options" key="csum" type='{"type": "boolean"}'>
           <p>
-            Optional.  Compute GRE checksums on outgoing packets.  Default is
-            disabled, set to <code>true</code> to enable.  Checksums present on
-            incoming packets will be validated regardless of this setting.
+            Optional.  Compute encapsulation header (either GRE or UDP) 
+            checksums on outgoing packets.  Default is disabled, set to
+            <code>true</code> to enable.  Checksums present on incoming
+            packets will be validated regardless of this setting.
          </p>
 
-         <p>
-           GRE checksums impose a significant performance penalty because they
-           cover the entire packet.  The encapsulated L3, L4, and L7 packet
-           contents typically have their own checksums, so this additional
-           checksum only adds value for the GRE and encapsulated L2 headers.
+          <p>
+            When using the upstream Linux kernel module, computation of
+            checksums for <code>geneve</code> and <code>vxlan</code> requires
+            Linux kernel version 4.0 or higher. <code>gre</code> supports
+            checksums for all versions of Open vSwitch that support GRE.
+            The out of tree kernel module distributed as part of OVS
+            can compute all tunnel checksums on any kernel version that it
+            is compatible with.
           </p>
 
           <p>
       </column>
     </group>
 
+    <group title="Auto Attach Configuration">
+      <p>
+          Auto Attach configuration for a particular interface.
+      </p>
+
+      <column name="lldp" key="enable" type='{"type": "boolean"}'>
+          True to enable LLDP on this <ref table="Interface"/>.  If not
+          specified, LLDP will be disabled by default.
+      </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.
           information on how this classifier works.
         </dd>
       </dl>
+      <dl>
+        <dt><code>linux-sfq</code></dt>
+        <dd>
+          Linux ``Stochastic Fairness Queueing'' classifier. See
+          <code>tc-sfq</code>(8) (also at
+          <code>http://linux.die.net/man/8/tc-sfq</code>) for information on
+          how this classifier works.
+        </dd>
+      </dl>
+      <dl>
+        <dt><code>linux-codel</code></dt>
+        <dd>
+          Linux ``Controlled Delay'' classifier. See <code>tc-codel</code>(8)
+          (also at
+          <code>http://man7.org/linux/man-pages/man8/tc-codel.8.html</code>)
+          for information on how this classifier works.
+        </dd>
+      </dl>
+      <dl>
+        <dt><code>linux-fq_codel</code></dt>
+        <dd>
+          Linux ``Fair Queuing with Controlled Delay'' classifier. See
+          <code>tc-fq_codel</code>(8) (also at
+          <code>http://man7.org/linux/man-pages/man8/tc-fq_codel.8.html</code>)
+          for information on how this classifier works.
+        </dd>
+      </dl>
     </column>
 
     <column name="queues">
             column="ssl"/> column in the <ref table="Open_vSwitch"/>
             table must point to a valid SSL configuration when this form
             is used.</p>
-            <p>If <var>port</var> is not specified, it currently
-            defaults to 6633.  In the future, the default will change to
-            6653, which is the IANA-defined value.</p>
+            <p>If <var>port</var> is not specified, it defaults to 6653.</p>
             <p>SSL support is an optional feature that is not always built as
             part of Open vSwitch.</p>
           </dd>
               <var>ip</var>, which must be expressed as an IP address (not a
               DNS name), where <var>ip</var> can be IPv4 or IPv6 address.  If
               <var>ip</var> is an IPv6 address, wrap it in square brackets,
-              e.g. <code>tcp:[::1]:6632</code>.
+              e.g. <code>tcp:[::1]:6653</code>.
             </p>
             <p>
-              If <var>port</var> is not specified, it currently defaults to
-              6633.  In the future, the default will change to 6653, which is
-              the IANA-defined value.
+              If <var>port</var> is not specified, it defaults to 6653.
             </p>
           </dd>
         </dl>
               DNS name), is specified, then connections are restricted to the
               specified local IP address (either IPv4 or IPv6).  If
               <var>ip</var> is an IPv6 address, wrap it in square brackets,
-              e.g. <code>pssl:6632:[::1]</code>.
+              e.g. <code>pssl:6653:[::1]</code>.
             </p>
             <p>
-              If <var>port</var> is not specified, it currently defaults to
-              6633.  If <var>ip</var> is not specified then it listens only on
+              If <var>port</var> is not specified, it defaults to
+              6653.  If <var>ip</var> is not specified then it listens only on
               IPv4 (but not IPv6) addresses.  The
               <ref table="Open_vSwitch" column="ssl"/>
               column in the <ref table="Open_vSwitch"/> table must point to a
               valid SSL configuration when this form is used.
             </p>
             <p>
-              If <var>port</var> is not specified, it currently defaults to
-              6633.  In the future, the default will change to 6653, which is
-              the IANA-defined value.
+              If <var>port</var> is not specified, it currently to 6653.
             </p>
             <p>
               SSL support is an optional feature that is not always built as
               DNS name), is specified, then connections are restricted to the
               specified local IP address (either IPv4 or IPv6).  If
               <var>ip</var> is an IPv6 address, wrap it in square brackets,
-              e.g. <code>ptcp:6632:[::1]</code>. If <var>ip</var> is not
+              e.g. <code>ptcp:6653:[::1]</code>. If <var>ip</var> is not
               specified then it listens only on IPv4 addresses.
             </p>
             <p>
-              If <var>port</var> is not specified, it currently defaults to
-              6633.  In the future, the default will change to 6653, which is
-              the IANA-defined value.
+              If <var>port</var> is not specified, it defaults to 6653.
             </p>
           </dd>
         </dl>
               form is used.
             </p>
             <p>
-              If <var>port</var> is not specified, it currently defaults
-              to 6632.  In the future, the default will change to 6640,
-              which is the IANA-defined value.
+              If <var>port</var> is not specified, it defaults to 6640.
             </p>
             <p>
               SSL support is an optional feature that is not always
               <var>ip</var>, which must be expressed as an IP address (not a
               DNS name), where <var>ip</var> can be IPv4 or IPv6 address.  If
               <var>ip</var> is an IPv6 address, wrap it in square brackets,
-              e.g. <code>tcp:[::1]:6632</code>.
+              e.g. <code>tcp:[::1]:6640</code>.
             </p>
             <p>
-              If <var>port</var> is not specified, it currently defaults
-              to 6632.  In the future, the default will change to 6640,
-              which is the IANA-defined value.
+              If <var>port</var> is not specified, it defaults to 6640.
             </p>
           </dd>
           <dt><code>pssl:</code>[<var>port</var>][<code>:<var>ip</var></code>]</dt>
               connections are restricted to the specified local IP address
               (either IPv4 or IPv6 address).  If <var>ip</var> is an IPv6
               address, wrap in square brackets,
-              e.g. <code>pssl:6632:[::1]</code>.  If <var>ip</var> is not
+              e.g. <code>pssl:6640:[::1]</code>.  If <var>ip</var> is not
               specified then it listens only on IPv4 (but not IPv6) addresses.
               The <ref table="Open_vSwitch" column="ssl"/> column in the <ref
               table="Open_vSwitch"/> table must point to a valid SSL
               configuration when this form is used.
             </p>
             <p>
-              If <var>port</var> is not specified, it currently defaults
-              to 6632.  In the future, the default will change to 6640,
-              which is the IANA-defined value.
+              If <var>port</var> is not specified, it defaults to 6640.
             </p>
             <p>
               SSL support is an optional feature that is not always built as
               connections are restricted to the specified local IP address
               (either IPv4 or IPv6 address).  If <var>ip</var> is an IPv6
               address, wrap it in square brackets,
-              e.g. <code>ptcp:6632:[::1]</code>.  If <var>ip</var> is not
+              e.g. <code>ptcp:6640:[::1]</code>.  If <var>ip</var> is not
               specified then it listens only on IPv4 addresses.
             </p>
             <p>
-              If <var>port</var> is not specified, it currently defaults
-              to 6632.  In the future, the default will change to 6640,
-              which is the IANA-defined value.
+              If <var>port</var> is not specified, it defaults to 6640.
             </p>
           </dd>
         </dl>
     </group>
   </table>
 
+  <table name="AutoAttach">
+    <p>Auto Attach configuration within a bridge.  The IETF Auto-Attach SPBM
+       draft standard describes a compact method of using IEEE 802.1AB Link
+       Layer Discovery Protocol (LLDP) together with a IEEE 802.1aq Shortest
+       Path Bridging (SPB) network to automatically attach network devices
+       to individual services in a SPB network.  The intent here is to allow
+       network applications and devices using OVS to be able to easily take
+       advantage of features offered by industry standard SPB networks.</p>
+
+    <p>Auto Attach (AA) uses LLDP to communicate between a directly connected
+       Auto Attach Client (AAC) and Auto Attach Server (AAS). The LLDP protocol
+       is extended to add two new Type-Length-Value tuples (TLVs). The first
+       new TLV supports the ongoing discovery of directly connected AA
+       correspondents. Auto Attach operates by regularly transmitting AA
+       discovery TLVs between the AA client and AA server. By exchanging these
+       discovery messages, both the AAC and AAS learn the system name and
+       system description of their peer. In the OVS context, OVS operates as
+       the AA client and the AA server resides on a switch at the edge of the
+       SPB network.</p>
+
+     <p>Once AA discovery has been completed the AAC then uses the
+       second new TLV to deliver identifier mappings from the AAC to the AAS. A primary
+       feature of Auto Attach is to facilitate the mapping of VLANs defined
+       outside the SPB network onto service ids (ISIDs) defined within the SPM
+       network. By doing so individual external VLANs can be mapped onto
+       specific SPB network services. These VLAN id to ISID mappings can be
+       configured and managed locally using new options added to the ovs-vsctl
+       command.</p>
+
+    <p>The Auto Attach OVS feature does not provide a full implementation of
+       the LLDP protocol. Support for the mandatory TLVs as defined by the LLDP
+       standard and support for the AA TLV extensions is provided. LLDP
+       protocol support in OVS can be enabled or disabled on a port by port
+       basis. LLDP support is disabled by default.</p>
+
+    <column name="system_name">
+      The system_name string is exported in LLDP messages.  It should uniquely
+      identify the bridge in the network.
+    </column>
+
+    <column name="system_description">
+      The system_description string is exported in LLDP messages.  It should
+      describe the type of software and hardware.
+    </column>
+
+    <column name="mappings">
+      A mapping from SPB network Individual Service Identifier (ISID) to VLAN id.
+    </column>
+  </table>
 </database>