The encaps
column in the Chassis
table refers to rows in this
table to identify how OVN may transmit logical dataplane packets
to this chassis. Each chassis, via ovn-controller(8) or
ovn-controller-vtep(8), adds and updates its own rows and keeps a
copy of the remaining rows to determine how to reach other
chassis.
Summary:
type
string, one of geneve
, stt
, or
vxlan
options
map of string-string pairs
options : csum
optional string, either true
or
false
options : dst_port
optional string, containing an
integer
ip
string
chassis_name
string
Details:
type
: string, one of geneve
, stt
, or vxlan
The encapsulation to use to transmit packets to this
chassis. Hypervisors must use either geneve
or stt
.
Gateways may use vxlan
, geneve
, or stt
.
options
: map of string-string pairs
Options for configuring the encapsulation, which may be
type
specific.
options : csum
: optional string, either true
or false
csum
indicates whether this chassis can transmit and
receive packets that include checksums with reasonable
performance. It hints to senders transmitting data to this
chassis that they should use checksums to protect OVN
metadata. ovn-controller
populates this key with the value
defined in external_ids:ovn-encap-csum
column of the
Open_vSwitch database's Open_vSwitch
table. Other
applications should treat this key as read-only. See
ovn-controller(8) for more information.
In terms of performance, checksumming actually
significantly increases throughput in most common cases
when running on Linux based hosts without NICs supporting
encapsulation hardware offload (around 60% for bulk
traffic). The reason is that generally all NICs are
capable of offloading transmitted and received TCP/UDP
checksums (viewed as ordinary data packets and not as
tunnels). The benefit comes on the receive side where the
validated outer checksum can be used to additionally
validate an inner checksum (such as TCP), which in turn
allows aggregation of packets to be more efficiently
handled by the rest of the stack.
Not all devices see such a benefit. The most notable
exception is hardware VTEPs. These devices are designed to
not buffer entire packets in their switching engines and
are therefore unable to efficiently compute or validate
full packet checksums. In addition certain versions of the
Linux kernel are not able to fully take advantage of
encapsulation NIC offloads in the presence of checksums.
(This is actually a pretty narrow corner case though:
earlier versions of Linux don't support encapsulation
offloads at all and later versions support both offloads
and checksums well.)
csum
defaults to false
for hardware VTEPs and true
for all
other cases.
This option applies to geneve
and vxlan
encapsulations.
options : dst_port
: optional string, containing an integer
If set, overrides the UDP (for geneve
and vxlan
) or TCP
(for stt
) destination port.
ip
: string
The IPv4 address of the encapsulation tunnel endpoint.
chassis_name
: string
The name of the chassis that created this encap.