pub trait IbvDeviceImpl:
Named
+ Debug
+ Send
+ Sync
+ 'static {
type Domain: IbvDomainImpl;
// Required methods
fn backend_name() -> &'static str;
fn is_instance(ctx: Arc<IbvContext>) -> bool;
fn apply_config_defaults(config: &mut IbvConfig);
}Expand description
Per-backend driver for [IbvDevice]. Concrete impls register
themselves via [register_ibv_device_impl!].
Required Associated Types§
Required Methods§
Sourcefn backend_name() -> &'static str
fn backend_name() -> &'static str
Human-readable display name for the backend this impl
drives (e.g., "mellanox", "efa"). Surfaced in
diagnostics; not used as a registry key.
Sourcefn is_instance(ctx: Arc<IbvContext>) -> bool
fn is_instance(ctx: Arc<IbvContext>) -> bool
Returns true if ctx belongs to this backend. Called
transiently, once per ibverbs device, while
[DEVICE_NAMES_BY_IMPL] is built.
Sourcefn apply_config_defaults(config: &mut IbvConfig)
fn apply_config_defaults(config: &mut IbvConfig)
Seeds an IbvConfig with backend-appropriate defaults
(e.g., EFA caps max_send_sge at 1).
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.