HomeFreeBSD

Add a facility for transmitting "raw" work requests on regular NIC queues.

Description

Add a facility for transmitting "raw" work requests on regular NIC queues.

  • Use PH_loc.eight[1] as a general 'cflags' (Chelsio flags) field to describe properties of a queued packet. The MC_RAW_WR flag indicates an mbuf holding a raw work request. mbuf_cflags() returns the current flags.
  • Raw work request mbufs are allocated via alloc_wr_mbuf() which will allocate a single contiguous range to hold the mbuf data. The consumer can use mtod() to obtain the start of the work request and write the required work request in the buffer. The mbuf can then be enqueued directly to the txq via mp_ring_enqueue().
  • Since raw work requests might potentially send arbitrary work requests, only set the EQUIQ and EQUEQ bits on work requests that support them such as the normal tunneled Ethernet packet work requests.

Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D17811

Details

Provenance
jhbAuthored on
Reviewer
np
Differential Revision
D17811: Add a facility for transmitting "raw" work requests on regular NIC queues.
Parents
rS340172: Fix a couple indentation errors in r339958.
Branches
Unknown
Tags
Unknown