[ofa-general] [PATCH][RFC] dapl v2.0: change packaging to modify OFA provider contents of dat.conf instead of file replacement.

Arlin Davis arlin.r.davis at intel.com
Mon Apr 14 15:38:06 PDT 2008



Change the packaging to update only the OFA provider contents in dat.conf. This allows other
dapl providers, other then OFA, to co-exist and configure properly. Adding man page to explain
syntax of this static configuration file since there will no longer be comments in dat.conf.

Signed-off by: Arlin Davis ardavis at ichips.intel.com
---
 Makefile.am    |   25 ++++++++++++++++++----
 dapl.spec.in   |   24 ++++++++++++++++++---
 doc/dat.conf   |   26 -----------------------
 man/dat.conf.5 |   62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 102 insertions(+), 35 deletions(-)
 delete mode 100755 doc/dat.conf
 create mode 100644 man/dat.conf.5

diff --git a/Makefile.am b/Makefile.am
index 60b3db6..bb75dea 100755
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,8 +25,6 @@ else
 DBGFLAGS = -g
 endif
 
-sysconf_DATA = doc/dat.conf
-
 datlibdir = $(libdir)
 dapllibofadir = $(libdir)
 
@@ -195,7 +193,7 @@ libdatinclude_HEADERS = dat/include/dat2/dat.h \
 			dat/include/dat2/udat_vendor_specific.h \
 			dat/include/dat2/dat_ib_extensions.h 
 		
-man_MANS = man/dtest.1 man/dapltest.1 
+man_MANS = man/dtest.1 man/dapltest.1 man/dat.conf.5 
     	
 EXTRA_DIST = dat/common/dat_dictionary.h \
 	     dat/common/dat_dr.h \
@@ -241,7 +239,6 @@ EXTRA_DIST = dat/common/dat_dictionary.h \
 	     dapl/openib_cma/dapl_ib_dto.h \
 	     dapl/openib_cma/dapl_ib_util.h \
 	     dat/udat/libdat2.map \
-	     doc/dat.conf \
 	     dapl/udapl/libdaplofa.map \
 	     dapl.spec.in \
 	     $(man_MANS) \
@@ -275,5 +272,23 @@ EXTRA_DIST = dat/common/dat_dictionary.h \
 	 
 dist-hook: dapl.spec 
 	cp dapl.spec $(distdir)
-	
+
+install-exec-hook:
+	if test -e $(sysconfdir)/dat.conf; then \
+		sed -e '/ofa-v2-.* u2/d' < $(sysconfdir)/dat.conf > /tmp/$$$$ofadapl; \
+		cp /tmp/$$$$ofadapl $(sysconfdir)/dat.conf; \
+	fi; \
+	echo ofa-v2-ib0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 '"ib0 0" ""' >>
$(sysconfdir)/dat.conf; \
+	echo ofa-v2-ib1 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 '"ib1 0" ""' >>
$(sysconfdir)/dat.conf; \
+	echo ofa-v2-ib2 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 '"ib2 0" ""' >>
$(sysconfdir)/dat.conf; \
+	echo ofa-v2-ib3 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 '"ib3 0" ""' >>
$(sysconfdir)/dat.conf; \
+	echo ofa-v2-bond u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 '"bond0 0" ""' >>
$(sysconfdir)/dat.conf;
+
+uninstall-hook:
+	if test -e $(sysconfdir)/dat.conf; then \
+		sed -e '/ofa-v2-.* u2/d' < $(sysconfdir)/dat.conf > /tmp/$$$$ofadapl; \
+		cp /tmp/$$$$ofadapl $(sysconfdir)/dat.conf; \
+	fi; 
+
 SUBDIRS = . test/dtest test/dapltest
