There are fielded products that use ALTQ, that are actively developed using near-HEAD FreeBSD sources, and that use NIC hardware whose drivers have been or are being converted to iflib, so there is a need for ALTQ support in iflib.
This patch adds such support. The implementation prioritizes having a minimum code footprint in iflib.c and zero presence when ALTQ-related kernel options are not defined. See the comment on iflib.c:iflib_altq_if_start() in the diff for further details regarding the approach taken. There is the usual limitation that when ALTQ is enabled on an interface with multiple hardware queues, only a single queue (queue 0) is used for transmit.