netdev-dpdk: fix mbuf leaks
[cascardo/ovs.git] / utilities / ovs-vsctl.8.in
index 5db0a70..265ffde 100644 (file)
@@ -88,7 +88,7 @@ following forms:
 .
 .IP "\fB\-\-no\-wait\fR"
 Prevents \fBovs\-vsctl\fR from waiting for \fBovs\-vswitchd\fR to
-reconfigure itself according to the the modified database.  This
+reconfigure itself according to the modified database.  This
 option should be used if \fBovs\-vswitchd\fR is not running;
 otherwise, \fBovs\-vsctl\fR will not exit until \fBovs\-vswitchd\fR
 starts.
@@ -149,6 +149,7 @@ These options control the format of output from the \fBlist\fR and
 .so lib/ssl-bootstrap.man
 .so lib/ssl-peer-ca-cert.man
 .so lib/vlog.man
+.so lib/common.man
 .
 .SH COMMANDS
 The commands implemented by \fBovs\-vsctl\fR are described in the
@@ -191,7 +192,8 @@ nothing if \fIbridge\fR already exists as a real bridge.
 Creates a ``fake bridge'' named \fIbridge\fR within the existing Open
 vSwitch bridge \fIparent\fR, which must already exist and must not
 itself be a fake bridge.  The new fake bridge will be on 802.1Q VLAN
-\fIvlan\fR, which must be an integer between 0 and 4095.  Initially
+\fIvlan\fR, which must be an integer between 0 and 4095.  The parent
+bridge must not already have a fake bridge for \fIvlan\fR.  Initially
 \fIbridge\fR will have no ports (other than \fIbridge\fR itself).
 .IP
 Without \fB\-\-may\-exist\fR, attempting to create a bridge that
@@ -280,7 +282,9 @@ is an error.  With \fB\-\-may\-exist\fR, this command does nothing if
 .IP "[\fB\-\-fake\-iface\fR] \fBadd\-bond \fIbridge port iface\fR\&... [\fIcolumn\fR[\fB:\fIkey\fR]\fR=\fIvalue\fR]\&...\fR"
 Creates on \fIbridge\fR a new port named \fIport\fR that bonds
 together the network devices given as each \fIiface\fR.  At least two
-interfaces must be named.
+interfaces must be named.  If the interfaces are DPDK enabled then
+the transaction will need to include operations to explicitly set the
+interface type to 'dpdk'.
 .IP
 Optional arguments set values of column in the Port record created by
 the command.  The syntax is the same as that for the \fBset\fR command
@@ -445,7 +449,7 @@ Prints the SSL configuration.
 Deletes the current SSL configuration.
 .
 .IP "[\fB\-\-bootstrap\fR] \fBset\-ssl\fR \fIprivate-key\fR \fIcertificate\fR \fIca-cert\fR"
-Sets the SSL configuration.  The \fB\-\-bootstrap\fR option is described 
+Sets the SSL configuration.  The \fB\-\-bootstrap\fR option is described
 below.
 .
 .ST "CA Certificate Bootstrap"
@@ -468,6 +472,27 @@ This option is only useful if the controller sends its CA certificate
 as part of the SSL certificate chain.  The SSL protocol does not
 require the controller to send the CA certificate.
 .
+.SS "Auto-Attach Commands"
+.
+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. A fundamental element of
+the Auto-Attach feature is to map traditional VLANs onto SPB I_SIDs. These
+commands manage the Auto-Attach I-SID/VLAN mappings.
+.
+.IP "\fBadd\-aa\-mapping \fIbridge i-sid vlan\fR"
+Creates a new Auto-Attach mapping on \fIbridge\fR for \fIi-sid\fR
+and \fIvlan\fR.
+.
+.IP "\fBdel\-aa\-mapping \fIbridge i-sid vlan\fR"
+Deletes an Auto-Attach mapping on \fIbridge\fR for \fIi-sid\fR
+and \fIvlan\fR.
+.IP "\fBget\-aa\-mapping \fIbridge\fR"
+Lists all of the Auto-Attach mappings within \fIbridge\fR on standard output.
+.
 .SS "Database Commands"
 .
 These commands query and modify the contents of \fBovsdb\fR tables.
