On Thu, Aug 11, 2016 at 7:10 PM, Ryan Moats <rmo...@us.ibm.com> wrote:
> "dev" <dev-boun...@openvswitch.org> wrote on 08/11/2016 07:20:34 PM:
>
>> From: Jesse Gross <je...@kernel.org>
>> To: dev@openvswitch.org
>> Date: 08/11/2016 07:22 PM
>> Subject: [ovs-dev] [PATCH rebase 3/3] ovn-controller: Use UDP
>> checksums when creating Geneve tunnels.
>> Sent by: "dev" <dev-boun...@openvswitch.org>
>
>
>>
>> Currently metadata transmitted by OVN over Geneve tunnels is
>> unprotected by any checksum other than the one provided by the link
>> layer - this includes both the VNI and data stored in options. Turning
>> on UDP checksums which cover this data has obvious benefits in terms of
>> integrity protection.
>>
>> In terms of performance, this actually significantly increases throughput
>> in most common cases when running on Linux based hosts without NICs
>> supporting Geneve offload (around 60% for bulk traffic). The reason is
>> that generally all NICs are capable of offloading transmitted and received
>> UDP checksums (viewed as ordinary UDP packets and not as tunnels). The
>> benefit comes on the receive side where the validated outer UDP 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 (currently using VXLAN but potentially Geneve in the future). These
>> devices are designed to not buffer entire packets in their switching
>> engines
>> and are therefore unable to efficiently compute or validate UDP checksums.
>> In addition certain versions of the Linux kernel are not able to fully
>> take advantage of Geneve capable NIC offloads in the presence of
>> checksums.
>> (This is actually a pretty narrow corner case though - earlier versions of
>> Linux don't support Geneve offloads at all and later versions support both
>> offloads and checksums well.)
>>
>> In order avoid possible problems with these cases, efficient checksum
>> receive performance is exposed as an encap option in the southbound
>> database as a hint to remote senders. This currently defaults to off
>> for hardware VTEPs and on for all other cases.
>>
>> Signed-off-by: Jesse Gross <je...@kernel.org>
>> ---
>
> Patch 2/3 never made my mailbox, so I'm using this to comment on both
> patches
>
> While I understand patch 2/3 does and I like, I'd like it even better if
> it had test cases that would help me understand the changes that weren't
> picked up by the original code, because that's a potential future
> regression.
>
> Assuming that is handled in a follow-on patch, consider this an ack on
> both parts 2 and 3...

Thanks for the review - I rolled some test cases directly into this
patch. While I think this is a good idea and should catch the most
common types of problems, as I mentioned in the previous message to
Ben I'm not sure that this is something that we can test our way out
of - there are simply too many possible corner cases. A better
solution would seem to be a common rule engine that can maintain
mappings and invariants based some business logic.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to