016c7e3934d7bf7dbef1e0949204e787cafffb71
[sliver-openvswitch.git] / utilities / ovs-controller.8.in
1 .\" -*- nroff -*-
2 .de IQ
3 .  br
4 .  ns
5 .  IP "\\$1"
6 ..
7 .TH ovs\-controller 8 "March 2009" "Open vSwitch" "Open vSwitch Manual"
8 .ds PN ovs\-controller
9 .
10 .SH NAME
11 ovs\-controller \- simple OpenFlow controller reference implementation
12 .
13 .SH SYNOPSIS
14 .B ovs\-controller
15 [\fIoptions\fR] \fImethod\fR \fB[\fImethod\fR]\&...
16 .
17 .SH DESCRIPTION
18 \fBovs\-controller\fR manages any number of remote switches over OpenFlow
19 protocol, causing them to function as L2 MAC-learning switches or hub.
20 .PP
21 \fBovs\-controller\fR controls one or more OpenFlow switches, specified as
22 one or more of the following OpenFlow connection methods:
23 .
24 .RS
25 .so lib/vconn-passive.man
26 .so lib/vconn-active.man
27 .RE
28 .
29 .SH OPTIONS
30 .IP "\fB\-n\fR"
31 .IQ "\fB\-\-noflow\fR"
32 By default, \fBovs\-controller\fR sets up a flow in each OpenFlow switch
33 whenever it receives a packet whose destination is known due through
34 MAC learning.  This option disables flow setup, so that every packet
35 in the network passes through the controller.
36 .IP
37 This option is most useful for debugging.  It reduces switching
38 performance, so it should not be used in production.
39 .
40 .TP
41 \fB\-\-max\-idle=\fIsecs\fR|\fBpermanent\fR
42 Sets \fIsecs\fR as the number of seconds that a flow set up by the
43 controller will remain in the switch's flow table without any matching
44 packets being seen.  If \fBpermanent\fR is specified, which is not
45 recommended, flows will never expire.  The default is 60 seconds.
46 .IP
47 This option affects only flows set up by the OpenFlow controller.  In
48 some configurations, the switch can set up some flows
49 on its own.  To set the idle time for those flows, pass
50 \fB\-\-max\-idle\fR to \fBovs\-openflowd\fR (on the switch).
51 .IP
52 This option has no effect when \fB\-n\fR (or \fB\-\-noflow\fR) is in use
53 (because the controller does not set up flows in that case).
54 .
55 .IP "\fB\-H\fR"
56 .IQ "\fB\-\-hub\fR"
57 By default, the controller acts as an L2 MAC-learning switch.  This
58 option changes its behavior to that of a hub that floods packets on
59 all but the incoming port.
60 .IP
61 If \fB\-H\fR (or \fB\-\-hub\fR) and \fB\-n\fR (or \fB\-\-noflow\fR) are used
62 together, then the cumulative effect is that every packet passes
63 through the controller and every packet is flooded.
64 .IP
65 This option is most useful for debugging.  It reduces switching
66 performance, so it should not be used in production.
67 .
68 .IP "\fB\-w\fR[\fIwildcard_mask\fR]"
69 .IQ "\fB\-\-wildcards\fR[\fB=\fIwildcard_mask\fR]\fR"
70 By default, \fBovs\-controller\fR sets up exact-match flows.  This
71 option allows it to set up wildcarded flows, which may reduce
72 flow setup latency by causing less traffic to be sent up to the
73 controller.
74 .IP
75 The optional \fIwildcard_mask\fR is an OpenFlow wildcard bitmask in
76 hexadecimal that specifies the fields to wildcard.  If no
77 \fIwildcard_mask\fR is specified, the default value 0x2820F0 is used
78 which specifies L2-only switching and wildcards L3 and L4 fields.
79 Another interesting value is 0x2000EC, which specifies L3-only
80 switching and wildcards L2 and L4 fields.
81 .IP
82 This option has no effect when \fB\-n\fR (or \fB\-\-noflow\fR) is in use
83 (because the controller does not set up flows in that case).
84 .
85 .IP "\fB\-N\fR"
86 .IQ "\fB\-\-normal\fR"
87 By default, \fBovs\-controller\fR directs packets to a particular port
88 or floods them.  This option causes it to direct non-flooded packets
89 to the OpenFlow \fBOFPP_NORMAL\fR port.  This allows the switch itself
90 to make decisions about packet destinations.  Support for
91 \fBOFPP_NORMAL\fR is optional in OpenFlow, so this option may not well
92 with some non-Open vSwitch switches.
93 .
94 .IP "\fB\-\-mute\fR"
95 Prevents ovs\-controller from replying to any OpenFlow messages sent
96 to it by switches.
97 .IP
98 This option is only for debugging the Open vSwitch implementation of
99 ``fail open'' mode.  It must not be used in production.
100 .
101 .IP "\fB\-q \fIid\fR"
102 .IQ "\fB\-\-queue=\fIid\fR"
103 By default, \fBovs\-controller\fR uses the default OpenFlow queue for
104 sending packets and setting up flows.  Use one of these options,
105 supplying \fIid\fR as an OpenFlow queue ID as a decimal number, to
106 instead use that specific queue.
107 .IP
108 This option is incompatible with \fB\-N\fR or \fB\-\-normal\fR and
109 with \fB\-H\fR or \fB\-\-hub\fR.  If more than one is specified then
110 this option takes precedence.
111 .IP
112 This option may be useful for testing or debugging quality of service
113 setups.
114 .
115 .IP "\fB\-Q \fIport-name\fB:\fIqueue-id\fR"
116 .IP "\fB\-\-port\-queue \fIport-name\fB:\fIqueue-id\fR"
117 Configures packets received on the port named \fIport-name\fR
118 (e.g. \fBeth0\fR) to be output on OpenFlow queue ID \fIqueue-id\fR
119 (specified as a decimal number).  For the specified port, this option
120 overrides the default specified on \fB\-q\fR or \fB\-\-queue\fR.
121 .IP
122 This option may be specified any number of times with different
123 \Iport-name\fR arguments.
124 .IP
125 This option is incompatible with \fB\-N\fR or \fB\-\-normal\fR and
126 with \fB\-H\fR or \fB\-\-hub\fR.  If more than one is specified then
127 this option takes precedence.
128 .IP
129 This option may be useful for testing or debugging quality of service
130 setups.
131 .
132 .IP "\fB\-\-with\-flows \fIfile\fR"
133 When a switch connects, push the flow entries as described in
134 \fIfile\fR.  Each line in \fIfile\fR is a flow entry in the format
135 described for the \fBadd\-flows\fR command in the \fBFlow Syntax\fR
136 section of the \fBovs\-ofctl\fR(8) man page.
137 .IP
138 Use this option more than once to add flows from multiple files.
139 .
140 .SS "Public Key Infrastructure Options"
141 .so lib/ssl.man
142 .so lib/ssl-peer-ca-cert.man
143 .ds DD
144 .so lib/daemon.man
145 .so lib/vlog.man
146 .so lib/unixctl.man
147 .so lib/common.man
148 .
149 .SH EXAMPLES
150 .PP
151 To bind locally to port 6633 (the default) and wait for incoming
152 connections from OpenFlow switches:
153 .IP
154 \fB% ovs\-controller ptcp:\fR
155 .SH "BUGS"
156 .PP
157 Configuring a Citrix XenServer to connect to a particular controller
158 only points the remote OVSDB management connection to that controller.
159 It does not also configure OpenFlow connections, because the manager
160 is expected to do that over the management protocol.
161 \fBovs\-controller\fR is not an Open vSwitch manager and does not know
162 how to do that.
163 .PP
164 As a stopgap workaround, \fBovs\-vsctl\fR can wait for an OVSDB
165 connection and set the controller, e.g.:
166 .IP
167 \fB% ovs\-vsctl \-t0 \-\-db=pssl: \-\-certificate=cert.pem
168 \-\-ca\-cert=none \-\-private\-key=privkey.pem
169 \-\-peer\-ca\-cert=cacert.pem set\-controller ssl:\fIip\fR
170 .SH "SEE ALSO"
171 .
172 .BR ovs\-openflowd (8),
173 .BR ovs\-appctl (8),
174 .BR ovs\-ofctl (8),
175 .BR ovs\-dpctl (8)