Previously, TX_BATCH_SIZE was the max number of packets that
would be delivered in a single call to iflib_txq_drain(). This change
uses TX_BATCH_SIZE * MTU as the number of bytes to target. This is
limited to a max of isc_txrx_budget_bytes_max, a value which appears
to have been previously unused, and defaults to 2 * 1024 * 1024.
In theory, this should perform better with small packet forwarding than
tx_abdicate=1 currently provides.
TX_BATCH_SIZE should also likely be a per-interface tunable, possibly
with a global default tunable as well... but currently it's used as
a number of mp_ring entries in drain_ring_locked() and a source for a
number of bytes in iflib_txq_drain(). These two should likely be split
up, maybe with the number of bytes being the only tunable.
It may be useful to tie the default byte budget to the link speed too.