fi_provider man page on Kali

Man page or keyword search:  
man Server   9211 pages
apropos Keyword Search (all sections)
Output format
Kali logo
[printable version]

fi_provider(7)			   @VERSION@			fi_provider(7)

NAME
       fi_provider - Fabric Interface Providers

OVERVIEW
       Conceptually,  a	 fabric provider may be viewed as a local hardware NIC
       driver, though a provider is not limited by this definition.  The first
       component  of  libfabric is a general purpose framework that is capable
       of handling different types of fabric hardware.	 All  fabric  hardware
       devices	and their software drivers are required to support this frame‐
       work.  Devices and the drivers that plug into the  libfabric  framework
       are referred to as fabric providers, or simply providers.

       This   distribution  of	libfabric  contains  the  following  providers
       (although more may be available via run-time plug-ins):

   Core providers
       GNI : A provider for the Aries interconnect in Cray XC(TM) systems uti‐
       lizing  the user-space Generic Networking Interface.  See fi_gni(7) for
       more information.

       PSM : High-speed InfiniBand networking from Intel.  See	fi_psm(7)  for
       more information.

       Sockets	:  A  general purpose provider that can be used on any network
       that supports TCP/UDP sockets.  This provider is not intended  to  pro‐
       vide  performance improvements over regular TCP/UDP sockets, but rather
       to allow developers to write, test, and debug application code even  on
       platforms  that	do  not have high-speed networking.  See fi_sockets(7)
       for more information.

       usNIC : Ultra low latency Ethernet networking over Cisco userspace  VIC
       adapters.  See fi_usnic(7) for more information.

       Verbs  :	 This provider uses the Linux Verbs API for network transport.
       Application performance is, obviously expected to be similar to that of
       the  native  Linux  Verbs  API.	Analogous to the Sockets provider, the
       Verbs provider is intended to enable developers	to  write,  test,  and
       debug  application  code	 on platforms that only have Linux Verbs-based
       networking.  See fi_verbs(7) for more information.

       Blue Gene/Q : See fi_bgq(7) for more information.

   Utility providers
       RxM : The RxM provider (ofi_rxm) is an utility provider	that  supports
       RDM  endpoints  emulated	 over  MSG  endpoints of a core provider.  See
       fi_rxm(7) for more information.

CORE VERSUS UTILITY PROVIDERS
       Core  providers	implement  the	libfabric  interfaces  directly	  over
       low-level  hardware and software interfaces.  They are designed to sup‐
       port a specific class of hardware, and may be limited to	 supporting  a
       single  NIC.   Core providers often only support libfabric features and
       interfaces that map efficiently to their underlying hardware.

       Utility providers are distinct from core providers in that they are not
       associated  with	 specific  classes of devices.	They instead work with
       core providers  to  expand  their  features,  and  interact  with  core
       providers  through  libfabric interfaces internally.  Utility providers
       are often used to support a specific endpoint type over a simpler  end‐
       point  type.  For example, the RXD provider implements reliability over
       unreliable datagram endpoints.  The utility providers  will  not	 layer
       over the sockets provider unless it is explicitly requested.

       Utility	providers show up as a component in the core provider's compo‐
       nent list.  See fi_fabric(3).  Utility providers are enabled  automati‐
       cally  for core providers that do not support the feature set requested
       by an application.

