|:--------:|:-------------:
| GRE | 3.11
| VXLAN | 3.12
+| Geneve | 3.18
| LISP | <not upstream>
If you are using a version of the kernel that is older than the one
persist after doing this, check to make sure that the module that is
loaded is the one you expect.
+### Q: Why are UDP tunnel checksums not computed for VXLAN or Geneve?
+
+A: Generating outer UDP checksums requires kernel support that was not
+ part of the initial implementation of these protocols. If using the
+ upstream Linux Open vSwitch module, you must use kernel 4.0 or
+ newer. The out-of-tree modules from Open vSwitch release 2.4 and later
+ support UDP checksums.
+
### Q: What features are not available when using the userspace datapath?
A: Tunnel virtual ports are not supported, as described in the
struct netdev_tunnel_config tnl_cfg;
struct smap_node *node;
- has_csum = strstr(type, "gre");
+ has_csum = strstr(type, "gre") || strstr(type, "geneve") ||
+ strstr(type, "vxlan");
ipsec_mech_set = false;
memset(&tnl_cfg, 0, sizeof tnl_cfg);
</group>
- <group title="Tunnel Options: gre and ipsec_gre only">
+ <group title="Tunnel Options: gre, ipsec_gre, geneve, and vxlan">
<p>
- Only <code>gre</code> and <code>ipsec_gre</code> interfaces support
- these options.
+ <code>gre</code>, <code>ipsec_gre</code>, <code>geneve</code>, and
+ <code>vxlan</code> interfaces support these options.
</p>
<column name="options" key="csum" type='{"type": "boolean"}'>
<p>
- Optional. Compute GRE checksums on outgoing packets. Default is
- disabled, set to <code>true</code> to enable. Checksums present on
- incoming packets will be validated regardless of this setting.
+ Optional. Compute encapsulation header (either GRE or UDP)
+ checksums on outgoing packets. Default is disabled, set to
+ <code>true</code> to enable. Checksums present on incoming
+ packets will be validated regardless of this setting.
</p>
- <p>
- GRE checksums impose a significant performance penalty because they
- cover the entire packet. The encapsulated L3, L4, and L7 packet
- contents typically have their own checksums, so this additional
- checksum only adds value for the GRE and encapsulated L2 headers.
+ <p>
+ When using the upstream Linux kernel module, computation of
+ checksums for <code>geneve</code> and <code>vxlan</code> requires
+ Linux kernel version 4.0 or higher. <code>gre</code> supports
+ checksums for all versions of Open vSwitch that support GRE.
+ The out of tree kernel module distributed as part of OVS
+ can compute all tunnel checksums on any kernel version that it
+ is compatible with.
</p>
<p>