Page MenuHomeFreeBSD

iflib: expose the Rx mbuf buffer size to drivers

Authored by on Mar 7 2019, 12:09 AM.
Referenced Files
Unknown Object (File)
Sun, Sep 24, 7:52 PM
Unknown Object (File)
Mon, Sep 18, 12:18 AM
Unknown Object (File)
Sat, Sep 16, 8:39 PM
Unknown Object (File)
Sat, Sep 16, 8:38 PM
Unknown Object (File)
Sat, Sep 16, 8:38 PM
Unknown Object (File)
Sat, Sep 16, 8:38 PM
Unknown Object (File)
Sat, Sep 16, 8:37 PM
Unknown Object (File)
Fri, Sep 15, 4:14 PM



iflib_fl_setup calculates a suitable buffer size for the Rx mbufs based
on the isc_max_frame_size value that drivers setup. This calculation is
repeated by drivers when programming their hardware with the size of
each Rx buffer.

This can lead to a mismatch where the iflib mbuf size is different from
the expected size of the buffer as programmed by the hardware. This can
lead to unexpected results.

If iflib ever wants to support mbuf sizes larger than one page, every
driver must be updated to account for the new possible buffer sizes.

Fix this by calculating the mbuf size prior to calling IFDI_INIT, and
adding the iflib_get_rx_mbuf_sz function which will expose this value to
drivers, so that they do not repeat the same calculation.

Signed-off-by: Jacob Keller <>

Diff Detail

Lint Passed
No Test Coverage
Build Status
Buildable 22927
Build 22011: arc lint + arc unit

Event Timeline

The intention here is to ensure that device drivers which need the size of the rx buffers can ensure they use the same size as iflib, (possibly incase we want to re-enable something like the old CONTIG_MALLOCWORKS again)


style(9) nit -- there should be parentheses around this return value


You would also start the comment on the line after the opening "/*".


I know this is copied from the original code, but shouldn't this check be against MCLBYTES, just in case that ever changes to not being 2048?

Replace the 2048 magic number with MCLBYTES added inline comments.

Yes, I agree.

And again now that I've joined iflib...

This revision is now accepted and ready to land.Mar 14 2019, 5:02 PM
This revision was automatically updated to reflect the committed changes.