+
diff --git a/dapl.spec.in b/dapl.spec.in
index 945ec78..1c656ca 100644
--- a/dapl.spec.in
+++ b/dapl.spec.in
@@ -87,13 +87,28 @@ rm -f %{buildroot}%{_libdir}/*.la
 %clean
 rm -rf %{buildroot}
 
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%post 
+/sbin/ldconfig
+if [ -e %{_sysconfdir}/dat.conf ]; then
+    sed -e '/ofa-v2-.* u2/d' < %{_sysconfdir}/dat.conf > /tmp/$$ofadapl
+    mv /tmp/$$ofadapl %{_sysconfdir}/dat.conf
+fi
+echo ofa-v2-ib0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 '"ib0 0" ""' >>
%{_sysconfdir}/dat.conf
+echo ofa-v2-ib1 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 '"ib1 0" ""' >>
%{_sysconfdir}/dat.conf
+echo ofa-v2-ib2 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 '"ib2 0" ""' >>
%{_sysconfdir}/dat.conf
+echo ofa-v2-ib3 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 '"ib3 0" ""' >>
%{_sysconfdir}/dat.conf
+echo ofa-v2-bond u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 '"bond0 0" ""' >>
%{_sysconfdir}/dat.conf
+
+%postun 
+/sbin/ldconfig
+if [ -e %{_sysconfdir}/dat.conf ]; then
+    sed -e '/ofa-v2-.* u2/d' < %{_sysconfdir}/dat.conf > /tmp/$$ofadapl
+    mv /tmp/$$ofadapl %{_sysconfdir}/dat.conf
+fi
 
 %files
 %defattr(-,root,root,-)
 %{_libdir}/libda*.so.*
-%config(noreplace) %{_sysconfdir}/dat.conf
 %doc AUTHORS README ChangeLog
 
 %files devel
@@ -109,7 +124,8 @@ rm -rf %{buildroot}
 %files utils
 %defattr(-,root,root,-)
 %{_bindir}/*
-%{_mandir}/man1/*
+%{_mandir}/man1/*.1*
+%{_mandir}/man5/*.5*
 
 %changelog
 * Thu Feb 14 2008 Arlin Davis <ardavis at ichips.intel.com> - 2.0.7
diff --git a/doc/dat.conf b/doc/dat.conf
deleted file mode 100755
index 06142f8..0000000
--- a/doc/dat.conf
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# DAT 1.2 and 2.0 configuration file
-#
-# Each entry should have the following fields:
-#
-# <ia_name> <api_version> <threadsafety> <default> <lib_path> \
-#           <provider_version> <ia_params> <platform_params>
-#
-# For the uDAPL cma provder, specify <ia_params> as one of the following:
-#       network address, network hostname, or netdev name and 0 for port
-#
-# Simple (OpenIB-cma) default with netdev name provided first on list
-# to enable use of same dat.conf version on all nodes
-#
-# 1.2 and 2.0 examples for multiple interfaces, IPoIB HA failover, bonding:
-#
-OpenIB-cma u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "ib0 0" ""
-OpenIB-cma-1 u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "ib1 0" ""
-OpenIB-cma-2 u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "ib2 0" ""
-OpenIB-cma-3 u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "ib3 0" ""
-OpenIB-bond u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "bond0 0" ""
-ofa-v2-ib0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib0 0" ""
-ofa-v2-ib1 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib1 0" ""
-ofa-v2-ib2 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib2 0" ""
-ofa-v2-ib3 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib3 0" ""
-ofa-v2-bond u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "bond0 0" ""
diff --git a/man/dat.conf.5 b/man/dat.conf.5
new file mode 100644
index 0000000..6dee668
--- /dev/null
+++ b/man/dat.conf.5
@@ -0,0 +1,62 @@
+.TH "DAT.CONF" "5" "25 March 2008" "" ""
+.SH NAME
+dat.conf \- configuration file for static registration of user-level DAT rdma providers
+.SH "DESCRIPTION"
+.PP
+The DAT (direct access transport) architecture supports the use of 
+multiple DAT providers within a single consumer application. 
+Consumers implicitly select a provider using the Interface Adapter 
+name parameter passed to dat_ia_open().
+.PP
+The subsystem that maps Interface Adapter names to provider
+implementations is known as the DAT registry. When a consumer calls
+dat_ia_open(), the appropriate provider is found and notified of the
+consumer's request to access the IA. After this point, all DAT API
+calls acting on DAT objects are automatically directed to the
+appropriate provider entry points.
+.PP
+A persistent, administratively configurable database is used to store
+mappings from IA names to provider information. This provider
+information includes: the file system path to the provider library
+object, version information, and thread safety information. The
+location and format of the registry is platform dependent. This
+database is known as the Static Registry (SR) and is provided via
+entries in the \fIdat.conf\fR file. The process of adding a provider 
+entry is termed Static Registration.
+.PP
+.SH "Registry File Format"
+\br 
+    * All characters after # on a line are ignored (comments).
+    * Lines on which there are no characters other than whitespace
+      and comments are considered blank lines and are 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 quoated with double quotes,
+      the backslash or qoute are valid escape sequences:
+    * Each non-blank line will contain the following fields:
+        - The IA Name.
+        - The API version of the library:
+          [k|u]major.minor where "major" and "minor" are both integers
+          in decimal format. User-level examples: "u1.2", and "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) 
+.PP
+.SH Example netdev entries for OpenFabrics rdma_cm providers, both v1.2 and v2.0 
+\br 
+        OpenIB-cma u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "ib0 0" ""
+        ofa-v2-ib0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib0 0" ""
+
+        NOTE: The OpenFabrics providers use <ia_params> to specify the device with one of the
following:
+              network address, network hostname, or netdev name; along with port number.
+
+              The OpenIB- and ofa-v2- IA names are unique mappings. Reserved for OpenFabrics
providers. 
+.PP
+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. 
+.PP
+.SH "SEE ALSO"
+.PP
-- 
1.5.2.5





More information about the general mailing list