On 6/11/2019 11:28 AM, Steinar H. Gunderson wrote:
On Tue, Jun 11, 2019 at 11:06:15AM -0700, Gregory Rose wrote:
That depends.  Tap/tun interfaces can transfer data between user space
programs and in such cases the packets don't need to be padded to Ethernet
specs.  However, to the extent that any host interface, whether it is
virtual or physical, wants to send packets to an Ethernet switch (OVS in
this instance) then those interfaces should take care to pad their packets
to make them into legal Ethernet frames.  Or they might, and probably
should, be dropped.
The VM in question _does_ pad frames before sending them out. So that part of
the equation is just fine. The only problematic direction is OVS internal
port (which I don't know how is implemented?) -> OVS bridge -> tap -> VM.

OVS will recompute TCP/UDP checksums as well as IP checksums as necessary
based upon the packet transformations it is required to do.  However, if
the packet is not a legal Ethernet packet to begin with then behavior is
undefined since OVS is an Open Flow L2 Ethernet switch.
Again, when I send TCP on an OVS internal port, it appears to never get the
right checksum, and is forwarded to the VM with the wrong one (unless I
explicitly turn off offloading on the internal port). If that's not an OVS
bug, whose is it?

/* Steinar */

I don't understand this.  The OVS internal port is a switch port. It does not originate packets.  When
you say you 'send TCP on an OVS internal port', how are you doing that?

Also, please provide the output of the following:

'ip -s link show <name of internal port>'
'ovs-vsctl show'

on the system where the OVS bridge and internal port you mention reside.

To help clear this up - OVS switches packets.  It does not, except on some specific cases, originate packets of its own.  I certainly can't think of any time it would need to generate TCP traffic. Cases I can think of are BPDU's and STP/RSTP if it is configured for that but maybe I'm missing something obvious.  It wouldn't be the first time...

So I need to understand what you mean when you 'send TCP  on an OVS internal port'.  I have hard time
envisioning what you mean.

Thanks,

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to