[ovs-dev,5/6] doc: Convert ovs-test to rST

Submitted by Ben Pfaff on April 14, 2017, 4:43 a.m.

Details

Message ID 20170414044319.11074-6-blp@ovn.org
State Accepted
Headers show

Commit Message

Ben Pfaff April 14, 2017, 4:43 a.m.
From: Stephen Finucane <stephen@that.guru>

Signed-off-by: Stephen Finucane <stephen@that.guru>
Signed-off-by: Ben Pfaff <blp@ovn.org>
---
 Documentation/automake.mk             |   1 +
 Documentation/conf.py                 |   3 +
 Documentation/ref/index.rst           |   1 +
 Documentation/ref/ovs-test.8.rst      | 163 ++++++++++++++++
 Documentation/ref/ovs-vlan-test.8.rst |  11 +-
 debian/openvswitch-test.manpages      |   1 -
 manpages.mk                           | 337 ----------------------------------
 utilities/automake.mk                 |   3 -
 utilities/ovs-test.8.in               | 144 ---------------
 9 files changed, 172 insertions(+), 492 deletions(-)
 create mode 100644 Documentation/ref/ovs-test.8.rst
 delete mode 100644 utilities/ovs-test.8.in

Comments

Stephen Finucane April 18, 2017, 11:01 a.m.
On Thu, 2017-04-13 at 21:43 -0700, Ben Pfaff wrote:
> From: Stephen Finucane <stephen@that.guru>
> 
> Signed-off-by: Stephen Finucane <stephen@that.guru>
> Signed-off-by: Ben Pfaff <blp@ovn.org>

Same comment on the 'Synopsis' section. Other than that, LGTM.

Acked-by: Stephen Finucane <stephen@that.guru>

Patch hide | download patch | download mbox

diff --git a/Documentation/automake.mk b/Documentation/automake.mk
index 762255277102..cff33cc659cc 100644
--- a/Documentation/automake.mk
+++ b/Documentation/automake.mk
@@ -137,6 +137,7 @@  endif
 
 # rST formatted manpages under Documentation/ref.
 RST_MANPAGES = \
+	ovs-test.8.rst \
 	ovs-vlan-test.8.rst
 
 # The GNU standards say that these variables should control
