[Bug 215737] [bhyve] utilizing virtio-net truncates jumbo frames at 4084 bytes length

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Jan 3 16:19:52 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215737

            Bug ID: 215737
           Summary: [bhyve] utilizing virtio-net truncates jumbo frames at
                    4084 bytes length
           Product: Base System
           Version: 11.0-STABLE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: misc
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: bugzilla.freebsd at omnilan.de
                CC: freebsd-amd64 at FreeBSD.org
                CC: freebsd-amd64 at FreeBSD.org

Steps to reproduce:
'ifconfig create vmnet0 mtu 9000'
'ifconfig brigde0 addm vmnet0'

Set guest mtu to 9000 (which vtnet(4) claims to support).
Now we can transceive frames up to 4084 bytes,
which this flow from the guest's vtnet(4) interface demonstrates:
16:54:36.672709 00:a0:98:73:9f:42 > 96:07:e9:78:c6:ac, ethertype IPv4
(0x0800), length 4084: 172.21.35.1 > 172.21.35.32: ICMP echo request, id
56840, seq 0, length 4050
16:54:36.672791 96:07:e9:78:c6:ac > 00:a0:98:73:9f:42, ethertype IPv4
(0x0800), length 4084: 172.21.35.32 > 172.21.35.1: ICMP echo reply, id
56840, seq 0, length 4050
On the host this looks similar.

Now with a payload size of 4043 instead of 4042 bytes, the reply never
makes it through virtio-net:
Host flow:
16:57:06.641382 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.641399 96:07:e9:78:c6:ac > 00:a0:98:73:9f:42, ethertype IPv4
(0x0800), length 4085: 172.21.35.32 > 172.21.35.1: ICMP echo reply, id
27401, seq 0, length 4051
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

When using exactly the same setup, just replacing virtio-net with e1000 ('-s
5,virtio-net,vmnet0' with '-s 5,e1000,vmnet0'), jumbo frames do work as
expected.

Andrey V. Elsukov idea:
> This looks like the problem with mbufs bigger than PAGE_SIZE.
> Do you see some denied requests in the `netstat -m` output?

Nope, there are no denied mbuf requests after sending icmp echo-request
through virtio-net with all participants' MTU set to 9000:
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0 requests for sfbufs denied

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-amd64 mailing list