Data routing acceleration
First Claim
1. A method of processing data packets comprising:
- receiving data packets at a receive stack at an ingress interface of an electronic network device, wherein the receive stack includes a first application layer, a first transport control protocol (TCP) layer, a first Internet protocol (IP) layer, and a first data link layer, the first data link layer having a first bridge layer and a first firmware layer herein;
creating within the first firmware layer a first packet from at least a portion of each of the set of data packets, the first packet including an indicator that the first packet is a large receive offload (LRO) packet;
passing the first packet from the first firmware layer to the first bridge of the receive stack;
upon recognizing the first packet as an LRO packet based on the indicator, overriding a packet size limitation implemented by the first bridge, thereby enabling the first bridge to process the first packet;
determining whether the first packet matches a media access control (MAC) address in a MAC address table provided by the first bridge;
if no match is found in the MAC address table, determining whether the first packet matches an IP address in an IP address table provided by the first IP layer;
if a match is found, transmitting the first packet to a corresponding layer of a transmit stack of an egress interface of the electronic network device without passing the first packet to the first TCP layer or the first application layer of the receive stack, wherein the transmit stack includes a second application layer, a second transport control protocol (TCP) layer, a second Internet protocol (IP) layer, and a second data link layer, the second data link layer having a second bridge layer and a second firmware layer herein, wherein the corresponding layer of the transmit stack that receives the first packet is one of the second bridge layer and the second firmware layer; and
routing, by the transmit stack of the egress interface, the first packet to a destination specified by the match via the egress interface.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, devices and methods for improving network performance are disclosed. In particular, in one embodiment, a method of processing data packets in an electronic network is provided. The method includes receiving data packets at a receive stack of an electronic network device and creating a first packet from at least a portion of each of the set of data packets. The first packet includes an indicator that the first packet is a first packet type. Additionally, the method includes passing the first packet to one of a bridge and IP layer of the receive stack. A first packet inhibitor at the one of the bridge and IP layer is bypassed upon recognizing the first packet as a first packet type. The first packet is routed to a transmit stack of the electronic network device from the one of the bridge and IP layer.
22 Citations
18 Claims
-
1. A method of processing data packets comprising:
-
receiving data packets at a receive stack at an ingress interface of an electronic network device, wherein the receive stack includes a first application layer, a first transport control protocol (TCP) layer, a first Internet protocol (IP) layer, and a first data link layer, the first data link layer having a first bridge layer and a first firmware layer herein; creating within the first firmware layer a first packet from at least a portion of each of the set of data packets, the first packet including an indicator that the first packet is a large receive offload (LRO) packet; passing the first packet from the first firmware layer to the first bridge of the receive stack; upon recognizing the first packet as an LRO packet based on the indicator, overriding a packet size limitation implemented by the first bridge, thereby enabling the first bridge to process the first packet; determining whether the first packet matches a media access control (MAC) address in a MAC address table provided by the first bridge; if no match is found in the MAC address table, determining whether the first packet matches an IP address in an IP address table provided by the first IP layer; if a match is found, transmitting the first packet to a corresponding layer of a transmit stack of an egress interface of the electronic network device without passing the first packet to the first TCP layer or the first application layer of the receive stack, wherein the transmit stack includes a second application layer, a second transport control protocol (TCP) layer, a second Internet protocol (IP) layer, and a second data link layer, the second data link layer having a second bridge layer and a second firmware layer herein, wherein the corresponding layer of the transmit stack that receives the first packet is one of the second bridge layer and the second firmware layer; and routing, by the transmit stack of the egress interface, the first packet to a destination specified by the match via the egress interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An electronic network device comprising:
-
a processor; a memory coupled to the processor, the memory storing operating instructions for the operation of the network device; a transmit stack and a receive stack as part of a network stack provided by an operating system operated by the processor, the transmit stack being associated with an egress interface of the electronic network device and the receive stack being associated with an ingress interface of the electronic network device, each of the transmit stack and receive stack comprising; a first layer being a data link layer comprising; a driver; and a bridge layer logically adjacent to the driver and operated by the processor, the bridge layer including a MAC address table for mapping media control access (MAC) addresses; a second layer being an Internet protocol (IP) layer logically adjacent to the bridge layer, the second layer including an IP address table for mapping IP addresses; a transport control protocol (TCP) layer coupled to the IP layer; and an application layer coupled to the TCP layer, wherein a driver of the receive stack is configured to create a first packet of a large receive offload (LRO) packet type from a plurality of received data packets, the first packet including an indication for overriding packet size limits; wherein the bridge layer of the receive stack is configured to; recognize the indication for overriding packet size limits; overriding a packet size limitation implemented by the bridge layer of the receive stack, thereby enabling the bridge layer of the receive stack to process the first packet; determining whether the first packet matches a media access control (MAC) address in the MAC address table of the receive stack; and if a match is found, forward the first packet to a bridge layer of the transmit stack upon finding a common address in the MAC address table of the receive stack and a MAC address table of the transmit stack, without forwarding the first packet to the TCP layer or the application layer of the receive stack; wherein the IP layer of the receive stack is configured to; if no match is found in the MAC address table of the receive stack, determine whether the first packet matches an IP address in an IP address table of the receive stack; and if a match is found, forward the first packet to an IP layer of the transmit stack upon finding a common address in the IP address table of the receive stack and an IP address table of the transmit stack, without forwarding the first packet to the TCP layer or the application layer of the receive stack. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform a method for operating an electronic network device, the method comprising:
-
receiving data packets at a receive stack at an ingress interface of the electronic network device, wherein the receive stack includes a first application layer, a first transport control protocol (TCP) layer, a first Internet protocol (IP) layer, and a first data link layer, the first data link layer having a first bridge layer and a first firmware layer herein; creating within the first firmware layer a first packet from at least a portion of each of the set of data packets, the first packet including an indicator that the first packet is a large receive offload (LRO) packet; passing the first packet from the first firmware layer to the first bridge of the receive stack; upon recognizing the first packet as an LRO packet based on the indicator, overriding a packet size limitation implemented by the first bridge, thereby enabling the first bridge to process the first packet; determining whether the first packet matches a media access control (MAC) address in a MAC address table provided by the first bridge; if no match is found in the MAC address table, determining whether the first packet matches an IP address in an IP address table provided by the first IP layer; if a match is found, transmitting the first packet to a corresponding layer of a transmit stack of an egress interface of the electronic network device without passing the first packet to the first TCP layer or the first application layer of the receive stack, wherein the transmit stack includes a second application layer, a second transport control protocol (TCP) layer, a second Internet protocol (IP) layer, and a second data link layer, the second data link layer having a second bridge layer and a second firmware layer herein, wherein the corresponding layer of the transmit stack that receives the first packet is one of the second bridge layer and the second firmware layer; and routing, by the transmit stack of the egress interface, the first packet to a destination specified by the match via the egress interface. - View Dependent Claims (16, 17, 18)
-
Specification