The present disclosure generally relates to the field of Serial Attached SCSI (SAS), and more particularly to a back-off retry process implemented in a single, cohesive SAS expander context.
Serial Attached SCSI (SAS) is a term referring to various technologies designed to implement data transfer between computer devices. The SAS protocol is a serial successor to the parallel Small Computer System Interface. In the SAS protocol, all SAS devices are either an initiator device, a target device, or an expander device. Initiator devices are devices that begin an SAS data transfer, while target devices are the devices to which initiator devices transfer data. Together, initiator devices and target devices are known as end devices.
SAS expanders are devices that facilitate data transfer between multiple initiator devices and multiple target devices. The SAS protocol utilizes a point-to-point bus topology. Therefore, if an initiator device is required to connect to multiple target devices, a direct connection must be made between the initiator device and each individual target device in order to facilitate each individual data transfer between the initiator device and each individual target device. SAS expanders manage the connections and data transfer between multiple initiator devices and multiple target devices. SAS expanders may contain SAS devices.
In one aspect, a method for back-off retry in a single, cohesive SAS expander may include, but is not limited to, routing a data transfer between an input of a single, cohesive SAS expander and an output of the single, cohesive SAS expander, wherein the single, cohesive expander includes a first SAS expander, and at least one additional SAS expander, wherein the first SAS expander is connected to the at least one additional SAS expander via at least one inter-expander link (IEL) for inter-expander communications, determining link availability between the first SAS expander and a port of a device, then, upon determination of a failed link or a busy link between the first SAS expander and the port of the device, re-routing the data transfer of the first SAS expander to a second SAS expander. The method further includes determining link availability between the second SAS expander and the port of the device, and, upon determination of a failed link or a busy link between the second SAS expander and the port of the device, re-routing the data transfer from the second SAS expander to the first SAS expander or a third SAS expander, or retrying the data transfer through the second SAS expander.
In another aspect, a method for back-off retry with priority routing in a single, cohesive expander may include, but is not limited to, routing a data transfer between an input of a single, cohesive SAS expander and an output of the single, cohesive SAS expander. The routing of data further includes routing a first OPEN request on a direct path through a first SAS expander to a port of a device while routing a second OPEN request on an alternate path from the first SAS expander and through a second SAS expander to the port of the device. The method further includes determining link availability between the second SAS expander and the port of the device, and, upon determination of a failed link or a busy link, re-routing the data transfer from the second SAS expander to the first SAS expander or a third SAS expander, or retrying the data transfer through the second SAS expander.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not necessarily restrictive of the present disclosure. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate subject matter of the disclosure. Together, the descriptions and the drawings serve to explain the principles of the disclosure.
The numerous advantages of the disclosure may be better understood by those skilled in the art by reference to the accompanying figures in which:
Reference will now be made in detail to the subject matter disclosed, which is illustrated in the accompanying drawings.
A SAS topology featuring a single, cohesive SAS expander in accordance with an exemplary embodiment of the present disclosure is shown. The topology 100 may include initiator 110 connected to expander 120 via narrow ports 115a . . . d. Expander 120 may be connected to single, cohesive SAS expander 200 via narrow ports 125a . . . d. Single, cohesive SAS expander 200 may contain a plurality of physically separate SAS expanders 202a . . . d. SAS expanders 202a . . . d may be configured to share an identical SAS address to combine narrow ports 125a . . . d to behave as single common wide port 150. As shown in SAS topology 100, narrow ports 125a . . . d may combine to make x4-wide port 150. SAS expanders 202a . . . d may be connected to expander 130 via narrow ports 135a . . . d. Expander 130 may be connected to target 140 via narrow ports 145a . . . d. SAS specifications require that all connections be point-to-point. However, SAS topology 100 is SAS specification compliant because wide port 150 is a true SAS wide port.
Referring to
Output ports 205-244 may be wide ports. Output ports 205-244 may be configured to share an identical SAS address. Under SAS specifications, this defines output ports 205-244 to be a single wide port of the same expander. Each of output ports 205-244 may be connected to every SAS expander 202a . . . h (Not shown). The width of output ports 205-244 may depend on how many SAS expander ports are used in links 255a . . . h-294a . . . h to connect to each of output ports 205-244. Each of SAS expander 202a . . . h may have multiple SAS expander ports connected to each of output ports 205-244. For example, if single, cohesive SAS expander 200 contains two SAS expanders 202a-h connected to each of output ports 205-244 via links 255a . . . h-294a . . . h using one SAS expander port, then output ports 205-244 will be a x2 wide port. Furthermore, if single, cohesive SAS expander 200 contains two SAS expanders 202a-h connected to each of output ports 205-244 via links 255a . . . h-294a . . . h using two SAS expander ports, then output ports 205-244 will be a x4 wide port. These configurations may allow for simultaneous access of any port to any other port of single, cohesive SAS expander 200 at full port bandwidth.
A blade center switch configuration 301 of single, cohesive SAS expander 300 is provided. Referring to
SAS expanders 202a . . . h may be configured to share an identical SAS address. Under SAS specifications, this defines SAS expanders 202a . . . h to be a single expander. Firmware may run on each of SAS expanders 202a . . . h so SAS expanders 202a . . . h behave and respond as a single expander. As shown in
Referring generally to
The method 600 may further include the step of assigning an identical SAS address to the first SAS expander and the second SAS expander 604. Assigning an identical SAS address to the first SAS expander and the second SAS expander may allow the first SAS expander and the second SAS expander to behave and respond as a single, cohesive SAS expander 200. The assigning may be performed via firmware executing on the first SAS expander and the second SAS expander. Further, the phy numbering of the first SAS expander and the second SAS expander may be remapped to appear as a single, logically ordered phy numbering of a single, cohesive SAS expander. For example, a first numbered phy of the first SAS expander may be remapped to be in a first range of the single, logically ordered numbering and a second numbered phy of the second SAS expander may be remapped to be in a second range of the single, logically ordered numbering.
The method 600 may further include the step of connecting the first SAS expander directly to the second SAS expander for inter-expander communications 606. The inter-expander communications may utilize SMP communications or other communication methods, such as Inter-Integrated Circuit Bus Protocol (I2C), Enhanced Parallel Port (EPP), Ethernet, shared memory, and the like. In additional embodiments, the connection between the first SAS expander and the second SAS for inter-expander communications (430-435) may be performed via the phys of the first SAS expander and the phys of the second SAS expander. Further, the phys of the first SAS expander for inter-expander communications and the phys of the second SAS expander for inter-expander communications may be hidden from the primary switched domain (410) of the single, cohesive SAS expander. At least two phys of the first SAS expander and at least two phys of the second SAS expander may be used for inter-expander communications between the first SAS expander and the second SAS expander. Further, if at least one SAS expander within the single, cohesive SAS expander remains operational (e.g., such as during an SAS expander failure), all common SAS wide ports remain operational, with all common SAS wide ports operating at a reduced bandwidth.
The single, cohesive SAS expander 500 may be configured to provide path failover when an internal link fails within the single, cohesive SAS expander. Referring to
The data transfer intended to be transmitted via failed link 566b may be re-routed to another SAS expander connected to output port 516. This data transfer may be re-routed to another SAS expander via the phys used for inter-expander communications between the SAS expanders. As shown in single, cohesive SAS expander 500, the data transfer between SAS expander 202c and output port 516 via failed link 566b may be re-routed through SAS expander 202d via inter-expander communications link 434. From SAS expander 202d, the data transfer may be re-routed to output port 516 via link 566c. Thus output port 516 may receive the data transfer as originally intended, but may receive the data transfer on a different phy. Further, if SAS expander 202d already has an active link to output port 516, SAS expander 202c may respond to the SAS initiator with an arbitration in progress (AIP), as provided via SMP. The SAS initiator may attempt the data transfer at a later time after receiving an AIP or OPEN REJECT (RETRY) SMP response from SAS expander 202c.
In a further aspect of the present disclosure, firmware executing on the SAS expanders may reprogram the SAS expander route tables to re-route connections through inter-expander communications links (430-435) instead of through the failed links. Further, a SAS initiator connected to the single, cohesive SAS expander may learn that link 566b has failed by receiving a CHANGE primitive. For example, SMP provides a CHANGE primitive. The SAS initiator may then perform a SAS Discovery, for example, as provided via SMP. Further, the SAS initiator may note the number of remaining active connections to the target, and may only initiate a number of simultaneous data transfers equal to the number of remaining active connections to the target.
Referring generally to
The method 700 may further include the step of re-routing a data transfer of the first SAS expander connected to the device via the failed link to a second SAS expander connected to the device via a functional link 704. For example, the failed link of the single, cohesive SAS expander may fail due to a physical problem within the failed link. In another example, the failed link may fail due to a logical problem. The first SAS expander may be connected to the second SAS expander via the phys of the first SAS expander and the phys of the second SAS expander for inter-expander communications. In further embodiments, the re-routing a data transfer of a SAS expander connected to a device via the failed link to a second SAS expander connected to the device via the functional link may occur via the phys of the first expander for inter-expander communications and the phys of the second SAS expander for inter-expander communications. In exemplary embodiments, the re-routing a data transfer may include reprogramming a route table of the first SAS expander to re-route the data transfer from the failed internal link to the links between via the phys of the first expander for inter-expander communications and the phys of the second SAS expander for inter-expander communications. For example, the reprogramming of the route table of the first SAS expander may be performed via firmware executing on the first SAS expander.
The step of re-routing data transfers from a failed link within the single, cohesive SAS expander to a second SAS expander via a link for inter-expander communications may not indicate to SAS initiators and SAS targets connected to the single, cohesive SAS expander that such re-routing is occurring. However, if the second SAS expander currently has an active link to the device and data is re-routed from the failed link to the second SAS expander, the first SAS expander connected to the device via the failed link may respond with an AIP response. In such a case, a SAS initiator receiving the AIP response may retry the data transfer at a later time. A SAS initiator connected to the single, cohesive SAS expander may be notified of the failed link via receiving a CHANGE primitive. Upon receiving a CHANGE primitive, the SAS initiator may perform a SAS Discovery. For example, SMP provides a SAS Discovery, which includes a SAS Discover and a SAS Discover response.
A SAS-initiator specified data connection configuration 800 is provided. Referring to
SAS initiator 810 may specify the lanes of wide ports 880, 890 to be used to create a data connection from SAS initiator 810 to one of SAS targets 850-875. Specifying the lanes of wide ports 880, 890, may be used for fairness control, where some lanes of wide ports 880, 890 may be used to access SAS targets 850-875 and other lanes of wide ports 880, 890 may be used to pass through to other parts of a SAS configuration. SAS initiator 810 may further specify the lanes within an OPEN frame of a connection request. Such an OPEN frame may be provided via an SMP connection request. SAS initiator 810 may have learned the optimal lanes for a data connection from SAS initiator 810 to one of SAS targets 850-875 via a performing a standard SAS discovery process. SAS expander 830 and SAS expander 840, along with SAS targets 850-875 may be configured to respond via the SMP Discover response with the optimal lanes for a data connection from SAS initiator 810 to one of SAS targets 850-875. Each SAS expander in the data connection between SAS initiator 810 and one of SAS targets 850-875 may check the OPEN frame of the connection request from SAS initiator 810 for the allowed lanes for the data connection and only makes a data connection on those specified lanes.
Referring generally to
The method 900 may further include the step of specifying the allowable lanes for the data connection within the SAS wide ports of each level of the SAS domain 904. For example, the allowable lanes for the data connection may be specified via a SAS initiator connection request. The allowable lanes for the data connection may further be specified within an OPEN frame of a SAS initiator connection request.
The method 900 may further include the step of checking for the specified allowable lanes for the data connection 906. For example, when a SAS expander (820-840) receives an OPEN frame of a SAS initiator connection request, the SAS expander may check the OPEN frame for the specified allowable lanes for the data connection.
The method 900 may further include the step of creating the data connection of the specified allowable lanes 908. For example, a SAS expander may create the data connection on the specified allowable lanes. Further, the SAS expander may create the data connection after checking the OPEN frame of a SAS initiator connection request for the specified allowable lanes.
Referring generally to
As illustrated in
As a result, if the expander 202a selects the IEL path 430 after being presented with only a single OPEN request from input port 502 blocking may occur on the second expander 202b. More specifically, if the second expander 202b is also routing an OPEN request from an initiator of input port 502 to output port 510, as illustrated by path 1004, the first expander 202a will be unable to establish an indirect path to output port 510 via the second expander 202b, as illustrated by the “X” on IEL path 430.
As illustrated in
In one embodiment, priority routing may include routing a first OPEN request by an initiator of an input port 502-508 along a direct path through an expander 202a . . . 202d to a designated output port 510 . . . 516. For example, a first OPEN request by an initiator on input port 502 may be routed by a first expander 202a on a direct path 1006 to phy 0 of output port 510, while a second OPEN request by an initiator on input port 504 may be routed by the first expander 202a on an alternate path 1008 via the IEL path 430 connecting the first expander 202a and a second expander 202b. The second expander 202b may then route the second request to phy 1 of output port 510. By utilizing the alternate path 1008 only when an expander receives a second OPEN request and always routing a first OPEN request along the direct path 1006, the overall single, cohesive expander 1000 may avoid or limit unnecessary phy blocking.
It should be recognized that while the above description describes the concept of priority routing in the context of expanders 202a and 202b, input port 502 and input port 504, phy 0 and phy 1 of input port 502, and phy 0 and phy 1 of output port 510 this concept can readily and logically be extended to all of the remaining expanders, input ports, output ports, and phys of the presently described invention as the above description does not represent a limitation but merely an illustration.
Referring generally to
It is recognized that the data transfer re-routing from a first SAS expander 202a to an additional SAS expander (e.g., 202b, 202c or 202d) via the IEL paths 430 . . . 435 described previously herein may result in a routing lock on the additional expander used for re-routing. For example, upon determining a failed 560a link (e.g., logical failure or physical failure) to the output port 510, the data transfer intended to be transmitted via link 560a may be re-routed from the first SAS expander 202a to a second SAS expander 202b via the IEL path 430, which couples the phys for inter-expander communications of the first SAS expander 202a and the phys for the inter-expander communications of the second expander 202b. Provided the second SAS expander 202b has available phys to re-route the data transfer and establish a link to another phys of the original destination output port 510, the data transfer may successfully be re-routed to the original destination output port 510. However, in the event the second SAS expander 202b does not have available phys to complete the re-routing of the data transfer to the original destination output port 510, the single, cohesive expander 1000 may experience phy blocking as the re-routing process locks the connection to the second SAS expander 202b and the data transfer cannot be completed until the second expander 202b obtains available phys to establish the link to the output port 510.
As illustrated in
In the event the second SAS expander 202b does not have available phys to complete the re-routing of the data transfer to the original destination output port 510, the data transfer may be re-routed back to the first SAS expander 202a or the data transfer may be retried on the second expander 202b in the event a functional link between 202b and output port 510 becomes available. The first connection to complete on either the first expander 202a or the second expander 202b will be used to complete the connection to the destination output port 510. It is further recognized that attempts to re-route the data transfer back to the first SAS expander 202a or retry the data transfer on the second SAS expander 202b may be repeated until a phy suitable for completing the data transfer to the output port 510 becomes available or the process times out. As a result, no re-route locking occurs on the second expander 202b.
It is further recognized that the back-off retry process may be extended to more than two SAS expanders of the single, cohesive expander 1100. For example, upon determining the second expander 202b cannot complete the connection to the output port 510, the data transfer may be re-routed to a third SAS expander (e.g., third SAS expander 202c or fourth SAS expander 202d), in addition to the re-routing of the data transfer back to the first SAS expander 202a above.
In a further aspect, the second SAS expander 202b (i.e., the IEL receiving SAS expander) may reject the OPEN request re-routed from the first SAS expander 202a (i.e., the sending SAS expander) to the second SAS expander 202b when it does not have available phys to complete the connection. Moreover, the second SAS expander 202b may indicate the presence of phy blocking by sending a vendor unique status “SAS PRIMITIVE” back to the first SAS expander 202a. Upon receiving the blocked connection SAS PRIMITIVE status, the first expander 202a may re-route the connection to another connection (e.g., first SAS expander 202a or a third SAS expander, such as 202c or 202d) or retry the connection on the second SAS expander 202b. This process may be repeated until a phy on one of the expanders becomes available, allowing the first connection to complete on either of the expanders to be used to complete the connection to the destination output port 510.
Referring generally to
In one embodiment, a first OPEN request by an initiator on input port 502 may be routed on a direct path 1012 by a first expander 202a to the destination output port 510. Moreover, a second OPEN by an initiator on input port 504 may be routed by the first expander 202a on an alternate path 1014 via the IEL 430 to the second expander 202b. In the event the second expander 202b does not have available phy to complete the connection to the original destination output port 510, a back-off retry process may be implemented. For example, upon determining link 560b connecting the second expander 202b to the output port 510 has failed, the data transfer intended to be transmitted via link 560b may be re-routed from the second SAS expander 202a back to the first SAS expander 202a or the data transfer may be retried on the second expander 202b. Again, as illustrated by the pair of arrows on IEL 430, the first connection to complete on either the first expander 202a or the second expander 202b will be used to complete the connection to the destination output port 510.
In another embodiment, illustrated in
Referring generally to
The routing step 1202 further includes an additional second step 1204. The second step 1204 includes routing a first OPEN request on a direct path 1012 through the first SAS expander 202a to a port (e.g., output port 510) of the device. For example, a first OPEN request by an initiator on input port 502 may be routed by a first expander 202a on a direct path 1012 to an output port 510 of a device.
In addition, the routing step 1202 further includes a third step 1206. The third step 1206 includes routing a second OPEN request on an alternate path (e.g., 1014 or 1016) from the first SAS expander 202a and through a second SAS expander 202b to the port (e.g., output port 510) of the device. For example, a second OPEN request by an initiator on input port 504 may be routed by the first expander 202a on an alternate path (e.g., 1014 or 1016) via the IEL path 430 connecting the first expander 202a and a second expander 202b.
In a fourth step 1208, the method 1200 for back-off retry in a single, cohesive SAS expander 1100 includes determining link availability between the second SAS expander and the port of the device. For example, the second SAS expander 202b may indicate phy blocking by sending a vendor unique status “SAS PRIMITIVE” back to the first SAS expander 202a. Then, the first SAS expander 202a may receive the SAS PRIMITIVE status from the second SAS expander 202b.
In a fifth step 1210, the method 1200 for back-off retry in a single, cohesive SAS expander 1100 includes, upon determination of a failed link or a busy link, re-routing the data transfer from the second SAS expander 202b to the first SAS expander 202a or a third SAS expander (e.g., 202c or 202d), or retrying the data transfer through the second SAS expander 202b. For example, upon receiving the blocked connection SAS PRIMITIVE status from the second expander 202b, the first SAS expander 202b may re-route the data transfer to another SAS expander (e.g., first SAS expander 202a or a third SAS expander, such as 202c or 202d). This process may be repeated until a phy on one of the SAS expanders becomes available, allowing the first connection to complete on any of the expanders to be used to complete the connection to the output port 510.
Referring generally to
In a second step 1304, the method 1300 for back-off retry includes determining link availability between the first SAS expander 202a and a port (e.g., output port 510 . . . 516) of a device. For example, a link may become unavailable because it has failed or is busy due to a physical or logical malfunction between the SAS expander 202a and an intended destination output port 510 . . . 516.
In a third step 1306, the method 1300 for back-off retry includes, upon determination of a failed link or a busy link between the first SAS expander and the port of the device, re-routing the data transfer of the first SAS expander 202a to a second SAS expander 202b. For example, the data transfer may be re-routed from the first SAS expander 202a to a second SAS expander 202b via an IEL path connecting at least one phy for the first SAS expander for inter-expander communications to at least one phys of the second SAS expander for inter-expander communications.
In a fourth step 1308, the method 1300 for back-off retry includes determining link availability between the second SAS expander 202b and the port (e.g., output port 510) of the device. As previously described above, the second SAS expander 202b may indicate phy blocking by sending a vendor unique status “SAS PRIMITIVE” back to the first SAS expander 202a. Then, the first SAS expander 202a may receive the SAS PRIMITIVE status from the second SAS expander 202b.
In a fifth step 1310, the method 1300 for back-off retry includes, upon determination of a failed link or a busy link between the second SAS expander and the port of the device, re-routing the data transfer from the second SAS expander 202b to the first SAS expander 202a or to a third SAS expander (e.g., 202c or 202d), or retrying the data transfer through the second SAS expander 202b. For example, upon receiving the blocked connection SAS PRIMITIVE status from the second expander 202b, the first SAS expander 202b may re-route the data transfer to another SAS expander (e.g., first SAS expander 202a or a third SAS expander, such as 202c or 202d). This process may be repeated until a phy on one of the SAS expanders becomes available, allowing the first connection to complete on either of the expanders to be used to complete the connection to the destination port (e.g., output port 510).
In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Such software may a computer program product which employs a computer-readable storage medium including stored computer code which is used to program a computer to perform the disclosed function and process of the present invention. The computer-readable medium may include, but is not limited to, any type of conventional floppy disk, optical disk, CD-ROM, magnetic disk, hard disk drive, magneto-optical disk, ROM, RAM, EPROM, EEPROM, magnetic or optical card, or any other suitable media for storing electronic instructions. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are examples of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented.
It is believed that the present disclosure and many of its attendant advantages will be understood by the foregoing description, and it will be apparent that various changes may be made in the form, construction and arrangement of the components without departing from the disclosed subject matter or without sacrificing all of its material advantages. The form described is merely explanatory, and it is the intention of the following claims to encompass and include such changes.
The present application claims priority from the following copending U.S. patent applications and is a continuation of U.S. patent application Ser. No. 13/008,706, entitled “BACK-OFF RETRY WITH PRIORITY ROUTING,” filed Jan. 18, 2011, which is a continuation-in-part of U.S. patent application Ser. No. 12/384,291 entitled, “METHOD FOR PROVIDING PATH FAILOVER FOR MULTIPLE SAS EXPANDERS OPERATING AS A SINGLE SAS EXPANDER”, filed Apr. 2, 2009, now issued as U.S. Pat. No. 8,077,605; U.S. patent application Ser. No. 12/384,287 entitled, “SPECIFYING LANES FOR SAS WIDE PORT CONNECTIONS”, filed Apr. 2, 2009, now issued as U.S. Pat. No. 7,913,023; U.S. patent application Ser. No. 12/384,288 entitled, “SAS PAIRED SUBTRACTIVE ROUTING”, filed Apr. 2, 2009, now issued as U.S. Pat. No. 8,321,596; and U.S. patent application Ser. No. 12/791,244 entitled, “ALLEVIATING BLOCKING CASES IN A SAS SWITCH”, filed Jun. 1, 2010, now issued as U.S. Pat. No. 8,244,948. Additionally, U.S. patent application Ser. No. 12/791,244 entitled, “ALLEVIATING BLOCKING CASES IN A SAS SWITCH”, filed Jun. 1, 2010, claims priority from and is a continuation-in-part of U.S. patent application Ser. No. 12/384,289 entitled, “COMBINING MULTIPLE SAS EXPANDERS TO PROVIDE SINGLE SAS EXPANDER FUNCTIONALITY”, filed Apr. 2, 2009, now issued as U.S. Pat. No. 7,849,248. Further, U.S. patent application Ser. No. 12/384,289 entitled, “COMBINING MULTIPLE SAS EXPANDERS TO PROVIDE SINGLE SAS EXPANDER FUNCTIONALITY,” filed Apr. 2, 2009; U.S. patent application Ser. No. 12/384,291 entitled, “METHOD FOR PROVIDING PATH FAILOVER FOR MULTIPLE SAS EXPANDERS OPERATING AS A SINGLE SAS EXPANDER”, filed Apr. 2, 2009; U.S. patent application Ser. No. 12/384,287 entitled, “SPECIFYING LANES FOR SAS WIDE PORT CONNECTIONS”, filed Apr. 2, 2009; and U.S. patent application Ser. No. 12/384,288 entitled, “SAS PAIRED SUBTRACTIVE ROUTING”, filed Apr. 2, 2009 claim the benefit under 35 U.S.C. §119(e) of U.S. Provisional Application Ser. No. 61/191,037, filed Sep. 5, 2008. In addition, the present application incorporates by reference all of the above applications.
Number | Date | Country | |
---|---|---|---|
61191037 | Sep 2008 | US | |
61191037 | Sep 2008 | US | |
61191037 | Sep 2008 | US | |
61191037 | Sep 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13008706 | Jan 2011 | US |
Child | 14099589 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12384291 | Apr 2009 | US |
Child | 13008706 | US | |
Parent | 12384287 | Apr 2009 | US |
Child | 12384291 | US | |
Parent | 12384288 | Apr 2009 | US |
Child | 12384287 | US | |
Parent | 12791244 | Jun 2010 | US |
Child | 12384288 | US | |
Parent | 12384289 | Apr 2009 | US |
Child | 12791244 | US |