diff --git a/Documentation/conf.py b/Documentation/conf.py
index 8671a097d17e..1737d771ad70 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -328,6 +328,9 @@  latex_documents = [
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
 man_pages = [
+    ('ref/ovs-test.8', 'ovs-test',
+     u'Check Linux drivers for performance, vlan and L3 tunneling problems',
+     [author], 8),
     ('ref/ovs-vlan-test.8', 'ovs-vlan-test',
      u'Check Linux drivers for problems with vlan traffic',
      [author], 8)
diff --git a/Documentation/ref/index.rst b/Documentation/ref/index.rst
index 6b368809c11b..3e2f8d5d96e0 100644
--- a/Documentation/ref/index.rst
+++ b/Documentation/ref/index.rst
@@ -39,6 +39,7 @@  time:
 .. toctree::
    :maxdepth: 3
 
+   ovs-test.8
    ovs-vlan-test.8
 
 The remainder are still in roff format can be found below:
diff --git a/Documentation/ref/ovs-test.8.rst b/Documentation/ref/ovs-test.8.rst
new file mode 100644
index 000000000000..f902d9c3b05a
--- /dev/null
+++ b/Documentation/ref/ovs-test.8.rst
@@ -0,0 +1,163 @@ 
+========
+ovs-test
+========
+
+Synopsis
+========
+
+**ovs-test** -s *port*
+
+**ovs-test** -c *server1* *server2* [**-b** *targetbandwidth*] [**-i** *testinterval*] [**-d**]
+  [**-l** *vlantag*] [**-t** *tunnelmodes*]
+
+Description
+===========
+
+The :program:`ovs-test` program may be used to check for problems sending
+802.1Q or GRE traffic that Open vSwitch may uncover. These problems, for
+example, can occur when Open vSwitch is used to send 802.1Q traffic through
+physical interfaces running certain drivers of certain Linux kernel versions.
+To run a test, configure IP addresses on `server1` and `server2` for interfaces
+you intended to test. These interfaces could also be already configured OVS
+bridges that have a physical interface attached to them. Then, on one of the
+nodes, run :program:`ovs-test` in server mode and on the other node run it in
+client mode. The client will connect to :program:`ovs-test` server and schedule
+tests between both of them. The :program:`ovs-test` client will perform UDP and
+TCP tests.
+
+UDP tests can report packet loss and achieved bandwidth for various datagram
+sizes. By default target bandwidth for UDP tests is 1Mbit/s.
+
+TCP tests report only achieved bandwidth, because kernel TCP stack takes care
+of flow control and packet loss. TCP tests are essential to detect potential
+TSO related issues.
+
+To determine whether Open vSwitch is encountering any problems, the user must
+compare packet loss and achieved bandwidth in a setup where traffic is being
+directly sent and in one where it is not. If in the 802.1Q or L3 tunneled tests
+both :program:`ovs-test` processes are unable to communicate or the achieved
+bandwidth is much lower compared to direct setup, then, most likely, Open
+vSwitch has encountered a pre-existing kernel or driver bug.
+
+Some examples of the types of problems that may be encountered are:
+
+- When NICs use VLAN stripping on receive they must pass a pointer to a
+  `vlan_group` when reporting the stripped tag to the networking core. If no
+  `vlan_group` is in use then some drivers just drop the extracted tag.
+  Drivers are supposed to only enable stripping if a `vlan_group` is registered
+  but not all of them do that.
+
+- On receive, some drivers handle priority tagged packets specially and don't
+  pass the tag onto the network stack at all, so Open vSwitch never has a
+  chance to see it.
+
+- Some drivers size their receive buffers based on whether a `vlan_group` is
+  enabled, meaning that a maximum size packet with a VLAN tag will not fit if
+  no `vlan_group` is configured.
+
+- On transmit, some drivers expect that VLAN acceleration will be used if it is
+  available, which can only be done if a `vlan_group` is configured. In these
+  cases, the driver may fail to parse the packet and correctly setup checksum
+  offloading or TSO.
+
+Client Mode
+  An :program:`ovs-test` client will connect to two :program:`ovs-test` servers
+  and will ask them to exchange test traffic. It is also possible to spawn an
+  :program:`ovs-test` server automatically from the client.
+
+Server Mode
+  To conduct tests, two :program:`ovs-test` servers must be running on two
+  different hosts where the client can connect. The actual test traffic is
+  exchanged only between both :program:`ovs-test` servers. It is recommended
+  that both servers have their IP addresses in the same subnet, otherwise one
+  would have to make sure that routing is set up correctly.
+
+Options
+=======
+
+.. program:: ovs-test
+
+.. option:: -s <port>, --server <port>
+
+    Run in server mode and wait for the client to establish XML RPC Control
+    Connection on this TCP port. It is recommended to have `ethtool(8)`
+    installed on the server so that it could retrieve information about the NIC
+    driver.
+
+.. option:: -c <server1> <server2>, --client <server1> <server2>
+
+    Run in client mode and schedule tests between `server1` and `server2`,
+    where each server must be given in the following format::
+
+        OuterIP[:OuterPort],InnerIP[/Mask][:InnerPort].
+
+    The `OuterIP` must be already assigned to the physical interface which is
+    going to be tested. This is the IP address where client will try to
+    establish XML RPC connection. If `OuterIP` is 127.0.0.1 then client will
+    automatically spawn a local instance of :program:`ovs-test` server.
+    OuterPort is TCP port where server is listening for incoming XML/RPC
+    control connections to schedule tests (by default it is 15531). The
+    :program:`ovs-test` will automatically assign `InnerIP[/Mask]` to the
+    interfaces that will be created on the fly for testing purposes. It is
+    important that `InnerIP[/Mask]` does not interfere with already existing IP
+    addresses on both :program:`ovs-test` servers and client. InnerPort is port
+    which will be used by server to listen for test traffic that will be
+    encapsulated (by default it is 15532).
+
+.. option:: -b <targetbandwidth>, --bandwidth <targetbandwidth>
+
+    Target bandwidth for UDP tests. The targetbandwidth must be given in bits
+    per second. It is possible to use postfix `M` or `K` to alter the target
+    bandwidth magnitude.
+
+.. option:: -i <testinterval>, --interval <testinterval>
+
+    How long each test should run. By default 5 seconds.
+
+.. option:: -h, --help
+
+    Prints a brief help message to the console.
+
+.. option:: -V, --version
+
+    Prints version information to the console.
+
+The following test modes are supported by :program:`ovs-test`. It is possible
+to combine multiple of them in a single :program:`ovs-test` invocation.
+
+.. option:: -d, --direct
+
+    Perform direct tests between both OuterIP addresses. These tests could be
+    used as a reference to compare 802.1Q or L3 tunneling test results.
+
+.. option:: -l <vlantag>, --vlan-tag <vlantag>
+
+    Perform 802.1Q tests between both servers. These tests will create a
+    temporary OVS bridge, if necessary, and attach a VLAN tagged port to
+    it for testing purposes.
+
+.. option:: -t <tunnelmodes>, --tunnel-modes <tunnelmodes>
+
+    Perform L3 tunneling tests. The given argument is a comma sepa‐ rated
+    string that specifies all the L3 tunnel modes that should be tested (e.g.
+    gre). The L3 tunnels are terminated on interface that has the OuterIP
+    address assigned.
+
+Examples
+========
+
+On host 1.2.3.4 start :program:`ovs-test` in server mode::
+
+    ovs-test -s 15531
+
+On host 1.2.3.5 start :program:`ovs-test` in client mode and do direct, VLAN
+and GRE tests between both nodes::
+
+    ovs-test -c 127.0.0.1,1.1.1.1/30 1.2.3.4,1.1.1.2/30 -d -l 123 -t
+    gre
+
+See Also
+========
+
+`ovs-vswitchd(8)`, `ovs-ofctl(8)`, `ovs-vsctl(8)`, :program:`ovs-vlan-test`,
+`ethtool(8)`, `uname(1)`
diff --git a/Documentation/ref/ovs-vlan-test.8.rst b/Documentation/ref/ovs-vlan-test.8.rst
index c3066917f00d..59993817562e 100644
--- a/Documentation/ref/ovs-vlan-test.8.rst
+++ b/Documentation/ref/ovs-vlan-test.8.rst
@@ -10,14 +10,11 @@  Synopsis
 Description
 ===========
 
-.. TODO(stephenfin): Add the `:program:` prefixes to `ovs-test` once that doc
-   is converted
-
 The :program:`ovs-vlan-test` utility has some limitations, for example, it does
 not use TCP in its tests. Also it does not take into account MTU to detect
 potential edge cases. To overcome those limitations a new tool was developed -
-`ovs-test`. `ovs-test` is currently supported only on Debian so, if possible,
-try to use that on instead of :program:`ovs-vlan-test`.
+:program:`ovs-test`. :program:`ovs-test` is currently supported only on Debian
+so, if possible, try to use that on instead of :program:`ovs-vlan-test`.
 
 The :program:`ovs-vlan-test` program may be used to check for problems sending
 802.1Q traffic which may occur when running Open vSwitch. These problems can
@@ -111,5 +108,5 @@  Run an :program:`ovs-vlan-test` client with a control server located at
 See Also
 ========
 
-`ovs-vswitchd(8)`, `ovs-ofctl(8)`, `ovs-vsctl(8)`, `ovs-test(8)`, `ethtool(8)`,
-`uname(1)`
+`ovs-vswitchd(8)`, `ovs-ofctl(8)`, `ovs-vsctl(8)`, :program:`ovs-test`,
+`ethtool(8)`, `uname(1)`
diff --git a/debian/openvswitch-test.manpages b/debian/openvswitch-test.manpages
index 7aa762e60ee8..3f71858691e8 100644
--- a/debian/openvswitch-test.manpages
+++ b/debian/openvswitch-test.manpages
@@ -1,2 +1 @@ 
 utilities/ovs-l3ping.8
-utilities/ovs-test.8
diff --git a/manpages.mk b/manpages.mk
index 372d06cad0a4..e69de29bb2d1 100644
--- a/manpages.mk
+++ b/manpages.mk
@@ -1,337 +0,0 @@ 
-# Generated automatically -- do not modify!    -*- buffer-read-only: t -*-
-
-ovn/utilities/ovn-sbctl.8: \
-	ovn/utilities/ovn-sbctl.8.in \
-	lib/common.man \
-	lib/db-ctl-base.man \
-	lib/ssl-bootstrap.man \
-	lib/ssl-peer-ca-cert.man \
-	lib/ssl.man \
-	lib/table.man \
-	lib/vlog.man \
-	ovsdb/remote-active.man \
-	ovsdb/remote-active.man \
-	ovsdb/remote-passive.man \
-	ovsdb/remote-passive.man
-ovn/utilities/ovn-sbctl.8.in:
-lib/common.man:
-lib/db-ctl-base.man:
-lib/ssl-bootstrap.man:
-lib/ssl-peer-ca-cert.man:
-lib/ssl.man:
-lib/table.man:
-lib/vlog.man:
-ovsdb/remote-active.man:
-ovsdb/remote-active.man:
-ovsdb/remote-passive.man:
-ovsdb/remote-passive.man:
-
-ovsdb/ovsdb-client.1: \
-	ovsdb/ovsdb-client.1.in \
-	lib/common-syn.man \
-	lib/common.man \
-	lib/daemon-syn.man \
-	lib/daemon.man \
-	lib/ssl-bootstrap-syn.man \
-	lib/ssl-bootstrap.man \
-	lib/ssl-connect-syn.man \
-	lib/ssl-connect.man \
-	lib/ssl-syn.man \
-	lib/ssl.man \
-	lib/table.man \
-	lib/vlog-syn.man \
-	lib/vlog.man \
-	ovsdb/remote-active.man \
-	ovsdb/remote-passive.man
-ovsdb/ovsdb-client.1.in:
-lib/common-syn.man:
-lib/common.man:
-lib/daemon-syn.man:
-lib/daemon.man:
-lib/ssl-bootstrap-syn.man:
-lib/ssl-bootstrap.man:
-lib/ssl-connect-syn.man:
-lib/ssl-connect.man:
-lib/ssl-syn.man:
-lib/ssl.man:
-lib/table.man:
-lib/vlog-syn.man:
-lib/vlog.man:
-ovsdb/remote-active.man:
-ovsdb/remote-passive.man:
-
-ovsdb/ovsdb-server.1: \
-	ovsdb/ovsdb-server.1.in \
-	lib/common-syn.man \
-	lib/common.man \
-	lib/coverage-unixctl.man \
-	lib/daemon-syn.man \
-	lib/daemon.man \
-	lib/memory-unixctl.man \
-	lib/service-syn.man \
-	lib/service.man \
-	lib/ssl-bootstrap-syn.man \
-	lib/ssl-bootstrap.man \
-	lib/ssl-connect-syn.man \
-	lib/ssl-connect.man \
-	lib/ssl-peer-ca-cert-syn.man \
-	lib/ssl-peer-ca-cert.man \
-	lib/ssl-syn.man \
-	lib/ssl.man \
-	lib/unixctl-syn.man \
-	lib/unixctl.man \
-	lib/vlog-syn.man \
-	lib/vlog-unixctl.man \
-	lib/vlog.man \
-	ovsdb/remote-active.man \
-	ovsdb/remote-passive.man \
-	ovsdb/replication-syn.man \
-	ovsdb/replication.man
-ovsdb/ovsdb-server.1.in:
-lib/common-syn.man:
-lib/common.man:
-lib/coverage-unixctl.man:
-lib/daemon-syn.man:
-lib/daemon.man:
-lib/memory-unixctl.man:
-lib/service-syn.man:
-lib/service.man:
-lib/ssl-bootstrap-syn.man:
-lib/ssl-bootstrap.man:
-lib/ssl-connect-syn.man:
-lib/ssl-connect.man:
-lib/ssl-peer-ca-cert-syn.man:
-lib/ssl-peer-ca-cert.man:
-lib/ssl-syn.man:
-lib/ssl.man:
-lib/unixctl-syn.man:
-lib/unixctl.man:
-lib/vlog-syn.man:
-lib/vlog-unixctl.man:
-lib/vlog.man:
-ovsdb/remote-active.man:
-ovsdb/remote-passive.man:
-ovsdb/replication-syn.man:
-ovsdb/replication.man:
-
-ovsdb/ovsdb-tool.1: \
-	ovsdb/ovsdb-tool.1.in \
-	lib/common-syn.man \
-	lib/common.man \
-	lib/vlog-syn.man \
-	lib/vlog.man
-ovsdb/ovsdb-tool.1.in:
-lib/common-syn.man:
-lib/common.man:
-lib/vlog-syn.man:
-lib/vlog.man:
-
-utilities/bugtool/ovs-bugtool.8: \
-	utilities/bugtool/ovs-bugtool.8.in
-utilities/bugtool/ovs-bugtool.8.in:
-
-utilities/ovs-appctl.8: \
-	utilities/ovs-appctl.8.in \
-	lib/common.man
-utilities/ovs-appctl.8.in:
-lib/common.man:
-
-utilities/ovs-dpctl-top.8: \
-	utilities/ovs-dpctl-top.8.in
-utilities/ovs-dpctl-top.8.in:
-
-utilities/ovs-dpctl.8: \
-	utilities/ovs-dpctl.8.in \
-	lib/common.man \
-	lib/dpctl.man \
-	lib/vlog.man
-utilities/ovs-dpctl.8.in:
-lib/common.man:
-lib/dpctl.man:
-lib/vlog.man:
-
-utilities/ovs-l3ping.8: \
-	utilities/ovs-l3ping.8.in \
-	lib/common-syn.man \
-	lib/common.man
-utilities/ovs-l3ping.8.in:
-lib/common-syn.man:
-lib/common.man:
-
-utilities/ovs-ofctl.8: \
-	utilities/ovs-ofctl.8.in \
-	lib/colors.man \
-	lib/common.man \
-	lib/daemon.man \
-	lib/ofp-version.man \
-	lib/ssl.man \
-	lib/unixctl.man \
-	lib/vconn-active.man \
-	lib/vlog.man
-utilities/ovs-ofctl.8.in:
-lib/colors.man:
-lib/common.man:
-lib/daemon.man:
-lib/ofp-version.man:
-lib/ssl.man:
-lib/unixctl.man:
-lib/vconn-active.man:
-lib/vlog.man:
-
-utilities/ovs-pcap.1: \
-	utilities/ovs-pcap.1.in \
-	lib/common-syn.man \
-	lib/common.man
-utilities/ovs-pcap.1.in:
-lib/common-syn.man:
-lib/common.man:
-
-utilities/ovs-pki.8: \
-	utilities/ovs-pki.8.in
-utilities/ovs-pki.8.in:
-
-utilities/ovs-tcpdump.8: \
-	utilities/ovs-tcpdump.8.in \
-	lib/common.man
-utilities/ovs-tcpdump.8.in:
-lib/common.man:
-
-utilities/ovs-tcpundump.1: \
-	utilities/ovs-tcpundump.1.in \
-	lib/common-syn.man \
-	lib/common.man
-utilities/ovs-tcpundump.1.in:
-lib/common-syn.man:
-lib/common.man:
-
-utilities/ovs-test.8: \
-	utilities/ovs-test.8.in \
-	lib/common-syn.man \
-	lib/common.man \
-	utilities/ovs-vlan-bugs.man
-utilities/ovs-test.8.in:
-lib/common-syn.man:
-lib/common.man:
-utilities/ovs-vlan-bugs.man:
-
-utilities/ovs-testcontroller.8: \
-	utilities/ovs-testcontroller.8.in \
-	lib/common.man \
-	lib/daemon.man \
-	lib/ofp-version.man \
-	lib/ssl-peer-ca-cert.man \
-	lib/ssl.man \
-	lib/unixctl.man \
-	lib/vconn-active.man \
-	lib/vconn-passive.man \
-	lib/vlog.man
-utilities/ovs-testcontroller.8.in:
-lib/common.man:
-lib/daemon.man:
-lib/ofp-version.man:
-lib/ssl-peer-ca-cert.man:
-lib/ssl.man:
-lib/unixctl.man:
-lib/vconn-active.man:
-lib/vconn-passive.man:
-lib/vlog.man:
-
-utilities/ovs-vlan-bug-workaround.8: \
-	utilities/ovs-vlan-bug-workaround.8.in \
-	lib/common.man \
-	utilities/ovs-vlan-bugs.man
-utilities/ovs-vlan-bug-workaround.8.in:
-lib/common.man:
-utilities/ovs-vlan-bugs.man:
-
-utilities/ovs-vsctl.8: \
-	utilities/ovs-vsctl.8.in \
-	lib/common.man \
-	lib/db-ctl-base.man \
-	lib/ssl-bootstrap.man \
-	lib/ssl-peer-ca-cert.man \
-	lib/ssl.man \
-	lib/table.man \
-	lib/vconn-active.man \
-	lib/vconn-passive.man \
-	lib/vlog.man \
-	ovsdb/remote-active.man \
-	ovsdb/remote-active.man \
-	ovsdb/remote-passive.man \
-	ovsdb/remote-passive.man
-utilities/ovs-vsctl.8.in:
-lib/common.man:
-lib/db-ctl-base.man:
-lib/ssl-bootstrap.man:
-lib/ssl-peer-ca-cert.man:
-lib/ssl.man:
-lib/table.man:
-lib/vconn-active.man:
-lib/vconn-passive.man:
-lib/vlog.man:
-ovsdb/remote-active.man:
-ovsdb/remote-active.man:
-ovsdb/remote-passive.man:
-ovsdb/remote-passive.man:
-
-vswitchd/ovs-vswitchd.8: \
-	vswitchd/ovs-vswitchd.8.in \
-	lib/common.man \
-	lib/coverage-unixctl.man \
-	lib/daemon.man \
-	lib/dpctl.man \
-	lib/memory-unixctl.man \
-	lib/service.man \
-	lib/ssl-bootstrap.man \
-	lib/ssl.man \
-	lib/unixctl.man \
-	lib/vlog-unixctl.man \
-	lib/vlog.man \
-	ofproto/ofproto-dpif-unixctl.man \
-	ofproto/ofproto-tnl-unixctl.man \
-	ofproto/ofproto-unixctl.man \
-	ovsdb/remote-active.man \
-	ovsdb/remote-passive.man
-vswitchd/ovs-vswitchd.8.in:
-lib/common.man:
-lib/coverage-unixctl.man:
-lib/daemon.man:
-lib/dpctl.man:
-lib/memory-unixctl.man:
-lib/service.man:
-lib/ssl-bootstrap.man:
-lib/ssl.man:
-lib/unixctl.man:
-lib/vlog-unixctl.man:
-lib/vlog.man:
-ofproto/ofproto-dpif-unixctl.man:
-ofproto/ofproto-tnl-unixctl.man:
-ofproto/ofproto-unixctl.man:
-ovsdb/remote-active.man:
-ovsdb/remote-passive.man:
-
-vtep/vtep-ctl.8: \
-	vtep/vtep-ctl.8.in \
-	lib/common.man \
-	lib/db-ctl-base.man \
-	lib/ssl-bootstrap.man \
-	lib/ssl-peer-ca-cert.man \
-	lib/ssl.man \
-	lib/table.man \
-	lib/vlog.man \
-	ovsdb/remote-active.man \
-	ovsdb/remote-active.man \
-	ovsdb/remote-passive.man \
-	ovsdb/remote-passive.man
-vtep/vtep-ctl.8.in:
-lib/common.man:
-lib/db-ctl-base.man:
-lib/ssl-bootstrap.man:
-lib/ssl-peer-ca-cert.man:
-lib/ssl.man:
-lib/table.man:
-lib/vlog.man:
-ovsdb/remote-active.man:
-ovsdb/remote-active.man:
-ovsdb/remote-passive.man:
-ovsdb/remote-passive.man:
diff --git a/utilities/automake.mk b/utilities/automake.mk
index 02531f6dd3d6..1636cb93e677 100644
--- a/utilities/automake.mk
+++ b/utilities/automake.mk
@@ -71,7 +71,6 @@  MAN_ROOTS += \
 	utilities/ovs-tcpdump.8.in \
 	utilities/ovs-tcpundump.1.in \
 	utilities/ovs-vlan-bug-workaround.8.in \
-	utilities/ovs-test.8.in \
 	utilities/ovs-vsctl.8.in
 MAN_FRAGMENTS += utilities/ovs-vlan-bugs.man
 CLEANFILES += \
@@ -98,7 +97,6 @@  CLEANFILES += \
 	utilities/ovs-tcpundump \
 	utilities/ovs-tcpundump.1 \
 	utilities/ovs-test \
-	utilities/ovs-test.8 \
 	utilities/ovs-vlan-test \
 	utilities/ovs-vlan-bug-workaround.8 \
 	utilities/ovs-vsctl.8
@@ -117,7 +115,6 @@  man_MANS += \
 	utilities/ovs-tcpdump.8 \
 	utilities/ovs-tcpundump.1 \
 	utilities/ovs-vlan-bug-workaround.8 \
-	utilities/ovs-test.8 \
 	utilities/ovs-vsctl.8
 
 utilities_ovs_appctl_SOURCES = utilities/ovs-appctl.c
diff --git a/utilities/ovs-test.8.in b/utilities/ovs-test.8.in
deleted file mode 100644
index 1126b3cb2f99..000000000000
--- a/utilities/ovs-test.8.in
+++ /dev/null
@@ -1,144 +0,0 @@ 
-.de IQ
-.  br
-.  ns
-.  IP "\\$1"
-..
-.TH ovs\-test 1 "@VERSION@" "Open vSwitch" "Open vSwitch Manual"
-.
-.SH NAME
-\fBovs\-test\fR \- check Linux drivers for performance, vlan and L3 tunneling
-problems
-.
-.SH SYNOPSIS
-\fBovs\-test\fR \fB\-s\fR \fIport\fR
-.PP
-\fBovs\-test\fR \fB\-c\fR \fIserver1\fR \fIserver2\fR
-[\fB\-b\fR \fItargetbandwidth\fR] [\fB\-i\fR \fItestinterval\fR]
-[\fB\-d\fR]
-[\fB\-l\fR \fIvlantag\fR]
-[\fB\-t\fR \fItunnelmodes\fR]
-.so lib/common-syn.man
-.
-.SH DESCRIPTION
-The \fBovs\-test\fR program may be used to check for problems sending
-802.1Q or GRE traffic that Open vSwitch may uncover. These problems,
-for example, can occur when Open vSwitch is used to send 802.1Q traffic
-through physical interfaces running certain drivers of certain Linux kernel
-versions. To run a test, configure IP addresses on \fIserver1\fR and
-\fIserver2\fR for interfaces you intended to test. These interfaces could
-also be already configured OVS bridges that have a physical interface attached
-to them. Then, on one of the nodes, run \fBovs\-test\fR in server mode and on
-the other node run it in client mode. The client will connect to
-\fBovs\-test\fR server and schedule tests between both of them. The
-\fBovs\-test\fR client will perform UDP and TCP tests.
-.PP
-UDP tests can report packet loss and achieved bandwidth for various
-datagram sizes. By default target bandwidth for UDP tests is 1Mbit/s.
-.PP
-TCP tests report only achieved bandwidth, because kernel TCP stack
-takes care of flow control and packet loss. TCP tests are essential to detect
-potential TSO related issues.
-.PP
-To determine whether Open vSwitch is encountering any problems,
-the user must compare packet loss and achieved bandwidth in a setup where
-traffic is being directly sent and in one where it is not. If in the
-802.1Q or L3 tunneled tests both \fBovs\-test\fR processes are unable to
-communicate or the achieved bandwidth is much lower compared to direct setup,
-then, most likely, Open vSwitch has encountered a pre-existing kernel or
-driver bug.
-.PP
-Some examples of the types of problems that may be encountered are:
-.so utilities/ovs-vlan-bugs.man
-.
-.SS "Client Mode"
-An \fBovs\-test\fR client will connect to two \fBovs\-test\fR servers and
-will ask them to exchange test traffic. It is also possible to spawn an
-\fBovs\-test\fR server automatically from the client.
-.
-.SS "Server Mode"
-To conduct tests, two \fBovs\-test\fR servers must be running on two different
-hosts where the client can connect. The actual test traffic is exchanged only
-between both \fBovs\-test\fR servers. It is recommended that both servers have
-their IP addresses in the same subnet, otherwise one would have to make sure
-that routing is set up correctly.
-.
-.SH OPTIONS
-.
-.IP "\fB\-s \fIport\fR"
-.IQ "\fB\-\-server\fR \fIport\fR"
-Run in server mode and wait for the client to establish XML RPC Control
-Connection on this TCP \fIport\fR. It is recommended to have \fBethtool\fR(8)
-installed on the server so that it could retrieve information about the NIC
-driver.
-.
-.IP "\fB\-c \fIserver1\fR \fIserver2\fR"
-.IQ "\fB\-\-client \fIserver1\fR \fIserver2\fR"
-Run in client mode and schedule tests between \fIserver1\fR and \fIserver2\fR,
-where each \fIserver\fR must be given in the following format -
-\fIOuterIP[:OuterPort],InnerIP[/Mask][:InnerPort]\fR. The \fIOuterIP\fR must
-be already assigned to the physical interface which is going to be tested.
-This is the IP address where client will try to establish XML RPC connection.
-If \fIOuterIP\fR is 127.0.0.1 then client will automatically spawn a local
-instance of \fBovs\-test\fR server. \fIOuterPort\fR is TCP port where server
-is listening for incoming XML/RPC control connections to schedule tests (by
-default it is 15531). The \fBovs\-test\fR will automatically assign
-\fIInnerIP[/Mask]\fR to the interfaces that will be created on the fly for
-testing purposes. It is important that \fIInnerIP[/Mask]\fR does not interfere
-with already existing IP addresses on both \fBovs\-test\fR servers and client.
-\fIInnerPort\fR is port which will be used by server to listen for test
-traffic that will be encapsulated (by default it is 15532).
-.
-.IP "\fB\-b \fItargetbandwidth\fR"
-.IQ "\fB\-\-bandwidth\fR \fItargetbandwidth\fR"
-Target bandwidth for UDP tests. The \fItargetbandwidth\fR must be given in
-bits per second. It is possible to use postfix M or K to alter the target
-bandwidth magnitude.
-.
-.IP "\fB\-i \fItestinterval\fR"
-.IQ "\fB\-\-interval\fR \fItestinterval\fR"
-How long each test should run. By default 5 seconds.
-.
-.so lib/common.man
-.
-.SH "Test Modes"
-The following test modes are supported by \fBovs\-test\fR. It is possible
-to combine multiple of them in a single \fBovs\-test\fR invocation.
-.
-.IP "\fB\-d \fR"
-.IQ "\fB\-\-direct\fR"
-Perform direct tests between both \fIOuterIP\fR addresses. These tests could
-be used as a reference to compare 802.1Q or L3 tunneling test results.
-.
-.IP "\fB\-l \fIvlantag\fR"
-.IQ "\fB\-\-vlan\-tag\fR \fIvlantag\fR"
-Perform 802.1Q tests between both servers. These tests will create a temporary
-OVS bridge, if necessary, and attach a VLAN tagged port to it for testing
-purposes.
-.
-.IP "\fB\-t \fItunnelmodes\fR"
-.IQ "\fB\-\-tunnel\-modes\fR \fItunnelmodes\fR"
-Perform L3 tunneling tests. The given argument is a comma separated string
-that specifies all the L3 tunnel modes that should be tested (e.g. gre). The L3
-tunnels are terminated on interface that has the \fIOuterIP\fR address
-assigned.
-.
-.SH EXAMPLES
-.PP
-On host 1.2.3.4 start \fBovs\-test\fR in server mode:
-.IP
-.B ovs\-test \-s 15531
-.
-.PP
-On host 1.2.3.5 start \fBovs\-test\fR in client mode and do direct, VLAN and
-GRE tests between both nodes:
-.IP
-.B ovs\-test \-c 127.0.0.1,1.1.1.1/30 1.2.3.4,1.1.1.2/30 -d -l 123 -t gre
-.
-.SH SEE ALSO
-.
-.BR ovs\-vswitchd (8),
-.BR ovs\-ofctl (8),
-.BR ovs\-vsctl (8),
-.BR ovs\-vlan\-test (8),
-.BR ethtool (8),
-.BR uname (1)