Snooping forwarded packets by a virtual machine
First Claim
1. A method for a virtual machine to forward packets from a first network node to a second network node, comprising:
- forwarding a first packet from the first network node to the second network node via a physical network interface controller (PNIC);
extracting a maximum packet size parameter from the first packet; and
forwarding a second packet to the PNIC, wherein the second packet is a packet, which includes a plurality packets from the first network node that have been aggregated according to an aggregation rule and is larger than allowed by the extracted maximum packet size parameter, and the PNIC is configured to segment the second packet into a third plurality of packets that are each smaller than or equal to the extracted maximum packet size and send the third plurality of packets to the second network node.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for performing LRO aggregation on packets being forwarded by a VM is provided. The method segments the LRO aggregated packet according to the Maximum Segment Size (MSS) of the TCP protocol before forwarding the segmented packets to their destination. The method snoops the packets being forwarded for its MSS parameter before using the snooped MSS parameter to perform Transmit Segmentation Offload (TSO) operation. The PNIC performs both the aggregation operation (LRO) and the segmentation (TSO) within its own hardware without consuming CPU cycles at the host machine. The PNIC receives the MSS parameter from the network stack as a metadata that accompanies a LRO aggregated packet.
-
Citations
12 Claims
-
1. A method for a virtual machine to forward packets from a first network node to a second network node, comprising:
-
forwarding a first packet from the first network node to the second network node via a physical network interface controller (PNIC); extracting a maximum packet size parameter from the first packet; and forwarding a second packet to the PNIC, wherein the second packet is a packet, which includes a plurality packets from the first network node that have been aggregated according to an aggregation rule and is larger than allowed by the extracted maximum packet size parameter, and the PNIC is configured to segment the second packet into a third plurality of packets that are each smaller than or equal to the extracted maximum packet size and send the third plurality of packets to the second network node. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computing device serving as a host machine in a network, the computing device comprising:
-
a processor for operating a virtual machine that forwards packets from a first node in the network to a physical network interface controller (PNIC) to send to a second node in the network, wherein the virtual machine extracts a maximum packet size from a particular forwarded packet, and at least some of the forwarded packets are larger than the maximum packet size; and the PNIC for receiving packets from and transmitting packets to the network, wherein the PNIC aggregates received packets from the first network node into aggregated packets and segments the aggregated packets being forwarded by the virtual machine into segmented packets that are smaller than or equal to the extracted maximum packet size. - View Dependent Claims (9, 10, 11, 12)
-
Specification