Weighted load balancing in a multistage network using hierarchical ECMP
First Claim
Patent Images
1. A method comprising:
- generating, by a data switch, a first hash value based on a header of a data packet;
performing, by the same data switch, a lookup in a first equal cost multi-path (ECMP) table using the first hash value, the first ECMP table including a weighted listing of at least two secondary ECMP tables, the lookup in the first ECMP table selecting a secondary ECMP table of the at least two secondary ECMP tables;
after performing the lookup in the first ECMP table, generating, by the same data switch, a second hash value based on the header of the data packet;
performing, by the same data switch, a lookup in the selected secondary ECMP table based on the second hash value to select an egress port of a plurality of egress ports of the data switch, a first secondary ECMP table of the at least two secondary ECMP tables including a listing of a first set of egress ports of the plurality of egress ports, a second secondary ECMP table of the at least two secondary ECMP tables including a listing of a second set of egress ports of the plurality of egress ports, the listing of the first set of egress ports being different than the listing of the second set of egress ports; and
forwarding, by the same data switch, the data packet on the selected egress port.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for weighted routing of data traffic can include generating a first hash value based on a header of a data packet and performing a lookup in a first equal cost multi-path (ECMP) table using the first hash value to select a secondary ECMP table. The first ECMP table can include a weighted listing of at least two secondary ECMP tables. The method can further include generating a second hash value based on the header of the data packet and performing a lookup in the selected secondary ECMP table based on the second hash value to select an egress port of a plurality of egress ports of the data switch. The method can further include forwarding the data packet on the selected egress port.
77 Citations
26 Claims
-
1. A method comprising:
-
generating, by a data switch, a first hash value based on a header of a data packet; performing, by the same data switch, a lookup in a first equal cost multi-path (ECMP) table using the first hash value, the first ECMP table including a weighted listing of at least two secondary ECMP tables, the lookup in the first ECMP table selecting a secondary ECMP table of the at least two secondary ECMP tables; after performing the lookup in the first ECMP table, generating, by the same data switch, a second hash value based on the header of the data packet; performing, by the same data switch, a lookup in the selected secondary ECMP table based on the second hash value to select an egress port of a plurality of egress ports of the data switch, a first secondary ECMP table of the at least two secondary ECMP tables including a listing of a first set of egress ports of the plurality of egress ports, a second secondary ECMP table of the at least two secondary ECMP tables including a listing of a second set of egress ports of the plurality of egress ports, the listing of the first set of egress ports being different than the listing of the second set of egress ports; and forwarding, by the same data switch, the data packet on the selected egress port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A data switch, comprising:
-
at least one memory that is configured to store instructions; and at least one processor that is operably coupled to the at least one memory and that is configured to process the instructions to cause the data switch to; generate a first hash value based on a header of a data packet; perform a lookup in a first equal cost multi-path (ECMP) table using the first hash value, the first ECMP table including a weighted listing of at least two secondary ECMP tables, the lookup in the first ECMP table selecting a secondary ECMP table of the at least two secondary ECMP tables; after performing the lookup in the first ECMP table, generate a second hash value based on the header of the data packet; perform a lookup in the selected secondary ECMP table based on the second hash value to select an egress port of a plurality of egress ports of the data switch, a first secondary ECMP table of the at least two secondary ECMP tables including a listing of a first set of egress ports of the plurality of egress ports, a second secondary ECMP table of the at least two secondary ECMP tables including a listing of a second set of egress ports of the plurality of egress ports, the listing of the first set of egress ports being different than the listing of the second set of egress ports; and forward the data packet on the selected egress port. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A method comprising:
-
receiving, at a data switch, a set of routing weights for a plurality of egress ports of the data switch; converting, at the data switch, the set of routing weights to a two-level hierarchy of equal cost multipath (ECMP) tables, the converting including; generating a first-level ECMP table; generating a first second-level ECMP table; and generating a second second-level ECMP table, the first-level ECMP table including a weighted listing of the first second-level ECMP table and the second second-level ECMP table, the first second-level ECMP table including a listing of a first set of egress ports of the plurality of egress ports of the data switch, the second second-level ECMP table including a listing of a second set of egress ports of the plurality of egress ports of the same data switch, the listing of the second set of egress ports being different than the listing of the first set of egress ports; and
storing the two-level hierarchy of ECMP tables in the data switch. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A data switch, comprising:
-
at least one memory that is configured to store instructions; and at least one processor that is operably coupled to the at least one memory and that is configured to process the instructions to cause the data switch to; receive a set of routing weights for a plurality of egress ports of the data switch; convert the set of routing weights to a two-level hierarchy of equal cost multi-path (ECMP) tables, the converting including; generating a first-level ECMP table; generating a first second-level ECMP table; and generating a second second-level ECMP table, the first-level ECMP table including a weighted listing of the first second-level ECMP table and the second second-level ECMP table, the first second-level ECMP table including a listing of a first set of egress ports of the plurality of egress ports of the data switch, the second second-level ECMP table including a listing of a second set of egress ports of the plurality of egress ports of the same data switch, the listing of the second set of egress ports being different than the listing of the first set of egress ports; and store the two-level hierarchy of ECMP tables in the data switch. - View Dependent Claims (23, 24, 25, 26)
-
Specification