IP Library Granted Patent US 12,261,925
Granted Patent B2
US 12,261,925 · App. 17/721,129 · Granted Mar 25, 2025

Efficient packet re-transmission for express data paths

Inventors: Jesper Brouer (Frederikssund, DK); Michael Tsirkin (Westford, MA)
Assignee: Red Hat, Inc.
H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,261,925
App. No.
17/721,129
Granted
Mar 25, 2025
Kind
B2
Abstract

Embodiments of the present disclosure relate to determining modification bounds that identify portions of a packet that are safe to modify so that modified portions of the packet may be flushed from a cache to a memory of a network interface card (NIC) of a host system when the entire packet is synchronized from the NIC. A modification bound of the filter may be determined, and a network packet may be received from the NIC. In response to determining that the network packet is to be modified, a portion of the network packet that is safe to modify may be identified based on the modification bound of the filter and modifications may be made thereto. The modified portion of the network packet may be synchronized to the NIC.

Claims (41)

1. A method comprising:

validating register values of a filter to determine a modification bound of the filter;

receiving a network packet from a network interface card (NIC);

determining, based on a handling of network packets indicated by the filter, whether the network packet is to be modified;

in response to determining that the network packet is to be modified, modifying a portion of the network packet based on the modification bound of the filter; and

synchronizing, by a processing device, the modified portion of the network packet to the NIC.

2. The method of claim 1 , wherein the modified portion of the network packet comprises a header of the network packet.

3. The method of claim 1 , wherein synchronizing the modified portion of the network packet to the NIC causes the NIC to transmit the network packet comprising the modified portion via a network.

4. The method of claim 1 , wherein synchronizing the modified portion of the network packet to the NIC comprises:

flushing the modified portion of the network packet from a cache operatively coupled to the processing device to the NIC.

5. The method of claim 1 , wherein the processing device is operatively coupled to one or more non-coherent direct-memory access devices.

6. The method of claim 1 , wherein receiving the network packet from the NIC comprises:

synchronizing, by the NIC, the network packet in its entirety to the processing device.

7. The method of claim 1 , wherein the modified portion of the network packet corresponds to the modification bound.

8. A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

validate register values of a filter to determine a modification bound of the filter;

receive a network packet from a network interface card (NIC);

determine, based on a handling of network packets indicated by the filter, whether the network packet is to be modified;

in response to determining that the network packet is to be modified, modify a portion of the network packet based on the modification bound of the filter; and

synchronize the modified portion of the network packet to the NIC.

9. The system of claim 8 , wherein the modified portion of the network packet comprises a header of the network packet.

10. The system of claim 8 , wherein synchronizing the modified portion of the network packet to the NIC causes the NIC to transmit the network packet comprising the modified portion via a network.

11. The system of claim 8 , wherein to synchronize the modified portion of the network packet to the NIC, the processing device is to:

flush the modified portion of the network packet from a cache operatively coupled to the processing device to the NIC.

12. The system of claim 8 , wherein the processing device is operatively coupled to one or more non-coherent direct-memory access devices.

13. The system of claim 8 , wherein the network packet is synchronized to the processing device in its entirety by the NIC.

14. The system of claim 8 , wherein the modified portion of the network packet corresponds to the modification bound.

15. A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause the processing device to:

validate register values of a filter to determine a modification bound of the filter;

receive a network packet from a network interface card (NIC);

determine, based on a handling of network packets indicated by the filter, whether the network packet is to be modified;

in response to determining that the network packet is to be modified, modify a portion of the network packet based on the modification bound of the filter; and

synchronize, by the processing device, the modified portion of the network packet to the NIC.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the modified portion of the network packet comprises a header of the network packet.

17. The non-transitory computer-readable storage medium of claim 15 , wherein synchronizing the modified portion of the network packet to the NIC causes the NIC to transmit the network packet comprising the modified portion via a network.

18. The non-transitory computer-readable storage medium of claim 15 , wherein to synchronize the modified portion of the network packet to the NIC, the processing device is to:

flush the modified portion of the network packet from a cache operatively coupled to the processing device to the NIC.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the processing device is operatively coupled to one or more non-coherent direct-memory access devices.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the network packet is synchronized to the processing device in its entirety by the NIC.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2022
From: BROUER, JESPER; TSIRKIN, MICHAEL
To: RED HAT, INC.
Reel/Frame 059615/0140 →
Continuity (2)
Continuation In Part 16839397 · Apr 3, 2020
Related Publication 20220239767A1 · Jul 28, 2022
References Cited (12)
US 6850495B1 · Baum et al. · 2005 [cited by applicant]
US 8185653B2 · Yau et al. · 2012 [cited by applicant]
US 9240939B2 · Nguyen · 2016 [cited by examiner]
US 9553892B2 · Kelson · 2017 [cited by examiner]
US 10198354B2 · Chen · 2019 [cited by examiner]
US 20080285565A1 · Gunther · 2008 [cited by applicant]
US 20190140983A1 · Tu · 2019 [cited by examiner]
US 20200145376A1 · Pope · 2020 [cited by examiner]
“Troubleshooting Input Queue Drops and Output Queue Drops”, (May 3, 2016). Cisco, 11 pages. [cited by applicant]
“XDP Common Client Specification”, (Nov. 29, 2019). Intercontinental Exchange, Inc., 32 pages. [cited by applicant]
“Optimizing the Dispatcher cache”, (Feb. 7, 2020). Adobe, 7 pages. [cited by applicant]
“AF XDP”, The Kernel Development Community, 8 pages. [cited by applicant]