pub struct IbverbsConfig {Show 20 fields
pub device: RdmaDevice,
pub cq_entries: i32,
pub port_num: u8,
pub gid_index: u8,
pub max_send_wr: u32,
pub max_recv_wr: u32,
pub max_send_sge: u32,
pub max_recv_sge: u32,
pub path_mtu: u32,
pub retry_cnt: u8,
pub rnr_retry: u8,
pub qp_timeout: u8,
pub min_rnr_timer: u8,
pub max_dest_rd_atomic: u8,
pub max_rd_atomic: u8,
pub pkey_index: u16,
pub psn: u32,
pub use_gpu_direct: bool,
pub hw_init_delay_ms: u64,
pub qp_type: RdmaQpType,
}Expand description
Represents ibverbs specific configurations.
This struct holds various parameters required to establish and manage an RDMA connection. It includes settings for the RDMA device, queue pair attributes, and other connection-specific parameters.
Fields§
§device: RdmaDevicedevice - The RDMA device to use for the connection.
cq_entries: i32cq_entries - The number of completion queue entries.
port_num: u8port_num - The physical port number on the device.
gid_index: u8gid_index - The GID index for the RDMA device.
max_send_wr: u32max_send_wr - The maximum number of outstanding send work requests.
max_recv_wr: u32max_recv_wr - The maximum number of outstanding receive work requests.
max_send_sge: u32max_send_sge - Te maximum number of scatter/gather elements in a send work request.
max_recv_sge: u32max_recv_sge - The maximum number of scatter/gather elements in a receive work request.
path_mtu: u32path_mtu - The path MTU (Maximum Transmission Unit) for the connection.
retry_cnt: u8retry_cnt - The number of retry attempts for a connection request.
rnr_retry: u8rnr_retry - The number of retry attempts for a receiver not ready (RNR) condition.
qp_timeout: u8qp_timeout - The timeout for a queue pair operation.
min_rnr_timer: u8min_rnr_timer - The minimum RNR timer value.
max_dest_rd_atomic: u8max_dest_rd_atomic - The maximum number of outstanding RDMA read operations at the destination.
max_rd_atomic: u8max_rd_atomic - The maximum number of outstanding RDMA read operations at the initiator.
pkey_index: u16pkey_index - The partition key index.
psn: u32psn - The packet sequence number.
use_gpu_direct: booluse_gpu_direct - Whether to enable GPU Direct RDMA support on init.
hw_init_delay_ms: u64hw_init_delay_ms - The delay in milliseconds before initializing the hardware.
This is used to allow the hardware to settle before starting the first transmission.
qp_type: RdmaQpTypeqp_type - The type of queue pair to create (Auto, Standard, or Mlx5dv).
Implementations§
Source§impl IbverbsConfig
impl IbverbsConfig
Sourcepub fn targeting(target: &str) -> Self
pub fn targeting(target: &str) -> Self
Create a new IbverbsConfig targeting a specific device
Device targets use a unified “type:id” format:
- “cpu:N” -> finds RDMA device closest to NUMA node N
- “cuda:N” -> finds RDMA device closest to CUDA device N
- “nic:mlx5_N” -> returns the specified NIC directly
Shortcuts:
- “cpu” -> defaults to “cpu:0”
- “cuda” -> defaults to “cuda:0”
§Arguments
target- Target device specification
§Returns
IbverbsConfigwith resolved device, or default device if resolution fails
Trait Implementations§
Source§impl Clone for IbverbsConfig
impl Clone for IbverbsConfig
Source§fn clone(&self) -> IbverbsConfig
fn clone(&self) -> IbverbsConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IbverbsConfig
impl Debug for IbverbsConfig
Source§impl Default for IbverbsConfig
Default RDMA parameters below are based on common values from rdma-core examples
For high-performance or production use, consider tuning
based on ibv_query_device() results and workload characteristics
impl Default for IbverbsConfig
Default RDMA parameters below are based on common values from rdma-core examples For high-performance or production use, consider tuning based on ibv_query_device() results and workload characteristics
Source§impl<'de> Deserialize<'de> for IbverbsConfig
impl<'de> Deserialize<'de> for IbverbsConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for IbverbsConfig
impl Display for IbverbsConfig
Source§impl Named for IbverbsConfig
impl Named for IbverbsConfig
Source§fn typename() -> &'static str
fn typename() -> &'static str
Source§fn typehash() -> u64
fn typehash() -> u64
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
Source§fn port() -> u64
fn port() -> u64
Auto Trait Implementations§
impl Freeze for IbverbsConfig
impl RefUnwindSafe for IbverbsConfig
impl Send for IbverbsConfig
impl Sync for IbverbsConfig
impl Unpin for IbverbsConfig
impl UnwindSafe for IbverbsConfig
Blanket Implementations§
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
Source§impl<T> Checkpointable for Twhere
T: RemoteMessage + Clone,
impl<T> Checkpointable for Twhere
T: RemoteMessage + Clone,
Source§type State = T
type State = T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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