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