Selection of trunk ports and paths using rotation
First Claim
Patent Images
1. A method comprising:
- generating, at a first network device, a first value based upon one or more sections of a first packet;
bit rotating, at the first network device, the first value by a first amount to generate a first rotated index, wherein the first amount is specified by a first control variable that is configured for the first network device, and wherein the first rotated index is used to select a path from a plurality of paths for forwarding the first packet from the first network device;
generating, at the first network device, a second value based upon one or more sections of a second packet; and
bit rotating, at the first network device, the second value by a second amount to generate a second rotated index, wherein the second amount is specified by a second control variable that is configured for the network device and is distinct from the first control variable, and wherein the second rotated index is used to select a port from a plurality of ports associated with a trunk for forwarding the second packet from the first network device.
8 Assignments
0 Petitions
Accused Products
Abstract
Techniques that offer enhanced diversity in the selection of paths (e.g., ECMP paths) and/or ports from ports associated with trunks for forwarding network data traffic. In one embodiment, a network device uses a rotate function to generate a rotated index (path index) that is used to select a path (e.g., an ECMP) path from multiple paths (e.g., multiple ECMP paths) for forwarding a packet. A network device may also generate a rotated index (trunk index) that is used to select an output port from multiple output ports associated with a trunk for forwarding the packet.
482 Citations
11 Claims
-
1. A method comprising:
-
generating, at a first network device, a first value based upon one or more sections of a first packet; bit rotating, at the first network device, the first value by a first amount to generate a first rotated index, wherein the first amount is specified by a first control variable that is configured for the first network device, and wherein the first rotated index is used to select a path from a plurality of paths for forwarding the first packet from the first network device; generating, at the first network device, a second value based upon one or more sections of a second packet; and bit rotating, at the first network device, the second value by a second amount to generate a second rotated index, wherein the second amount is specified by a second control variable that is configured for the network device and is distinct from the first control variable, and wherein the second rotated index is used to select a port from a plurality of ports associated with a trunk for forwarding the second packet from the first network device. - View Dependent Claims (2, 3, 4)
-
-
5. A network device comprising:
-
a plurality of ports; and a packet processor configured to generate a first value based upon one or more sections of a first packet to be forwarded from the network device, bit rotate the first value by a first amount to generate a first rotated index, wherein the first amount is specified by a first control variable that is configured for the network device, and wherein the first rotated index is used to select a path from a plurality of paths for forwarding the first packet from the first network device; generate a second value based upon one or more sections of a second packet to be forwarded from the network device; and bit rotate the second value by a second amount to generate a second rotated index, wherein the second amount is specified by a second control variable that is configured for the network device and is distinct from the first control variable, and wherein the second rotated index is used to select a port from a plurality of ports associated with a trunk for forwarding the second packet from the first network device. - View Dependent Claims (6, 7, 8)
-
-
9. A network device comprising:
-
means for generating a first value based upon one or more sections of a first packet; means for bit rotating the first value by a first amount to generate a first rotated index, wherein the first amount is specified by a first control variable that is configured for the first network device, and wherein the first rotated index is used to select a path from a plurality of paths for forwarding the first packet from the network device; means for generating a second value based upon one or more sections of a second packet; and means for bit rotating the second value by a second amount to generate a second rotated index, wherein the second amount is specified by a second control variable that is configured for the network device and is distinct from the first control variable, and wherein the second rotated index is used to select a port from a plurality of ports associated with a trunk for forwarding the second packet from the network device. - View Dependent Claims (10, 11)
-
Specification