IP Library Granted Patent US 9,479,391
Granted Patent B2
US 9,479,391 · App. 14/239,837 · Granted Oct 25, 2016

Implementing a switch fabric responsive to an unavailable path

Inventors: Michael G. Frey (Granite Bay, CA); Vincent E. Cavanna (Loomis, CA)
Assignee: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
H04L41/0663H04L12/1881H04L45/22H04L49/101H04L49/109H04L49/25
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,479,391
App. No.
14/239,837
Granted
Oct 25, 2016
Kind
B2
Abstract

In a method for implementing a switch fabric, in a first fabric chip, a packet comprising an identification of a destination node chip is received from a source fabric chip, and a determination that a first path in the switch fabric along which the packet is to be communicated toward the destination node chip is unavailable is made. In addition, a determination as to whether another path along which the packet is to be communicated toward the destination node chip that does not include the source fabric chip is available is made. In response to a determination that the another path is available, the packet is communicated along the another path. In addition, in response to a determination that the another path is unavailable, the packet is communicated back to the source fabric chip.

Claims (54)

1. A method for implementing a switch fabric, said method comprising:

in a first fabric chip,

receiving a packet from a source fabric chip, wherein the packet comprises an identification of a destination node chip;

determining that a first path in the switch fabric along which the packet is to be communicated toward the destination node chip is unavailable;

determining whether another path for communicating the packet in the switch fabric toward the destination node chip that does not include the source fabric chip is available;

communicating the packet along the another path in response to a determination that the another path is available; and

communicating the packet back to the source fabric chip in response to a determination that the another path is unavailable;

in the source fabric chip, wherein the source fabric chip comprises a prioritized list of port interfaces that identifies up-link ports for packets to reach destination node chips,

receiving the packet back from the first fabric chip;

selecting a fabric chip other than the first fabric chip to which the packet is to be communicated;

communicating the packet to the other fabric chip; and

removing the port interface that is in communication with the first fabric chip from the prioritized list of port interfaces prior to selecting the fabric chip other than the first fabric chip.

2. The method according to claim 1 , wherein the source fabric chip comprises at least two port interfaces that are connected to at least two port interfaces of the first fabric chip as trunked links of a trunk, and wherein the at least two port interfaces of the source fabric chip that are connected to the at least two port interfaces of the first fabric chip are either listed with the lowest level of priority in the prioritized list or removed from the prioritized list following receipt of the packet back from the first fabric chip.

3. The method according to claim 1 , said first fabric chip comprising a plurality of port interfaces, wherein each of the plurality of port interfaces is programmed with a respective list of correlations between the plurality of port interfaces and a plurality of destination nodes, said method further comprising:

identifying a destination fabric chip to receive the packet from an identification of the destination fabric chip contained in the packet; and

determining which port interface of the plurality of port interfaces is to receive the packet based upon a correlation between the identification of the destination node chip in the respective list of correlations;

attempting to communicate the packet to the destination fabric chip through the determined port interface; and

wherein determining that the first path along which the packet is to be communicated toward the destination node is unavailable further comprises determining that the first path along which the packet is to be communicated toward the destination node is unavailable in response to a determination that the packet has not been communicated to the destination fabric chip.

4. The method according to claim 3 , wherein the first fabric chip is to receive the packet through a first port interface of the plurality of port interfaces, wherein the first port interface is programmed with a list of correlations between the plurality of port interfaces and a plurality of destination nodes, and wherein determining which port interface of the plurality of port interfaces is to receive the packet further comprises determining which port interface is to receive the packet by comparing information contained in the packet and the list of correlations.

5. The method according to claim 4 , wherein the first port interface is programmed with a prioritized list of port interfaces that identifies up-link ports for the packets to reach destination node chips, and wherein the port interface that is in communication with the source node chip is listed with the lowest level of priority in the prioritized list, said method further comprising:

attempting to communicate the packet through each of the port interfaces in an order according to their priorities as listed in the prioritized list of port interfaces such that the port interface that is in communication with the source node chip is the last choice of port interface to which the packet is communicated.

