DAT.CONF(5)
πΈ DAT.CONF(5) β the dat.conf manual page, bestie edition πΈ
okay so this is dat.conf, the config file that does static registration of user-level DAT rdma providers. it lives in section 5 of the manual, and yes i'm about to make it make sense for you π«Ά
β¨ NAME β¨
dat.conf β the configuration file for static registration of user-level DAT rdma providers π
π DESCRIPTION π
so the DAT (direct access transport) architecture supports using multiple DAT providers inside a single consumer application. consumers implicitly pick a provider using the Interface Adapter name parameter that gets passed to dat_ia_open().
the subsystem that maps Interface Adapter names β provider implementations is called the DAT registry. when a consumer calls dat_ia_open(), the right provider gets found and notified about the consumer's request to access the IA. after that point, every DAT API call acting on DAT objects is automatically routed to the appropriate provider entry points. it's giving main character energy for the registry, honestly β¨
there's a persistent, administratively configurable database that stores the mappings from IA names to provider info. that provider info includes: the file system path to the provider library object, version info, and thread safety info. the location and format of the registry is platform dependent. this database is known as the Static Registry (SR) and it's provided via entries in the dat.conf file. adding a provider entry is called Static Registration. periodt.
π Registry File Format π
- all characters after
#on a line are ignored (those are comments, bestie) π¬ - lines where there's nothing but whitespace and comments count as blank lines and get ignored
- non-blank lines must have seven whitespace separated fields. these fields may contain whitespace if the field is quoted with double quotes. within fields quoted with double quotes, the backslash or quote are valid escape sequences π¦
not me noticing the page says seven fields and then lists eight below π we're just reporting what it says, no cap
- each non-blank line contains the following fields:
- the IA Name
- the API version of the library:
[k|u]major.minorwhere "major" and "minor" are both integers in decimal format. user-level examples:"u2.0" - whether the library is thread-safe:
[threadsafe|nonthreadsafe] - whether this is the default section:
[default|nondefault] - the library image, version included, to be loaded
- the vendor id and version of DAPL provider:
id.major.minor - ia params, IA specific parameters β device name and port
- platform params, (not used) π
π OpenFabrics RDMA providers π
provider options for the different CM services π
cmaβ OpenFabricsrdma_cm- uses
rdma_cmservices for connections - requires IPoIB and SA/SM services for IB
- netdev used for device name, without port designation (
ia_params) - supports any transport
rdma_cmsupports, including IB, iWARP, RoCEE libdaplofa(2.0)
- uses
scmβ uDAPL socket based CM- exchanges CM information over sockets
- eliminates the need for
rdma_cm, IPoIB, and SA for IB - verbs device used for device name with port designation (
ia_param) - supports IB, RoCEE. doesn't support iWARP
libdaploscm(2.0)
ucmβ uDAPL unreliable IB CM- exchanges CM information via IB UD QP's
- eliminates the need for sockets or
rdma_cm - verbs device used for device name with port designation (
ia_param) - supports IB only, no name service
libdaploucm(2.0)
π¦ Example entries for each OpenFabrics provider π¦
1. cma β OpenFarbrics rdma_cm examples
ofa-v2-ib0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib0 0" ""
ofa-v2-iwarp u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth2 0" ""
ofa-v2-cma-roe-eth2 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth2 0" ""
ofa-v2-cma-roe-eth3 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth3 0" ""
NOTE: the OpenFabrics CMA providers use <ia_params> to specify the device with one of the following: network address, network hostname, or netdev name; along with port number. π
2. scm β uDAPL socket based CM v2.0 examples
ofa-v2-mlx4_0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mlx4_0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-mlx5_1-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx5_1 1" ""
ofa-v2-ehca0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "ehca0 1" ""
ofa-v2-scm-roe-mlx5_0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx5_0 1" ""
3. ucm β uDAPL unreliable IB CM examples
ofa-v2-mlx4_0-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mlx4_0-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-ipath0-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "ipath0 1" ""
ofa-v2-ehca0-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "ehca0 1" ""
Note:OpenIB-andofa-v2-IA names are unique mappings, reserved for OpenFabrics providers. π
π where it lives π
the default location for this configuration file is /etc/dat.conf.
the file location may be overridden with the environment variable DAT_OVERRIDE=/your_own_directory/your_dat.conf. β¨
π SEE ALSO π
rdma_cm verbs socket
and that's the whole vibe check, bestie β this page shipped in the November 15, 2016 era of the DAT.CONF(5) manual, so go forth and register those providers statically π ππ«Ά
π¦ where this page comes from
- opensuse-leap 16.0: dapl 2.1.10-bp160.1.12 Β· BSD-3-Clause OR GPL-2.0-or-later OR CPL-1.0
- opensuse-leap 16.0: dapl 2.1.10-bp160.1.12 Β· BSD-3-Clause OR GPL-2.0-or-later OR CPL-1.0
- opensuse-leap 16.0: dapl 2.1.10-bp160.1.12 Β· BSD-3-Clause OR GPL-2.0-or-later OR CPL-1.0
- opensuse-leap 16.0: dapl 2.1.10-bp160.1.12 Β· BSD-3-Clause OR GPL-2.0-or-later OR CPL-1.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms