Multi-tenant offloaded protocol processing for virtual routers

US12160366B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12160366-B2
Application numberUS-202117218039-A
CountryUS
Kind codeB2
Filing dateMar 30, 2021
Priority dateMar 30, 2021
Publication dateDec 3, 2024
Grant dateDec 3, 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.

A message indicating an auxiliary task associated with traffic transmitted via a virtual router between a pair of isolated networks is received at an offloading device. A stack multiplexer at the offloading device selects a protocol stack instance to process the message. A result of the auxiliary task is obtained by the multiplexer from the selected protocol stack instance and transmitted to the virtual router, where it is used to transmit a packet between the isolated networks.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: one or more computing devices; wherein the one or more computing devices include instructions that upon execution on or across the one or more computing devices cause the one or more computing devices to: execute, at an offloading device associated with a virtual router configured to transmit network packets between a first isolated network and a second isolated network, a plurality of protocol stack instances in user space configured to perform different types of auxiliary tasks associated with different types of network protocols, wherein the offloading device comprises one or more resources of a provider network; receive, at the offloading device, a message from the virtual router indicative of at least a portion of an auxiliary task associated with a network protocol, wherein the message includes an encapsulation packet prepared by the virtual router that encapsulates one or more packets formatted in the network protocol, and the encapsulation packet is prepared according to an encapsulation protocol that adds encapsulation packet metadata to the encapsulation packet; select, by a protocol stack multiplexer of the offloading device, a particular protocol stack instance from the plurality of protocol stack instances at the offloading device to process at least a portion of the message, wherein the protocol stack multiplexer is configured to access one or more direct memory access (DMA) buffers into which the message is placed by a network interface card, wherein the particular protocol stack instance is selected based at least in part on a networking protocol identifier indicated in the encapsulation packet metadata of the encapsulation packet; obtain, at the offloading device, a result of the auxiliary task from the particular protocol stack instance; cause, by the offloading device, the result to be transmitted from the offloading device to the virtual router; and utilize the result by the virtual router to transmit at least one network packet between the first isolated network and the second isolated network. 2. The system as recited in claim 1 , wherein the one or more computing devices include further instructions that upon execution on or across the one or more computing devices further cause the one or more computing devices to: cause state information pertaining to one or more auxiliary tasks including the auxiliary task to be stored at one or more storage devices external to the offloading device. 3. The system as recited in claim 1 , wherein the particular protocol stack instance comprises a processing engine for a version of one or more of: (a) the Border Gateway Protocol (BGP), (b) the Internet Group Management Protocol (IGMP), or (c) the Two-Way Active Measurement Protocol (TWAMP). 4. The system as recited in claim 1 , wherein the encapsulation packet metadata contained in the message comprises one or more of: (a) a virtual router identifier, (b) an identifier of a virtual network interface, (c) an identifier of a client of the provider network, or (d) an identifier of an isolated network of the first and second isolated networks. 5. The system as recited in claim 1 , wherein the one or more computing devices include further instructions that upon execution on or across the one or more computing devices further cause the one or more computing devices to: in response to receiving, at the offloading device, a first message indicating a particular Internet Protocol (IP) address as a destination, cause, by the protocol stack multiplexer, at least a portion of the first message to be processed at a first protocol stack instance of the plurality of protocol stack instances, wherein the first protocol stack instance is selected to process the portion of the first message based at least in part on metadata associated with the first message; and in response to receiving, at the offloading device, a second message indicating the particular Internet Protocol (IP) address as a destination, cause, by the protocol stack multiplexer, at least a portion of the second message to be processed at a second protocol stack instance of the plurality of protocol stack instances, wherein the second protocol stack instance is selected to process the portion of the second message based at least in part on metadata associated with the second message. 6. A computer-implemented method, comprising: executing, at an offloading device associated with a virtual router configured to transmit network packets between a first isolated network and a second isolated network, a plurality of protocol stack instances configured to perform different types of auxiliary tasks associated with different types of network protocols; receiving, at the offloading device, a message from the virtual router indicative of at least a portion of a first auxiliary task associated with a network protocol, wherein the message includes an encapsulation packet prepared by the virtual router that encapsulates one or more packets formatted in the network protocol, and the encapsulation packet is prepared according to an encapsulation protocol that adds encapsulation packet metadata to the encapsulation packet; selecting, by a protocol stack multiplexer of the offloading device, a particular protocol stack instance from the plurality of protocol stack instances running at the offloading device to process at least a portion of the message, wherein the particular protocol stack instance is selected based at least in part on a networking protocol identified by an analysis of the encapsulation packet metadata of the encapsulation packet; obtaining, at the offloading device, a result of the first auxiliary task from the particular protocol stack instance; causing, by the offloading device, the result to be transmitted from the offloading device to the first virtual router; and utilizing the result by the first virtual router to transmit at least one network packet between the first isolated network and the second isolated network. 7. The computer-implemented method as recited in claim 6 , further comprising: programmatically attaching the first isolated network and the second isolated network to the first virtual router in response to one or more programmatic requests from a first client of a provider network; programmatically attaching a third isolated network to a second virtual router on response to one or more programmatic requests from a second client of the provider network; and performing, at the particular protocol stack instance, at least a portion of a second auxiliary task associated with transmission of network packets between the third isolated network and one or more endpoints outside the third isolated network. 8. The computer-implemented method as recited in claim 6 , wherein the offloading device comprises a virtualization host of a virtualized computing service, and wherein the particular protocol stack instance comprises one or more threads running in user space at a compute instance launched at the virtualization host. 9. The computer-implemented method as recited in claim 6 , wherein the result of processing the message is obtained at the protocol stack multiplexer via a socket interface. 10. The computer-implemented method as recited in claim 6 , wherein the one or more protocol stack instances comprise another protocol stack instance, wherein the particular protocol stack instance implements at least a first transport layer protocol and a first application layer protocol, and wherein the other protocol stack instance implements at least the first transport layer protocol and the first application layer protocol. 11. The computer-implemented method as recited in claim 6 ,

Assignees

Inventors

Classifications

  • Gateways (arrangements for connecting between networks having differing types of switching systems, e.g. gateways, H04L12/66) · CPC title

  • in the transport layer [OSI layer 4] (H04L69/16 takes precedence) · CPC title

  • Protocol engines · CPC title

  • H04L45/74Primary

    Address processing for routing · CPC title

  • Definitions, standards or architectural aspects of layered protocol stacks · 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 US12160366B2 cover?
A message indicating an auxiliary task associated with traffic transmitted via a virtual router between a pair of isolated networks is received at an offloading device. A stack multiplexer at the offloading device selects a protocol stack instance to process the message. A result of the auxiliary task is obtained by the multiplexer from the selected protocol stack instance and transmitted to th…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L45/74. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 03 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).