6. The method according to claim 4 , wherein at least two of the plurality of port interfaces are connected to at least two port interfaces of the source fabric chip as trunked links of a trunk, wherein the first port interface is programmed with a prioritized list of port interfaces that identifies up-link ports for the packets to reach destination node chips, and wherein the at least two port interfaces of the first fabric chip that are connected to the at least two port interfaces of the source fabric chip are listed with the lowest level of priority in the prioritized list, said method further comprising:

attempting to communicate the packet through each of the port interfaces in an order according to their priorities as listed in the prioritized list of port interfaces such that the at least two port interfaces that are in communication with the at least two port interfaces of the source node chip are the last choice of port interfaces to which the packet is communicated.

7. The method according to claim 3 , wherein the packet comprises a multicast packet, said method further comprising:

calculating a list of the port interfaces that are useable;

communicating the list of the useable port interfaces along with the packet to the determined port interface that is to receive the packet;

pruning, at the determined port interface, a destination list of the packet using the list of the useable port interfaces; and

delivering the multicast packet to at least one second fabric chip according to the pruned destination list of the packet.

8. A switch fabric comprising:

a destination node chip;

a first fabric chip to receive a packet from a source fabric chip, wherein the packet comprises an identification of the destination node chip, said first fabric chip comprises a port resolution module that is to:

determine that a first path in the switch fabric along which the packet is to be communicated toward the destination node chip is unavailable;

determine whether another path in the switch fabric along which the packet is to be communicated toward the destination node chip that does not include the source fabric chip is available;

communicate the packet along the another path in response to a determination that the another path is available; and

communicate the packet back to the source fabric chip in response to a determination that the another path is unavailable and

the source fabric chip comprising a prioritized list of port interfaces that identifies up-link ports for packets to reach destination node chips and a source port resolution module that is to:

receive the packet back from the first fabric chip;

select a fabric chip other than the first fabric chip to which the packet is to be communicated;

communicate the packet to the other fabric chip; and

remove the port interface that is in communication with the first fabric chip from the prioritized list of port interfaces prior to selecting the fabric chip other than the first fabric chip.

9. The switch fabric according to claim 8 , wherein the source fabric chip comprises at least two port interfaces that are connected to at least two port interfaces of the first fabric chip as trunked links of a trunk, and wherein the at least two port interfaces of the source fabric chip that are connected to the at least two port interfaces of the first fabric chip are either listed with the lowest level of priority in the prioritized list or removed from the prioritized list following receipt of the packet back from the first fabric chip.

10. A fabric chip comprising:

a plurality of port interfaces, wherein each of the plurality of port interfaces programmed with a respective list of correlations between the plurality of port interfaces and includes a network chip interface (NCI) block having a port resolution module;

a crossbar block communicatively coupled with each of the NCI blocks in the plurality of port interfaces;

wherein the fabric chip is to receive a packet from a source fabric chip through one of the plurality of port interfaces, wherein the packet comprises an identification of a destination node chip, and wherein the port resolution module of the one of the plurality of port interfaces is to:

determine which of the plurality of port interfaces is to receive the packet from the NCI block;

determine that a first path in a switch fabric along which the packet is to be communicated toward the destination node chip is unavailable;

determine whether another path in the switch fabric along which the packet is to be communicated toward the destination node chip that does not include the source fabric chip is available;

communicate the packet along the another path in response to a determination that the another path is available;

communicate the packet back to the source fabric chip in response to a determination that the another path is unavailable;

identify a destination fabric chip to receive the packet from an identification of the destination fabric chip contained in the packet;

determine which port interface of the plurality of port interfaces is to receive the packet based upon a correlation between the identification of the destination node chip in the respective list of correlations;

attempt to communicate the packet to the destination fabric chip through the determined port interface; and

determine that the first path along which the packet is to be communicated toward the destination node is unavailable in response to a determination that the packet has not been communicated to the destination fabric chip.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2014
From: FREY, MICHAEL G; CAVANNA, VINCENT E
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 032254/0427 →
Continuity (1)
Related Publication 20140211609A1 · Jul 31, 2014