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
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[email protected]"