Equal cost multipath forwarding using ingress port
AssigneeArista Networks, Inc.
InventorSatish Kumar Selvaraj
Life of this patent
Estimating the term…
Abstract
ECMP forwarding includes identifying and selecting an ECMP group of equal cost paths to a destination using destination information contained in a received packet. A member from the selected ECMP group is selected based on the ingress port on which the packet was received. The received packet is forwarded on the port that can reach the next hop associated with the selected member.
Claims19
A method for selecting an egress port in a network device configured with ECMP (Equal Cost Multi-Path), the method comprising the network device:
- receiving a packet on a port from among a plurality of ports of the network device;
- determining an index value associated with the port on which the packet was received, wherein each of the plurality of ports is associated with an index value;
- accessing an ECMP group associated with the received packet, the ECMP group comprising ECMP members that represent next hop devices;
- determining a next hop from a load-balanced group comprising the ECMP members of the ECMP group, the determining of the next hop comprising:
- accessing a slot from among a plurality of slots of a load-balanced group comprising the ECMP members of the ECMP group, the slot being associated with the index value;
- upon determining that the slot is populated with an ECMP member of the ECMP group, determining that the ECMP member in the slot is the next hop;
- and
- upon determining that the slot is empty:
- identifying an ECMP member of the ECMP group based on one or more criteria;
- storing the identified ECMP member in the slot;
- and
- upon storing the identified ECMP member in the slot, determining that the identified ECMP member is the next hop;
- and
- forwarding the received packet on a port of the network device associated with the next hop.
A network device comprising:
- a plurality of ports;
- one or more computer processors;
- a computer-readable storage device comprising instructions for controlling the one or more computer processors to:
- receive a packet on one of the plurality of ports of the network device;
- access an ECMP group associated with the received packet, the ECMP group comprising ECMP members that represents next hops to a destination of the received packet;
- determine a next hop from a load-balanced group comprising the ECMP members of the ECMP group by:
- accessing a slot from among a plurality of slots of a load-balanced group comprising the ECMP members of the ECMP group, the slot being associated with an index value associated with the port on which the packet was received;
- upon determining that the slot is populated with an ECMP member of the ECMP group, determining that the ECMP member in the slot is the next hop;
- and
- upon determining that the slot is empty:
- identifying an ECMP member of the ECMP group based on one or more criteria;
- storing the identified ECMP member in the slot;
- and
- upon storing the identified ECMP member in the slot, determining that the identified ECMP member is the next hop;
- and
- forward the received packet on a port of the network device associated with the next hop.
A method for selecting an egress port in a network device configured with ECMP forwarding, the method comprising:
- receiving a packet on one of the plurality of ports of the network device;
- accessing an ECMP group from a plurality of ECMP groups, the accessed ECMP group comprising a plurality of next hops to the destination;
- computing a hash value based on one or more portions of the received packet;
- determining a value associated with the port on which the packet is received;
- retrieving a configuration specified by a user of the network device that indicates whether the network device should perform hash-based ECMP forwarding or port-based ECMP forwarding;
- selecting, based on the retrieved configuration, either the hash value or the value associated with the port as an index value for the received packet;
- identifying a member in the accessed ECMP group based on the index value;
- and
- forwarding the received packet on a port of the network that can reach the next hop associated with the identified member in the accessed ECMP group.
Dependencies are inferred from the claim text.