Frameworks and interfaces for offload device-based packet processing

US9904568B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9904568-B2
Application numberUS-201514923276-A
CountryUS
Kind codeB2
Filing dateOct 26, 2015
Priority dateMar 30, 2011
Publication dateFeb 27, 2018
Grant dateFeb 27, 2018

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.

High-speed processing of packets to, and from, a virtualization environment can be provided while utilizing hardware-based segmentation offload and other such functionality. A hardware vendor such as a network interface card (NIC) manufacturer can enable the hardware to support open and proprietary stateless tunneling in conjunction with a protocol such as single root I/O virtualization (SR-IOV) in order to implement a virtualized overlay network. The hardware can utilize various rules, for example, that can be used by the NIC to perform certain actions, such as to encapsulate egress packets and decapsulate packets.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: determining, using a Virtual Machine Manager (VMM) hosted by one or more computing devices, that a virtual machine hosted by the one or more computing devices is not configured to communicate with an offload device of the one or more computing devices using a single root I/O virtualization (SR-IOV) interface; and in response to determining that the virtual machine is not configured to access functionality of the offload device, transmitting a first set of driver instructions to the virtual machine, wherein the first set of driver instructions, when executed by the virtual machine, enables the virtual machine to communicate with the offload device to access functionality of the offload device using the SR-IOV interface. 2. The method of claim 1 , further comprising: communicating, using the virtual machine, with a distributed service to load a per-tenant network specification; and instructing, using the virtual machine, the offload device to execute the loaded per-tenant network specification. 3. The method of claim 1 , wherein the offload device and the virtual machine communicate using a Direct Memory Access (DMA) mechanism. 4. The method of claim 1 , wherein the offload device is configured to encapsulate data into network frames or to de-encapsulate network frames. 5. A system, comprising: one or more computers forming a service providing infrastructure, wherein the one or more computers comprise first memory and are configured to execute first instructions stored in the first memory to host a first virtual machine corresponding to a first tenant; a first offload device communicatively coupled to the one or more computers; and second memory coupled to the one or more computers, the second memory including second instructions that, when executed by the one or more computers, configure the one or more computers to transmit, based on the first offload device being communicatively coupled to the one or more computers hosting the first virtual machine, a per-tenant network specification corresponding to the first tenant. 6. The system of claim 5 , wherein the second instructions, when executed by the one or more computers, further configure the one or more computers to: transmit, to the first virtual machine, a first set of driver instructions that, when executed by the first virtual machine, cause the first virtual machine to communicate with the first offload device using a first protocol supported by the first offload device. 7. The system of claim 6 , wherein the first set of driver instructions are transmitted by a Virtual Machine Manager (VMM) hosted by the one or more computers. 8. The system of claim 7 , wherein the VMM is configured to dynamically transmit the set of driver instructions in response to determining that the first virtual machine is not configured to access a function of the first offload device. 9. The system of claim 6 , wherein the one or more computers are further configured to host a second virtual machine, wherein the first virtual machine and the second virtual machine are each configured to communicate with offload devices using a protocol different from the first protocol. 10. The system of claim 6 , wherein the second instructions, when executed by the one or more computers, further configure the one or more computers to: transmit a second set of driver instructions to a second virtual machine, wherein the second set of driver instructions, when executed by the second virtual machine, cause the second virtual machine to communicate with a second offload device using a second protocol supported by the second offload device, wherein the first protocol is different from the second protocol. 11. The system of claim 5 , wherein the second instructions, when executed by the one or more computers, further enable the one or more computers to: communicate with a distributed service to load one of several per-tenant network specifications; and wherein the per-tenant network specification transmitted to the first offload device is selected based on communication with the distributed service. 12. The system of claim 5 , wherein the first offload device and the first virtual machine are configured to communicate using a Direct Memory Access (DMA) mechanism. 13. The system of claim 5 , wherein the first offload device and the first virtual machine are configured to communicate over a Peripheral Component Interconnect or Peripheral Component Interconnect Express interface. 14. The system of claim 5 , wherein the offload device is configured to, based on the per-tenant network specification transmitted to the first offload device, encapsulate data into network frames or to de-encapsulate network frames to conform to an ethernet protocol. 15. A method, comprising: accessing, in one or more computing devices hosting a service provider environment, a plurality of drivers each associated with a function of an offload device; determining, by a Virtual Machine Manager (VMM) of the service provider environment, that a guest virtual machine coupled to the VMM lacks a driver of the plurality of drivers to access a first function of the offload device; selecting, by the VMM, a first driver of the plurality of drivers associated with the first function; and injecting, by the VMM, the first driver into the guest virtual machine to enable the first function to be accessed by the guest virtual machine. 16. The method of claim 15 , further comprising: communicating, using the one or more computing devices, with a distributed service to load a per-tenant network specification; and instructing, using the one or more computing devices, the offload device to execute the loaded per-tenant network specification. 17. The method of claim 15 , wherein the offload device is a single root I/O virtualization (SR-IOV) compatible device and the function is a virtual function or a physical function of the offload device. 18. The method of claim 15 , wherein the guest virtual machine is one of a plurality of guest virtual machines hosted by the one or more computing devices and each of the plurality of guest virtual machines is configured to communicate, using a common protocol, with the offload device. 19. The method of claim 18 , wherein each driver of the plurality of drivers is configured to communicate with each of the plurality of guest virtual machines using the common protocol and the first function of the offload device using a different protocol. 20. The method of claim 15 , further comprising: determining, by the VMM, that the guest virtual machine lacks a second driver to implement a second function of the offload device; selecting, by the VMM, the second driver associated with the second function; and injecting, by the VMM, the second driver into the guest virtual machine to enable the second function to be accessed by the guest virtual machine.

Assignees

Inventors

Classifications

  • Interconnection of networks using encapsulation techniques, e.g. tunneling · CPC title

  • Network integration; Enabling network access in virtual machine instances · CPC title

  • Virtual private networks · CPC title

  • Address processing for routing · CPC title

  • the condition being updates or upgrades of network functionality · 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 US9904568B2 cover?
High-speed processing of packets to, and from, a virtualization environment can be provided while utilizing hardware-based segmentation offload and other such functionality. A hardware vendor such as a network interface card (NIC) manufacturer can enable the hardware to support open and proprietary stateless tunneling in conjunction with a protocol such as single root I/O virtualization (SR-IOV…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L12/4633. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Feb 27 2018 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).