> >>
> >>I am not sure why Windows kernel doesn't compute UDP checksum for all
> >>tunnels. I added Nithin to the thread to see if he has some idea. My
> >>wild guess is that it tries to save some computational workload.
> >
> >My guess is that it is because VXLAN originally specified that
> >checksums should not be used. However, my expectation is the checksums
> >will be more common with Geneve and in all cases the request of
> >userspace should be honored. It also seemed like GRE was allocating
> >space for the checksum but not actually computing/verifying it, which
> >is odd. However, it's definitely possible that I'm missing something.
> 
> Yes indeed. For VXLAN, UDP checksum was optional and we got by without
> calculating it. We seem to be parsing the OVS_TUNNEL_KEY_ATTR_CSUM
> attribute. So, might as well add the code to request NDIS to calculate UDP
> checksum if OVS_TNL_F_CSUM is set.
> 
> For GRE, you are right Jesse. Looks like we are punting on calculating
> checksum even though we reserved space for it. On the sending side there¹s
> no validation either so, that make Hyper-V to Hyper-V case work. KVM to
> Hyper-V interop would probably fail.
In the case for VXLAN indeed originally it was specified that udp checks should 
be set to zero.

In the case of GRE I only implemented and tested (KVM to Hyper-V) minimal 
support for it (GRE_KEY) as used by OpenStack. GRE_CSUM is an optional field so 
I skimmed on it. I wanted to add support for checksums when I had time to add 
GRE_SEQ but I will send out a patch for VXLAN and GRE checksums this evening.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to