Page MenuHomeFreeBSD

iflib: Introduce v2 of TX Queue Select Functionality
Needs ReviewPublic

Authored by erj on Apr 1 2022, 11:08 PM.



For v2, iflib will parse packet headers before queueing a packet.

(This is not a well-thought out idea; just a way to queue a packet based
on information inside its headers.)

This commit also adds a new field in the structure that holds parsed
header information from packets; it stores the IP ToS/ traffic class
field found in the IPv4/IPv6 header.

To help, it will only partially parse header packets before queueing
them by using a new header parsing function that does less than the
current parsing header function; for our purposes we only need up to the
minimal IP header in order to get the IP ToS infromation and don't need
to pull up more data.

For now, v1 and v2 co-exist in this patch; this might not be an
acceptable solution for inclusion upstream, but it should be good enough
for testing. (We may just replace the old function and force drivers to
compat with that based on FreeBSD_version).

Signed-off-by: Eric Joyner <>

Diff Detail

rS FreeBSD src repository - subversion
Lint OK
No Unit Test Coverage
Build Status
Buildable 46471
Build 43360: arc lint + arc unit

Event Timeline

erj requested review of this revision.Apr 1 2022, 11:08 PM

Remove read-only mbuf check/fixup in iflib_parse_header_partial()

iflib: Re-add M_WRITABLE check, but keep removal of IFLIB_NEEDS_SCRATCH check

  • iflib: Refine comments and separate out ethernet header parsing