OVS-TEST(8) | Open vSwitch | OVS-TEST(8) |
ovs-test - Check Linux drivers for performance, vlan and L3 tunneling problems
ovs-test -s port
The 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 ovs-test in server mode and on the other node run it in client mode. The client will connect to ovs-test server and schedule tests between both of them. The 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 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:
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 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 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 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).
The following test modes are supported by ovs-test. It is possible to combine multiple of them in a single ovs-test invocation.
On host 1.2.3.4 start ovs-test in server mode:
ovs-test -s 15531
On host 1.2.3.5 start 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
ovs-vswitchd(8), ovs-ofctl(8), ovs-vsctl(8), ovs-vlan-test, ethtool(8), uname(1)
The Open vSwitch Development Community
2021, The Open vSwitch Development Community
February 12, 2021 | 2.10 |