Packet processing with hardware offload units

US12021759B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12021759-B2
Application numberUS-202017091663-A
CountryUS
Kind codeB2
Filing dateNov 6, 2020
Priority dateSep 28, 2020
Publication dateJun 25, 2024
Grant dateJun 25, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Some embodiments of the invention provide a method for configuring multiple hardware offload units of a host computer to perform operations on packets associated with machines (e.g., virtual machines or containers) executing on the host computer and to pass the packets between each other efficiently. For instance, in some embodiments, the method configures a program executing on the host computer to identify a first hardware offload unit that has to perform a first operation on a packet associated with a particular machine and to provide the packet to the first hardware offload unit. The packet in some embodiments is a packet that the particular machine has sent to a destination machine on the network, or is a packet received from a source machine through a network and destined to the particular machine.

First claim

Opening claim text (preview).

We claim: 1. A method for performing a plurality of operations on a packet with a plurality of hardware offload units of a host computer on which a plurality of machines execute, the method comprising: configuring a program, over which the plurality of machines execute on the host computer, to identify a first hardware offload unit, of the host computer, that has to perform a first operation on a packet associated with a particular machine and to provide the packet to the first hardware offload unit to perform the first operation on the packet, the first hardware offload unit being configured to process an actions stage without involvement of processing units of the host computer; configuring the first hardware offload unit to perform the first operation on the packet, to identify a second hardware offload unit, of the host computer, that has to perform a second operation on the packet, and to provide the packet to the second hardware offload unit; and configuring the second hardware offload unit to perform the second operation on the packet. 2. The method of claim 1 , wherein configuring the first hardware offload unit to provide the packet comprises configuring the first hardware offload unit to write to a register of the second hardware offload unit. 3. The method of claim 1 , wherein configuring the first hardware offload unit to provide the packet comprises configuring the first hardware offload unit to write to a memory of the host computer, said writing causing a notification to be provided to the second hardware offload unit without using any processing unit of the host computer. 4. The method of claim 1 further comprising configuring the second hardware offload unit to provide the packet back to the program after performing the second operation on the packet. 5. The method of claim 1 further comprising: configuring the second hardware offload unit to provide the packet, after performing the second operation on the packet, to a third hardware offload unit; and configuring the third hardware offload unit to perform a third operation on the packet. 6. The method of claim 1 , wherein the program is an operating system of the host computer. 7. The method of claim 1 , wherein the program is a hypervisor executing on the host computer, and the plurality of machines comprise virtual machines. 8. The method of claim 1 , wherein the program is an operating system executing on the host computer, and the plurality of machines comprise containers or Pods. 9. The method of claim 1 further comprising configuring the program to perform a third operation on the packet before providing the packet to the first hardware offload unit to perform a first operation. 10. The method of claim 1 , wherein the packet is a packet that the particular machine has sent to a destination machine on the network, or is a packet received from a source machine through a network and destined to the particular machine, the packet comprising a header and a payload. 11. The method of claim 1 , wherein the each of the first and second operations is a packet forwarding operation or a packet middlebox service operation. 12. The method of claim 1 , wherein the program uses a set of attributes of the packet to determine that the first hardware offload unit has to perform the first operation on the packet. 13. The method of claim 12 , wherein the first hardware offload unit uses the set of attributes of the packet to determine that the second hardware offload unit has to perform the second operation on the packet. 14. The method of claim 1 , wherein the program uses a set of attributes of the packet to identify a plurality of operations that have to be performed by a plurality of hardware offload units on the packet, and provides to the first hardware offload unit the packet along with an identifier for each hardware offload unit that has to perform an operation on the packet. 15. A non-transitory machine readable medium storing a first program for execution by at least one processing unit of a computer to configure hardware offload units of a host computer to perform a plurality of operations on a packet, a plurality of machines executing on the host computer, the first program comprising sets of instructions for: configuring a second program, over which the machines execute, to identify a first hardware offload unit that has to perform a first operation on a packet associated with a particular machine and to provide the packet to the first hardware offload unit, the first hardware offload unit being configured to process an actions stage without involvement of processing units of the host computer; configuring the first hardware offload unit to perform the first operation on the packet, to identify a second hardware offload unit that has to perform a second operation on the packet, and to provide the packet to the second hardware offload unit; and configuring the second hardware offload unit to perform the second operation on the packet. 16. The non-transitory machine readable medium of claim 15 , wherein the set of instructions for configuring the first hardware offload unit to provide the packet comprises a set of instructions for configuring the first hardware offload unit to write to a register of the second hardware offload unit. 17. The non-transitory machine readable medium of claim 15 , wherein the set of instructions for configuring the first hardware offload unit to provide the packet comprises a set of instructions for configuring the first hardware offload unit to write to a memory of the host computer, said writing causing a notification to be provided to the second hardware offload unit without using any processing unit of the host computer. 18. The non-transitory machine readable medium of claim 15 , wherein the first program further comprises a set of instructions for configuring the second hardware offload unit to provide the packet back to the second program after performing the second operation on the packet. 19. The non-transitory machine readable medium of claim 15 , wherein the first program further comprises sets of instructions for: configuring the second hardware offload unit to provide the packet, after performing the second operation on the packet, to a third hardware offload unit; and configuring the third hardware offload unit to perform a third operation on the packet. 20. The non-transitory machine readable medium of claim 15 , wherein the second program is an operating system of the host computer.

Assignees

Inventors

Classifications

  • using pipelined operation · CPC title

  • G06F13/385Primary

    for adaptation of a particular data processing system to different peripheral devices · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12021759B2 cover?
Some embodiments of the invention provide a method for configuring multiple hardware offload units of a host computer to perform operations on packets associated with machines (e.g., virtual machines or containers) executing on the host computer and to pass the packets between each other efficiently. For instance, in some embodiments, the method configures a program executing on the host comput…
Who is the assignee on this patent?
VMware LLC
What technology area does this patent fall under?
Primary CPC classification H04L49/1546. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 25 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).