]> git.proxmox.com Git - mirror_ovs.git/blob - Documentation/faq/releases.rst
Userspace datapath: Add fragmentation handling.
[mirror_ovs.git] / Documentation / faq / releases.rst
1 ..
2 Licensed under the Apache License, Version 2.0 (the "License"); you may
3 not use this file except in compliance with the License. You may obtain
4 a copy of the License at
5
6 http://www.apache.org/licenses/LICENSE-2.0
7
8 Unless required by applicable law or agreed to in writing, software
9 distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10 WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11 License for the specific language governing permissions and limitations
12 under the License.
13
14 Convention for heading levels in Open vSwitch documentation:
15
16 ======= Heading 0 (reserved for the title in a document)
17 ------- Heading 1
18 ~~~~~~~ Heading 2
19 +++++++ Heading 3
20 ''''''' Heading 4
21
22 Avoid deeper levels because they do not render well.
23
24 ========
25 Releases
26 ========
27
28 Q: What does it mean for an Open vSwitch release to be LTS (long-term support)?
29
30 A: All official releases have been through a comprehensive testing process
31 and are suitable for production use. Planned releases occur twice a year.
32 If a significant bug is identified in an LTS release, we will provide an
33 updated release that includes the fix. Releases that are not LTS may not
34 be fixed and may just be supplanted by the next major release. The current
35 LTS release is 2.5.x.
36
37 For more information on the Open vSwitch release process, refer to
38 :doc:`/internals/release-process`.
39
40 Q: What Linux kernel versions does each Open vSwitch release work with?
41
42 A: The following table lists the Linux kernel versions against which the
43 given versions of the Open vSwitch kernel module will successfully build.
44 The Linux kernel versions are upstream kernel versions, so Linux kernels
45 modified from the upstream sources may not build in some cases even if they
46 are based on a supported version. This is most notably true of Red Hat
47 Enterprise Linux (RHEL) kernels, which are extensively modified from
48 upstream.
49
50 ============ ==============
51 Open vSwitch Linux kernel
52 ============ ==============
53 1.4.x 2.6.18 to 3.2
54 1.5.x 2.6.18 to 3.2
55 1.6.x 2.6.18 to 3.2
56 1.7.x 2.6.18 to 3.3
57 1.8.x 2.6.18 to 3.4
58 1.9.x 2.6.18 to 3.8
59 1.10.x 2.6.18 to 3.8
60 1.11.x 2.6.18 to 3.8
61 2.0.x 2.6.32 to 3.10
62 2.1.x 2.6.32 to 3.11
63 2.3.x 2.6.32 to 3.14
64 2.4.x 2.6.32 to 4.0
65 2.5.x 2.6.32 to 4.3
66 2.6.x 3.10 to 4.7
67 2.7.x 3.10 to 4.9
68 2.8.x 3.10 to 4.12
69 2.9.x 3.10 to 4.13
70 2.10.x 3.10 to 4.17
71 2.11.x 3.10 to 4.18
72 ============ ==============
73
74 Open vSwitch userspace should also work with the Linux kernel module built
75 into Linux 3.3 and later.
76
77 Open vSwitch userspace is not sensitive to the Linux kernel version. It
78 should build against almost any kernel, certainly against 2.6.32 and later.
79
80 Q: Are all features available with all datapaths?
81
82 A: Open vSwitch supports different datapaths on different platforms. Each
83 datapath has a different feature set: the following tables try to summarize
84 the status.
85
86 Supported datapaths:
87
88 Linux upstream
89 The datapath implemented by the kernel module shipped with Linux
90 upstream. Since features have been gradually introduced into the kernel,
91 the table mentions the first Linux release whose OVS module supports the
92 feature.
93
94 Linux OVS tree
95 The datapath implemented by the Linux kernel module distributed with the
96 OVS source tree.
97
98 Userspace
99 Also known as DPDK, dpif-netdev or dummy datapath. It is the only
100 datapath that works on NetBSD, FreeBSD and Mac OSX.
101
102 Hyper-V
103 Also known as the Windows datapath.
104
105 The following table lists the datapath supported features from an Open
106 vSwitch user's perspective.
107
108 ========================== ============== ============== ========= =======
109 Feature Linux upstream Linux OVS tree Userspace Hyper-V
110 ========================== ============== ============== ========= =======
111 Connection tracking 4.3 YES YES YES
112 Conntrack Fragment Reass. 4.3 YES YES YES
113 NAT 4.6 YES YES NO
114 Conntrack zone limit 4.18 YES NO NO
115 Tunnel - LISP NO YES NO NO
116 Tunnel - STT NO YES NO YES
117 Tunnel - GRE 3.11 YES YES YES
118 Tunnel - VXLAN 3.12 YES YES YES
119 Tunnel - Geneve 3.18 YES YES YES
120 Tunnel - GRE-IPv6 NO NO YES NO
121 Tunnel - VXLAN-IPv6 4.3 YES YES NO
122 Tunnel - Geneve-IPv6 4.4 YES YES NO
123 Tunnel - ERSPAN 4.18 YES YES NO
124 Tunnel - ERSPAN-IPv6 4.18 YES YES NO
125 QoS - Policing YES YES YES NO
126 QoS - Shaping YES YES NO NO
127 sFlow YES YES YES NO
128 IPFIX 3.10 YES YES NO
129 Set action YES YES YES PARTIAL
130 NIC Bonding YES YES YES YES
131 Multiple VTEPs YES YES YES YES
132 Meters 4.15 YES YES NO
133 ========================== ============== ============== ========= =======
134
135 Do note, however:
136
137 * Only a limited set of flow fields is modifiable via the set action by the
138 Hyper-V datapath.
139
140 * Userspace datapath support, in some cases, is dependent on the associated
141 interface types. For example, DPDK interfaces support ingress and egress
142 policing, but not shaping.
143
144 The following table lists features that do not *directly* impact an Open
145 vSwitch user, e.g. because their absence can be hidden by the ofproto layer
146 (usually this comes with a performance penalty).
147
148 ===================== ============== ============== ========= =======
149 Feature Linux upstream Linux OVS tree Userspace Hyper-V
150 ===================== ============== ============== ========= =======
151 SCTP flows 3.12 YES YES YES
152 MPLS 3.19 YES YES YES
153 UFID 4.0 YES YES NO
154 Megaflows 3.12 YES YES NO
155 Masked set action 4.0 YES YES NO
156 Recirculation 3.19 YES YES YES
157 TCP flags matching 3.13 YES YES NO
158 Validate flow actions YES YES N/A NO
159 Multiple datapaths YES YES YES NO
160 Tunnel TSO - STT N/A YES NO YES
161 ===================== ============== ============== ========= =======
162
163 Q: What DPDK version does each Open vSwitch release work with?
164
165 A: The following table lists the DPDK version against which the given
166 versions of Open vSwitch will successfully build.
167
168 ============ =======
169 Open vSwitch DPDK
170 ============ =======
171 2.2.x 1.6
172 2.3.x 1.6
173 2.4.x 2.0
174 2.5.x 2.2
175 2.6.x 16.07.2
176 2.7.x 16.11.8
177 2.8.x 17.05.2
178 2.9.x 17.11.4
179 2.10.x 17.11.4
180 2.11.x 18.11
181 ============ =======
182
183 Q: Are all the DPDK releases that OVS versions work with maintained?
184
185 No. DPDK follows YY.MM.n (Year.Month.Number) versioning.
186
187 Typically, all DPDK releases get a stable YY.MM.1 update with bugfixes 3
188 months after the YY.MM.0 release. In some cases there may also be a
189 YY.MM.2 release.
190
191 DPDK LTS releases start once a year at YY.11.0 and are maintained for
192 two years, with YY.MM.n+1 releases around every 3 months.
193
194 The latest information about DPDK stable and LTS releases can be found
195 at `DPDK stable`_.
196
197 .. _DPDK stable: http://dpdk.org/doc/guides/contributing/stable.html
198
199 Q: I get an error like this when I configure Open vSwitch:
200
201 configure: error: Linux kernel in <dir> is version <x>, but
202 version newer than <y> is not supported (please refer to the
203 FAQ for advice)
204
205 What should I do?
206
207 A: You have the following options:
208
209 - Use the Linux kernel module supplied with the kernel that you are using.
210 (See also the following FAQ.)
211
212 - If there is a newer released version of Open vSwitch, consider building
213 that one, because it may support the kernel that you are building
214 against. (To find out, consult the table in the previous FAQ.)
215
216 - The Open vSwitch "master" branch may support the kernel that you are
217 using, so consider building the kernel module from "master".
218
219 All versions of Open vSwitch userspace are compatible with all versions of
220 the Open vSwitch kernel module, so you do not have to use the kernel module
221 from one source along with the userspace programs from the same source.
222
223 Q: What features are not available in the Open vSwitch kernel datapath that
224 ships as part of the upstream Linux kernel?
225
226 A: The kernel module in upstream Linux does not include support for LISP.
227 Work is in progress to add support for LISP to the upstream Linux version
228 of the Open vSwitch kernel module. For now, if you need this feature, use
229 the kernel module from the Open vSwitch distribution instead of the
230 upstream Linux kernel module.
231
232 Certain features require kernel support to function or to have reasonable
233 performance. If the ovs-vswitchd log file indicates that a feature is not
234 supported, consider upgrading to a newer upstream Linux release or using
235 the kernel module paired with the userspace distribution.
236
237 Q: Why do tunnels not work when using a kernel module other than the one
238 packaged with Open vSwitch?
239
240 A: Support for tunnels was added to the upstream Linux kernel module after
241 the rest of Open vSwitch. As a result, some kernels may contain support for
242 Open vSwitch but not tunnels. The minimum kernel version that supports each
243 tunnel protocol is:
244
245 ======== ============
246 Protocol Linux Kernel
247 ======== ============
248 GRE 3.11
249 VXLAN 3.12
250 Geneve 3.18
251 ERSPAN 4.18
252 LISP not upstream
253 STT not upstream
254 ======== ============
255
256 If you are using a version of the kernel that is older than the one listed
257 above, it is still possible to use that tunnel protocol. However, you must
258 compile and install the kernel module included with the Open vSwitch
259 distribution rather than the one on your machine. If problems persist after
260 doing this, check to make sure that the module that is loaded is the one
261 you expect.
262
263 Q: Why are UDP tunnel checksums not computed for VXLAN or Geneve?
264
265 A: Generating outer UDP checksums requires kernel support that was not part
266 of the initial implementation of these protocols. If using the upstream
267 Linux Open vSwitch module, you must use kernel 4.0 or newer. The
268 out-of-tree modules from Open vSwitch release 2.4 and later support UDP
269 checksums.
270
271 Q: What features are not available when using the userspace datapath?
272
273 A: Tunnel virtual ports are not supported, as described in the previous
274 answer. It is also not possible to use queue-related actions. On Linux
275 kernels before 2.6.39, maximum-sized VLAN packets may not be transmitted.
276
277 Q: Should userspace or kernel be upgraded first to minimize downtime?
278
279 A. In general, the Open vSwitch userspace should be used with the kernel
280 version included in the same release or with the version from upstream
281 Linux. However, when upgrading between two releases of Open vSwitch it is
282 best to migrate userspace first to reduce the possibility of
283 incompatibilities.
284
285 Q: What happened to the bridge compatibility feature?
286
287 A: Bridge compatibility was a feature of Open vSwitch 1.9 and earlier.
288 When it was enabled, Open vSwitch imitated the interface of the Linux
289 kernel "bridge" module. This allowed users to drop Open vSwitch into
290 environments designed to use the Linux kernel bridge module without
291 adapting the environment to use Open vSwitch.
292
293 Open vSwitch 1.10 and later do not support bridge compatibility. The
294 feature was dropped because version 1.10 adopted a new internal
295 architecture that made bridge compatibility difficult to maintain. Now
296 that many environments use OVS directly, it would be rarely useful in any
297 case.
298
299 To use bridge compatibility, install OVS 1.9 or earlier, including the
300 accompanying kernel modules (both the main and bridge compatibility
301 modules), following the instructions that come with the release. Be sure
302 to start the ovs-brcompatd daemon.