схема базы данных OVN_Southbound (OVN_Southbound database schema)
Encap TABLE
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.