Jumbo frames truncated at 4084 bytes by virtio-net? (using if_bridge(4) and vtnet(4) with mtu 9000)

Harry Schmalzbauer freebsd at omnilan.de
Tue Jan 3 17:33:29 UTC 2017


 Bezüglich Harry Schmalzbauer's Nachricht vom 21.12.2016 17:40 (localtime):
>  Bezüglich Harry Schmalzbauer's Nachricht vom 21.12.2016 17:08 (localtime):
>
>>> Guest flow:
>> 16:57:06.642073 00:a0:98:73:9f:42 > 96:07:e9:78:c6:ac, ethertype IPv4
>> (0x0800), length 4085: 172.21.35.1 > 172.21.35.32: ICMP echo request, id
>> 27401, seq 0, length 4051
>> 16:57:06.642233 96:07:e9:78:c6:ac > 00:a0:98:73:9f:42, ethertype IPv4
>> (0x0800), length 4084: truncated-ip - 1 bytes missing! 172.21.35.32 >
>> 172.21.35.1: ICMP echo reply, id 27401, seq 0, length 405
>>
>> Now my problem is that I can't simply keep guest's mtu at 1500, since
>> the host will send jumbo frames as answer wich never get through virtio-net.
>>
>> Does anybody have an idea how to fix/work arround?
> For the records, replacing virtio-net with e1000 (as bhyve
> PCI-slot-resident) solves the jumbo frame issue!
> It seems 82545EM is fully emulated (not 82545GM which doesn't support
> jumbo frames) :-)
>
> Thank you very much for this nice work!
>
> mav's commit (r302504) mentions heavy performance penalties (factor 2).

Real world usage shows slightly heavier penalty.
Simply doing 'make package-depends-list' of x11/kde4 takes 1:22 with
virtio-net and 3:25 with e1000 (nfsv4 mounted ports tree).

I've filed a bug report:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215737

Hopefully fixing that isn't too complicated...

thanks,

-harry


More information about the freebsd-virtualization mailing list