PROVIDER REQUIREMENTS
       Libfabric provides a general framework for supporting multiple types of
       fabric  objects	and their related interfaces.  Fabric providers have a
       large amount of flexibility in selecting which components they are able
       and  willing  to	 support,  based  on  specific	hardware  constraints.
       Provider developers should refer to docs/provider  for  information  on
       functionaliy  supplied by the framework to assist in provider implemen‐
       tation.	To assist in the development of applications, libfabric speci‐
       fies  the  following  requirements  that	 must  be  met	by  any fabric
       provider, if requested by an application.

       Note that the instantiation of a specific fabric object is  subject  to
       application  configuration  parameters and need not meet these require‐
       ments.

       · A fabric provider must support at least one endpoint type.

       · All endpoints must support the message queue data transfer  interface
	 (fi_ops_msg).

       · An  endpoint that advertises support for a specific endpoint capabil‐
	 ity must support the corresponding data transfer interface.

       · FI_ATOMIC - fi_ops_atomic

       · FI_RMA - fi_ops_rma

       · FI_TAGGED - fi_ops_tagged

       · Endpoints must support all transmit and receive  operations  for  any
	 data transfer interface that they support.

       · Exception:  If	 an operation is only usable for an operation that the
	 provider does not support, and support for that operation is conveyed
	 using some other mechanism, the operation may return

	 · FI_ENOSYS.	For example, if the provider does not support injected
	   data, it can set the	 attribute  inject_size	 =  0,	and  fail  all
	   fi_inject operations.

       · The  framework supplies wrappers around the 'msg' operations that can
	 be used.  For example, the framework implements the sendv() msg oper‐
	 ation	by  calling  sendmsg().	  Providers  may reference the general
	 operation, and supply on the sendmsg() implementation.

       · Providers must set all operations  to	an  implementation.   Function
	 pointers  may	not be left NULL or uninitialized.  The framework sup‐
	 plies empty functions that return -FI_ENOSYS which can	 be  used  for
	 this purpose.

       · Endpoints must support the CM interface as follows:

       · FI_EP_MSG endpoints must support all CM operations.

       · FI_EP_DGRAM endpoints must support CM getname and setname.

       · FI_EP_RDM endpoints must support CM getname and setname.

       · Providers  that  support connectionless endpoints must support all AV
	 operations (fi_ops_av).

       · Providers that support memory registration, must support all MR oper‐
	 ations (fi_ops_mr).

       · Providers should support both completion queues and counters.

       · If FI_RMA_EVENT is not supported, counter support is limited to local
	 events only.

       · Completion  queues  must   support   the   FI_CQ_FORMAT_CONTEXT   and
	 FI_CQ_FORMAT_MSG.

       · Providers  that  support  FI_REMOTE_CQ_DATA  shall support FI_CQ_FOR‐
	 MAT_DATA.

       · Providers that support FI_TAGGED shall support FI_CQ_FORMAT_TAGGED.

       · A provider is expected to be forward compatible, and must be able  to
	 be  compiled  against	expanded fi_xxx_ops structures that define new
	 functions added after the provider was written.   Any	unknown	 func‐
	 tions must be set to NULL.

       · Providers  shall  document in their man page which features they sup‐
	 port, and any missing requirements.

       Future versions of libfabric will automatically enable a more  complete
       set of features for providers that focus their implementation on a nar‐
       row subset of libfabric capabilities.

LOGGING INTERFACE
       Logging is performed using the FI_ERR, FI_LOG, and FI_DEBUG macros.

   DEFINITIONS
	      #define FI_ERR(prov_name, subsystem, ...)

	      #define FI_LOG(prov_name, prov, level, subsystem, ...)

	      #define FI_DEBUG(prov_name, subsystem, ...)

   ARGUMENTS
       prov_name : String representing the provider name.

       prov : Provider context structure.

       level : Log level associated with log statement.

       subsystem : Subsystem being logged from.

   DESCRIPTION
       FI_ERR : Always logged.

       FI_LOG : Logged if the intended	provider,  log	level,	and  subsystem
       parameters match the user supplied values.

       FI_DEBUG : Logged if configured with the --enable-debug flag.

SEE ALSO
       fi_gni(7),    fi_psm(7),	  fi_sockets(7),   fi_usnic(7),	  fi_verbs(7),
       fi_bgq(7),

AUTHORS
       OpenFabrics.

Libfabric Programmer's Manual	  2017-07-24			fi_provider(7)
[top]

List of man pages available for Kali

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net