Hi All,

I want to use Virtio with JUMBO frame support without TSOv4, TSOv6 and GSO.

Looks like without TSOv4, TSOv6 and GSO. The max number of segments allowed for 
scatter gather operations is 4. 

But, if TSOv4, TSOv6 or GSO feature is enabled, max segments for scatter gather 
is set to 64.

sys/dev/virtio/network/if_vtnet.c
==================================
if (virtio_with_feature(dev, VIRTIO_NET_F_GSO) ||
    virtio_with_feature(dev, VIRTIO_NET_F_HOST_TSO4) ||
    virtio_with_feature(dev, VIRTIO_NET_F_HOST_TSO6))
        sc->vtnet_tx_nsegs = VTNET_MAX_TX_SEGS; <== 64
else
        sc->vtnet_tx_nsegs = VTNET_MIN_TX_SEGS; <== 4

In my case since I don’t have TSOv4, TSOv6 or GSO enabled, so max segments is 4.
And if I try to send PING echo with size 18000 or more (results into 3 frames), 
driver is failing to send it. PING with size less than 15000 works always.

Using dtrace and vtnet sysctls found that, in my case scatter gather segments 
are more than 4 and thats why EFBIG error is returned by sglist_append_mbuf().

Also, vtnet defrag failed stats are increasing,
dev.vtnet.4.tx_defragged: 111443
dev.vtnet.4.tx_defrag_failed: 7917

These changes were done in following commit
https://svnweb.freebsd.org/base?view=revision&revision=261394

So, is JUMBO frame support allowed only with TSO support or am I missing 
something.

Any help is appreciated.

Thanks,
Lohith

_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to