Apparatus, system and method for implementing a generalized queue pair in a system area network
First Claim
1. A method of allocating a queue pair in a host channel adapter of a system area network, comprising:
- receiving a request, from a requestor, to allocate the queue pair;
sending the request to a hypervisor of the host channel adapter, wherein the hypervisor allocates the queue pair comprising a set of one or more queue pair partition key registers;
identifying a type of the requestor;
writing a partition key mode in a set of queue pair hypervisor control registers to indicate a type of partition key checking to be performed with the queue pair based on the type of the requestor, wherein the partition key mode is one of a single partition key check mode if the requestor is a user application, a multiple partition key check mode if the requestor is an application that performs multicasting, or a partition key check disabled mode if the queue pair is being allocated for use by the hypervisor of the host channel adapter; and
writing one or more partition keys to the set of one or more queue pair partition key registers of the queue pair based on the partition key mode;
wherein the one or more partition keys are partition keys assigned by a subnet manager in a system area network and stored in a partition key table associated with a port of the host channel adapter.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides an apparatus, system and method for providing a generalized queue pair for use with host channel adapters of a system area network. With the apparatus, system and method, the hypervisor of a host channel adapter maintains a P_Key table for each logical port of the host channel adapter. When a request is received to allocate a queue pair from a requestor application associated with a logical port, a P_Key mode is set in a control register associated with the queue pair based on the type of requestor application that sent the request. Based on this P_Key mode, one or more P_Keys from a P_Key table associated with the logical port from which the request was received are written to one or more P_Key registers allocated to the queue pair. These P_Keys are then used to perform P_Key checks of incoming data packets. In addition, these P_Keys are inserted into headers of outgoing data packets. In a preferred embodiment, the P_Key modes may be a single P_Key check mode, a multiple P_Key check mode, and a P_Key check disabled mode.
87 Citations
20 Claims
-
1. A method of allocating a queue pair in a host channel adapter of a system area network, comprising:
- receiving a request, from a requestor, to allocate the queue pair;
sending the request to a hypervisor of the host channel adapter, wherein the hypervisor allocates the queue pair comprising a set of one or more queue pair partition key registers;
identifying a type of the requestor;
writing a partition key mode in a set of queue pair hypervisor control registers to indicate a type of partition key checking to be performed with the queue pair based on the type of the requestor, wherein the partition key mode is one of a single partition key check mode if the requestor is a user application, a multiple partition key check mode if the requestor is an application that performs multicasting, or a partition key check disabled mode if the queue pair is being allocated for use by the hypervisor of the host channel adapter; and
writing one or more partition keys to the set of one or more queue pair partition key registers of the queue pair based on the partition key mode;
wherein the one or more partition keys are partition keys assigned by a subnet manager in a system area network and stored in a partition key table associated with a port of the host channel adapter. - View Dependent Claims (2, 3, 4, 5, 6, 7)
- receiving a request, from a requestor, to allocate the queue pair;
-
8. A computer program product in a recordable type media for allocating a queue pair in a host channel adapter of a system area network, comprising:
- first instructions for receiving a request, from a requester, to allocate the queue pair;
second instructions for sending the request to a hypervisor of the host channel adapter, wherein the hypervisor allocates the queue pair comprising a set of one or more queue pair partition key registers;
third instructions for identifying a type of the requestor;
fourth instructions for writing a partition key mode in a set of queue pair hypervisor control registers to indicate a type of partition key checking to be performed with the queue pair based on the type of the requestor, wherein the partition key mode is one of a single partition key check mode if the requestor is a user application, a multiple partition key check mode if the requestor is an application that performs multicasting, or a partition key check disabled mode if the queue pair is being allocated for use by the hypervisor of the host channel adapter; and
fifth instructions for writing one or more partition keys to the set of one or more queue pair partition key registers of the queue pair based on the partition key mode;
wherein the one or more partition keys are partition keys assigned by a subnet manager in a system area network and stored in a partition key table associated with a port of the host channel adapter. - View Dependent Claims (9, 10, 11, 12, 13)
- first instructions for receiving a request, from a requester, to allocate the queue pair;
-
14. A data processing system for allocating a queue pair in a host channel adapter of a system area network, comprising:
- a bus;
a memory connected to the bus, wherein the memory contains computer instructions; and
a processing unit connected to the bus, wherein the processing unit executes the computer instructions to receive a request, from a requestor, to allocate the queue pair;
send the request to a hypervisor of the host channel adapter, wherein the hypervisor allocates the queue pair comprising a set of one or more queue pair partition key registers;
identify a type of the requestor;
write a partition key mode in a set of queue pair hypervisor control registers to indicate a type of partition key checking to be performed with the queue pair based on the type of the requestor, wherein the partition key mode is one of a single partition key check mode if the requestor is a user application, a multiple partition key check mode if the requestor is an application that performs multicasting, or a partition key check disabled mode if the queue pair is being allocated for use by the hypervisor of the host channel adapter; and
write one or more partition keys to the set of one or more queue pair partition key registers of the queue pair based on the partition key mode;
wherein the one or more partition keys are partition keys assigned by a subnet manager in a system area network and stored in a partition key table associated with a port of the host channel adapter. - View Dependent Claims (15, 16, 17, 18, 19)
- a bus;
-
20. A method of allocating a queue pair in a host channel adapter of a system area network, comprising:
- receiving a request, from a requestor, to allocate the queue pair;
sending the request to a hypervisor of the host channel adapter, wherein the hypervisor allocates the queue pair comprising a set of one or more queue pair partition key registers;
identifying a type of the requestor;
writing a partition key mode in a set of queue pair hypervisor control registers to indicate a type of partition key checking to be performed with the queue pair based on the type of the requestor, wherein the partition key mode is one of a single partition key check mode if the requestor is a user application, a multiple partition key check mode if the requestor is an application that performs multicasting, or a partition key check disabled mode if the queue pair is being allocated for use by the hypervisor of the host channel adapter; and
writing one or more partition keys to the set of one or more queue pair partition key registers of the queue pair based on the partition key mode, wherein a default partition key is written in the set of queue pair partition key registers for the single partition key check mode, all applicable partition keys are written in the set of queue pair partition key registers for the multiple partition key check mode, and no keys are written in the set of queue pair partition key registers for the disabled partition key check mode;
one or more partition keys assigned by a subnet manager in a system area network and stored in a partition key table associated with a port of the host channel adaptor.
- receiving a request, from a requestor, to allocate the queue pair;
Specification