Patent ID: 8467298

Claim:
A method implemented in a network element in a network between a source node and a destination node, the network element to provide load distribution by distributing the forwarding of flows across a set of equal cost paths to the destination node, wherein each of the flows is a set of protocol data units (PDUs) having shared characteristics that are transmitted across the network between the source node and the destination node, wherein the load distribution selects the one of the equal cost paths for each of the flows from the set of equal cost paths that minimizes imbalance in the distribution of flows across the set of equal cost paths, the method comprising the steps of: calculating the set of equal cost paths to each destination node; generating a set of unique next hop discriminators for the set of next hops transited by the set of equal cost paths; dimensioning a load distribution table based on a number of bit locations within a PDU format used by the PDUs of the flows, wherein the bit locations are chosen so that values in the those bit locations will distinguish the flows from each other; populating the load distribution table by storing, according to a distribution mechanism, in each load distribution table entry one of the next hop discriminators from the set of next hop discriminators; allocating entries in a content addressable memory (CAM) for the load distribution table according to the dimensioning; receiving a first PDU at the network element from a first flow being sent by the source node across the network to the destination node; performing a lookup of one of the next hop discriminators in the load distribution table by using values at the bit locations of the first PDU directly as an index into the CAM entries allocated for the load distribution table; and forwarding the first PDUs through a network interface corresponding to one of the paths from the set of equal cost paths to the destination node that is uniquely identified by the next hop discriminator looked up in the load distribution table.