This is v4 of a patch series implementing the Transmit Rate Limiter (TRL) 
feature for
the Intel 82576 (igb) network device emulation in QEMU.

v3: https://lists.gnu.org/archive/html/qemu-devel/2026-06/msg03044.html

Changelog:

v4:
  - Remove unused masks.
  - Use BITS_PER_BYTE in definition of E1000_LINK_RATE_1GBPS.
  - Add helper function to get rate factor and unify comments.
  - Add helper function to return if TRL is enabled for a queue.
  - Get packet length after calling igb_tx_insert_vlan().
  - Use NANOSECONDS_PER_SECOND instead of 1000000000ULL.

v3:
  - Remove redundant target_rate state and recalculate it dynamically from 
trlrc.
  - Flush the transmit ring when TRL is disabled while a queue is throttled to 
prevent packet stall.
  - Remove redundant updates to core->mac[TRLRC] since reads are multiplexed.

Signed-off-by: Josh Hilke <[email protected]>
---
Josh Hilke (7):
      igb: Define TRL registers and core state
      igb: Add VMState support for TRL state
      igb: Implement TRL register write and configuration
      igb: Refactor TX path to return processed byte count
      igb: Implement TRL throttling and timer resumption
      igb: Add QTest for Transmit Rate Limiter register multiplexing
      igb: Add QTest for Transmit Rate Limiter traffic throttling

 hw/net/igb.c           |  43 ++++++++++
 hw/net/igb_common.h    |   1 +
 hw/net/igb_core.c      | 164 ++++++++++++++++++++++++++++++++++++--
 hw/net/igb_core.h      |  13 +++
 hw/net/igb_regs.h      |   6 ++
 tests/qtest/igb-test.c | 209 +++++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 431 insertions(+), 5 deletions(-)
---
base-commit: 98b060da3a4f92b2a994ead5b16a87e783baf77c
change-id: 20260608-igb-trl-19be198da6f2

Best regards,
-- 
Josh Hilke <[email protected]>


Reply via email to