Decoupled and concurrent packet processing and packet buffering for load-balancing router architecture
First Claim
Patent Images
1. A network component comprising:
- a traffic manager (TM) configured to assign a unique identifier (ID) to a received packet;
a splitter module configured to separate a header and a payload of the received packet, attach the unique ID to the header, and attach the unique ID to the payload;
a merger module configured to receive the header from a first network processing unit (NPU) of a plurality of NPUs, obtain the unique ID attached to the header, obtain the payload from a first buffer that holds the payload, wherein the unique ID attached to the header is used to determine that the first buffer holds the payload, and merge the header and the payload according to the unique ID to form an outgoing packet;
a packet buffer load balancer configured to receive the payload from the splitter module after attaching the unique ID to the payload, determine the first buffer amongst a plurality of packet buffers to hold the payload, and determine that the first buffer holds the payload based upon a first predefined policy for maximizing memory bandwidth and capacity utilization while minimizing memory access latency; and
a packet processing load balancer configured to receive the header from the splitter module after attaching the unique ID to the header, determine the first NPU amongst the plurality of NPUs to process the header, and determine that the header is processed by the first NPU based upon a second predefined policy for maximizing throughput while minimizing a processing latency,wherein the header and the payload of the received packet are processed in parallel with each other prior to merging the header and the payload to form the outgoing packet.
1 Assignment
0 Petitions
Accused Products
Abstract
A network component comprising a traffic manager (TM) configured to assign a unique identifier (ID) to a received packet, a splitter module configured to separate a header and a payload of the received packet, the splitter module further configured to attach the unique ID to each of the header and the payload, and a merger module configured to assemble an outgoing packet using the header and the payload.
10 Citations
17 Claims
-
1. A network component comprising:
-
a traffic manager (TM) configured to assign a unique identifier (ID) to a received packet; a splitter module configured to separate a header and a payload of the received packet, attach the unique ID to the header, and attach the unique ID to the payload; a merger module configured to receive the header from a first network processing unit (NPU) of a plurality of NPUs, obtain the unique ID attached to the header, obtain the payload from a first buffer that holds the payload, wherein the unique ID attached to the header is used to determine that the first buffer holds the payload, and merge the header and the payload according to the unique ID to form an outgoing packet; a packet buffer load balancer configured to receive the payload from the splitter module after attaching the unique ID to the payload, determine the first buffer amongst a plurality of packet buffers to hold the payload, and determine that the first buffer holds the payload based upon a first predefined policy for maximizing memory bandwidth and capacity utilization while minimizing memory access latency; and a packet processing load balancer configured to receive the header from the splitter module after attaching the unique ID to the header, determine the first NPU amongst the plurality of NPUs to process the header, and determine that the header is processed by the first NPU based upon a second predefined policy for maximizing throughput while minimizing a processing latency, wherein the header and the payload of the received packet are processed in parallel with each other prior to merging the header and the payload to form the outgoing packet. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a traffic manager (TM), a method for load-balancing, the method comprising:
-
receiving a packet; assigning a unique identifier (ID) to the packet; splitting the packet into a header and a payload for separate processing of the header and the payload; attaching the unique ID to the header; attaching the unique ID to the payload; assigning the header to one of a plurality of network processing units (NPUs) for processing the header after splitting the packet, wherein the assigning the header to the one of the NPUs is determined by a first predefined policy for maximizing throughput while minimizing latency; assigning the payload to one of a plurality of packet buffers, wherein assigning the payload to the one of the buffers is determined by a second predefined policy for maximizing memory bandwidth and capacity utilization while minimizing memory access latency; receiving the header from the one of a plurality of NPUs; determining the unique ID attached to the header; retrieving the payload located within the one of a plurality of buffers, wherein the one of the buffers is identified using the unique ID attached to the header; and subsequently reassembling the payload and the header to form an outgoing packet using the unique ID, wherein the header and the payload are processed in parallel with each other prior to reassembling the header and the payload to form the outgoing packet. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer program product for load-balancing data packets, the computer program product comprising computer executable instructions stored in a non-transitory computer readable medium such that when executed by a processor causes a network component to:
-
assign a unique identifier (ID) to a received data packet; separate a header and a payload of the received data packet; attach the unique ID to both the header and the payload; distribute the header with the attached unique ID to one of a plurality of network processing units (NPUs) according to a predefined load balancing policy; distribute the payload with the attached unique ID to one of a plurality of buffers according to a second predefined load balancing policy; receiving the header from the one of a plurality of NPUs; determining the unique ID attached to the header; obtain the payload from the one of a plurality of buffers referenced by the unique ID attached to the header; and merge the header and the payload after obtaining the payload from the one of the buffers, wherein the header and the payload of the received data packet are processed in parallel with each other prior to assembling the header and the payload to form an outgoing packet. - View Dependent Claims (16, 17)
-
Specification