We believe these limits to be accurate as of this writing. These
limits assume the use of the Linux kernel datapath.
• ovs-vswitchd
started through ovs-ctl
(8) provides a limit
of 65535 file descriptors. The limits on the number of
bridges and ports is decided by the availability of file
descriptors. With the Linux kernel datapath, creation of
a single bridge consumes three file descriptors and each
port consumes one additional file descriptor. Other
platforms may have different limitations.
• 8,192 MAC learning entries per bridge, by default. (This
is configurable via other-config:mac-table-size
in the
Bridge
table. See ovs-vswitchd.conf.db(5) for details.)
• Kernel flows are limited only by memory available to the
kernel. Performance will degrade beyond 1,048,576 kernel
flows per bridge with a 32-bit kernel, beyond 262,144 with
a 64-bit kernel. (ovs-vswitchd
should never install
anywhere near that many flows.)
• OpenFlow flows are limited only by available memory.
Performance is linear in the number of unique wildcard
patterns. That is, an OpenFlow table that contains many
flows that all match on the same fields in the same way
has a constant-time lookup, but a table that contains many
flows that match on different fields requires lookup time
linear in the number of flows.
• 255 ports per bridge participating in 802.1D Spanning Tree
Protocol.
• 32 mirrors per bridge.
• 15 bytes for the name of a port, for ports implemented in
the Linux kernel. Ports implemented in userspace, such as
patch ports, do not have an arbitrary length limitation.
OpenFlow also limit port names to 15 bytes.