Congestion avoidance in multipath routed flows
First Claim
1. A network device, comprising:
- a plurality of output interface ports;
a memory storing;
a plurality of multipath groups, each multipath group associated with respective ones of the output interface ports;
a plurality of output queues, each output queue corresponding to a respective one of the output interface ports and each output queue storing information indicative of network packets to be output by the network device via the respective output interface port;
a plurality of congestion control blocks, each congestion control block associated with a respective one of the multipath groups and each congestion control block storing;
a congested output interface port identifier,two identifiers, each associated with a flow of network packets, andtwo counters, each associated with one of the two identifiers;
congestion control block update logic configured to;
determine congestion experienced at a particular one of the output queues;
inspect network packets stored at the particular output queue to determine, for each network packet, a group identifier and a flow of network packets identifier;
update a congestion control block of the plurality of congest control blocks corresponding to each of the multipath groups associated with the network packets from the particular output queue with flow identification information and network packet count information; and
network flow detection logic configured to;
determine, using the congestion control block for an multipath group, whether a value of a counter of the two counters meets a threshold; and
upon determining that a counter of the two counters meets the threshold, identify, using an identifier of the two identifiers, a flow of network packets contributing to the congestion experienced at the particular output queue.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are disclosed regarding receiving a plurality of flows of network packets and determining, by processing logic of a device, a hash value for each of the network packets of the flows, wherein the hash value indicates the flow of network packets that a network packet belongs to. Based on the hash value, one of a plurality of interface ports of a multipath group of the device can be selected for output of network packets from two of the flows of network packets. Network packets from the two flows of network packets to be output by the interface port can be stored. Upon determining that a number of packets stored from the one of the two flows of network packets meets a first threshold, one of the two flows of network packets can be identified as a congestion contributing flow.
-
Citations
20 Claims
-
1. A network device, comprising:
-
a plurality of output interface ports; a memory storing; a plurality of multipath groups, each multipath group associated with respective ones of the output interface ports; a plurality of output queues, each output queue corresponding to a respective one of the output interface ports and each output queue storing information indicative of network packets to be output by the network device via the respective output interface port; a plurality of congestion control blocks, each congestion control block associated with a respective one of the multipath groups and each congestion control block storing; a congested output interface port identifier, two identifiers, each associated with a flow of network packets, and two counters, each associated with one of the two identifiers; congestion control block update logic configured to; determine congestion experienced at a particular one of the output queues; inspect network packets stored at the particular output queue to determine, for each network packet, a group identifier and a flow of network packets identifier; update a congestion control block of the plurality of congest control blocks corresponding to each of the multipath groups associated with the network packets from the particular output queue with flow identification information and network packet count information; and network flow detection logic configured to; determine, using the congestion control block for an multipath group, whether a value of a counter of the two counters meets a threshold; and upon determining that a counter of the two counters meets the threshold, identify, using an identifier of the two identifiers, a flow of network packets contributing to the congestion experienced at the particular output queue. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A device, comprising:
-
a plurality of output interface ports; a memory storing; a plurality of multipath groups, each multipath group associated with respective ones of the output interface ports; a plurality of output queues, each output queue corresponding to a respective one of the plurality of output interface ports, and each output queue storing information indicative of network packets to be output by the device via the corresponding output interface port; a plurality of congestion control blocks, each congestion control block associated with a respective one of the multipath groups and each congestion control block storing statistical information for the associated multipath group; congestion control block update logic configured to; determine congestion at one of the output queues; update the statistical information stored at each congestion control block of the plurality of congestion control blocks with information determined based on network packet information in the congested output queue; and network flow detection logic configured to identify, using the congestion control block for a particular one of the multipath groups, a flow of network packets contributing to congestion at the congested output queue. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method, comprising:
-
receiving a plurality of flows of network packets; determining, by processing logic of a device, a hash value for each of the network packets of the flows, wherein the hash value indicates the flow of network packets that a network packet belongs to; selecting, based on the hash value, one of a plurality of interface ports of a multipath group of the device for output of network packets from two of the flows of network packets; storing, at an output queue of the device, information associated with network packets from the two flows of network packets to be output by the interface port; determining whether a number of packets stored by identifiers, in the output queue, from one of the two flows of network packets, meets a first threshold; and upon determining that the number of packets stored from the one of the two flows of network packets meets the first threshold, identifying the one of the two flows of network packets as a congestion contributing flow. - View Dependent Claims (18, 19, 20)
-
Specification