Congestion avoidance in multipath routed flows using virtual output queue statistics
First Claim
1. A device, comprising:
- interfaces, each configured to output network packets;
a memory storing;
multipath groups, each associated with some of the interfaces;
virtual output queues, each associated with one of the interfaces and configured to store information indicating network packets to be output by an associated interface; and
histogram tables;
shared-interface discovery logic configured to;
generate a shared-interface list including members that each represents a union of interfaces between at least some of the multipath groups, wherein the multipath groups of the each member share at least one of the interfaces; and
associate each of the histogram tables with one of the members;
network routing logic configured to;
generate a hash value for each network packet to be output by an interface of the device;
select one of the interfaces to output each of the network packets including determining which of the interfaces is associated with a hash reference range that includes the hash value generated for the network packet; and
statistics collection logic configured to;
determine whether a number of network packets indicated by information of one of the virtual output queues meets a first threshold;
upon determining that the number of network packets indicated by information of one of the virtual output queues meets the first threshold, populate one of the histogram tables with counts of hash values generated for the network packets, wherein the one histogram table is selected based on determining that a network packet to be output by an interface that is included in a member of the shared-interface list, wherein the included interface is associated with the one of the virtual output queues; and
determine whether one of the interfaces is congested based on the counts of hash values.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are techniques regarding interfaces, each configured to output network packets. The techniques can regard a memory for storing multipath groups, virtual output queues, and a histogram table for storing statistical information associated with network packets to be output by interfaces. The techniques can include generating a shared-interface list including a member that represents a union of interfaces of at least some of the multipath groups, wherein the multipath groups of the member share at least one of the interfaces. The techniques can include associating the histogram table with the member. The techniques can include collecting the statistical information pertaining to network packets indicated by information stored in one of the virtual output queues, populating the histogram table with the statistical information, and determining that one of the interfaces is congested based on the statistical information.
20 Citations
20 Claims
-
1. A device, comprising:
-
interfaces, each configured to output network packets; a memory storing; multipath groups, each associated with some of the interfaces; virtual output queues, each associated with one of the interfaces and configured to store information indicating network packets to be output by an associated interface; and histogram tables; shared-interface discovery logic configured to; generate a shared-interface list including members that each represents a union of interfaces between at least some of the multipath groups, wherein the multipath groups of the each member share at least one of the interfaces; and associate each of the histogram tables with one of the members; network routing logic configured to; generate a hash value for each network packet to be output by an interface of the device; select one of the interfaces to output each of the network packets including determining which of the interfaces is associated with a hash reference range that includes the hash value generated for the network packet; and statistics collection logic configured to; determine whether a number of network packets indicated by information of one of the virtual output queues meets a first threshold; upon determining that the number of network packets indicated by information of one of the virtual output queues meets the first threshold, populate one of the histogram tables with counts of hash values generated for the network packets, wherein the one histogram table is selected based on determining that a network packet to be output by an interface that is included in a member of the shared-interface list, wherein the included interface is associated with the one of the virtual output queues; and determine whether one of the interfaces is congested based on the counts of hash values. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A device, comprising:
-
interfaces, each configured to output network packets; a memory for storing; multipath groups, each associated with some of the interfaces; virtual output queues, each associated with one of the interfaces and configured to store information indicating network packets to be output by the associated interface; and a table for storing statistical information associated with network packets; shared-interface discovery logic configured to; generate a shared-interface list including a member that represents a union of interfaces of at least some of the multipath groups, wherein the multipath groups of the member share at least one of the interfaces; and associate the table with the member; and statistics collection logic configured to; collect the statistical information pertaining to network packets indicated by information stored in one of the virtual output queues; populate the table with the statistical information; and determine that one of the interfaces is congested based on the statistical information. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method, comprising:
-
identifying members of a shared-interface list, wherein each member represents a union of interfaces of two multipath groups that share at least one interface of a network device, wherein each multipath group indicates a group of interfaces of the network device; associating each of the shared-interface list members with a respective histogram table, each histogram table including counters, each counter being associated with a hash value; generating a hash value for each one of network packets to be output by one of the interfaces of the network device; selecting a corresponding interface to output each of the network packets by comparing the hash value generated for each network packet with a hash reference range associated with each of the interfaces; determining, using information in a virtual output queue of the network device, whether a number of network packets to be output by one of the interfaces meets a first threshold; upon determining that the number of network packets to be output by the one of the interfaces meets the first threshold, updating a corresponding counter value of a histogram table associated with a shared-interface list member, the shared-interface list member including a multipath group including the one interface; and determining whether the counter value of the associated histogram table indicates that the one interface is congested. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification