</p>
</column>
+ <column name="flow_tables">
+ Configuration for OpenFlow tables. Each pair maps from an OpenFlow
+ table ID to configuration for that table.
+ </column>
+
<column name="fail_mode">
<p>When a controller is configured, it is, ordinarily, responsible
for setting up all flows on the switch. Thus, if the connection to
should be enabled. Default is disabled, set to
<code>true</code> to enable.
</column>
+
+ <column name="other_config" key="mac-aging-time"
+ type='{"type": "integer", "minInteger": 1}'>
+ <p>
+ The maximum number of seconds to retain a MAC learning entry for
+ which no packets have been seen. The default is currently 300
+ seconds (5 minutes). The value, if specified, is forced into a
+ reasonable range, currently 15 to 3600 seconds.
+ </p>
+
+ <p>
+ A short MAC aging time allows a network to more quickly detect that a
+ host is no longer connected to a switch port. However, it also makes
+ it more likely that packets will be flooded unnecessarily, when they
+ are addressed to a connected host that rarely transmits packets. To
+ reduce the incidence of unnecessary flooding, use a MAC aging time
+ longer than the maximum interval at which a host will ordinarily
+ transmit packets.
+ </p>
+ </column>
</group>
<group title="Bridge Status">
<p>
The following modes require the upstream switch to support 802.3ad with
- successful LACP negotiation. If LACP negotiation fails then
- <code>balance-slb</code> style flow hashing is used as a fallback:
+ successful LACP negotiation:
</p>
<dl>
<column name="bond_mode">
<p>The type of bonding used for a bonded port. Defaults to
- <code>balance-slb</code> if unset.
+ <code>active-backup</code> if unset.
</p>
</column>
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. Defaults to <code>off</code>
- if unset.
+ initiate such negotiations themselves. If LACP is enabled on a port
+ whose partner switch does not support LACP, the bond will be
+ disabled. Defaults to <code>off</code> if unset.
</column>
<column name="other_config" key="lacp-system-id">
The LACP system ID of this <ref table="Port"/>. The system ID of a
LACP bond is used to identify itself to its partners. Must be a
- nonzero MAC address.
+ nonzero MAC address. Defaults to the bridge Ethernet address if
+ unset.
</column>
<column name="other_config" key="lacp-system-priority"
</p>
<column name="other_config" key="bond-rebalance-interval"
- type='{"type": "integer", "minInteger": 1000, "maxInteger": 10000}'>
- For an SLB bonded port, the number of milliseconds between successive
- attempts to rebalance the bond, that is, to move source MACs and
- their flows from one interface on the bond to another in an attempt
- to keep usage of each interface roughly equal.
+ type='{"type": "integer", "minInteger": 0, "maxInteger": 10000}'>
+ For a load balanced bonded port, the number of milliseconds between
+ successive attempts to rebalance the bond, that is, to move flows
+ from one interface on the bond to another in an attempt to keep usage
+ of each interface roughly equal. If zero, load balancing is disabled
+ on the bond (carrier status changes still cause flows to move). If
+ less than 1000ms, the rebalance interval will be 1000ms.
</column>
</group>
</p>
<ul>
+ <li>
+ The VLAN is the <ref table="Port" column="tag"/> value in any <ref
+ table="Port"/> record.
+ </li>
+
<li>
The VLAN is listed within the <ref table="Port" column="trunks"/>
column of the <ref table="Port"/> record of an interface on which
</group>
</table>
+ <table name="Flow_Table" title="OpenFlow table configuration">
+ <p>Configuration for a particular OpenFlow table.</p>
+
+ <column name="name">
+ The table's name. Set this column to change the name that controllers
+ will receive when they request table statistics, e.g. <code>ovs-ofctl
+ dump-tables</code>. The name does not affect switch behavior.
+ </column>
+
+ <column name="flow_limit">
+ If set, limits the number of flows that may be added to the table. Open
+ vSwitch may limit the number of flows in a table for other reasons,
+ e.g. due to hardware limitations or for resource availability or
+ performance reasons.
+ </column>
+
+ <column name="overflow_policy">
+ <p>
+ Controls the switch's behavior when an OpenFlow flow table modification
+ request would add flows in excess of <ref column="flow_limit"/>. The
+ supported values are:
+ </p>
+
+ <dl>
+ <dt><code>refuse</code></dt>
+ <dd>
+ Refuse to add the flow or flows. This is also the default policy
+ when <ref column="overflow_policy"/> is unset.
+ </dd>
+
+ <dt><code>evict</code></dt>
+ <dd>
+ Delete the flow that will expire soonest. See <ref column="groups"/>
+ for details.
+ </dd>
+ </dl>
+ </column>
+
+ <column name="groups">
+ <p>
+ When <ref column="overflow_policy"/> is <code>evict</code>, this
+ controls how flows are chosen for eviction when the flow table would
+ otherwise exceed <ref column="flow_limit"/> flows. Its value is a set
+ of NXM fields or sub-fields, each of which takes one of the forms
+ <code><var>field</var>[]</code> or
+ <code><var>field</var>[<var>start</var>..<var>end</var>]</code>,
+ e.g. <code>NXM_OF_IN_PORT[]</code>. Please see
+ <code>nicira-ext.h</code> for a complete list of NXM field names.
+ </p>
+
+ <p>
+ When a flow must be evicted due to overflow, the flow to evict is
+ chosen through an approximation of the following algorithm:
+ </p>
+
+ <ol>
+ <li>
+ Divide the flows in the table into groups based on the values of the
+ specified fields or subfields, so that all of the flows in a given
+ group have the same values for those fields. If a flow does not
+ specify a given field, that field's value is treated as 0.
+ </li>
+
+ <li>
+ Consider the flows in the largest group, that is, the group that
+ contains the greatest number of flows. If two or more groups all
+ have the same largest number of flows, consider the flows in all of
+ those groups.
+ </li>
+
+ <li>
+ Among the flows under consideration, choose the flow that expires
+ soonest for eviction.
+ </li>
+ </ol>
+
+ <p>
+ The eviction process only considers flows that have an idle timeout or
+ a hard timeout. That is, eviction never deletes permanent flows.
+ (Permanent flows do count against <ref column="flow_limit"/>.
+ </p>
+
+ <p>
+ Open vSwitch ignores any invalid or unknown field specifications.
+ </p>
+
+ <p>
+ When <ref column="overflow_policy"/> is not <code>evict</code>, this
+ column has no effect.
+ </p>
+ </column>
+ </table>
+
<table name="QoS" title="Quality of Service configuration">
<p>Quality of Service (QoS) configuration for each Port that
references it.</p>
unchanged.
</column>
- <group title="Configuration for min-rate QoS">
- <p>
- These key-value pairs are defined for <ref table="QoS"/> <ref
- table="QoS" column="type"/> of <code>min-rate</code>.
- </p>
-
- <column name="other_config" key="min-rate"
- type='{"type": "integer", "minInteger": 12000}'>
- Minimum guaranteed bandwidth, in bit/s. Required. The floor value is
- 1500 bytes/s (12,000 bit/s).
- </column>
- </group>
-
<group title="Configuration for linux-htb QoS">
<p>
- These key-value pairs are defined for <ref table="QoS"/> <ref
- table="QoS" column="type"/> of <code>linux-htb</code>.
+ <ref table="QoS"/> <ref table="QoS" column="type"/>
+ <code>linux-htb</code> may use <code>queue_id</code>s less than 61440.
+ It has the following key-value pairs defined.
</p>
<column name="other_config" key="min-rate"
<group title="Configuration for linux-hfsc QoS">
<p>
- These key-value pairs are defined for <ref table="QoS"/> <ref
- table="QoS" column="type"/> of <code>linux-hfsc</code>.
+ <ref table="QoS"/> <ref table="QoS" column="type"/>
+ <code>linux-hfsc</code> may use <code>queue_id</code>s less than 61440.
+ It has the following key-value pairs defined.
</p>
<column name="other_config" key="min-rate"