IP Library › Granted Patent US 11,099,885
Granted Patent B2
US 11,099,885 · App. 16/789,337 · Granted Aug 24, 2021

Frameworks and interfaces for offload device-based packet processing

Inventors: Pradeep Vincent (Kenmore, WA); Matthew David Klein (Seattle, WA); Samuel James McKelvie (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F9/45558H04L12/4633H04L41/082H04L45/74H04L63/0272H04L63/20G06F2009/45595
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,099,885
App. No.
16/789,337
Granted
Aug 24, 2021
Kind
B2
Abstract

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.

Claims (49)

1. A network adapter device, comprising:

a first hardware processor;

a network interface;

a bus interface to enable communication between the first hardware processor and a second hardware processor hosting a guest virtual machine; and

a memory storing instructions that, when executed by the first hardware processor, cause the first hardware processor to:

receive a data packet; and

perform, using hardware resources inaccessible to the guest virtual machine, one of an ingress operation or an egress operation, the ingress operation including decapsulating the received data packet and transmitting one or more decapsulated data packets to the guest virtual machine via the bus interface, the egress operation including encapsulating the received data packet and transmitting one or more encapsulated data packets to the network interface.

2. The network adapter device of claim 1 , wherein the received data packet includes an inner header and an outer header; and

wherein decapsulating the received data packet comprises stripping at least one of the inner header or the outer header of the data packet.

3. The network adapter device of claim 2 , wherein the inner header comprises at least one of a level two (L2) or a level three (L3) inner header; and

wherein the outer header comprises at least one of a L2 or a L3 outer header.

4. The network adapter device of claim 2 , wherein the inner header includes a virtual internet protocol (IP) address; and

wherein the outer header includes a physical IP address.

5. The network adapter device of claim 1 , wherein decapsulating the received data packet comprises stripping an opaque field of the data packet.

6. The network adapter device of claim 5 , wherein the opaque field indicates a format of the data packet.

7. The network adapter device of claim 5 , wherein the decapsulation of the received data packet is based on identifying content of the opaque field.

8. The network adapter device of claim 7 , wherein an outer header of the data packet carries protocol information;

wherein the opaque field includes format information;

wherein the protocol information of the outer header and the format information of the opaque field indicate that the data packet is encapsulated and a format of the encapsulation; and

wherein the decapsulation of the received data packet is based on the format of the encapsulation.

9. The network adapter device of claim 1 , wherein the received data packet is received at a physical function;

wherein the first hardware processor is further configured to execute the instructions to transmit the one or more decapsulated data packets to the guest virtual machine via a virtual function; and

wherein the virtual function and the physical function are based on a single root I/O virtualization (SR-IOV) protocol.

10. The network adapter device of claim 1 , wherein the received data packet includes an inner header; and

wherein encapsulating the received data packet comprises adding an outer header to the data packet.

11. The network adapter device of claim 10 , wherein the outer header includes a Transmission Control Protocol (TCP) header; and

wherein the inner header is part of a TCP option of the TCP header.

12. The network adapter device of claim 10 , wherein encapsulating the received data packet further comprises adding an opaque field to the received data packet.

13. The network adapter device of claim 12 , wherein the opaque field identifies the guest virtual machine.

14. The network adapter device of claim 10 , wherein encapsulating the received data packet comprises extracting one or more segments of data from a payload of the received data packet and encapsulating each segment with the outer header and the inner header to generate an encapsulated segment; and

wherein the one or more encapsulated data packets comprises the encapsulated segments.

15. The network adapter device of claim 10 , wherein the received data packet is received at a virtual function;

wherein the first hardware processor is further configured to execute the instructions to transmit the one or more encapsulated data packets to a network via a physical function; and

wherein the virtual function and the physical function are based on a single root I/O virtualization (SR-IOV) protocol.

16. The network adapter device of claim 1 , wherein the first hardware processor is configured to execute the instructions to:

build a lookup key for the received data packet; and

perform a lookup in a rule table for a rule for processing the received data packet using the lookup key;

and wherein the transmission of the one or more decapsulated data packets or the transmission of the one or more encapsulated data packets is based on the rule.

17. The network adapter device of claim 16 , wherein the received data packet is a first data packet; and

wherein the rule comprises:

a forward rule that causes the first hardware processor to transmit the one or more decapsulated data packets or the one or more encapsulated data packets;

a trap rule that causes the first hardware processor to process a second data packet in a trusted domain; or

a drop rule that causes the first hardware processor to drop a third data packet.

18. The network adapter device of claim 16 , wherein the instructions for encapsulating the received data packet and decapsulating the data packet are stored in a portion of the memory inaccessible to the guest virtual machine.

19. A method performed by a network adapter device, comprising:

receiving a data packet; and

performing, using hardware resources inaccessible to a guest virtual machine, one of an ingress operation or an egress operation, the ingress operation including decapsulating the data packet and transmitting one or more decapsulated data packets to the guest virtual machine via a bus interface, the egress operation including encapsulating the data packet and transmitting one or more encapsulated data packets to a network interface.

20. The method of claim 19 , wherein decapsulating the data packet comprises stripping at least one of an inner header or an outer header of the data packet; and

wherein encapsulating the data packet comprises adding the outer header to the data packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: VINCENT, PRADEEP; KLEIN, MATTHEW DAVID; MCKELVIE, SAMUEL JAMES
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 051805/0651 →
Continuity (5)
Continuation 15904236 · Feb 23, 2018
Continuation 14923276 · Oct 26, 2015
Continuation 14321492 · Jul 1, 2014
Continuation 13076347 · Mar 30, 2011
Related Publication 20200192695A1 · Jun 18, 2020
Cited By (2)
US 12,210,896 US 12,519,741