Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Apr 2026 19:48:18 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 294831] iflib clamps receive buffer to 4k causing jumbo frames to get dropped
Message-ID:  <bug-294831-227@https.bugs.freebsd.org/bugzilla/>

index | next in thread | raw e-mail

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

            Bug ID: 294831
           Summary: iflib clamps receive buffer to 4k causing jumbo frames
                    to get dropped
           Product: Base System
           Version: 15.0-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: pingpong7001@tutamail.com

When using vmware workstation and enabling jumbo frames on the vmxnet3 driver,
I appear to be dropping incomming frames with anything larger than an MTU of
4082 bytes.  On investigation, it appear that the issue is
dev.vmx.0.iflib.rxq0.rxq_fl1.buf_size gets clamped to 4096 (or 2048) in
https://cgit.freebsd.org/src/tree/sys/net/iflib.c#n2448.

I have a freebsd 14 box running on metal with a intel x550-t2 card, which using
the ix driver which also appears to use iflib, but does not have this issue.  I
am wondering if it is something dumb like vmware workstation does not split
those larger frames across receive decriptors natively and the nic does ?  I am
not an expert here, just an assumption.

I updated iflib_get_mbuf_size_for to set the receive buffer size depending on
what the MTU is.  So with MTU of 9000, the buffer size gets set to 9216.

static uint16_t
iflib_get_mbuf_size_for(unsigned int size)
{

        if (size <= MCLBYTES)
                return (MCLBYTES);
        else if (size <= MJUMPAGESIZE)
                return (MJUMPAGESIZE);
        else if (size <= MJUM9BYTES)
                return (MJUM9BYTES);
        else
                return (MJUM16BYTES);
}

I am not sure if this is the appropriate fix, or if there is a reason iflib
clamps at 4k but it works for me, and thought this might be valuable to others
if they are also hitting this.

Is this something that you might want to roll into a fix going forward ?

-- 
You are receiving this mail because:
You are the assignee for the bug.

home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-294831-227>