Protection Domains

What Is a PD?

PDs provide protection from unauthorized or inadvertent use of a memory area.

A PD can also be used to control access to destination UD QPs (this subject is covered in “PDs and UD Service” on page 318).

PD Creation

A PD must be created (i.e., allocated) before creation of any QP, region, window, or Address Handle (for more information on Address Handles, refer to “PDs and UD Service” on page 318) that will be member of that PD.

  • A PD is created using the Allocate Protection Domain verb call.

  • Only kernel mode OS code is permitted to execute this verb call.

  • PDs are specific to the HCA on which they were created.

PD Assignment to QP, Region, or Window

A QP, region, or window becomes a member of a PD when the QP, region, or window is created. The PD is supplied as one of the input parameters when software calls the verb to create the QP, region, or window.

PD Destruction

A PD is destroyed using the Deallocate Protection Domain verb call.

  • A PD cannot be destroyed if any QP, region, window, or Address Handle (see “PDs and UD Service” on page 318 for a discussion of Address Handles and PD) is still a member of that PD.

  • Only kernel mode OS code is permitted to execute this verb call.

PD Relationship to Regions, Windows, and QPs

The following relationships exist between regions, windows, QPs, and PDs:

  • A QP can only access a memory region or window if the PD assigned to the QP (at QP creation) matches the PD assigned to the region or window.

  • Each QP can only be member of one PD. It is assigned when the QP is created.

  • Multiple QPs can be members of the same PD.

  • Each region or window is a member of a single PD.

  • Multiple regions or windows can be members of the same PD.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.226.98.208