Method and apparatus for routing in SAS using logical zones
First Claim
Patent Images
1. A method of handling connection requests in a serially attached SCSI (SAS) expander comprising:
- receiving a connection request from a source node connected to the expander, the request addressed to a destination node, the source and destination nodes being nodes in a SAS topology logically divided into a plurality of virtual domains, each node in the SAS topology being associated with at least one of the plurality of virtual domains, and nodes associated with one of the plurality of virtual domains being inaccessible to nodes solely associated with others of the plurality of virtual domains;
determining a virtual domain associated with the source node;
determining that the destination node is associated only to virtual domains other than the virtual domain associated with the source node and is inaccessible; and
transmitting a connection rejection to the source node, wherein the step of determining a virtual domain associated with the source node includes assigning a zone identifier to the connection request when the zone identifier is not present in the connection request, andwherein the step of assigning a zone identifier includes selecting a zone identifier in accordance with a SAS phy over which the connection request is received.
18 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus are provided for routing in an SAS expander for logical zoning. Common SAS topology defined by the ANSI T10 specification only relates to physical topology with multiple end devices, as well as to expander devices and the broadcast handling mechanisms in such physical topologies. The present invention introduces the concept of virtual topologies that can be non-overlapping or overlapping subsets of the physical topology and the routing mechanism that handles the routing issues with the virtual topologies.
141 Citations
15 Claims
-
1. A method of handling connection requests in a serially attached SCSI (SAS) expander comprising:
-
receiving a connection request from a source node connected to the expander, the request addressed to a destination node, the source and destination nodes being nodes in a SAS topology logically divided into a plurality of virtual domains, each node in the SAS topology being associated with at least one of the plurality of virtual domains, and nodes associated with one of the plurality of virtual domains being inaccessible to nodes solely associated with others of the plurality of virtual domains; determining a virtual domain associated with the source node; determining that the destination node is associated only to virtual domains other than the virtual domain associated with the source node and is inaccessible; and transmitting a connection rejection to the source node, wherein the step of determining a virtual domain associated with the source node includes assigning a zone identifier to the connection request when the zone identifier is not present in the connection request, and wherein the step of assigning a zone identifier includes selecting a zone identifier in accordance with a SAS phy over which the connection request is received. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A Serially Attached SCSI (SAS) expander for implementing virtual domains comprising:
-
a first logical expander, associated with a first virtual domain comprising a first plurality of SAS devices within a SAS topology, the first logical expander having associated therewith a first plurality of logical connections connecting each of the first plurality of SAS devices to the first logical expander, the first logical expander being responsive only to messages received from SAS devices connected to the first plurality of logical connections and routing the received messages only to SAS devices connected to the first plurality of logical connections; a second logical expander, associated with a second virtual domain comprising a second plurality of SAS devices within the SAS topology, the second logical expander having associated therewith a second plurality of logical connections connecting each of the second plurality of SAS devices to the second logical expander, the second logical expander being responsive only to messages received from SAS devices connected to the second plurality of logical connections and routing the received messages only to SAS devices connected to the second plurality of logical connections; at least one routing database for accessing direct routing, table routing and subtractive routing information associated with each of the first and second logical expanders; and a routing engine for receiving a connection request from a device connected to at least one of the plurality of phys, the connection request addressed to a destination device, for routing the received request to a device connected to a phy selected from the plurality of phys in accordance with a mapping obtained from the routing database and in accordance with the access control policy stored in the routing database, and transmitting a connection rejection message to a source of a received connection request when the phy associated with the destination device is specified as inaccessible to the source of the request in the access control policy, wherein the routing engine includes means to determine a group associated with the source of the connection request by examining a header field of the connection request, and wherein the routing engine further includes means to assign a group to a connection request upon failure of the means to determine a group to identify a group by inspecting the header field, for modifying the header field of the connection request to identify a group determined in accordance with the one of the plurality of phys that the connection request was received over. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A Serially Attached SCSI (SAS) expander for providing virtual domains comprising:
-
a plurality of phys, each of the plurality of phys connecting the SAS expander to one of a plurality of SAS devices; a routing database for mapping a device address to at least one of the plurality of phys, and for storing an access control policy defining a plurality of virtual domains, each of the plurality of phys being associated to at least one of the plurality of virtual domains; and a routing engine for receiving a connection request from a device connected to at least one of the plurality of phys, the connection request addressed to a destination device, for routing the received request to a device connected to a phy selected from the plurality of phys in accordance with a mapping obtained from the routing database and in accordance with the access control policy stored in the routing database, and transmitting a connection rejection message to a source of a received connection request when the phy associated with the destination device is specified as inaccessible to the source of the request in the access control policy, wherein the routing engine includes means to determine a group associated with the source of the connection request by examining a header field of the connection request, and wherein the routing engine further includes means to assign a group to a connection request upon failure of the means to determine a group to identify a group by inspecting the header field, for modifying the header field of the connection request to identify a group determined in accordance with the one of the plurality of phys that the connection request was received over. - View Dependent Claims (13, 14, 15)
-
Specification