[ovs-discuss] Small 802.1q-prepended packets not getting through to VM

Ben Pfaff blp at ovn.org
Fri Jun 7 16:08:09 UTC 2019


On Thu, Jun 06, 2019 at 09:31:59AM +0200, Steinar H. Gunderson wrote:
> On Wed, Jun 05, 2019 at 02:45:53PM -0700, Ben Pfaff wrote:
> > OVS, or at least the OVS kernel module, doesn't generate packets.  It
> > accepts them for processing from some source and then (sometimes)
> > delivers them to some destination.  Generally it expects that anything
> > that comes in is suitable to be sent back out without further
> > modification.
> 
> Yes, I think this is the basic problem. Everybody on the path assumes that
> if padding is needed, that's someone else's responsibility. :-)
> 
> I can understand that when just switching packets around internally on the
> same host, one can take shortcuts like not padding or ignoring the checksum.
> (I did mention that the packets also reach the VM with the wrong checksums,
> right?) But when it goes out somewhere external, be it a VM or an external
> NIC, these things need to be in place.
> 
> > If the packet comes in on OVS internal port, then that puts the focus
> > slightly more on OVS.  There could be a bug in the internal port
> > implementation.  However, even there OVS doesn't really assemble the
> > packet, it comes from the Linux TCP/IP stack and the OVS internal port
> > just accepts it.
> 
> Yes, but I suppose it sets some sort of flags for what's acceptable?
> At least in the case of checksums.
> 
> > I would think that the Linux host driver transmitting the packet would
> > ensure that it is padded so as to be acceptable for the media it will be
> > transmitted on (virtual media in this case).  I think that drivers for
> > physical media typically do this (but it's been years since I've been
> > familiar with the Linux network driver model).
> 
> I believe physical media drivers do this, yes. Whether hostnet/virtio does
> it... no idea, but it would seem not. :-)

Greg, so far everything here is speculation on my part.  Do you have any
facts to inject?


More information about the discuss mailing list