pub struct MlxQueuePair(/* private fields */);Expand description
An mlx5 RC queue pair created through mlx5dv_create_qp, so it carries the
mlx5dv send-ops flags that arm a direct-WQE/doorbell data path.
Operations delegate to an inner RCQueuePair, driving the QP
through the standard ibv_post_send/ibv_poll_cq verbs; the mlx5dv
send-ops flags are not exercised by that path.
Trait Implementations§
Source§impl Debug for MlxQueuePair
impl Debug for MlxQueuePair
Source§impl IbvQueuePair for MlxQueuePair
impl IbvQueuePair for MlxQueuePair
Source§unsafe fn new<I: IbvDomainImpl<QueuePair = Self>>(
domain: &IbvDomain<I>,
config: IbvConfig,
send_cq: Arc<IbvCq>,
recv_cq: Arc<IbvCq>,
) -> Result<Self, Error>
unsafe fn new<I: IbvDomainImpl<QueuePair = Self>>( domain: &IbvDomain<I>, config: IbvConfig, send_cq: Arc<IbvCq>, recv_cq: Arc<IbvCq>, ) -> Result<Self, Error>
Creates a queue pair against
domain in the RESET state, reporting its
completions on send_cq and recv_cq; Self::connect transitions it
to RTS before use. Read moreSource§fn connect(&mut self, info: &IbvQpInfo) -> Result<(), Error>
fn connect(&mut self, info: &IbvQpInfo) -> Result<(), Error>
Transitions the QP through
INIT -> RTR -> RTS, connected to info.Source§fn get_qp_info(&mut self) -> Result<IbvQpInfo, Error>
fn get_qp_info(&mut self) -> Result<IbvQpInfo, Error>
Returns the local endpoint other peers need in order to connect to this
QP.
Source§fn put(
&mut self,
remote_dst: IbvRemoteMemoryRegionView,
local_src: IbvMemoryRegionView,
) -> Result<Vec<u64>, Error>
fn put( &mut self, remote_dst: IbvRemoteMemoryRegionView, local_src: IbvMemoryRegionView, ) -> Result<Vec<u64>, Error>
Post an RDMA WRITE of
local_src into remote_dst. The request may
be chunked into multiple WRs. This method returns the list of WR ids
that were posted.Source§fn get(
&mut self,
local_dst: IbvMemoryRegionView,
remote_src: IbvRemoteMemoryRegionView,
) -> Result<Vec<u64>, Error>
fn get( &mut self, local_dst: IbvMemoryRegionView, remote_src: IbvRemoteMemoryRegionView, ) -> Result<Vec<u64>, Error>
Post an RDMA READ of
remote_src into local_dst. The request may
be chunked into multiple WRs. This method returns the list of WR ids
that were posted.Source§fn max_msg_size(&self) -> usize
fn max_msg_size(&self) -> usize
Largest transfer this QP issues as a single work request;
Self::put
and Self::get split anything larger into that many WRs. The owning
[QueuePairActor] budgets send-queue credits against this value, so an
implementation that chunks more finely must report it here or it will
over-commit the send queue.Auto Trait Implementations§
impl Freeze for MlxQueuePair
impl RefUnwindSafe for MlxQueuePair
impl Send for MlxQueuePair
impl Sync for MlxQueuePair
impl Unpin for MlxQueuePair
impl UnsafeUnpin for MlxQueuePair
impl UnwindSafe for MlxQueuePair
Blanket Implementations§
impl<T> Allocation for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].