libsdp.conf - configuration file for libsdp(3LIB)
/etc/libsdp.conf
libsdp.conf(5) File Formats Manual libsdp.conf(5)
NAME
libsdp.conf - configuration file for libsdp(3LIB)
SYNOPSIS
/etc/libsdp.conf
DESCRIPTION
The /etc/libsdp.conf file is the configuration file for libsdp(3LIB),
and is used to select which sockets will be using SDP and which will
not. There are 2 main types of statements supported by this configura-
tion 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 immediate effect we define these at the beginning of the
file.
DEFAULT SETTINGS:
Get errors printed into the files /tmp/libsdp.log.<uid> or
/var/log/<filename> 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 <filename>] [min-level <1-9>]
The fields are defined as follows:
destination
defines the destination of the log messages:
"stderr")
messages will be forwarded to the stderr
"syslog")
messages sent to the syslog service
"file <filename>")
messages will be written to the file /var/log/<filename> for
root. for regular user, if full path is requested <filename
with path>.<uid> or /tmp/<filename>.<uid> if no path is
requested
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
SOCKET ADDRESS FAMILY CONTROL
The socket control statements allows the user to specify when libsdp
will replace AF_INET_SDP/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|*>
where
<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 pre-
fer using sdp but will silently fall back to tcp if the sdp connec-
tion 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|*>
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|*>
Either the local address the server is bound 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>
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
LOG CONFIGURATION:
Example 1:
Get SDP usage per connect and listen into stderr
log min-level 7 destination stderr
Example 2:
Send errors only into syslog
log min-level 9 destination syslog
SOCKET ADDRESS FAMILY CONTROL
Example 1:
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:*
Example 2:
Use SDP by ttcp when it connects to port 5001 of any machine
# family role program address:port[-range]
use sdp listen ttcp *:5001
Example 3:
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
Example 4:
Listen on both TCP and SDP by any server that listen on port 8080
# family role program address:port[-range]
use both server * *:8080
Example 5:
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
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+-----------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------------+
|Availability | network/open-fabrics |
+---------------+-----------------------+
|Stability | Pass-through volatile |
+---------------+-----------------------+
SEE ALSO
libsdp(3LIB), attributes(7)
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from ['https://www.openfabrics.org/down-
loads/ibutils/ibutils-1.5.7-0.2.gbd7e502.tar.gz', 'https://www.openfab-
rics.org/downloads/libibverbs/libibverbs-1.1.8.tar.gz',
'https://www.openfabrics.org/downloads/libmlx4/libmlx4-1.0.6.tar.gz',
'https://www.openfabrics.org/downloads/libsdp/lib-
sdp-1.1.108-0.15.gd7fdb72.tar.gz', 'https://www.openfabrics.org/down-
loads/management/infiniband-diags-1.6.5.tar.gz', 'https://www.openfab-
rics.org/downloads/management/libibmad-1.3.12.tar.gz',
'https://www.openfabrics.org/downloads/management/libibu-
mad-1.3.10.2.tar.gz', 'https://www.openfabrics.org/downloads/manage-
ment/opensm-3.3.19.tar.gz', 'https://www.openfabrics.org/down-
loads/perftest/perftest-1.3.0-0.42.gf350d3d.tar.gz', 'https://www.open-
fabrics.org/downloads/qperf/qperf-0.4.9.tar.gz', 'https://www.openfab-
rics.org/downloads/rdmacm/librdmacm-1.0.21.tar.gz', 'https://www.open-
fabrics.org/downloads/rds-tools/rds-tools-2.0.4.tar.gz'].
Further information about this software can be found on the open source
community website at http://www.openfabrics.org/.
22 Dec 2020 libsdp.conf(5)