@@ -531,6 +556,8 @@ identified by bridge name.
 .IP "\fBFlow_Sample_Collector_Set\fR"
 An IPFIX exporter configuration attached to a bridge for sampling
 packets on a per-flow basis using OpenFlow \fBsample\fR actions.
+.IP "\fBAutoAttach\fR"
+Configuration for Auto Attach within a bridge.
 .PP
 Record names must be specified in full and with correct
 capitalization.  Names of tables and columns are not case-sensitive,
@@ -538,264 +565,7 @@ and \fB\-\-\fR and \fB_\fR are treated interchangeably.  Unique
 abbreviations are acceptable, e.g. \fBnet\fR or \fBn\fR is sufficient
 to identify the \fBNetFlow\fR table.
 .
-.ST "Database Values"
-.PP
-Each column in the database accepts a fixed type of data.  The
-currently defined basic types, and their representations, are:
-.IP "integer"
-A decimal integer in the range \-2**63 to 2**63\-1, inclusive.
-.IP "real"
-A floating-point number.
-.IP "Boolean"
-True or false, written \fBtrue\fR or \fBfalse\fR, respectively.
-.IP "string"
-An arbitrary Unicode string, except that null bytes are not allowed.
-Quotes are optional for most strings that begin with an English letter
-or underscore and consist only of letters, underscores, hyphens, and
-periods.  However, \fBtrue\fR and \fBfalse\fR and strings that match
-the syntax of UUIDs (see below) must be enclosed in double quotes to
-distinguish them from other basic types.  When double quotes are used,
-the syntax is that of strings in JSON, e.g. backslashes may be used to
-escape special characters.  The empty string must be represented as a
-pair of double quotes (\fB""\fR).
-.IP "UUID"
-Either a universally unique identifier in the style of RFC 4122,
-e.g. \fBf81d4fae\-7dec\-11d0\-a765\-00a0c91e6bf6\fR, or an \fB@\fIname\fR
-defined by a \fBget\fR or \fBcreate\fR command within the same \fBovs\-vsctl\fR
-invocation.
-.PP
-Multiple values in a single column may be separated by spaces or a
-single comma.  When multiple values are present, duplicates are not
-allowed, and order is not important.  Conversely, some database
-columns can have an empty set of values, represented as \fB[]\fR, and
-square brackets may optionally enclose other non-empty sets or single
-values as well.
-.PP
-A few database columns are ``maps'' of key-value pairs, where the key
-and the value are each some fixed database type.  These are specified
-in the form \fIkey\fB=\fIvalue\fR, where \fIkey\fR and \fIvalue\fR
-follow the syntax for the column's key type and value type,
-respectively.  When multiple pairs are present (separated by spaces or
-a comma), duplicate keys are not allowed, and again the order is not
-important.  Duplicate values are allowed.  An empty map is represented
-as \fB{}\fR.  Curly braces may optionally enclose non-empty maps as
-well (but use quotes to prevent the shell from expanding
-\fBother-config={0=x,1=y}\fR into \fBother-config=0=x
-other-config=1=y\fR, which may not have the desired effect).
-.
-.ST "Database Command Syntax"
-.
-.IP "[\fB\-\-if\-exists\fR] [\fB\-\-columns=\fIcolumn\fR[\fB,\fIcolumn\fR]...] \fBlist \fItable \fR[\fIrecord\fR]..."
-Lists the data in each specified \fIrecord\fR.  If no
-records are specified, lists all the records in \fItable\fR.
-.IP
-If \fB\-\-columns\fR is specified, only the requested columns are
-listed, in the specified order.  Otherwise, all columns are listed, in
-alphabetical order by column name.
-.IP
-Without \fB\-\-if-exists\fR, it is an error if any specified
-\fIrecord\fR does not exist.  With \fB\-\-if-exists\fR, the command
-ignores any \fIrecord\fR that does not exist, without producing any
-output.
-.
-.IP "[\fB\-\-columns=\fIcolumn\fR[\fB,\fIcolumn\fR]...] \fBfind \fItable \fR[\fIcolumn\fR[\fB:\fIkey\fR]\fB=\fIvalue\fR]..."
-Lists the data in each record in \fItable\fR whose \fIcolumn\fR equals
-\fIvalue\fR or, if \fIkey\fR is specified, whose \fIcolumn\fR contains
-a \fIkey\fR with the specified \fIvalue\fR.  The following operators
-may be used where \fB=\fR is written in the syntax summary:
-.RS
-.IP "\fB= != < > <= >=\fR"
-Selects records in which \fIcolumn\fR[\fB:\fIkey\fR] equals, does not
-equal, is less than, is greater than, is less than or equal to, or is
-greater than or equal to \fIvalue\fR, respectively.
-.IP
-Consider \fIcolumn\fR[\fB:\fIkey\fR] and \fIvalue\fR as sets of
-elements.  Identical sets are considered equal.  Otherwise, if the
-sets have different numbers of elements, then the set with more
-elements is considered to be larger.  Otherwise, consider a element
-from each set pairwise, in increasing order within each set.  The
-first pair that differs determines the result.  (For a column that
-contains key-value pairs, first all the keys are compared, and values
-are considered only if the two sets contain identical keys.)
-.IP "\fB{=} {!=}\fR"
-Test for set equality or inequality, respectively.
-.IP "\fB{<=}\fR"
-Selects records in which \fIcolumn\fR[\fB:\fIkey\fR] is a subset of
-\fIvalue\fR.  For example, \fBflood-vlans{<=}1,2\fR selects records in
-which the \fBflood-vlans\fR column is the empty set or contains 1 or 2
-or both.
-.IP "\fB{<}\fR"
-Selects records in which \fIcolumn\fR[\fB:\fIkey\fR] is a proper
-subset of \fIvalue\fR.  For example, \fBflood-vlans{<}1,2\fR selects
-records in which the \fBflood-vlans\fR column is the empty set or
-contains 1 or 2 but not both.
-.IP "\fB{>=} {>}\fR"
-Same as \fB{<=}\fR and \fB{<}\fR, respectively, except that the
-relationship is reversed.  For example, \fBflood-vlans{>=}1,2\fR
-selects records in which the \fBflood-vlans\fR column contains both 1
-and 2.
-.RE
-.IP
-For arithmetic operators (\fB= != < > <= >=\fR), when \fIkey\fR is
-specified but a particular record's \fIcolumn\fR does not contain
-\fIkey\fR, the record is always omitted from the results.  Thus, the
-condition \fBother-config:mtu!=1500\fR matches records that have a
-\fBmtu\fR key whose value is not 1500, but not those that lack an
-\fBmtu\fR key.
-.IP
-For the set operators, when \fIkey\fR is specified but a particular
-record's \fIcolumn\fR does not contain \fIkey\fR, the comparison is
-done against an empty set.  Thus, the condition
-\fBother-config:mtu{!=}1500\fR matches records that have a \fBmtu\fR
-key whose value is not 1500 and those that lack an \fBmtu\fR key.
-.IP
-Don't forget to escape \fB<\fR or \fB>\fR from interpretation by the
-shell.
-.IP
-If \fB\-\-columns\fR is specified, only the requested columns are
-listed, in the specified order.  Otherwise all columns are listed, in
-alphabetical order by column name.
-.IP
-The UUIDs shown for rows created in the same \fBovs\-vsctl\fR
-invocation will be wrong.
-.
-.IP "[\fB\-\-if\-exists\fR] [\fB\-\-id=@\fIname\fR] \fBget \fItable record \fR[\fIcolumn\fR[\fB:\fIkey\fR]]..."
-Prints the value of each specified \fIcolumn\fR in the given
-\fIrecord\fR in \fItable\fR.  For map columns, a \fIkey\fR may
-optionally be specified, in which case the value associated with
-\fIkey\fR in the column is printed, instead of the entire map.
-.IP
-Without \fB\-\-if\-exists\fR, it is an error if \fIrecord\fR does not
-exist or \fIkey\fR is specified, if \fIkey\fR does not exist in
-\fIrecord\fR.  With \fB\-\-if\-exists\fR, a missing \fIrecord\fR
-yields no output and a missing \fIkey\fR prints a blank line.
-.IP
-If \fB@\fIname\fR is specified, then the UUID for \fIrecord\fR may be
-referred to by that name later in the same \fBovs\-vsctl\fR
-invocation in contexts where a UUID is expected.
-.IP
-Both \fB\-\-id\fR and the \fIcolumn\fR arguments are optional, but
-usually at least one or the other should be specified.  If both are
-omitted, then \fBget\fR has no effect except to verify that
-\fIrecord\fR exists in \fItable\fR.
-.IP
-\fB\-\-id\fR and \fB\-\-if\-exists\fR cannot be used together.
-.
-.IP "[\fB\-\-if\-exists\fR] \fBset \fItable record column\fR[\fB:\fIkey\fR]\fB=\fIvalue\fR..."
-Sets the value of each specified \fIcolumn\fR in the given
-\fIrecord\fR in \fItable\fR to \fIvalue\fR.  For map columns, a
-\fIkey\fR may optionally be specified, in which case the value
-associated with \fIkey\fR in that column is changed (or added, if none
-exists), instead of the entire map.
-.IP
-Without \fB\-\-if-exists\fR, it is an error if \fIrecord\fR does not
-exist.  With \fB\-\-if-exists\fR, this command does nothing if
-\fIrecord\fR does not exist.
-.
-.IP "[\fB\-\-if\-exists\fR] \fBadd \fItable record column \fR[\fIkey\fB=\fR]\fIvalue\fR..."
-Adds the specified value or key-value pair to \fIcolumn\fR in
-\fIrecord\fR in \fItable\fR.  If \fIcolumn\fR is a map, then \fIkey\fR
-is required, otherwise it is prohibited.  If \fIkey\fR already exists
-in a map column, then the current \fIvalue\fR is not replaced (use the
-\fBset\fR command to replace an existing value).
-.IP
-Without \fB\-\-if-exists\fR, it is an error if \fIrecord\fR does not
-exist.  With \fB\-\-if-exists\fR, this command does nothing if
-\fIrecord\fR does not exist.
-.
-.IP "[\fB\-\-if\-exists\fR] \fBremove \fItable record column \fR\fIvalue\fR..."
-.IQ "[\fB\-\-if\-exists\fR] \fBremove \fItable record column \fR\fIkey\fR..."
-.IQ "[\fB\-\-if\-exists\fR] \fBremove \fItable record column \fR\fIkey\fB=\fR\fIvalue\fR..."
-Removes the specified values or key-value pairs from \fIcolumn\fR in
-\fIrecord\fR in \fItable\fR.  The first form applies to columns that
-are not maps: each specified \fIvalue\fR is removed from the column.
-The second and third forms apply to map columns: if only a \fIkey\fR
-is specified, then any key-value pair with the given \fIkey\fR is
-removed, regardless of its value; if a \fIvalue\fR is given then a
-pair is removed only if both key and value match.
-.IP
-It is not an error if the column does not contain the specified key or
-value or pair.
-.IP
-Without \fB\-\-if-exists\fR, it is an error if \fIrecord\fR does not
-exist.  With \fB\-\-if-exists\fR, this command does nothing if
-\fIrecord\fR does not exist.
-.
-.IP "[\fB\-\-if\-exists\fR] \fBclear\fR \fItable record column\fR..."
-Sets each \fIcolumn\fR in \fIrecord\fR in \fItable\fR to the empty set
-or empty map, as appropriate.  This command applies only to columns
-that are allowed to be empty.
-.IP
-Without \fB\-\-if-exists\fR, it is an error if \fIrecord\fR does not
-exist.  With \fB\-\-if-exists\fR, this command does nothing if
-\fIrecord\fR does not exist.
-.
-.IP "[\fB\-\-id=@\fIname\fR] \fBcreate\fR \fItable column\fR[\fB:\fIkey\fR]\fB=\fIvalue\fR..."
-Creates a new record in \fItable\fR and sets the initial values of
-each \fIcolumn\fR.  Columns not explicitly set will receive their
-default values.  Outputs the UUID of the new row.
-.IP
-If \fB@\fIname\fR is specified, then the UUID for the new row may be
-referred to by that name elsewhere in the same \fBovs\-vsctl\fR
-invocation in contexts where a UUID is expected.  Such references may
-precede or follow the \fBcreate\fR command.
-.IP
-Records in the Open vSwitch database are significant only when they
-can be reached directly or indirectly from the \fBOpen_vSwitch\fR
-table.  Except for records in the \fBQoS\fR or \fBQueue\fR tables,
-records that are not reachable from the \fBOpen_vSwitch\fR table are
-automatically deleted from the database.  This deletion happens
-immediately, without waiting for additional \fBovs\-vsctl\fR commands
-or other database activity.  Thus, a \fBcreate\fR command must
-generally be accompanied by additional commands \fIwithin the same
-\fBovs\-vsctl\fI invocation\fR to add a chain of references to the
-newly created record from the top-level \fBOpen_vSwitch\fR record.
-The \fBEXAMPLES\fR section gives some examples that show how to do
-this.
-.
-.IP "\fR[\fB\-\-if\-exists\fR] \fBdestroy \fItable record\fR..."
-Deletes each specified \fIrecord\fR from \fItable\fR.  Unless
-\fB\-\-if\-exists\fR is specified, each \fIrecord\fRs must exist.
-.IP "\fB\-\-all destroy \fItable\fR"
-Deletes all records from the \fItable\fR.
-.IP
-The \fBdestroy\fR command is only useful for records in the \fBQoS\fR
-or \fBQueue\fR tables.  Records in other tables are automatically
-deleted from the database when they become unreachable from the
-\fBOpen_vSwitch\fR table.  This means that deleting the last reference
-to a record is sufficient for deleting the record itself.  For records
-in these tables, \fBdestroy\fR is silently ignored.  See the
-\fBEXAMPLES\fR section below for more information.
-.
-.IP "\fBwait\-until \fItable record \fR[\fIcolumn\fR[\fB:\fIkey\fR]\fB=\fIvalue\fR]..."
-Waits until \fItable\fR contains a record named \fIrecord\fR whose
-\fIcolumn\fR equals \fIvalue\fR or, if \fIkey\fR is specified, whose
-\fIcolumn\fR contains a \fIkey\fR with the specified \fIvalue\fR.  Any
-of the operators \fB!=\fR, \fB<\fR, \fB>\fR, \fB<=\fR, or \fB>=\fR may
-be substituted for \fB=\fR to test for inequality, less than, greater
-than, less than or equal to, or greater than or equal to,
-respectively.  (Don't forget to escape \fB<\fR or \fB>\fR from
-interpretation by the shell.)
-.IP
-If no \fIcolumn\fR[\fB:\fIkey\fR]\fB=\fIvalue\fR arguments are given,
-this command waits only until \fIrecord\fR exists.  If more than one
-such argument is given, the command waits until all of them are
-satisfied.
-.IP
-Usually \fBwait\-until\fR should be placed at the beginning of a set
-of \fBovs\-vsctl\fR commands.  For example, \fBwait\-until bridge br0
-\-\- get bridge br0 datapath_id\fR waits until a bridge named
-\fBbr0\fR is created, then prints its \fBdatapath_id\fR column,
-whereas \fBget bridge br0 datapath_id \-\- wait\-until bridge br0\fR
-will abort if no bridge named \fBbr0\fR exists when \fBovs\-vsctl\fR
-initially connects to the database.
-.IP
-Consider specifying \fB\-\-timeout=0\fR along with
-\fB\-\-wait\-until\fR, to prevent \fBovs\-vsctl\fR from terminating
-after waiting only at most 5 seconds.
-.IP "\fBcomment \fR[\fIarg\fR]..."
-This command has no effect on behavior, but any database log record
-created by the command will include the command and its arguments.
+.so lib/db-ctl-base.man
 .SH "EXAMPLES"
 Create a new bridge named br0 and add port eth0 to it:
 .IP
