|
NAMEfi_prov_ini - External provider entry point
SYNOPSIS
ARGUMENTS
DESCRIPTIONA fabric provider implements the application facing software interfaces needed to access network specific protocols, drivers, and hardware. The interfaces and structures defined by this man page are exported by the libfabric library, but are targeted for provider implementations, rather than for direct use by most applications.Integrated providers are those built directly into the libfabric library itself. External providers are loaded dynamically by libfabric at initialization time. External providers must be in a standard library path or in the libfabric library search path as specified by environment variable. Additionally, external providers must be named with the suffix “-fi.so” at the end of the name. Named objects are special purpose resources which are accessible directly to applications. They may be used to enhance or modify the behavior of library core. For details, see the fi_open call below. fi_prov_iniThis entry point must be defined by external providers. On loading, libfabric will invoke fi_prov_ini() to retrieve the provider’s fi_provider structure. Additional interactions between the libfabric core and the provider will be through the interfaces defined by that struct.fi_param_defineDefines a configuration parameter for use by a specified provider. The help_string and param_name arguments must be non-NULL, help_string must additionally be non-empty. They are copied internally and may be freed after calling fi_param_define.fi_param_getGets the value of a configuration parameter previously defined using fi_param_define(). The value comes from the environment variable name of the form FI__, all converted to upper case.If the parameter was previously defined and the user set a value, FI_SUCCESS is returned and (*value) points to the retrieved value. If the parameter name was previously defined, but the user did not set a value, -FI_ENODATA is returned and the value of (*value) is unchanged. If the parameter name was not previously defined via fi_param_define(), -FI_ENOENT will be returned and the value of (*value) is unchanged. If the value in the environment is not valid for the parameter type, -FI_EINVAL will be returned and the value of (*value) is unchanged. fi_log_enabled / fi_log_ready / fi_logThese functions control debug and informational logging output. Providers typically access these functions through the FI_LOG and related macros in fi_log.h and do not call these function directly.fi_openOpen a library resource using a well-known name. This feature allows applications and providers a mechanism which can be used to modify or enhance core library services and behavior. The details are specific based on the requested object name. Most applications will not need this level of control.The library API version known to the application should be provided through the version parameter. The use of attributes is object dependent. If required, attributes should be provided through the attr parameter, with attr_len set to the size of the referenced attribute structure. The following is a list of published names, along with descriptions of the service or resource to which they correspond.
fi_export_fid / fi_import_fidGenerally, fabric objects are allocated and managed entirely by a single provider. Typically only the application facing software interfaces of a fabric object are defined, for example, the message or tagged operations of an endpoint. The fi_export_fid and fi_import_fid calls provide a a mechanism by which provider facing APIs may be accessed. This allows the creation of fid objects that are shareable between providers, or for library plug-in services. The ability to export a shareable object is object and provider implementation dependent.Shareable fids typically contain at least 3 main components: a base fid, a set of exporter defined ops, and a set of importer defined ops. NOTESTODOPROVIDER INTERFACEThe fi_provider structure defines entry points for the libfabric core to use to access the provider. All other calls into a provider are through function pointers associated with allocated objects.
versionThe provider version. For providers integrated with the library, this is often the same as the library version.fi_versionThe library interface version that the provider was implemented against. The provider’s fi_version must be greater than or equal to an application’s requested api version for the application to use the provider. It is a provider’s responsibility to support older versions of the api if it wishes to supports legacy applications. For integrated providersTODORETURN VALUEReturns FI_SUCCESS on success. On error, a negative value corresponding to fabric errno is returned. Fabric errno values are defined in rdma/fi_errno.h.ERRORSSEE ALSOfabric(7), fi_getinfo(3) fi_mr(3),AUTHORSOpenFabrics.
Visit the GSP FreeBSD Man Page Interface. |