IP Library Granted Patent US 10,313,926
Granted Patent B2
US 10,313,926 · App. 15/609,037 · Granted Jun 4, 2019

Large receive offload (LRO) processing in virtualized computing environments

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 10,313,926
App. No.
15/609,037
Granted
Jun 4, 2019
Kind
B2
Abstract

Example methods are provided for a host to perform large receive offload (LRO) processing in a virtualized computing environment. The method may comprise receiving, via a physical network interface controller (NIC), incoming packets that are destined for the virtualized computing instance, and processing the incoming packets to generate at least one processed packet using a networking service pipeline that includes a packet aggregation service and multiple networking services. The packet aggregation service may be configured to aggregate the incoming packets into an aggregated packet and enabled at a service point along the networking service pipeline based on an LRO capability of at least one of the multiple networking services to process the aggregated packet. The method may also comprise forwarding the at least one processed packet generated by the networking service pipeline to the virtualized computing instance.

Claims (46)

1. A method for a host to perform large receive offload (LRO) processing in a virtualized computing environment, wherein the host includes a physical network interface controller (NIC) and a networking service pipeline having a packet aggregation service and multiple networking services and supports a virtualized computing instance, and the method comprises:

receiving, via the physical NIC, incoming packets that are destined for the virtualized computing instance, wherein prior to receiving the incoming packets, enabling a packet splitting service at another service point along the networking service pipeline based on an LRO capability of the virtualized computing instance, or an LRO capability of at least one of the multiple networking services, or both;

processing the incoming packets to generate at least one processed packet using the networking service pipeline,

wherein the packet aggregation service is configured to aggregate the incoming packets into an aggregated packet, and enabled at a service point along the networking service pipeline based on an LRO capability of at least one of the multiple networking services to process the aggregated packet, and

wherein the aggregated packet is split by the packet splitting service at the another service point into multiple non-aggregated packets; and

forwarding the at least one processed packet generated by the networking service pipeline to the virtualized computing instance.

2. The method of claim 1 , wherein processing the incoming packets comprises:

splitting, by the packet splitting service, the aggregated packet based on packet boundary information associated with the incoming packets.

3. The method of claim 2 , wherein processing the incoming packets comprises:

linking, by the packet aggregation service, the aggregated packet with the packet boundary information that includes memory address information associated with the incoming packets.

4. The method of claim 1 , wherein receiving the incoming packets comprises:

retrieving the incoming packets from a NIC queue that belongs to a pool of multiple NIC queues at the physical NIC that are configured to hold incoming packets destined for multiple virtualized computing instances that have LRO capability.

5. The method of claim 4 , wherein the method further comprises:

prior to receiving the incoming packets, enabling the packet aggregation service at the service point along the networking service pipeline associated with the NIC queue.

6. A non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a host, cause the processor to implement a method of large receive offload (LRO) processing in a virtualized computing environment, wherein the host includes a physical network interface controller (NIC) and a networking service pipeline having a packet aggregation service and multiple networking services and supports a virtualized computing instance, and the method comprises:

receiving, via the physical NIC, incoming packets that are destined for the virtualized computing instance, wherein prior to receiving the incoming packets, enabling a packet splitting service at another service point along the networking service pipeline based on an LRO capability of the virtualized computing instance, or an LRO capability of at least one of the multiple networking services, or both;

processing the incoming packets to generate at least one processed packet using the networking service pipeline,

wherein the packet aggregation service is configured to aggregate the incoming packets into an aggregated packet and enabled at a service point along the networking service pipeline based on an LRO capability of at least one of the multiple networking services to process the aggregated packet, and

wherein the aggregated packet is split by the packet splitting service at the another service point into multiple non-aggregated packets; and

forwarding the at least one processed packet generated by the networking service pipeline to the virtualized computing instance.

7. The non-transitory computer-readable storage medium of claim 6 , wherein processing the incoming packets comprises:

splitting, by the packet splitting service, the aggregated packet based on packet boundary information associated with the incoming packets.

8. The non-transitory computer-readable storage medium of claim 7 , wherein processing the incoming packets comprises:

linking, by the packet aggregation service, the aggregated packet with the packet boundary information that includes memory address information associated with the incoming packets.

9. The non-transitory computer-readable storage medium of claim 6 , wherein receiving the incoming packets comprises:

retrieving the incoming packets from a NIC queue that belongs to a pool of multiple NIC queues at the physical NIC that are configured to hold incoming packets destined for multiple virtualized computing instances that have LRO capability.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the method further comprises:

prior to receiving the incoming packets, enabling the packet aggregation service at the service point along the networking service pipeline associated with the NIC queue.

11. A host configured to perform large receive offload (LRO) processing in a virtualized computing environment, wherein the host comprises:

a processor;

a physical network interface controller (NIC);

a networking service pipeline having a packet aggregation service and multiple networking services; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to:

receive, via the physical NIC, incoming packets that are destined for a virtualized computing instance supported by the host, wherein prior to receiving the incoming packets, enabling a packet splitting service at another service point along the networking service pipeline based on an LRO capability of the virtualized computing instance, or an LRO capability of at least one of the multiple networking services, or both;

process the incoming packets to generate at least one processed packet using the networking service pipeline,

wherein the packet aggregation service is configured to aggregate the incoming packets into an aggregated packet and enabled at a service point along the networking service pipeline based on an LRO capability of at least one of the multiple networking services to process the aggregated packet, and

wherein the aggregated packet is split by the packet splitting service at the another service point into multiple non-aggregated packets; and

forward the at least one processed packet generated by the networking service pipeline to the virtualized computing instance.

12. The host of claim 11 , wherein the instructions for processing the incoming packets cause the processor to:

split, by the packet splitting service, the aggregated packet based on packet boundary information associated with the incoming packets.

13. The host of claim 12 , wherein the instructions for processing the incoming packets cause the processor to:

link, by the packet aggregation service, the aggregated packet with the packet boundary information that includes memory address information associated with the incoming packets.

14. The host of claim 11 , wherein the instructions for receiving the incoming packets cause the processor to:

retrieve the incoming packets from a NIC queue that belongs to a pool of multiple NIC queues at the physical NIC that are configured to hold incoming packets destined for multiple virtualized computing instances that have LRO capability.

15. The host of claim 14 , wherein the instructions further cause the processor to:

prior to receiving the incoming packets, enable the packet aggregation service at the service point along the networking service pipeline associated with the NIC queue.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2017
From: MEHTA, RISHI; ANG, BOON; YANG, GUOLIN; JIANG, WENYI; JAIN, JAYANT
To: NICIRA, INC.
Reel/Frame 042534/0633 →
Cited By (1)
US 12,206,578