]>
Commit | Line | Data |
---|---|---|
11e02906 SF |
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 | ||
5813d810 SF |
37 | For more information on the Open vSwitch release process, refer to |
38 | :doc:`/internals/release-process`. | |
11e02906 SF |
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 | |
27b5fbb2 | 67 | 2.7.x 3.10 to 4.9 |
49705e1b | 68 | 2.8.x 3.10 to 4.12 |
4a67e420 | 69 | 2.9.x 3.10 to 4.13 |
dff2a6e9 GR |
70 | 2.10.x 3.16 to 4.17 |
71 | 2.11.x 3.16 to 4.18 | |
72 | 2.12.x 3.16 to 5.0 | |
73 | 2.14.x 3.16 to 5.5 | |
11e02906 SF |
74 | ============ ============== |
75 | ||
76 | Open vSwitch userspace should also work with the Linux kernel module built | |
77 | into Linux 3.3 and later. | |
78 | ||
79 | Open vSwitch userspace is not sensitive to the Linux kernel version. It | |
80 | should build against almost any kernel, certainly against 2.6.32 and later. | |
81 | ||
dff2a6e9 GR |
82 | Open vSwitch branches 2.10 through 2.14 will still compile against the |
83 | RHEL and CentOS 7 3.10 based kernels since they have diverged from the | |
84 | Linux kernel.org 3.10 kernels. | |
85 | ||
11e02906 SF |
86 | Q: Are all features available with all datapaths? |
87 | ||
88 | A: Open vSwitch supports different datapaths on different platforms. Each | |
89 | datapath has a different feature set: the following tables try to summarize | |
90 | the status. | |
91 | ||
92 | Supported datapaths: | |
93 | ||
94 | Linux upstream | |
95 | The datapath implemented by the kernel module shipped with Linux | |
96 | upstream. Since features have been gradually introduced into the kernel, | |
97 | the table mentions the first Linux release whose OVS module supports the | |
98 | feature. | |
99 | ||
100 | Linux OVS tree | |
101 | The datapath implemented by the Linux kernel module distributed with the | |
102 | OVS source tree. | |
103 | ||
104 | Userspace | |
653eedff BP |
105 | This datapath supports conventional system devices as well as |
106 | DPDK and AF_XDP devices when support for those is built. This | |
107 | is the only datapath that works on NetBSD, FreeBSD and Mac OSX. | |
11e02906 SF |
108 | |
109 | Hyper-V | |
110 | Also known as the Windows datapath. | |
111 | ||
653eedff BP |
112 | The following table lists the datapath supported features from an |
113 | Open vSwitch user's perspective. The "Linux upstream" column | |
114 | lists the Linux kernel version that introduced a given feature | |
115 | into its kernel module. The "Linux OVS tree" and "Userspace" | |
116 | columns list the Open vSwitch release versions that introduced a | |
117 | given feature into the included kernel module or the userspace | |
118 | datapath, respectively. | |
11e02906 | 119 | |
4ea96698 DB |
120 | ========================== ============== ============== ========= ======= |
121 | Feature Linux upstream Linux OVS tree Userspace Hyper-V | |
122 | ========================== ============== ============== ========= ======= | |
653eedff | 123 | Connection tracking 4.3 2.5 2.6 YES |
5623ed2d | 124 | Conntrack Fragment Reass. 4.3 2.6 2.12 YES |
2078901a | 125 | Conntrack Timeout Policies 5.2 2.12 2.14 NO |
a7f33fdb | 126 | Conntrack Zone Limit 4.18 2.10 2.13 YES |
13ede8c1 | 127 | Conntrack NAT 4.6 2.6 2.8 YES |
653eedff BP |
128 | Tunnel - LISP NO 2.11 NO NO |
129 | Tunnel - STT NO 2.4 NO YES | |
130 | Tunnel - GRE 3.11 1.0 2.4 YES | |
131 | Tunnel - VXLAN 3.12 1.10 2.4 YES | |
132 | Tunnel - Geneve 3.18 2.4 2.4 YES | |
133 | Tunnel - GRE-IPv6 4.18 2.6 2.6 NO | |
134 | Tunnel - VXLAN-IPv6 4.3 2.6 2.6 NO | |
135 | Tunnel - Geneve-IPv6 4.4 2.6 2.6 NO | |
136 | Tunnel - ERSPAN 4.18 2.10 2.10 NO | |
137 | Tunnel - ERSPAN-IPv6 4.18 2.10 2.10 NO | |
8c2b63b7 | 138 | Tunnel - GTP-U NO NO 2.14 NO |
653eedff BP |
139 | QoS - Policing YES 1.1 2.6 NO |
140 | QoS - Shaping YES 1.1 NO NO | |
141 | sFlow YES 1.0 1.0 NO | |
142 | IPFIX 3.10 1.11 1.11 YES | |
143 | Set action YES 1.0 1.0 PARTIAL | |
144 | NIC Bonding YES 1.0 1.0 YES | |
145 | Multiple VTEPs YES 1.10 1.10 YES | |
13ede8c1 | 146 | Meter action 4.15 2.10 2.7 NO |
cbff5189 | 147 | check_pkt_len action 5.2 2.12 2.12 NO |
4ea96698 | 148 | ========================== ============== ============== ========= ======= |
11e02906 SF |
149 | |
150 | Do note, however: | |
151 | ||
152 | * Only a limited set of flow fields is modifiable via the set action by the | |
153 | Hyper-V datapath. | |
11e02906 | 154 | |
b50268e8 DB |
155 | * Userspace datapath support, in some cases, is dependent on the associated |
156 | interface types. For example, DPDK interfaces support ingress and egress | |
157 | policing, but not shaping. | |
158 | ||
11e02906 SF |
159 | The following table lists features that do not *directly* impact an Open |
160 | vSwitch user, e.g. because their absence can be hidden by the ofproto layer | |
161 | (usually this comes with a performance penalty). | |
162 | ||
163 | ===================== ============== ============== ========= ======= | |
164 | Feature Linux upstream Linux OVS tree Userspace Hyper-V | |
165 | ===================== ============== ============== ========= ======= | |
166 | SCTP flows 3.12 YES YES YES | |
167 | MPLS 3.19 YES YES YES | |
168 | UFID 4.0 YES YES NO | |
169 | Megaflows 3.12 YES YES NO | |
170 | Masked set action 4.0 YES YES NO | |
171 | Recirculation 3.19 YES YES YES | |
172 | TCP flags matching 3.13 YES YES NO | |
173 | Validate flow actions YES YES N/A NO | |
174 | Multiple datapaths YES YES YES NO | |
175 | Tunnel TSO - STT N/A YES NO YES | |
176 | ===================== ============== ============== ========= ======= | |
177 | ||
178 | Q: What DPDK version does each Open vSwitch release work with? | |
179 | ||
180 | A: The following table lists the DPDK version against which the given | |
181 | versions of Open vSwitch will successfully build. | |
182 | ||
489b23fe | 183 | ============ ======= |
11e02906 | 184 | Open vSwitch DPDK |
489b23fe | 185 | ============ ======= |
11e02906 SF |
186 | 2.2.x 1.6 |
187 | 2.3.x 1.6 | |
188 | 2.4.x 2.0 | |
189 | 2.5.x 2.2 | |
489b23fe | 190 | 2.6.x 16.07.2 |
b5355b0d | 191 | 2.7.x 16.11.9 |
dad35c4f | 192 | 2.8.x 17.05.2 |
bafb398b IS |
193 | 2.9.x 17.11.4 |
194 | 2.10.x 17.11.4 | |
486139d9 TK |
195 | 2.11.x 18.11.6 |
196 | 2.12.x 18.11.6 | |
197 | 2.13.x 19.11.0 | |
489b23fe | 198 | ============ ======= |
11e02906 | 199 | |
6b71df2f KT |
200 | Q: Are all the DPDK releases that OVS versions work with maintained? |
201 | ||
202 | No. DPDK follows YY.MM.n (Year.Month.Number) versioning. | |
203 | ||
204 | Typically, all DPDK releases get a stable YY.MM.1 update with bugfixes 3 | |
205 | months after the YY.MM.0 release. In some cases there may also be a | |
206 | YY.MM.2 release. | |
207 | ||
208 | DPDK LTS releases start once a year at YY.11.0 and are maintained for | |
209 | two years, with YY.MM.n+1 releases around every 3 months. | |
210 | ||
211 | The latest information about DPDK stable and LTS releases can be found | |
212 | at `DPDK stable`_. | |
213 | ||
214 | .. _DPDK stable: http://dpdk.org/doc/guides/contributing/stable.html | |
215 | ||
8f60b9bb | 216 | Q: I get an error like this when I configure Open vSwitch: |
11e02906 | 217 | |
8f60b9bb SF |
218 | configure: error: Linux kernel in <dir> is version <x>, but |
219 | version newer than <y> is not supported (please refer to the | |
220 | FAQ for advice) | |
11e02906 | 221 | |
8f60b9bb | 222 | What should I do? |
11e02906 SF |
223 | |
224 | A: You have the following options: | |
225 | ||
226 | - Use the Linux kernel module supplied with the kernel that you are using. | |
227 | (See also the following FAQ.) | |
228 | ||
229 | - If there is a newer released version of Open vSwitch, consider building | |
230 | that one, because it may support the kernel that you are building | |
231 | against. (To find out, consult the table in the previous FAQ.) | |
232 | ||
233 | - The Open vSwitch "master" branch may support the kernel that you are | |
234 | using, so consider building the kernel module from "master". | |
235 | ||
236 | All versions of Open vSwitch userspace are compatible with all versions of | |
237 | the Open vSwitch kernel module, so you do not have to use the kernel module | |
238 | from one source along with the userspace programs from the same source. | |
239 | ||
240 | Q: What features are not available in the Open vSwitch kernel datapath that | |
241 | ships as part of the upstream Linux kernel? | |
242 | ||
243 | A: The kernel module in upstream Linux does not include support for LISP. | |
244 | Work is in progress to add support for LISP to the upstream Linux version | |
245 | of the Open vSwitch kernel module. For now, if you need this feature, use | |
246 | the kernel module from the Open vSwitch distribution instead of the | |
247 | upstream Linux kernel module. | |
248 | ||
249 | Certain features require kernel support to function or to have reasonable | |
250 | performance. If the ovs-vswitchd log file indicates that a feature is not | |
251 | supported, consider upgrading to a newer upstream Linux release or using | |
252 | the kernel module paired with the userspace distribution. | |
253 | ||
254 | Q: Why do tunnels not work when using a kernel module other than the one | |
255 | packaged with Open vSwitch? | |
256 | ||
257 | A: Support for tunnels was added to the upstream Linux kernel module after | |
258 | the rest of Open vSwitch. As a result, some kernels may contain support for | |
259 | Open vSwitch but not tunnels. The minimum kernel version that supports each | |
260 | tunnel protocol is: | |
261 | ||
262 | ======== ============ | |
263 | Protocol Linux Kernel | |
264 | ======== ============ | |
265 | GRE 3.11 | |
266 | VXLAN 3.12 | |
267 | Geneve 3.18 | |
da5b26ad | 268 | ERSPAN 4.18 |
11e02906 SF |
269 | LISP not upstream |
270 | STT not upstream | |
271 | ======== ============ | |
272 | ||
273 | If you are using a version of the kernel that is older than the one listed | |
274 | above, it is still possible to use that tunnel protocol. However, you must | |
275 | compile and install the kernel module included with the Open vSwitch | |
276 | distribution rather than the one on your machine. If problems persist after | |
277 | doing this, check to make sure that the module that is loaded is the one | |
278 | you expect. | |
279 | ||
280 | Q: Why are UDP tunnel checksums not computed for VXLAN or Geneve? | |
281 | ||
282 | A: Generating outer UDP checksums requires kernel support that was not part | |
283 | of the initial implementation of these protocols. If using the upstream | |
284 | Linux Open vSwitch module, you must use kernel 4.0 or newer. The | |
285 | out-of-tree modules from Open vSwitch release 2.4 and later support UDP | |
286 | checksums. | |
287 | ||
288 | Q: What features are not available when using the userspace datapath? | |
289 | ||
290 | A: Tunnel virtual ports are not supported, as described in the previous | |
291 | answer. It is also not possible to use queue-related actions. On Linux | |
292 | kernels before 2.6.39, maximum-sized VLAN packets may not be transmitted. | |
293 | ||
294 | Q: Should userspace or kernel be upgraded first to minimize downtime? | |
295 | ||
296 | A. In general, the Open vSwitch userspace should be used with the kernel | |
297 | version included in the same release or with the version from upstream | |
298 | Linux. However, when upgrading between two releases of Open vSwitch it is | |
299 | best to migrate userspace first to reduce the possibility of | |
300 | incompatibilities. | |
301 | ||
302 | Q: What happened to the bridge compatibility feature? | |
303 | ||
304 | A: Bridge compatibility was a feature of Open vSwitch 1.9 and earlier. | |
305 | When it was enabled, Open vSwitch imitated the interface of the Linux | |
306 | kernel "bridge" module. This allowed users to drop Open vSwitch into | |
307 | environments designed to use the Linux kernel bridge module without | |
308 | adapting the environment to use Open vSwitch. | |
309 | ||
310 | Open vSwitch 1.10 and later do not support bridge compatibility. The | |
311 | feature was dropped because version 1.10 adopted a new internal | |
312 | architecture that made bridge compatibility difficult to maintain. Now | |
313 | that many environments use OVS directly, it would be rarely useful in any | |
314 | case. | |
315 | ||
316 | To use bridge compatibility, install OVS 1.9 or earlier, including the | |
317 | accompanying kernel modules (both the main and bridge compatibility | |
318 | modules), following the instructions that come with the release. Be sure | |
319 | to start the ovs-brcompatd daemon. |