Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method comprising: receiving, by an ingress fabric endpoint of a plurality of fabric endpoints coupled to a switch fabric within a network device, a plurality of packet flows for switching across the switch fabric to an egress fabric endpoint of the plurality of fabric endpoints for the packet flows, wherein the plurality of fabric endpoints are configured to exchange cells across the switch fabric; assigning, by the ingress fabric endpoint and based at least on a congestion status of each packet flow of the plurality of packet flows, each packet for each packet flow of the plurality of packet flows to one of a fast path for packet switching or a slow path for packet switching, wherein assigning each packet comprises: assigning, by the ingress fabric endpoint and based at least on the congestion status of a first packet flow of the plurality of packet flows being congested, packets for the first packet flow to the slow path for packet switching; and assigning, by the ingress fabric endpoint and based at least on the congestion status of a second packet flow of the plurality of packet flows being uncongested, packets for the second packet flow to the fast path for packet switching; and processing, by the ingress fabric endpoint to generate a stream of cells for switching across the switch fabric to the egress fabric endpoint, packets from the fast path and the slow path to maintain a first-in-first-out ordering of the packets within each packet flow of the plurality of packet flows and to switch a packet of the first packet flow of the plurality of packet flows after switching a packet of the second packet flow of the plurality of packet flows despite the packet of the first packet flow being received by the ingress fabric endpoint before the packet of the second packet flow.
The invention relates to network devices with switch fabrics, addressing congestion management in packet switching. In such systems, multiple fabric endpoints are coupled to a switch fabric, exchanging cells to route packet flows from ingress to egress endpoints. The challenge is efficiently handling congestion without disrupting packet order within individual flows. The method involves an ingress fabric endpoint receiving multiple packet flows for switching across the fabric. Based on congestion status, packets are dynamically assigned to either a fast path or a slow path. Congested flows are routed to the slow path, while uncongested flows use the fast path. The ingress endpoint processes packets from both paths, generating a stream of cells for the fabric while preserving first-in-first-out (FIFO) order within each flow. Notably, packets from a congested flow may be delayed behind those from an uncongested flow, even if received earlier, ensuring fair resource allocation without violating flow ordering. This approach optimizes throughput and reduces latency for uncongested traffic while managing congestion gracefully.
2. The method of claim 1 , wherein receiving the plurality of packet flows for switching across the switch fabric to the egress fabric endpoint of the plurality of fabric endpoints for the packet flows comprises receiving the first packet flow prior to receiving the second packet flow, and wherein processing packets from the fast path and the slow path comprises processing packets of the second packet flow of the fast path prior to processing packets of the first packet flow of the slow path.
3. The method of claim 1 , further comprising: incrementing, for each packet of the first packet flow that is assigned to the slow path for packet switching, a flow counter for the first packet flow; and decrementing, for each packet of the first packet flow that is processed from the slow path for packet switching, the flow counter for the first packet flow.
This invention relates to packet switching in network systems, specifically addressing the challenge of managing packet flows in high-performance networking hardware. The technology involves a method for tracking and processing packet flows in a network device, particularly when packets are diverted to a slow processing path due to resource constraints or other conditions. The method includes monitoring packet flows by assigning packets to either a fast path or a slow path for processing. For packets assigned to the slow path, a flow counter is incremented for each packet in the flow that enters the slow path. Similarly, the flow counter is decremented for each packet that is processed and exits the slow path. This counter mechanism ensures accurate tracking of packets in the slow path, preventing resource exhaustion and improving flow management. The method also involves dynamically adjusting the processing path for packets based on the flow counter values. If the counter exceeds a threshold, indicating congestion or excessive processing delay, the system may take corrective actions such as throttling new packets or reallocating resources. The counter-based approach provides a scalable and efficient way to manage packet flows in high-speed networks, ensuring reliable performance under varying load conditions.
4. The method of claim 1 , wherein the packet of the first packet flow is a first packet, wherein a flow counter for the first packet flow indicates a number of packets of the first packet flow currently assigned to the slow path, the method further comprising: in response to determining the flow counter for the first packet flow indicates a non-zero number of packets of the first packet flow are currently assigned to the slow path, assigning a second packet of the first packet flow to the slow path for packet switching; and in response to determining the flow counter for the first packet flow indicates no packets of the first packet flow are currently assigned to the slow path, assigning a third packet of the first packet flow to the fast path for packet switching.
5. The method of claim 1 , wherein processing packets from the fast path and the slow path comprises merging packets of packet flows from the fast path with packet flows of the slow path and generating, from the merged packets, the stream of cells for switching across the switch fabric to the egress fabric endpoint.
This invention relates to packet switching in network devices, specifically addressing the challenge of efficiently merging packet flows from different processing paths to optimize switching performance. In high-speed networking, packets are often processed through distinct paths—fast paths for low-latency handling and slow paths for more complex operations. The invention describes a method for merging packet flows from these paths into a unified stream of cells for transmission across a switch fabric to an egress endpoint. The merging process ensures that packets from both paths are combined seamlessly, maintaining flow integrity and minimizing latency. The stream of cells is then switched across the fabric to the appropriate egress endpoint, where the cells are reassembled into packets for output. This approach improves throughput and reduces processing bottlenecks by dynamically integrating fast and slow path traffic, allowing the network device to handle diverse traffic types efficiently. The method is particularly useful in high-performance networking environments where latency and throughput are critical.
6. The method of claim 1 , wherein assigning a packet to the fast path comprises pushing the packet to a fast path queue, and wherein assigning a packet to the slow path comprises pushing the packet to a slow path queue once the packet has been read from external memory, and wherein processing packets from the fast path and the slow path comprises merging packets of packet flows by selectively dequeuing packets from the slow path queue and the fast path queue.
7. The method of claim 6 , wherein a round-robin scheduler selectively dequeues the packets from the slow path queue and the fast path queue.
8. The method of claim 1 , wherein assigning packets for the first packet flow of the plurality of packet flows to the slow path for packet switching comprises: assigning packets for the first packet flow to the slow path in response to determining packets of the first packet flow are currently stored to external memory for subsequent processing by the ingress fabric endpoint.
In the field of network packet processing, this invention addresses the challenge of efficiently managing packet flows in high-speed network devices. The invention provides a method for dynamically assigning packet flows to different processing paths based on their current state and processing requirements. Specifically, it involves a system where packets are routed through either a fast path or a slow path within a network device, such as a switch or router. The fast path is optimized for low-latency processing, while the slow path is designed for more complex or delayed processing tasks. The method includes monitoring the status of packet flows and determining whether packets of a particular flow are currently stored in external memory for subsequent processing by an ingress fabric endpoint. If packets of a flow are stored in external memory, the method assigns those packets to the slow path for further processing. This ensures that packets requiring additional handling or delayed processing are routed appropriately, preventing bottlenecks in the fast path and maintaining overall network efficiency. The slow path may involve additional processing steps, such as deeper packet inspection, buffering, or reordering, before the packets are forwarded to their destination. By dynamically adjusting the routing of packet flows based on their current state, the invention improves network performance and resource utilization.
9. The method of claim 1 , wherein the fast path for packet switching comprises an internal memory path of the network device, and wherein the slow path for packet switching comprises an external memory path of the network device.
10. A network device comprising a plurality of fabric endpoints coupled to a switch fabric within the network device, wherein the plurality of fabric endpoints are configured to exchange cells across the switch fabric, and wherein an ingress fabric endpoint of the plurality of fabric endpoints is configured to: receive a plurality of packet flows for switching across the switch fabric to an egress fabric endpoint of the plurality of fabric endpoints for the packet flows; assign, based at least on a congestion status of each packet flow of the plurality of packet flows, each packet for each packet flow of the plurality of packet flows to one of a fast path for packet switching or a slow path for packet switching, wherein to assign each packet, the ingress fabric endpoint is configured to assign, based at least on the congestion status of a first packet flow of the plurality of packet flows being congested, packets for the first packet flow to the slow path for packet switching; and assign, based at least on the congestion status of a second packet flow of the plurality of packet flows being uncongested, packets for the second packet flow to the fast path for packet switching; and process, to generate a stream of cells for switching across the switch fabric to the egress fabric endpoint, packets from the fast path and the slow path to maintain a first-in-first-out ordering of the packets within each packet flow of the plurality of packet flows and to switch a packet of the first packet flow of the plurality of packet flows after switching a packet of the second packet flow of the plurality of packet flows despite the packet of the first packet flow being received by the ingress fabric endpoint before the packet of the second packet flow.
11. The network device of claim 10 , wherein, to receive the plurality of packet flows for switching across the switch fabric to the egress fabric endpoint of the plurality of fabric endpoints for the packet flows, the ingress fabric endpoint is further configured to receive the first packet flow prior to receiving the second packet flow, and wherein, to process packets from the fast path and the slow path, the ingress fabric endpoint is further configured to process packets of the second packet flow of the fast path prior to processing packets of the first packet flow of the slow path.
12. The network device of claim 10 , wherein the ingress fabric endpoint is further configured to: increment, for each packet of the first packet flow that is assigned to the slow path for packet switching, a flow counter for the first packet flow; and decrement, for each packet of the first packet flow that is processed from the slow path for packet switching, the flow counter for the first packet flow.
13. The network device of claim 10 , wherein the packet of the first packet flow is a first packet, wherein a flow counter of the ingress fabric endpoint for the first packet flow indicates a number of packets of the first packet flow currently assigned to the slow path, and wherein the ingress fabric endpoint is further configured to: in response to determining the flow counter for the first packet flow indicates a non-zero number of packets of the first packet flow are currently assigned to the slow path, assign a second packet of the first packet flow to the slow path for packet switching; and in response to determining the flow counter for the first packet flow indicates no packets of the first packet flow are currently assigned to the slow path, assign a third packet of the first packet flow to the fast path for packet switching.
In the domain of network packet switching, a challenge arises in efficiently managing packet flows between fast and slow processing paths to balance performance and resource utilization. A network device includes an ingress fabric endpoint that processes packets of a packet flow, where packets may be assigned to either a fast path for high-speed switching or a slow path for more detailed processing. The ingress fabric endpoint maintains a flow counter for each packet flow, tracking the number of packets currently assigned to the slow path. When processing a packet of the flow, the endpoint checks the flow counter. If the counter indicates at least one packet is already in the slow path, the next packet is also assigned to the slow path. If the counter indicates no packets are in the slow path, the next packet is assigned to the fast path. This ensures that packets from the same flow are consistently processed in the same path, preventing out-of-order delivery while dynamically adapting to network conditions. The slow path may handle packets requiring deeper inspection or processing, while the fast path prioritizes speed for packets that meet predefined criteria. This approach optimizes network performance by reducing unnecessary slow-path processing while maintaining packet order integrity.
14. The network device of claim 10 , wherein, to process packets from the fast path and the slow path, the ingress fabric endpoint is further configured to merge packets of packet flows from the fast path with packet flows of the slow path and generate, from the merged packets, the stream of cells for switching across the switch fabric to the egress fabric endpoint.
15. The network device of claim 10 , wherein, to assign a packet to the fast path, the ingress fabric endpoint is further configured to push the packet to a fast path queue, wherein, to assign a packet to the slow path, the ingress fabric endpoint is further configured to push the packet to a slow path queue once the packet has been read from external memory, and wherein to process packets from the fast path and the slow path, the ingress fabric endpoint is further configured to merge packets of packet flows by selectively dequeuing packets from the slow path queue and the fast path queue.
This invention relates to network devices that process packets using a dual-path architecture to improve efficiency. The problem addressed is the need to balance performance and resource utilization in packet processing, where some packets require immediate handling while others can be processed with lower priority. The network device includes an ingress fabric endpoint that receives packets and assigns them to either a fast path or a slow path based on predefined criteria. For fast-path packets, the endpoint pushes them directly to a fast path queue for immediate processing. For slow-path packets, the endpoint first reads the packet from external memory before pushing it to a slow path queue, allowing for deferred processing. The ingress fabric endpoint then processes packets from both paths by merging them into a unified flow. This is done by selectively dequeuing packets from either the fast path queue or the slow path queue, ensuring that high-priority packets are handled promptly while lower-priority packets are processed when resources are available. The merging process maintains packet order within each flow, preventing out-of-order delivery. This dual-path approach optimizes network device performance by prioritizing critical packets while efficiently managing memory and processing resources for less urgent traffic. The system dynamically adjusts to varying network conditions, improving overall throughput and latency.
16. The network device of claim 15 , wherein the ingress fabric endpoint further comprises a round-robin scheduler configured to selectively dequeue the packets from the slow path queue and the fast path queue.
A network device includes a packet processing system with multiple queues for handling data packets. The system distinguishes between fast path packets, which require low-latency processing, and slow path packets, which can tolerate higher latency. The device includes an ingress fabric endpoint that manages these queues, ensuring efficient packet distribution and processing. The ingress fabric endpoint further includes a round-robin scheduler that selectively dequeues packets from both the slow path and fast path queues. This scheduler ensures fair and balanced processing by alternating between the two queues, preventing slow path packets from monopolizing resources while maintaining low-latency performance for fast path packets. The system optimizes network performance by dynamically adjusting queue priorities based on traffic conditions, improving overall throughput and reducing congestion. The round-robin mechanism ensures that no single queue dominates processing time, leading to more predictable and consistent network behavior. This approach is particularly useful in high-traffic environments where different types of packets must be handled with varying levels of urgency.
17. The network device of claim 10 , wherein, to assign packets for the first packet flow of the plurality of packet flows to the slow path for packet switching, the ingress fabric endpoint is further configured to: assign packets for the first packet flow to the slow path in response to determining packets of the first packet flow are currently stored to external memory for subsequent processing by the ingress fabric endpoint.
18. A non-transitory, computer-readable medium comprising instructions that, when executed, are configured to cause one or more processors of an ingress fabric endpoint of a plurality of fabric endpoints, the plurality of fabric endpoints coupled to a switch fabric within a network device and the plurality of fabric endpoints configured to exchange cells across the switch fabric, to: receive a plurality of packet flows for switching across the switch fabric to an egress fabric endpoint of the plurality of fabric endpoints for the packet flows; assign, based at least on a congestion status of each packet flow of the plurality of packet flows, each packet for each packet flow of the plurality of packet flows to one of a fast path for packet switching or a slow path for packet switching, wherein to assign each packet, the ingress fabric endpoint is configured to: assign, based at least on the congestion status of a first packet flow of the plurality of packet flows being congested, packets for the first packet flow to the slow path for packet switching; and assign, based at least on the congestion status of a second packet flow of the plurality of packet flows being uncongested, packets for the second packet flow to the fast path for packet switching; process, to generate a stream of cells for switching across the switch fabric to the egress fabric endpoint, packets from the fast path and the slow path to maintain a first-in-first-out ordering of the packets within each packet flow of the plurality of packet flows and to switch a packet of the first packet flow of the plurality of packet flows after switching a packet of the second packet flow of the plurality of packet flows despite the packet of the first packet flow being received by the ingress fabric endpoint before the packet of the second packet flow.
Unknown
March 16, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.