Method and apparatus for distributed topology function in serial attached small computer system interface (SAS)
AssigneePMC-Sierra, Inc.
InventorsTruong Nguyen, Heng Liao
Life of this patent
Estimating the term…
Abstract
The present invention is directed at a method and apparatus for determining a distributed Serial Attached Small computer system interface (SAS) topology in a storage network system. Once a SAS storage network element, such as a SAS Expander, receives notification that a downstream SAS topology has changed, the SAS Expander queries all downstream SAS Expanders to update its route table.
Claims33
In a Serial Attached Small Computer System Interface (SAS) domain including a set of SAS storage network elements, a method of configuring an Expander route table of a SAS Expander in a distributed manner comprising:
- receiving notification of a trigger event by an initiator at SAS Expander closest to the initiator;
- determining a set of paths originating from said SAS Expander based on an origin of topology change;
- determining a list of Expanders to query based on said set of paths;
- said list of Expanders to query including a first encountered self-configuring or last-in-path Expander and intermediate non self-configuring SAS Expanders for each path;
- wherein determining comprises calling a self-configuring process;
- determining a set of route table information from a set of SAS Expanders in said list of Expanders to query;
- updating route tables of the intermediate non self-configuring (NSCFG) SAS Expanders in a distributed manner;
- wherein said updating comprises calling a non-self-configuring process;
- and
- configuring said Expander route table based on said set of route table information;
- wherein the determining, updating and configuring are performed in an iterative sequence originating from the initiator.
In a Serial Attached Small Computer System Interface (SAS) domain including a set of SAS Expanders, a method of configuring an Expander route table of a subject SAS Expander in a distributed manner comprising the steps of:
- a) receiving an indication of a topology change due to a trigger event by an initiator to said SAS domain downstream from said subject SAS Expander, the subject SAS Expander being closest to the initiator;
- b) determining a set of paths originating from said SAS Expander based on an origin of topology change;
- c) determining a list of Expanders to query based on said set of paths;
- said list of Expanders to query including a first encountered self-configuring or last-in-path Expander and intermediate non self-configuring SAS Expanders for each path;
- wherein determining comprises calling a self-configuring process;
- d) determining a set of route table information from a set of SAS Expanders in a list of Expanders to query;
- e) updating route tables of intermediate non self-configuring (NSCFG) SAS Expanders;
- wherein said updating comprises calling a non-self-configuring process;
- f) configuring a route table of said subject SAS Expander, in the distributed manner, based on information retrieved from a predetermined set of downstream SAS Expanders;
- g) transmitting a signal to an upstream SAS Expander, upon completion of said route table configuration, indicating a topology change to said SAS domain downstream from said upstream SAS Expander;
- h) activating said upstream SAS Expander as said subject SAS Expander;
- and
- repeating these steps a) to h) for each upstream SAS Expander until a root SAS Expander is encountered.
A non-transitory computer readable medium containing computer instructions which, when executed, perform, in a Serial Attached Small Computer System Interface (SAS) domain including a set of SAS storage network elements, a method of configuring an Expander route table of a SAS Expander in a distributed manner, comprising:
- instructions for receiving notification of a trigger event by an initiator at SAS Expander closest to the initiator;
- instructions for determining a set of paths originating from said SAS Expander based on an origin of topology change;
- instructions for determining a list of Expanders to query based on said set of paths;
- said list of Expanders to query including a first encountered self-configuring or last-in-path Expander and intermediate non self-configuring SAS Expanders for each path;
- wherein determining comprises calling a self-configuring process;
- instructions for determining a set of route table information from a list of Expanders to query;
- instructions for updating route tables of the intermediate non self-configuring (NSCFG) SAS Expanders in the distributed manner;
- wherein said updating comprises calling a non-self-configuring process;
- and
- instructions for configuring said Expander route table based on said set of route table information;
- wherein the instructions for determining, updating and configuring are performed in an iterative sequence originating from the initiator.
Apparatus for determining a distributed Serial Attached Small computer system interface (SAS) topology for a SAS Expander comprising:
- at least one PHY, each PHY including a transmitter for requesting route table information from a list of Expanders to query downstream from said SAS Expander;
- and
- a receiver for receiving route table information as a result of said requests and for receiving a topology change request from a trigger event by an initiator;
- and
- a processor for:
- determining a set of paths originating from said SAS Expander based on an origin of topology change;
- determining a list of Expanders to query based on said set of paths;
- said list of Expanders to query including a first encountered self-configuring or last-in-path Expander and intermediate non-self-configuring SAS Expanders for each path;
- wherein determining comprises calling a self-configuring process;
- determining a set of route table information from a set of SAS Expanders in a list of Expanders to query;
- updating route tables of the intermediate non self-configuring (NSCFG) SAS Expanders in the distributed manner;
- wherein said updating comprises calling a non-self-configuring process;
- and
- configuring said Expander route table based on said set of route table information £ wherein the determining, updating and configuring are performed in an iterative sequence originating from the initiator.
Dependencies are inferred from the claim text.