| CPC G06F 13/4221 (2013.01) [G06F 2213/0026 (2013.01)] | 26 Claims |

|
1. A system for sharing peripheral component interconnect express (PCIe) devices across multiple host servers comprising:
a plurality of hosts associated with a plurality of hierarchies;
one or more endpoints associated with one or more of the plurality of hierarchies; and
a switch communicatively connectable to the plurality of hosts and the one or more endpoints, wherein the switch is configured to:
receive a transaction layer packet (TLP);
determine a policy group identifier based on processing the TLP;
perform packet forward matching based on the policy group identifier and destination fields of the TLP;
based on whether the TLP is communicated between the hosts and endpoints in different hierarchies of the plurality of hierarchies, determine whether to edit the TLP using one or more rewrite rules; and
forward the TLP to an appropriate destination link.
|
|
8. A system for sharing peripheral component interconnect express (PCIe) devices across multiple host servers such that a first host in a first hierarchy can write content to a memory range in a second hierarchy, the system comprising:
a plurality of hosts associated with a plurality of hierarchies, the plurality of hosts including the first host and a second host respectively associated with the first hierarchy and the second hierarchy in the plurality of hierarchies;
one or more endpoints associated with one or more of the plurality of hierarchies; and
a switch communicatively connectable to the plurality of hosts and the one or more endpoints, wherein the switch is configured to:
receive a first write packet from the first host to a first ghost device, wherein the first host and the first ghost device both reside in the first hierarchy;
perform packet forward matching on the first write packet;
rewrite and convert the first write packet into a second write packet based on the matching of the first write request, wherein the second write packet is sourced from the first ghost device in the first hierarchy and destinated to the second host in the second hierarchy; and
route the second write packet to the second host in the second hierarchy, wherein the second host is configured as a ghost endpoint server to communicate with an endpoint in the second hierarchy to write the content to the memory range in the second hierarchy.
|
|
16. A system for sharing a peripheral component interconnect express (PCIe) device across multiple host servers without involving a host managing the PCIe device, the system comprising:
a plurality of hosts associated with a plurality of hierarchies, the plurality of hosts including a first host associated with a first hierarchy in the plurality of hierarchies, wherein each host is connected to a ghost device, and each ghost device is composed of ghost physical functions and ghost virtual functions;
one or more endpoints associated with one or more of the plurality of hierarchies, the one or more endpoints including a second endpoint in a second hierarchy of the plurality of hierarchies; and
a switch communicatively connectable to the plurality of hosts and the one or more endpoints, wherein the switch is configured to:
receive a packet from the first host in the first hierarchy to a ghost virtual function of a first ghost device connected to the first host;
perform packet forward matching on the first packet to determine the ghost virtual function of the first ghost device is mapped to a virtual function of the second endpoint through a first ghost bridge;
convert the first packet into a second packet based on the matching, wherein the second packet is sourced from the first ghost bridge and destinated to the second endpoint in the second hierarchy; and
route the second packet to the second endpoint in the second hierarchy.
|
|
18. A method for sharing peripheral component interconnect express (PCIe) devices across multiple host servers comprising:
receiving a transaction layer packet (TLP);
determining a policy group identifier based on parsing and processing the TLP;
performing packet forward matching based on the policy group identifier and destination fields of the TLP;
based on whether the TLP is communicated between the hosts and endpoints in different hierarchies of the plurality of hierarchies, determining whether to edit the TLP using one or more rewrite rules; and
forwarding the TLP to an appropriate destination link.
|
|
21. A method for data access via PCIe between a plurality of hosts and a plurality of endpoints, the method comprising performing, at a ghost endpoint server, steps of:
designating for each host a respective control-plane ghost bridge for exchanging control information with any of the plurality of endpoints via the ghost endpoint server; and
designating for each host-endpoint pair a respective data-plane ghost bridge, wherein respective addresses of the data-plane ghost bridges are modified addresses, uniquely identifying for each host-endpoint pair, a destination of a data communication between the host-endpoint pair.
|