meta-flow: Correctly set destination MAC in mf_set_flow_value().
[sliver-openvswitch.git] / utilities / ovs-test.8.in
1 .TH ovs\-test 1 "October 2011" "Open vSwitch" "Open vSwitch Manual"
2 .
3 .SH NAME
4 \fBovs\-test\fR \- check Linux drivers for performance and vlan problems
5 .
6 .SH SYNOPSIS
7 \fBovs\-test\fR \fB\-s\fR \fIport\fR
8 .PP
9 \fBovs\-test\fR \fB\-c\fR \fIserver1\fR
10 \fIserver2\fR [\fB\-b\fR \fIbandwidth\fR]
11 .so lib/common-syn.man
12 .
13 .SH DESCRIPTION
14 The \fBovs\-test\fR program may be used to check for problems sending
15 802.1Q traffic that Open vSwitch may uncover. These problems can
16 occur when Open vSwitch is used to send 802.1Q traffic through physical
17 interfaces running certain drivers of certain Linux kernel versions. To run a
18 test, configure Open vSwitch to tag traffic originating from \fIserver1\fR and
19 forward it to the \fIserver2\fR. On both servers run \fBovs\-test\fR
20 in server mode. Then, on any other host, run the \fBovs\-test\fR in client
21 mode. The client will connect to both \fBovs\-test\fR servers and schedule
22 tests between them. \fBovs\-test\fR will perform UDP and TCP tests.
23 .PP
24 UDP tests can report packet loss and achieved bandwidth, because UDP flow
25 control is done inside \fBovs\-test\fR. It is also possible to specify target
26 bandwidth for UDP. By default it is 1Mbit/s.
27 .PP
28 TCP tests report only achieved bandwidth, because kernel TCP stack
29 takes care of flow control and packet loss. TCP tests are essential to detect
30 potential TSO related VLAN issues.
31 .PP
32 To determine whether Open vSwitch is encountering any 802.1Q related problems,
33 the user must compare packet loss and achieved bandwidth in a setup where
34 traffic is being tagged against one where it is not. If in the tagged setup
35 both servers are unable to communicate or the achieved bandwidth is lower,
36 then, most likely, Open vSwitch has encountered a pre-existing kernel or
37 driver bug.
38 .PP
39 Some examples of the types of problems that may be encountered are:
40 .so utilities/ovs-vlan-bugs.man
41 .
42 .SS "Client Mode"
43 An \fBovs\-test\fR client will connect to two \fBovs\-test\fR servers and
44 will ask them to exchange traffic.
45 .
46 .SS "Server Mode"
47 To conduct tests, two \fBovs\-test\fR servers must be running on two different
48 hosts where client can connect. The actual test traffic is exchanged only
49 between both \fBovs\-test\fR server test IP addresses. It is recommended that
50 both servers have their test IP addresses in the same subnet, otherwise one
51 will need to change routing so that the test traffic actually goes through the
52 interface that he originally intended to test.
53 .
54 .SH OPTIONS
55 .
56 .TP
57 \fB\-s\fR, \fB\-\-server\fR \fIport\fR
58 Run in server mode and wait for a client to establish XML RPC Control
59 Connection on TCP \fIport\fR. It is recommended to have ethtool installed on
60 the server so that it could retrieve information about NIC driver.
61 .TP
62 \fB\-c\fR, \fB\-\-client\fR \fIserver1\fR \fIserver2\fR
63 Run in client mode and schedule tests between \fIserver1\fR and \fIserver2\fR,
64 where each \fIserver\fR must be given in following format -
65 ControlIP[:ControlPort][,TestIP[:TestPort]]. If TestIP is omitted then
66 ovs-test server will use the ControlIP for testing purposes. ControlPort is
67 TCP port where server will listen for incoming XML/RPC control
68 connections to schedule tests (by default it is 15531). TestPort
69 is port which will be used by server to listen for test traffic
70 (by default it is 15532).
71 .TP
72 \fB\-b\fR, \fB\-\-bandwidth\fR \fIbandwidth\fR
73 Target bandwidth for UDP tests. The \fIbandwidth\fR must be given in bits per
74 second. It is possible to use postfix M or K to alter the target bandwidth
75 magnitude.
76 .
77 .so lib/common.man
78 .SH EXAMPLES
79 .PP
80 Set up a bridge which forwards traffic originating from \fB1.2.3.4\fR out
81 \fBeth1\fR with VLAN tag 10.
82 .IP
83 .B ovs\-vsctl \-\- add\-br vlan\-br \(rs
84 .IP
85 .B \-\- add\-port vlan\-br eth1 \(rs
86 .IP
87 .B \-\- add\-port vlan\-br vlan\-br\-tag tag=10 \(rs
88 .IP
89 .B \-\- set Interface vlan\-br\-tag type=internal
90 .IP
91 .B ifconfig vlan\-br\-tag up 1.2.3.4
92 .
93 .PP
94 On two different hosts start \fBovs\-test\fR in server mode and tell them to
95 listen on port 15531 for incoming client control connections:
96 .IP
97 .B 1.2.3.4: ovs\-test \-s 15531
98 .IP
99 .B 1.2.3.5: ovs\-test \-s 15531
100 .
101 .PP
102 On any other host start \fBovs\-test\fR in client mode and ask it to connect
103 to those two servers - one at 1.2.3.4 and another at 1.2.3.5 (by default
104 client will use TCP port 15531 to establish control channel).
105 .IP
106 .B ovs\-test -c 1.2.3.4 1.2.3.5
107 .
108 .TP
109
110 .SH SEE ALSO
111 .
112 .BR ovs\-vswitchd (8),
113 .BR ovs\-ofctl (8),
114 .BR ovs\-vsctl (8),
115 .BR ovs\-vlan\-test (8),
116 .BR ethtool (8),
117 .BR uname (1)