NAME
srp_daemon - Discovers SRP targets in an InfiniBand Fabric
SYNOPSIS
srp_daemon [-vVcaeon] [-d umad-device | -i infiniband-device [-p port-
num]] [-t timeout(ms)] [-r retries] [-R Rescan-time] [-f rules-File]
DESCRIPTION
Discovers and connects to InfiniBand SCSI RDMA Protocol (SRP) targets
in an IB fabric.
Each srp_daemon instance operates on one local port. Upon boot it
performs a full rescan of the fabric then waits for an srp_daemon
event. An srp_daemon event can be a join of a new machine to the
fabric, a change in the capabilities of a machine, an SA change, or an
expiration of a predefined timeout.
When a new machine joins the fabric, srp_daemon checks if it is a
target. When there is a change of capabilities, srp_daemon checks if
the machine has turned into a target. When there is an SA change or a
timeout expiration, srp_daemon performs a full rescan of the fabric.
For each target srp_daemon finds, it checks if it should connect to
this target according to its rules (default rules file is
/etc/srp_daemon.conf) and if it is already connected to the local port.
If it should connect to this target and if it is not connected yet,
srp_daemon can either print the target details or connect to it.
OPTIONS
-v Print more verbose output
-V Print even more verbose output (debug mode)
-i infiniband-device
Work on infiniband-device. This option should not be used with
-d.
-p port-num
Work on port port-num (default 1). This option must be used with
-i and should not be used with -d.
-d umad-device
Use device file umad-device (default /dev/infiniband/umad0) This
option should not be used with -i or -p.
-c Generate output suitable for piping directly to a
/sys/class/infiniband_srp/srp-<device>-<port>/add_target file.
-a Prints all the targets in the fabric, not only targets that are
not connected through the local port. (The same as ibsrpdm.)
-e Execute the connection command, i.e., make the connection to the
target.
-o Perform only one rescan and exit. (The same as ibsrpdm.)
-R Rescan-time
Force a complete rescan every Rescan-time seconds. If -R is not
specified, no timeout rescans will be performed.
-T retry-Timeout
Retries to connect to existing target after retry-Timeout
seconds. If -R is not specified, uses 5 Seconds timeout. if
retry-Timeout is 0, will not try to reconnect. The reason
srp_daemon retries to connect to the target is because there may
be a rare scnerio in which srp_daemon will try to connect to add
a target when the target is about to be removed, but is not
removed yet.
-f rules-File
Decide to which targets to connect according to the rules in
rules-File. If -f is not specified, uses the default rules file
/etc/srp_daemon.conf. Each line in the rules-File is a rule
which can be either an allow connection or a disallow connection
according to the first character in the line (a or d
accordingly). The rest of the line is values for id_ext,
ioc_guid, dgid, service_id. Please take a look at the example
section for an example of the file. srp_daemon decide whether to
allow or disallow each target according to first rule that
match the target. If no rule matches the target, the target is
allowed and will be connected. In an allow rule it is possible
to set attributes for the connection to the target. Supported
attributes are max_cmd_per_lun and max_sect.
-t timeout
Use timeout of timeout msec for MAD responses (default: 5 sec).
-r retries
Perform retries retries on each send to MAD (default: 3
retries).
-n New format - use also initiator_ext in the connection command.
FILES
/etc/srp_daemon.conf - Default rules configuration file that indicates
to which targets to connect. Can be overridden using the -f rules-File
option. Each line in this file is a rule which can be either an allow
connection or a disallow connection according to the first character in
the line (a or d accordingly). The rest of the line is values for
id_ext, ioc_guid, dgid, service_id. Please take a look at the example
section for an example of the file. srp_daemon decide whether to allow
or disallow each target according to first rule that match the target.
If no rule matches the target, the target is allowed and will be
connected. In an allow rule it is possible to set attributes for the
connection to the target. Supported attributes are max_cmd_per_lun and
max_sect.
EXAMPLES
srp_daemon -e -i mthca0 -p 1 -R 60 (Connects to the targets accessible
through port 1 of mthca0. Performs a complete rescan every minute)
srp_daemon -o -c -a (Prints the connection commands for the
targets in the fabric and exits - similar to ibsrpdm)
srp_daemon -e -f rules.txt (Connects to the targets allowed in
the rules file rules.txt)
An example for a rules configuration file (such as /etc/srp_daemon.conf)
------------------------------------------------------------------------
# Rules file example
# This is a comment
# disallow the following dgid
d dgid=fe800000000000000002c90200402bd5
# allow target with the following ioc_guid
a ioc_guid=00a0b80200402bd7
# allow target with the following id_ext and ioc_guid. And setting max_cmd_per_lun to 31.
a id_ext=200500A0B81146A1,ioc_guid=00a0b80200402bef,max_cmd_per_lun=31
# disallow all the rest
d
SEE ALSO
ibsrpdm(1)
AUTHORS
Roland Dreier
<rolandd@cisco.com>
Ishai Rabinovitz
<ishai@mellanox.co.il>