pub enum IbvManagerLocalMessage {
RegisterMr {
addr: usize,
size: usize,
reply: OncePortHandle<Result<(IbvMemoryRegionView, String), String>>,
},
RegisterRemoteBuffer {
remote_buf_id: usize,
local: Arc<KeepaliveLocalMemory>,
reply: OncePortHandle<Result<IbvBuffer, String>>,
},
RequestQueuePair {
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
reply: OncePortHandle<Result<IbvQueuePair, String>>,
},
}Expand description
Local-only messages for IbvManagerActor.
Variants§
RegisterMr
Register a memory region, returning the MR view and device name.
RegisterRemoteBuffer
Register a remote-facing buffer’s MR and return its
IbvBuffer. Called by
[crate::rdma_manager_actor::RdmaManagerActor::request_buffer]
at buffer-creation time.
The MR lives in IbvManagerActor::buffer_registrations and
is deregistered on IbvManagerMessage::ReleaseBuffer.
RequestQueuePair
User-facing entry point: get a connected IbvQueuePair for
(self_device, other actor's id, other_device). Lazily creates
the QP + initializer if absent; if a handshake is in flight,
the reply port is queued and answered when the QP becomes
Ready (or fails).
No #[reply] because the handler may park reply on the
Pending entry and answer it later from [QpInitializerDone]/
[QpInitializerFailed].
Trait Implementations§
Source§impl Debug for IbvManagerLocalMessage
impl Debug for IbvManagerLocalMessage
Auto Trait Implementations§
impl !Freeze for IbvManagerLocalMessage
impl !RefUnwindSafe for IbvManagerLocalMessage
impl Send for IbvManagerLocalMessage
impl Sync for IbvManagerLocalMessage
impl Unpin for IbvManagerLocalMessage
impl UnsafeUnpin for IbvManagerLocalMessage
impl !UnwindSafe for IbvManagerLocalMessage
Blanket Implementations§
§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
§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>
Source§impl<A, M> Handler<IndexedErasedUnbound<M>> for A
impl<A, M> Handler<IndexedErasedUnbound<M>> for A
§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>
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>
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>
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>,
Layered].