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]>
