Page MenuHomeFreeBSD

Add support to pad Ethernet frames to a minimum size
ClosedPublic

Authored by shurd on Dec 1 2017, 6:55 PM.
Tags
None
Referenced Files
F80164378: D13324.diff
Thu, Mar 28, 6:57 PM
Unknown Object (File)
Jan 29 2024, 10:19 PM
Unknown Object (File)
Jan 19 2024, 7:59 AM
Unknown Object (File)
Dec 29 2023, 12:17 AM
Unknown Object (File)
Dec 24 2023, 9:14 AM
Unknown Object (File)
Dec 20 2023, 4:04 AM
Unknown Object (File)
Dec 14 2023, 1:19 PM
Unknown Object (File)
Dec 12 2023, 6:22 PM
Subscribers

Details

Summary

Some bnxt devices do not correctly send frames smaller than
52 bytes (without CRC), so add a quirk that will pad frames to an
arbitrary size before passing off to the encap routine.

Test Plan

Have Broadcom test with their broken hardware

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 13331
Build 13564: arc lint + arc unit

Event Timeline

Move BNXT_MIN_FRAME_SIZE into bnxt.h where D13269 defined BNXT_MIN_PKT_SIZE

Thanks to Stephen,
Tested with Cumulus A0 NIC, test passed with this patch.
I'll delete the old workaround (used for padding) from driver.

This revision is now accepted and ready to land.Dec 4 2017, 8:43 AM

Return an error of m_append() fails, not success.

This revision now requires review to proceed.Dec 4 2017, 6:38 PM

Move ether padding into spearate function, predict_false() the length test

Mark iflib_ether_pad() as noinline and move device_printf() into it

This revision is now accepted and ready to land.Dec 4 2017, 11:05 PM

Committed as r326578 (which had the wrong Differential Revision of D13269 specified).