IP Library Granted Patent US 11,928,062
Granted Patent B2
US 11,928,062 · App. 17/845,661 · Granted Mar 12, 2024

Accelerating data message classification with smart NICs

Inventors: Shay Vargaftik (Herzliya, IL); Alex Markuze (Rosh HaAyin, IL); Yaniv Ben-Itzhak (Afek, IL); Igor Golikov (Kfar Saba, IL); Avishay Yanai (Petach-Tikva, IL)
Assignee: VMware LLC
G06F12/0891G06F13/1668G06F2213/0026G06F2213/3808
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 11,928,062
App. No.
17/845,661
Granted
Mar 12, 2024
Kind
B2
Abstract

Some embodiments provide a method for performing data message processing at a smart NIC of a computer that executes a software forwarding element (SFE). The method determines whether a received data message matches an entry in a data message classification cache stored on the smart NIC based on data message classification results of the SFE. When the data message matches an entry, the method determines whether the matched entry is valid by comparing a timestamp of the entry to a set of rules stored on the smart NIC. When the matched entry is valid, the method processes the data message according to the matched entry without providing the data message to the SFE executing on the computer.

Claims (31)

1. A method for performing data message processing at a computer that executes a software forwarding element (SFE), the method comprising:

at a smart network interface controller (NIC) of the computer:

determining whether a received data message matches an entry in a data message classification cache stored on the smart NIC based on data message classification results of the SFE;

when the data message matches an entry, determining whether the matched entry is valid by comparing a timestamp of the entry to a set of rules stored on the smart NIC, said determining whether the matched entry is valid comprising (i) identifying whether the set of rules includes a rule related to the matched entry, and (ii) when the set of rules includes a rule related to the matched entry, determining whether a timestamp for the rule is more recent than a timestamp for the matched entry; and

when the matched entry is valid, processing the data message according to the matched entry without providing the data message to the SFE executing on the computer.

2. The method of claim 1 , wherein when the data message does not match any entries in the data message classification cache stored on the smart NIC, the smart NIC passes the data message to the SFE executing on the computer.

3. The method of claim 2 , wherein when the data message does not match any entries in the data message classification cache stored on the smart NIC, the SFE processes the data message received from the smart NIC and adds a new entry to the data message classification cache stored on the smart NIC based on the processing of the data message.

4. The method of claim 1 , wherein when the timestamp for the matched entry is more recent than the timestamp for the rule, the smart NIC determines that the matched entry is valid.

5. The method of claim 1 , wherein when the timestamp for the rule is more recent than the timestamp for the matched entry, the smart NIC determines that the matched entry is no longer valid.

6. The method of claim 5 , wherein when the matched entry is no longer valid, the smart NIC discards the entry and provides the data message to the SFE executing on the computer for the SFE to process the data message and add a new entry to the data message classification cache stored on the smart NIC based on the processing of the data message.

7. The method of claim 1 , wherein the set of rules comprises rules recently modified at the SFE.

8. The method of claim 7 , wherein the recently modified rules comprise recently added rules and recently removed rules.

9. The method of claim 1 , wherein the data message classification cache entries match data messages based on data message 5-tuples.

10. The method of claim 9 , wherein for data message flows for which the computer receives data messages regularly, only a first data message is processed by the SFE while subsequent data messages are processed by the smart NIC without involvement of the SFE.

11. The method of claim 1 , wherein the smart NIC processing the data message without providing the data message to the SFE provides faster processing of the data message than the SFE processing the data message.

12. A non-transitory machine-readable medium storing a program for execution by at least one processing unit of a smart network interface controller (NIC) of a computer that executes a software forwarding element (SFE), the program for performing data message processing, the program comprising sets of instructions for:

determining whether a received data message matches an entry in a data message classification cache stored on the smart NIC based on data message classification results of the SFE;

when the data message matches an entry, determining whether the matched entry is valid by comparing a timestamp of the entry to a set of rules stored on the smart NIC, said determining whether the matched entry is valid comprising (i) identifying whether the set of rules includes a rule related to the matched entry, and (ii) when the set of rules includes a rule related to the matched entry, determining whether a timestamp for the rule is more recent than a timestamp for the matched entry; and

when the matched entry is valid, processing the data message according to the matched entry without providing the data message to the SFE executing on the computer.

13. The non-transitory machine-readable medium of claim 12 , wherein the program further comprises a set of instructions for passing the data message to the SFE executing on the computer when the data message does not match any entries in the data message classification cache stored on the smart NIC.

14. The non-transitory machine-readable medium of claim 13 , wherein when the data message does not match any entries in the data message classification cache stored on the smart NIC, the SFE processes the data message received from the smart NIC and adds a new entry to the data message classification cache stored on the smart NIC based on the processing of the data message.

15. The non-transitory machine-readable medium of claim 12 , wherein the set of instructions for determining whether the matched entry is valid further comprises a set of instructions for determining that the matched entry is valid when the timestamp for the matched entry is more recent than the timestamp for the rule.

16. The non-transitory machine-readable medium of claim 12 , wherein the set of instructions for determining whether the matched entry is valid further comprises a set of instructions for determining that the matched entry is no longer valid when the timestamp for the rule is more recent than the timestamp for the matched entry.

17. The non-transitory machine-readable medium of claim 16 , wherein the program further comprises sets of instructions for, when the matched entry is no longer valid:

discarding the entry; and

providing the data message to the SFE executing on the computer for the SFE to process the data message and add a new entry to the data message classification cache stored on the smart NIC based on the processing of the data message.

18. The non-transitory machine-readable medium of claim 12 , wherein the set of rules comprises rules recently modified at the SFE.

19. The non-transitory machine-readable medium of claim 18 , wherein the recently modified rules comprise recently added rules and recently removed rules.

20. The non-transitory machine-readable medium of claim 12 , wherein the data message classification cache entries match data messages based on data message 5-tuples.

21. The non-transitory machine-readable medium of claim 20 , wherein for data message flows for which the computer receives data messages regularly, only a first data message is processed by the SFE while subsequent data messages are processed by the smart NIC without involvement of the SFE.

22. The non-transitory machine-readable medium of claim 12 , wherein the smart NIC processing the data message without providing the data message to the SFE provides faster processing of the data message than the SFE processing the data message.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2022
From: VARGAFTIK, SHAY; MARKUZE, ALEX; BEN-ITZHAK, YANIV; GOLIKOV, IGOR; YANAI, AVISHAY
To: VMWARE, INC.
Reel/Frame 060267/0222 →