Hi Ian,
This one affects TSO which I think you have interest. If you're okay with the patch, could you please merge it? Thanks, fbl On Mon, Jul 05, 2021 at 07:57:41AM -0400, Eelco Chaudron wrote: > When TSO is disabled from a userspace forwarding datapath perspective, > but TSO has been wrongly enabled on the kernel side, log a warning > message, and drop the packet. With the current implementation, > OVS will crash. > > Fixes: 73858f9db ("netdev-linux: Prepend the std packet in the TSO packet") > Signed-off-by: Eelco Chaudron <echau...@redhat.com> > --- > v2: Fixed rx->aux_bufs[i] to allow reuse > > lib/netdev-linux.c | 20 +++++++++++++++++--- > 1 file changed, 17 insertions(+), 3 deletions(-) > > diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c > index 07ece0c7f..d5e693464 100644 > --- a/lib/netdev-linux.c > +++ b/lib/netdev-linux.c > @@ -1292,14 +1292,28 @@ netdev_linux_batch_rxq_recv_sock(struct > netdev_rxq_linux *rx, int mtu, > for (i = 0; i < retval; i++) { > struct dp_packet *pkt; > > - if (mmsgs[i].msg_len < ETH_HEADER_LEN) { > + if (mmsgs[i].msg_hdr.msg_flags & MSG_TRUNC > + || mmsgs[i].msg_len < ETH_HEADER_LEN) { > struct netdev *netdev_ = netdev_rxq_get_netdev(&rx->up); > struct netdev_linux *netdev = netdev_linux_cast(netdev_); > > + /* The rx->aux_bufs[i] will be re-used next time. */ > dp_packet_delete(buffers[i]); > netdev->rx_dropped += 1; > - VLOG_WARN_RL(&rl, "%s: Dropped packet: less than ether hdr size", > - netdev_get_name(netdev_)); > + if (mmsgs[i].msg_hdr.msg_flags & MSG_TRUNC) { > + /* Data is truncated, so the packet is corrupted, and needs > + * to be dropped. This can happen if TSO/GRO is enabled in > + * the kernel, but not in userspace, i.e. there is no dp > + * buffer to store the full packet. */ > + VLOG_WARN_RL(&rl, > + "%s: Dropped packet: Too big. GRO/TSO enabled?", > + netdev_get_name(netdev_)); > + } else { > + VLOG_WARN_RL(&rl, > + "%s: Dropped packet: less than ether hdr size", > + netdev_get_name(netdev_)); > + } > + > continue; > } > > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev -- fbl _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev