Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jan 2011 01:44:13 +0000 (UTC)
From:      Jeff Roberson <jeff@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r216900 - in projects/ofed/base/contrib/ofed/libsdp: . config src src/linux
Message-ID:  <201101030144.p031iDaY064922@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jeff
Date: Mon Jan  3 01:44:13 2011
New Revision: 216900
URL: http://svn.freebsd.org/changeset/base/216900

Log:
   - Import libsdp
  
  Sponsored by:	Isilon Systems, iX Systems, and Panasas.

Added:
  projects/ofed/base/contrib/ofed/libsdp/
  projects/ofed/base/contrib/ofed/libsdp/COPYING
  projects/ofed/base/contrib/ofed/libsdp/ChangeLog
  projects/ofed/base/contrib/ofed/libsdp/Makefile.am
  projects/ofed/base/contrib/ofed/libsdp/NEWS
  projects/ofed/base/contrib/ofed/libsdp/README
  projects/ofed/base/contrib/ofed/libsdp/autogen.sh   (contents, props changed)
  projects/ofed/base/contrib/ofed/libsdp/changelog_from_git.sh   (contents, props changed)
  projects/ofed/base/contrib/ofed/libsdp/config/
  projects/ofed/base/contrib/ofed/libsdp/config/libsdp_indent   (contents, props changed)
  projects/ofed/base/contrib/ofed/libsdp/configure.in
  projects/ofed/base/contrib/ofed/libsdp/libsdp.conf
  projects/ofed/base/contrib/ofed/libsdp/libsdp.spec.in
  projects/ofed/base/contrib/ofed/libsdp/src/
  projects/ofed/base/contrib/ofed/libsdp/src/Makefile.am
  projects/ofed/base/contrib/ofed/libsdp/src/config_parser.c
  projects/ofed/base/contrib/ofed/libsdp/src/config_parser.h
  projects/ofed/base/contrib/ofed/libsdp/src/config_parser.y
  projects/ofed/base/contrib/ofed/libsdp/src/config_scanner.c
  projects/ofed/base/contrib/ofed/libsdp/src/config_scanner.l
  projects/ofed/base/contrib/ofed/libsdp/src/libsdp.h
  projects/ofed/base/contrib/ofed/libsdp/src/linux/
  projects/ofed/base/contrib/ofed/libsdp/src/linux/sdp_inet.h
  projects/ofed/base/contrib/ofed/libsdp/src/log.c
  projects/ofed/base/contrib/ofed/libsdp/src/match.c
  projects/ofed/base/contrib/ofed/libsdp/src/port.c
  projects/ofed/base/contrib/ofed/libsdp/src/socket.c

Added: projects/ofed/base/contrib/ofed/libsdp/COPYING
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/COPYING	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,36 @@
+This software is available to you under a choice of one of two
+licenses.  You may choose to be licensed under the terms of the GNU
+General Public License (GPL) Version 2, available at
+<http://www.fsf.org/copyleft/gpl.html>, or the OpenIB.org BSD
+license, included below.
+
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+
+
+OpenIB.org BSD license:
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+  * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  * Redistributions in binary form must reproduce the above
+    copyright notice, this list of conditions and the following
+    disclaimer in the documentation and/or other materials provided
+    with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.

Added: projects/ofed/base/contrib/ofed/libsdp/ChangeLog
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/ChangeLog	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,96 @@
+2010-12-26 18:14:02 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * 9c2ad15 libsdp: full ipv6 support
+
+2010-11-29 11:43:51 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * 0a3d5c3 libsdp: BUG2130 - libsdp.so is not installed + version
+	                   1.1.106
+2010-11-08 14:41:27 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * 7a1880f libsdp: updated version to 1.1.105
+
+2010-11-08 14:31:13 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * c6efc06 libsdp: fix security issues with log file
+
+2010-11-02 15:28:06 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * 09343d1 libsdp: fix bad permissions
+
+2010-10-28 13:46:39 +0200 root <root@swv300.lab.mtl.com>
+         * 46d845d libsdp: fixed indentation
+
+2010-10-04 11:49:46 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * 59b6a36 libsdp: updated version to 1.1.104
+
+2010-10-04 11:22:23 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * 21b63e0 libsdp: fix libsdp.so permissions
+
+2010-10-04 11:20:49 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * 3180e25 libsdp: fix "make dist"
+
+2010-09-13 10:31:52 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * df744a5 libsdp: updated version to 1.1.103
+
+2010-09-13 10:45:40 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * e3ce469 libsdp: don't make libsdp depend on sdp_socket.h from ib-kernel
+
+2010-08-03 15:35:11 +0300 Amir Vadai <amirv@mellanox.co.il>
+         * c5ff8e2 libsdp: updated version to 1.1.102
+
+2010-08-03 15:33:57 +0300 Amir Vadai <amirv@mellanox.co.il>
+         * 82fe3f9 libsdp: search openib headers according to 'prefix'
+
+2010-04-11 11:38:47 +0300 Amir Vadai <amirv@mellanox.co.il>
+         * 76060c5 libsdp: changed version to 1.1.101
+
+2010-04-08 09:33:29 +0300 Eldad Zinger <eldadz@mellanox.co.il>
+         * 8bf57aa libsdp: added differentiation between bind failures of sdp.
+
+2010-03-23 10:13:45 +0200 Eldad Zinger <eldadz@mellanox.co.il>
+         * 93706ed sdp: BUG1984 - fix for bad memory access.
+
+2010-04-08 15:40:55 +0300 Amir Vadai <amirv@mellanox.co.il>
+         * dadef4b libsdp: add path to openib include's
+
+2010-02-18 11:04:29 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * 920ea31 libsdp: changed version to 1.1.100
+
+2010-02-18 11:02:20 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * 0fe8a11 libsdp: updated changelog from git + script to get change log
+
+2010-02-18 10:49:42 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * a298098 libsdp: Fix memory leak. free libsdp_fd_attributes
+
+2010-02-18 10:49:00 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * cf4ceab libsdp: make libsdp.so have gid bit on
+
+2008-11-26 13:44:26 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * b1eaecb libsdp: Enable building libsdp on Solaris
+
+2008-11-23 Amir Vadai <amirv@mellanox.co.il>
+	* BUG1405 - conflict when running an application that use yacc.
+
+2008-12-08 18:29:09 +0200 Yossi Etigin <yossi.openib@gmail.com>
+         * dcfca98 libsdp: BUG1256 - Add epoll support
+
+2008-11-23 16:09:21 +0200 Amir Vadai <amirv@mellanox.co.il>
+         * 02404fb libsdp: BUG1405 - conflict when running an application that use yacc.
+
+2008-09-02 15:13:22 +0300 Yossi Etigin <[yossi.openib@gmail.com]>
+         * 64adc0e libsdp: enable fallback to TCP for nonblocking sockets
+
+2008-08-21 10:52:19 +0300 Yossi Etigin <[yossi.openib@gmail.com]>
+         * cee8053 libsdp: write fcntl argument in debug prints
+
+2008-07-21 22:01:21 +0300 Amir Vadai <amirv@mellanox.co.il>
+         * 81d6ec3 removed not unnecessary use of va_copy.
+
+2008-06-12 14:13:07 +0300 Amir Vadai <amirv@mellanox.co.il>
+         * 90f25b7 Fixed compilation error on Fedora Release 9
+
+2006-05-29  Eitan Zahavi  <eitan@mellanox.co.il>
+
+	* Support IPv4 embedded in IPv6 addresses. Since SDP currently does 
+	  not support IPv6 we need to convert to IPv4 and back on queries.
+
+	* port.c - cleanup abnd re-written for clearer flow. Added verbose 
+	  messages.
+
+	* Major re-write of the parser to support new syntax and using BNF

Added: projects/ofed/base/contrib/ofed/libsdp/Makefile.am
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/Makefile.am	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,23 @@
+SUBDIRS = src
+
+EXTRA_DIST = libsdp.spec.in libsdp.conf
+
+dist-hook: libsdp.spec
+	cp libsdp.spec $(distdir)
+
+install-data-hook:
+	if test -e $(DESTDIR)$(sysconfdir)/libsdp.conf; then \
+		diff -q $(srcdir)/libsdp.conf $(DESTDIR)$(sysconfdir)/libsdp.conf 1> /dev/null; \
+		if test $$? == 1; then \
+			t=$(shell date +'%Y%m%d%H%M%S'); \
+		   cp -p $(srcdir)/libsdp.conf \
+				$(DESTDIR)$(sysconfdir)/libsdp.conf.$$t; \
+			echo "NOTE: existing libsdp.conf was not updated."; \
+			echo "      libsdp.conf installed as ibsdp.conf.$$t instead."; \
+		fi; \
+	else \
+		if test ! -d $(DESTDIR)$(sysconfdir); then \
+			mkdir -p $(DESTDIR)$(sysconfdir); \
+		fi; \
+		cp -p $(srcdir)/libsdp.conf $(DESTDIR)$(sysconfdir)/libsdp.conf; \
+	fi

Added: projects/ofed/base/contrib/ofed/libsdp/NEWS
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/NEWS	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,4 @@
+0.9.0 - Initial release.
+1.0.0 - Following RFC for enhanced configuration semantics, strong parsing, 
+	major cleanup, verbosity logging and thread safe code
+	
\ No newline at end of file

Added: projects/ofed/base/contrib/ofed/libsdp/README
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/README	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,68 @@
+LIBSDP - A User Level Socket Switch for Seemless Migration to SDP 
+-----------------------------------------------------------------
+
+OVERVIEW:
+---------
+libsdp is a LD_PRELOAD-able library that can be used to migrate existing
+applications use InfiniBand Sockets Direct Protocol (SDP) instead of
+TCP sockets, transparently and without recompilations. To setup libsdp
+please follow the instructions below.
+
+SETUP:
+------
+libsdp.so isn't setup automatically. it can be used in one of 2 ways:
+1) LD_PRELOAD environment variable. Setting this to the name of the
+   library you want to use will cause it to be preloaded.
+2) Adding the name of the library into /etc/ld.so.preload. This will
+   cause the library to be preloaded for every executable that is linked
+   with libc.
+
+The library should be installed in a directory in which the dynamic loader
+searches for shared libraries (as specified by LD_LIBRARY_PATH,
+/etc/ld.so.conf, etc). Alternatively, you can specify the full path to the 
+library that you want to use in LD_PRELOAD or /etc/ld.so.preload as described 
+above.
+
+The last option cant be used if you have multiple library versions
+(e.g. 64/32 bit) and want the linker to select between them automatically.
+The best way to handle such case is to use LD_LIBRARY_PATH to point to both the
+lib (the 32 bit version) and lib64 directories and LD_RELOAD the libsdp.so.
+This way the correct 32/64bit libsdp.so will be selected. 
+For example running ssh over SDP with OFED distribution from bash this can be written:
+LD_LIBRARY_PATH=/usr/local/ofed/lib64:/usr/local/ofed/lib LD_PRELOAD=libsdp.so ssh
+
+CONFIGURATION:
+--------------
+libsdp supports two modes of configuration:
+* simple operation where it converts all calls to socket(2) with a family
+  of AF_INET(6) and a type of SOCK_STREAM into family of AF_INET_SDP. 
+* selective mode where it uses a configuration file to select which sockets
+  will be using SDP and which will not.
+
+For real world applications where communication with X, authentication, 
+DNS and other servers connected through TCP is required the selective mode
+is required.
+
+Simple mode will be selected in one of the following conditions:
+* the environment variable SIMPLE_LIBSDP to a non-empty value
+* no configuration file is defined or is un-readble
+* the configuration file does not include any address family rule
+
+For information on how to configure libsdp, see libsdp.conf, which is installed
+in $(sysconfdir) (usually /usr/local/etc or /etc). The user can further control
+the file to be used for configuration by setting the environment variable:
+LIBSDP_CONFIG_FILE
+
+LIMITATIONS:
+------------
+1. Applications statically linked with libc will not allow dynamic pre-loading
+   to port these applications to use SDP one needs to replace specific socket 
+   calls (within the application) with AF_INET_SDP and recompile.
+2. If for some reason the dynamic linker fail to pre-load libc before the 
+   libsdp.so is initialized or it does not support RTDL_NEXT, libsdp will 
+   fail to find the libc socket API. To overcome this situation a simple 
+   implementation of hijacking "socket" call is provided in libsdp_sys.
+   This partial implementation does not support any configuration and is 
+   limited to i386 architecture.
+3. Non-blocking connect in "both" mode defaults to SDP. Specific rules might be
+   needed for applications to operate properly.

Added: projects/ofed/base/contrib/ofed/libsdp/autogen.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/autogen.sh	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,8 @@
+#! /bin/sh
+
+set -x
+aclocal -I config
+libtoolize --force --copy
+autoheader
+automake --foreign --add-missing --copy
+autoconf

Added: projects/ofed/base/contrib/ofed/libsdp/changelog_from_git.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/changelog_from_git.sh	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+git log --pretty=format:"%ai %an <%ae>%n         * %h %s%n"

Added: projects/ofed/base/contrib/ofed/libsdp/config/libsdp_indent
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/config/libsdp_indent	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,71 @@
+#!/bin/bash
+#
+# Copyright (c) 2006 Mellanox Technologies LTD. All rights reserved.
+#
+# This software is available to you under a choice of one of two
+# licenses.  You may choose to be licensed under the terms of the GNU
+# General Public License (GPL) Version 2, available from the file
+# COPYING in the main directory of this source tree, or the
+# OpenIB.org BSD license below:
+#
+#     Redistribution and use in source and binary forms, with or
+#     without modification, are permitted provided that the following
+#     conditions are met:
+#
+#      - Redistributions of source code must retain the above
+#        copyright notice, this list of conditions and the following
+#        disclaimer.
+#
+#      - Redistributions in binary form must reproduce the above
+#        copyright notice, this list of conditions and the following
+#        disclaimer in the documentation and/or other materials
+#        provided with the distribution.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+# $Id: osm_indent 4707 2006-01-03 16:18:08Z halr $
+#
+#########################################################################
+# 
+#  Abstract:
+#  	Indent script for enforcing source code formatting.
+# 
+# This is the indent format used for libsdp:
+#
+# -bad	Blank line after declarations
+# -bap	Blank line after Procedures
+# -nbbb	NO Blank line before block comments
+# -nbbo	NO Break after Boolean operator
+# -bl  	Break after if line
+# -bli0  Indent for braces is 0
+# -bls	Break after struct declarations
+# -cbi0	Case break indent 0
+# -ci3	Continue indent 3 spaces
+# -cli0	Case label indent 0 spaces
+# -ncs	No space after cast operator
+# -hnl	Honor existing newlines on long lines
+# -i3	   Substitute indent with 3 spaces
+# -npcs	No space after procedure calls
+# -prs	Space after parenthesis
+# -nsai	No space after if keyword - removed
+# -nsaw	No space after while keyword - removed
+# -sc	   Put * at left of comments in a block comment style
+# -nsob	Don't swallow unnecessary blank lines
+# -ts3	Tab size is 3
+# -psl	Type of procedure return in a separate line
+# -bfda	Function declaration arguments in a separate line.
+# -ut    No tabs as we allow spaces
+# -br    Put braces on line with if, etc
+# -ce    Cuddle else and preceeding }
+#
+#########################################################################
+
+eval indent -bad -bap -nbbb -nbbo -bl -bli0 -bls -cbi0 -ci3 -cli0 -ncs \
+            -hnl -i3 -npcs -prs -sc -nsob -ts3 -psl -bfda -ut -br -ce $*

Added: projects/ofed/base/contrib/ofed/libsdp/configure.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/configure.in	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,59 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+
+AC_PREREQ(2.57)
+AC_INIT(libsdp, 1.1.108, openib-general@openib.org)
+AC_CONFIG_SRCDIR([src/port.c])
+AC_CONFIG_AUX_DIR(config)
+AM_CONFIG_HEADER(config.h)
+AM_INIT_AUTOMAKE(libsdp, 1.1.108)
+
+AC_CANONICAL_HOST
+AM_MAINTAINER_MODE
+
+AC_DISABLE_STATIC
+AC_PROG_LIBTOOL
+
+# Checks for programs.
+AC_PROG_CC
+AM_PROG_LEX 
+AC_PROG_YACC
+
+# Checks for libraries.
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS([arpa/inet.h netinet/in.h stdlib.h string.h sys/socket.h syslog.h unistd.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+
+# Checks for library functions.
+AC_REPLACE_FNMATCH
+AC_PROG_GCC_TRADITIONAL
+AC_FUNC_MALLOC
+AC_FUNC_VPRINTF
+AC_CHECK_FUNCS([dup2 memset socket strcasecmp strchr strdup strpbrk strrchr strtoul])
+
+# check OS
+case "${host}" in
+i[[3456]]86-*-linux*) AC_DEFINE(LINUX_BUILD, 1, [OS is linux]) ac_cv_linux_build="yes" ;;
+sparc*-sun-solaris*) AC_DEFINE(SOLARIS_BUILD, 1, [OS is sparc solaris]) ac_cv_solaris_build="yes";;
+esac
+
+AM_CONDITIONAL(LINUX_BUILD, test "$ac_cv_linux_build" = "yes")
+AM_CONDITIONAL(SOLARIS_BUILD, test "$ac_cv_solaris_build" = "yes")
+
+# Check if we should build libsdp_sys
+AC_CACHE_CHECK(whether to build i386-specific libsdp_sys, ac_cv_libsdp_sys,
+	AC_TRY_COMPILE(,[
+		#if !i386
+		#error Not i386
+		#endif
+		], ac_cv_libsdp_sys="yes", ac_cv_libsdp_sys="no"))
+
+AM_CONDITIONAL(WANT_LIBSDP_SYS, test "$ac_cv_libsdp_sys" = "yes")
+
+AC_CONFIG_FILES([Makefile src/Makefile libsdp.spec])
+AC_OUTPUT

Added: projects/ofed/base/contrib/ofed/libsdp/libsdp.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/libsdp.conf	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,139 @@
+# libsdp.conf - configuration file for libsdp
+#
+# $Id$
+#
+# Comments are starts with # and cause the entire line after it to be ignored.
+# Any beginning whitespace is skipped. Any line that is empty is also skipped.
+#
+# There are 2 main types of statements supported by this configuration file:
+# - "use" - which defines the address family to be used for the sockets that
+#           match the line
+# - "log" - for setting logging related configuration. As the log settings 
+#   takes immidiate effect we define these at the beggining of the file.
+#
+##############################################################################
+# DEAFUALT SETTINGS:
+# Please do not forget to comment if you want to change these.
+# (the rest of this file explains the syntax and give examples)
+#
+# Get errors printed into the files /tmp/libsdp.log.<uid>/log
+# or /var/log/<path> for root
+log min-level 9 destination file libsdp.log
+#
+# By default we let all servers and client try SDP first.
+# to exclude SDP add "use tcp" rules before these defaults.
+use both server * *:*
+use both client * *:*
+#
+#
+##############################################################################
+#
+# LOG CONFIGURATION:
+# ------------------
+# The log directive allows the user to specify which and where debug and error
+# messages get sent. The log statement format is:
+# log [destination stderr|syslog|file <path>] [min-level <1-9>]
+# 
+# destination - defines the destination of the log messages:
+#   stderr - messages will be forwarded to the stderr 
+#   syslog - messages sent to the syslog service
+#   file <path> - messages will be written to the file /var/log/<path> for root.
+#   		      for regular user, if full path is requsted <path>.<uid>/log
+#   		      or /tmp/<path>.<uid>/log if no path is requested 
+#   		      Due to security reasons, <path> must not be:
+#   		      1. a soft link
+#   		      2. owned by other user.
+#   		      3. Other permissions except User permissions.
+#
+# min-level - defines the verbosity of the log: 
+# 9 - only errors are printed
+# 8 - warnings
+# 7 - connect and listen summary (useful for tracking SDP usage)
+# 4 - positive match summary (useful for config file debug)
+# 3 - negative match summary (useful for config file debug)
+# 2 - function calls and return values
+# 1 - debug messages
+#
+# Examples:
+#
+# Get SDP usage per connect and listen into stderr 
+# log min-level 7 destination stderr
+#
+# Send errors only into syslog
+# log min-level 9 destination syslog
+#
+##############################################################################
+#
+# SOCKET ADDRESS FAMILY CONTROL:
+# ------------------------------
+# The socket control statements allows the user to specify when libsdp will
+# replace AF_INET/SOCK_STREAM sockets with AF_SDP/SOCK_STREAM
+# sockets. Each control statement specifies a matching rule that all its
+# subexpressions must evaluate as true (logical and) to apply. 
+#
+# The statements that control which type of sockets to open are made
+# of the following:
+# use <address-family> <role> <program name> <address|*>:<port range|*>
+# 
+# <address-family> can be one of:
+# "sdp" - for specifying when an SDP should be used
+# "tcp" - for specifying when SDP socket should not be matched
+# "both" - for specifying when both SDP and AF_INET sockets should be used.
+# 
+# Note: that "both" semantics is different between "server" and "client" roles:
+# For a "server" is means that the server will be listening on both sdp and tcp
+# For a "client" the connect will prefer using sdp but will silently
+# fall back to tcp if the sdp connection failed.
+#
+# <role> can be one of:
+# "server" or "listen" - for defining the listening port address family
+# "client" or "connect" - for defining the connected port address family
+# 
+# <program-name|*> field: 
+# Defines the program name (not including the path) the rule applies to. 
+# Wildcards with same semantics as "ls" are supported (* and ?). 
+# So db2* would match on any program with a name starting with db2. 
+# t?cp would match on ttcp, etc.
+# If not provided (default) the statement matches all programs.
+# 
+# <address|*> means:
+# Either the local address the server is bind to or the remote server
+# address the client connects to. Syntax for address matching is:
+# <IPv4 address>[/<prefix_length>]|*
+#   IPv4 address = [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ each sub number < 255
+#   prefix_length = [0-9]+ and with value <= 32. A prefix_length of 24
+#   matches the subnet mask 255.255.255.0 . A prefix_length of 32
+#   requires matching of the exact IP.
+#
+# <port range> is:
+# start-port[-end-port] where port numbers are >0 and < 65536
+# 
+# Rules are evaluated in order of definition. So the first match wins.
+# If no match is made libsdp will default to "both".
+#
+# Examples:
+#
+# Use SDP by clients connecting to machines that belongs to subnet 192.168.1.*
+#     family role    program   address:port[-range]
+# use sdp    connect *         192.168.1.0/24:* 
+#
+# Use SDP by ttcp when it connects to port 5001 of any machine 
+#     family role    program   address:port[-range]
+# use sdp    listen  ttcp      *:5001 
+#
+# Use TCP for any program with name starting with ttcp* serving ports 22 to 25
+#     family role    program   address:port[-range]
+# use tcp    server  ttcp*     *:22-25
+#
+# Listen on both TCP and SDP by any server that listen on port 8080
+#     family role    program   address:port[-range]
+# use both   server  *         *:8080
+#
+# Connect ssh through SDP and fallback to TCP to hosts on 11.4.8.* port 22
+#     family role    program   address:port[-range]
+# use both   connect *         11.4.8.0/24:22
+#
+# NOTE: If all "use" rules are commented SDP will take "simple SDP"
+# mode and use SDP for all connections
+#
+##############################################################################

Added: projects/ofed/base/contrib/ofed/libsdp/libsdp.spec.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/libsdp.spec.in	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,55 @@
+
+Summary: LD_PRELOAD-able library for using SDP
+Name: libsdp
+Version: @VERSION@
+Release: 1%{?dist}
+License: GPL/BSD
+Group: System Environment/Libraries
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+Source: http://www.openfabrics.org/downloads/%{name}-%{version}.tar.gz
+Url: http://www.openfabrics.org/
+
+%description
+libsdp can be LD_PRELOAD-ed to have a sockets application use
+InfiniBand Sockets Direct Protocol (SDP) instead of TCP, transparently
+and without recompiling the application.
+
+%package devel
+Summary: Development files for the libsdp
+Group: System Environment/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Development files of libsdp that may be linked directly to an
+application, which may be useful for debugging.
+
+%prep
+%setup -q
+
+%build
+%configure
+make
+
+%install
+make DESTDIR=${RPM_BUILD_ROOT} install
+# remove unpackaged files from the buildroot
+rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(6644,root,root)
+%{_libdir}/libsdp*.so*
+%defattr(0644,root,root)
+%config(noreplace) %{_sysconfdir}/libsdp.conf
+%config(noreplace) %{_includedir}/linux/sdp_inet.h
+%doc README NEWS ChangeLog COPYING
+
+%files devel
+%defattr(6644,root,root,-)
+%{_libdir}/libsdp*.so
+
+%changelog
+* Sun Jul 22 2007 Vladimir Sokolovsky <vlad@mellanox.co.il>
+- Initial packaging

Added: projects/ofed/base/contrib/ofed/libsdp/src/Makefile.am
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/src/Makefile.am	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,29 @@
+lib_LTLIBRARIES = libsdp.la $(LIB_SDP_SYS)
+if WANT_LIBSDP_SYS
+LIB_SDP_SYS = libsdp_sys.la
+endif
+
+AM_CFLAGS = -Wall -DSYSCONFDIR=\"$(sysconfdir)\"
+
+libsdp_la_SOURCES = log.c match.c port.c config_parser.c config_scanner.c
+libsdp_la_LDFLAGS = -version-info 1 -ldl -lc
+if SOLARIS_BUILD
+libsdp_la_LDFLAGS += -lsocket
+endif
+libsdp_sys_la_SOURCES = socket.c
+libsdp_sys_la_LDFLAGS = -version-info 1
+
+EXTRA_DIST = libsdp.h linux/sdp_inet.h config_parser.h
+
+config_parser.c: @MAINTAINER_MODE_TRUE@ $(srcdir)/config_parser.y
+	$(YACC) -y -plibsdp_yy -d $(srcdir)/config_parser.y
+	mv y.tab.c config_parser.c
+	mv y.tab.h config_parser.h
+	cp -f config_parser.c config_parser.h $(srcdir)/
+
+config_scanner.c: @MAINTAINER_MODE_TRUE@ $(srcdir)/config_scanner.l
+	$(LEX) -Plibsdp_yy $(srcdir)/config_scanner.l 
+	mv lex.libsdp_yy.c config_scanner.c
+	cp -f config_scanner.c $(srcdir)/config_scanner.c
+
+nobase_include_HEADERS = linux/sdp_inet.h

