Struct ibverbs::Context

source ·
pub struct Context { /* private fields */ }
Expand description

An RDMA context bound to a device.

Implementations§

source§

impl Context

source

pub fn create_cq( &self, min_cq_entries: i32, id: isize ) -> Result<CompletionQueue<'_>>

Create a completion queue (CQ).

When an outstanding Work Request, within a Send or Receive Queue, is completed, a Work Completion is being added to the CQ of that Work Queue. This Work Completion indicates that the outstanding Work Request has been completed (and no longer considered outstanding) and provides details on it (status, direction, opcode, etc.).

A single CQ can be shared for sending, receiving, and sharing across multiple QPs. The Work Completion holds the information to specify the QP number and the Queue (Send or Receive) that it came from.

min_cq_entries defines the minimum size of the CQ. The actual created size can be equal or higher than this value. id is an opaque identifier that is echoed by CompletionQueue::poll.

§Errors
  • EINVAL: Invalid min_cq_entries (must be 1 <= cqe <= dev_cap.max_cqe).
  • ENOMEM: Not enough resources to complete this operation.
source

pub fn alloc_pd(&self) -> Result<ProtectionDomain<'_>, ()>

Allocate a protection domain (PDs) for the device’s context.

The created PD will be used primarily to create QueuePairs and MemoryRegions.

A protection domain is a means of protection, and helps you create a group of object that can work together. If several objects were created using PD1, and others were created using PD2, working with objects from group1 together with objects from group2 will not work.

Trait Implementations§

source§

impl Drop for Context

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl Send for Context

source§

impl Sync for Context

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.