[ovs-dev] Regarding TSO using AF_PACKET in OVS

Ramana Reddy gtvrreddy at gmail.com
Wed Aug 28 11:10:41 UTC 2019

Hi Ben, Justin, Jesse and All,

Hope everyone doing great.

During my work, I create a socket using AF_PACKET with virtio_net_hdr and
filled all the fields in the virtio_net_hdr
and the flag to VIRTIO_NET_GSO_TCPV4 to enable TSO using af_packet.

vnet->gso_type = VIRTIO_NET_HDR_GSO_TCPV4;

The code is not working when I am trying to send large packets over OVS
VXLAN tunnel. It's dropping the large packets and
the application is resending the MTU sized packets. The code is working
fine in non ovs case (directly sending without ovs).

I understood that UDP tunneling offloading (VXLAN) not happening because of
nic may not support this offloading feature,
but when I send iperf (AF_INET) traffic, though the offloading is not
happening, but the large packets are fragmented and the
VXLAN tunneling sending the fragmented packets.  Why are we seeing this
different behavior?

What is the expected behavior in AF_PACKET in OVS? Does OVS support
AF_PACKET offloading mechanism?
If not, how we can avoid the retransmission of the packets. What are things
to be done so that the kernel fragments
large packets and send them out without dropping ( in case if offloading
feature not available)?

Looking forward to your reply.


More information about the dev mailing list