Added: projects/ofed/base/contrib/ofed/libsdp/src/config_parser.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/ofed/base/contrib/ofed/libsdp/src/config_parser.c	Mon Jan  3 01:44:13 2011	(r216900)
@@ -0,0 +1,1890 @@
+/* A Bison parser, made by GNU Bison 2.3.  */
+
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+   simplifying the original so-called "semantic" parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Bison version.  */
+#define YYBISON_VERSION "2.3"
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+/* Substitute the variable and function names.  */
+#define yyparse libsdp_yyparse
+#define yylex   libsdp_yylex
+#define yyerror libsdp_yyerror
+#define yylval  libsdp_yylval
+#define yychar  libsdp_yychar
+#define yydebug libsdp_yydebug
+#define yynerrs libsdp_yynerrs
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     USE = 258,
+     CLIENT = 259,
+     SERVER = 260,
+     TCP = 261,
+     SDP = 262,
+     BOTH = 263,
+     INT = 264,
+     LOG = 265,
+     DEST = 266,
+     STDERR = 267,
+     SYSLOG = 268,
+     FILENAME = 269,
+     NAME = 270,
+     LEVEL = 271,
+     LINE = 272
+   };
+#endif
+/* Tokens.  */
+#define USE 258
+#define CLIENT 259
+#define SERVER 260
+#define TCP 261
+#define SDP 262
+#define BOTH 263
+#define INT 264
+#define LOG 265
+#define DEST 266
+#define STDERR 267
+#define SYSLOG 268
+#define FILENAME 269
+#define NAME 270
+#define LEVEL 271
+#define LINE 272
+
+
+
+
+/* Copy the first part of user declarations.  */
+#line 39 "./config_parser.y"
+
+
+/* header section */
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "libsdp.h"
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+#define YYERROR_VERBOSE 1
+
+extern int yyerror(char *msg);
+extern int yylex(void);
+static int parse_err = 0;
+
+struct use_family_rule *__sdp_clients_family_rules_head = NULL;
+struct use_family_rule *__sdp_clients_family_rules_tail = NULL;
+struct use_family_rule *__sdp_servers_family_rules_head = NULL;
+struct use_family_rule *__sdp_servers_family_rules_tail = NULL;
+
+/* some globals to store intermidiate parser state */
+static struct use_family_rule __sdp_rule;
+static int current_role = 0;
+
+int __sdp_config_empty(
+                       void
+                       )
+{
+  return ( (__sdp_clients_family_rules_head == NULL) &&
+           (__sdp_servers_family_rules_head == NULL) );
+}
+
+/* define the address by 4 integers */
+static void __sdp_set_ipv4_addr(short a0, short a1, short a2, short a3)
+{
+  char buf[16];
+  sprintf(buf,"%d.%d.%d.%d", a0, a1, a2, a3);
+  if (!inet_aton(buf, &( __sdp_rule.ipv4 )))
+  {
+    parse_err = 1;
+    yyerror("provided address is not legal");
+  }
+}
+
+static void __sdp_set_prog_name_expr(char *prog_name_expr)
+{
+  __sdp_rule.prog_name_expr = strdup(prog_name_expr);
+  if (!__sdp_rule.prog_name_expr) {
+    yyerror("fail to allocate program name expression");    
+  }
+}
+
+static char *__sdp_get_role_str(int role)
+{
+  if (role == 1) return("server");
+  if (role == 2) return("client");
+  return("unknown role");
+}
+
+extern int __sdp_min_level;
+
+/* dump the current state in readable format */
+static void  __sdp_dump_config_state() {
+  char buf[1024];
+  sprintf(buf, "CONFIG: use %s %s %s", 
+          __sdp_get_family_str(__sdp_rule.target_family), 
+          __sdp_get_role_str( current_role ),
+          __sdp_rule.prog_name_expr);
+  if (__sdp_rule.match_by_addr) {
+    if ( __sdp_rule.prefixlen != 32 )
+      sprintf(buf+strlen(buf), " %s/%d", 
+              inet_ntoa( __sdp_rule.ipv4 ), __sdp_rule.prefixlen);
+    else
+      sprintf(buf+strlen(buf), " %s", inet_ntoa( __sdp_rule.ipv4 ));
+  } else {
+    sprintf(buf+strlen(buf), " *");
+  }
+  if (__sdp_rule.match_by_port) {
+    sprintf(buf+strlen(buf), ":%d",__sdp_rule.sport);
+    if (__sdp_rule.eport > __sdp_rule.sport) 
+      sprintf(buf+strlen(buf), "-%d",__sdp_rule.eport);
+  }
+  else
+    sprintf(buf+strlen(buf), ":*");
+  sprintf(buf+strlen(buf), "\n");
+  __sdp_log(1, buf);
+}
+
+/* use the above state for making a new rule */
+static void __sdp_add_rule() {
+  struct use_family_rule **p_tail, **p_head, *rule;
+
+  if (__sdp_min_level <= 1) __sdp_dump_config_state();
+  if ( current_role == 1 ) {
+    p_tail = &__sdp_servers_family_rules_tail;
+    p_head = &__sdp_servers_family_rules_head;
+  } else if ( current_role == 2 ) {
+    p_tail = &__sdp_clients_family_rules_tail;
+    p_head = &__sdp_clients_family_rules_head;
+  } else {
+    yyerror("ignoring unknown role");
+    parse_err = 1;
+    return;
+  }
+
+  rule = (struct use_family_rule *)malloc(sizeof(*rule));
+  if (!rule) {
+    yyerror("fail to allocate new rule");
+    parse_err = 1;
+    return;
+  }
+
+  memset(rule, 0, sizeof(*rule));
+  *rule = __sdp_rule;
+  rule->prev = *p_tail;
+  if (!(*p_head)) {
+    *p_head = rule;
+  } else {
+    (*p_tail)->next = rule;
+  } /* if */
+  *p_tail = rule;
+}
+
+
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 1
+#endif
+
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 167 "./config_parser.y"
+{
+  int        ival;
+  char      *sval;
+}
+/* Line 193 of yacc.c.  */
+#line 270 "y.tab.c"
+	YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+/* Copy the second part of user declarations.  */
+#line 192 "./config_parser.y"
+
+  long __sdp_config_line_num;
+
+
+/* Line 216 of yacc.c.  */
+#line 286 "y.tab.c"
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+#  define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+#  define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# else
+#  define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if YYENABLE_NLS
+#  if ENABLE_NLS
+#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+#   define YY_(msgid) dgettext ("bison-runtime", msgid)
+#  endif
+# endif
+# ifndef YY_
+#  define YY_(msgid) msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E.  */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+    int i;
+#endif
+{
+  return i;
+}
+#endif

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101030144.p031iDaY064922>