@@ -804,7 +574,7 @@ Create a new bridge named br0 and add port eth0 to it:
 .B "ovs\-vsctl add\-port br0 eth0"
 .PP
 Alternatively, perform both operations in a single atomic transaction:
-.IP 
+.IP
 .B "ovs\-vsctl add\-br br0 \-\- add\-port br0 eth0"
 .PP
 Delete bridge \fBbr0\fR, reporting an error if it does not exist:
@@ -939,11 +709,15 @@ Deconfigure sFlow from \fBbr0\fR, which also destroys the sFlow record
 Configure bridge \fBbr0\fR to send one IPFIX flow record per packet
 sample to UDP port 4739 on host 192.168.0.34, with Observation Domain
 ID 123 and Observation Point ID 456, a flow cache active timeout of 1
-minute (60 seconds), and a maximum flow cache size of 13 flows:
+minute (60 seconds), maximum flow cache size of 13 flows, and flows
+sampled on output port with tunnel info(sampling on input and output
+port is enabled by default if not disabled) :
 .IP
 .B "ovs\-vsctl \-\- set Bridge br0 ipfix=@i \(rs"
 .IP
-.B "\-\- \-\-id=@i create IPFIX targets=\(rs\(dq192.168.0.34:4739\(rs\(dq obs_domain_id=123 obs_point_id=456 cache_active_timeout=60 cache_max_flows=13"
+.B "\-\- \-\-id=@i create IPFIX targets=\(rs\(dq192.168.0.34:4739\(rs\(dq obs_domain_id=123 obs_point_id=456 cache_active_timeout=60 cache_max_flows=13 \(rs"
+.IP
+.B "other_config:enable-input-sampling=false other_config:enable-tunnel-sampling=true"
 .PP
 Deconfigure the IPFIX settings from \fBbr0\fR, which also destroys the
 IPFIX record (since it is now unreferenced):
@@ -967,13 +741,143 @@ Deconfigure STP from above:
 .IP
 .B "ovs\-vsctl set Bridge br0 stp_enable=false"
 .PP
+.SS "Multicast Snooping"
+.PP
+Configure bridge \fBbr0\fR to enable multicast snooping:
+.IP
+.B "ovs\-vsctl set Bridge br0 mcast_snooping_enable=true"
+.PP
+Set the multicast snooping aging time \fBbr0\fR to 300 seconds:
+.IP
+.B "ovs\-vsctl set Bridge br0 other_config:mcast-snooping-aging-time=300"
+.PP
+Set the multicast snooping table size \fBbr0\fR to 2048 entries:
+.IP
+.B "ovs\-vsctl set Bridge br0 other_config:mcast-snooping-table-size=2048"
+.PP
+Disable flooding of unregistered multicast packets to all ports. When
+set to \fBtrue\fR, the switch will send unregistered multicast packets only
+to ports connected to multicast routers. When it is set to \fBfalse\fR, the
+switch will send them to all ports. This command disables the flood of
+unregistered packets on bridge \fBbr0\fR.
+.IP
+.B "ovs\-vsctl set Bridge br0 other_config:mcast-snooping-disable-flood-unregistered=true"
+.PP
+Enable flooding of multicast packets (except Reports) on a specific port.
+.IP
+.B "ovs\-vsctl set Port eth1 other_config:mcast-snooping-flood=true"
+.PP
+Enable flooding of Reports on a specific port.
+.IP
+.B "ovs\-vsctl set Port eth1 other_config:mcast-snooping-flood-reports=true"
+.PP
+Deconfigure multicasting snooping from above:
+.IP
+.B "ovs\-vsctl set Bridge br0 mcast_snooping_enable=false"
+.PP
+.SS "802.1D-2004 Rapid Spanning Tree Protocol (RSTP)"
+.PP
+Configure bridge \fBbr0\fR to participate in an 802.1D-2004 Rapid Spanning Tree:
+.IP
+.B "ovs\-vsctl set Bridge br0 rstp_enable=true"
+.PP
+Set the bridge address of \fBbr0\fR to 00:aa:aa:aa:aa:aa :
+.IP
+.B "ovs\-vsctl set Bridge br0 other_config:rstp-address=00:aa:aa:aa:aa:aa"
+.PP
+Set the bridge priority of \fBbr0\fR to 0x7000. The value must be specified in
+decimal notation and should be a multiple of 4096 (if not, it is rounded down to
+the nearest multiple of 4096). The default priority value is 0x800 (32768).
+.IP
+.B "ovs\-vsctl set Bridge br0 other_config:rstp-priority=28672"
+.PP
+Set the bridge ageing time of \fBbr0\fR to 1000 s. The ageing time value should be
+between 10 s and 1000000 s. The default value is 300 s.
+.IP
+.B "ovs\-vsctl set Bridge br0 other_config:rstp-ageing-time=1000"
+.PP
+Set the bridge force protocol version of \fBbr0\fR to 0. The force protocol version
+has two acceptable values: 0 (STP compatibility mode) and 2 (normal operation).
+.IP
+.B "ovs\-vsctl set Bridge br0 other_config:rstp-force-protocol-version=0"
+.PP
+Set the bridge max age of \fBbr0\fR to 10 s. The max age value should be between 6 s
+and 40 s. The default value is 20 s.
+.IP
+.B "ovs\-vsctl set Bridge br0 other_config:rstp-max-age=10"
+.PP
+Set the bridge forward delay of \fBbr0\fR to 15 s.
+This value should be between 4 s and 30 s. The default value is 15 s.
+.IP
+.B "ovs\-vsctl set Bridge br0 other_config:rstp-forward-delay=15"
+.PP
+Set the bridge transmit hold count of \fBbr0\fR to 7 s. This value should be between
+1 s and 10 s. The default value is 6 s.
+.IP
+.B "ovs\-vsctl set Bridge br0 other_config:rstp-transmit-hold-count=7"
+.PP
+Enable RSTP on the Port \fBeth0\fR:
+.IP
+.B "ovs\-vsctl set Port eth0 other_config:rstp-enable=true"
+.PP
+Disable RSTP on the Port \fBeth0\fR:
+.IP
+.B "ovs\-vsctl set Port eth0 other_config:rstp-enable=false"
+.PP
+Set the priority of port \fBeth0\fR to 32. The value must be specified in
+decimal notation and should be a multiple of 16 (if not, it is rounded down to the
+nearest multiple of 16). The default priority value is 0x80 (128).
+.IP
+.B "ovs\-vsctl set Port eth0 other_config:rstp-port-priority=32"
+.PP
+Set the port number of port \fBeth0\fR to 3:
+.IP
+.B "ovs\-vsctl set Port eth0 other_config:rstp-port-num=3"
+.PP
+Set the path cost of port \fBeth0\fR to 150:
+.IP
+.B "ovs\-vsctl set Port eth0 other_config:rstp-path-cost=150"
+.PP
+Set the admin edge value of port \fBeth0\fR:
+.IP
+.B "ovs\-vsctl set Port eth0 other_config:rstp-port-admin-edge=true"
+.PP
+Set the auto edge value of port \fBeth0\fR:
+.IP
+.B "ovs\-vsctl set Port eth0 other_config:rstp-port-auto-edge=true"
+.PP
+Set the admin point to point MAC value of port \fBeth0\fR.  Acceptable
+values are \fB0\fR (not point-to-point), \fB1\fR (point-to-point, the
+default value) or \fB2\fR (automatic detection).  The auto-detection
+mode is not currently implemented, and the value \fB2\fR has the same
+effect of \fB0\fR (not point-to-point).
+.IP
+.B "ovs\-vsctl set Port eth0 other_config:rstp-admin-p2p-mac=1"
+.PP
+Set the admin port state value of port \fBeth0\fR.  \fBtrue\fR is the
+default value.
+.IP
+.B "ovs\-vsctl set Port eth0 other_config:rstp-admin-port-state=false"
+.PP
+Set the mcheck value of port \fBeth0\fR:
+.IP
+.B "ovs\-vsctl set Port eth0 other_config:rstp-port-mcheck=true"
+.PP
+Deconfigure RSTP from above:
+.IP
+.B "ovs\-vsctl set Bridge br0 rstp_enable=false"
+.PP
 .SS "OpenFlow Version"
 .PP
 Configure bridge \fBbr0\fR to support OpenFlow versions 1.0, 1.2, and
 1.3:
 .IP
-.B "ovs\-vsctl set bridge br0 protocols=openflow10,openflow12,openflow13"
+.B "ovs\-vsctl set bridge br0 protocols=OpenFlow10,OpenFlow12,OpenFlow13"
 .
+.SS "Flow Table Configuration"
+Limit flow table 0 on bridge br0 to a maximum of 100 flows:
+.IP
+.B "ovs\-vsctl \-\- \-\-id=@ft create Flow_Table flow_limit=100 overflow_policy=refuse \-\- set Bridge br0 flow_tables=0=@ft"
 .SH "EXIT STATUS"
 .IP "0"
 Successful program execution.