What:		/sys/class/rnbd-client
Date:		Feb 2020
KernelVersion:	5.7
Contact:	Jack Wang <jinpu.wang@cloud.ionos.com> Danil Kipnis <danil.kipnis@cloud.ionos.com>
Description:	Provide information about RNBD-client.
		All sysfs files that are not read-only provide the usage information on read:

		Example::

		    # cat /sys/class/rnbd-client/ctl/map_device

		    > Usage: echo "sessname=<name of the rtrs session> path=<[srcaddr,]dstaddr>
		    > [path=<[srcaddr,]dstaddr>] device_path=<full path on remote side>
		    > [access_mode=<ro|rw|migration>] > map_device
		    >
		    > addr ::= [ ip:<ipv4> | ip:<ipv6> | gid:<gid> ]

What:		/sys/class/rnbd-client/ctl/map_device
Date:		Feb 2020
KernelVersion:	5.7
Contact:	Jack Wang <jinpu.wang@cloud.ionos.com> Danil Kipnis <danil.kipnis@cloud.ionos.com>
Description:	Expected format is the following::

		    sessname=<name of the rtrs session>
		    path=<[srcaddr,]dstaddr> [path=<[srcaddr,]dstaddr> ...]
		    device_path=<full path on remote side>
		    [access_mode=<ro|rw|migration>]

		Where:

		sessname:
		    accepts a string not bigger than 256 chars, which identifies
		    a given session on the client and on the server.
		    I.e. "clt_hostname-srv_hostname" could be a natural choice.

		path:
		    describes a connection between the client and the server by
		    specifying destination and, when required, the source address.
		    The addresses are to be provided in the following format::

			ip:<IPv6>
			ip:<IPv4>
			gid:<GID>

		for example::

		    path=ip:10.0.0.66

		The single addr is treated as the destination.
		The connection will be established to this server from any client IP address.

		::

		    path=ip:10.0.0.66,ip:10.0.1.66

		First addr is the source address and the second is the destination.

		If multiple "path=" options are specified multiple connection
		will be established and data will be sent according to
		the selected multipath policy (see RTRS mp_policy sysfs entry description).

		device_path:
		    Path to the block device on the server side. Path is specified
		    relative to the directory on server side configured in the
		    'dev_search_path' module parameter of the rnbd_server.
		    The rnbd_server prepends the <device_path> received from client
		    with <dev_search_path> and tries to open the
		    <dev_search_path>/<device_path> block device.  On success,
		    a /dev/rnbd<N> device file, a /sys/block/rnbd<N>/
		    directory and an entry in /sys/class/rnbd-client/ctl/devices
		    will be created.

		If 'dev_search_path' contains '%SESSNAME%', then each session can
		have different devices namespace, e.g. server was configured with
		the following parameter "dev_search_path=/run/rnbd-devs/%SESSNAME%",
		client has this string "sessname=blya device_path=sda", then server
		will try to open: /run/rnbd-devs/blya/sda.

		access_mode:
		    the access_mode parameter specifies if the device is to be
		    mapped as "ro" read-only or "rw" read-write. The server allows
		    a device to be exported in rw mode only once. The "migration"
		    access mode has to be specified if a second mapping in read-write
		    mode is desired.

		By default "rw" is used.

		nr_poll_queues
		  specifies the number of poll-mode queues. If the IO has HIPRI flag,
		  the block-layer will send the IO via the poll-mode queue.
		  For fast network and device the polling is faster than interrupt-base
		  IO handling because it saves time for context switching, switching to
		  another process, handling the interrupt and switching back to the
		  issuing process.

		  Set -1 if you want to set it as the number of CPUs
		  By default rnbd client creates only irq-mode queues.

		  NOTICE: MUST make a unique session for a device using the poll-mode queues.

		Exit Codes:

		If the device is already mapped it will fail with EEXIST. If the input
		has an invalid format it will return EINVAL. If the device path cannot
		be found on the server, it will fail with ENOENT.

		Finding device file after mapping
		---------------------------------

		After mapping, the device file can be found by:
		o  The symlink /sys/class/rnbd-client/ctl/devices/<device_id>@<session_name>
		points to /sys/block/<dev-name>. The last part of the symlink destination
		is the same as the device name.  By extracting the last part of the
		path the path to the device /dev/<dev-name> can be build.

		* /dev/block/$(cat /sys/class/rnbd-client/ctl/devices/<device_id>@<session_name>/dev)

		How to find the <device_id> of the device is described on the next
		section.

What:		/sys/class/rnbd-client/ctl/devices/
Date:		Feb 2020
KernelVersion:	5.7
Contact:	Jack Wang <jinpu.wang@cloud.ionos.com> Danil Kipnis <danil.kipnis@cloud.ionos.com>
Description:	For each device mapped on the client a new symbolic link is created as
		/sys/class/rnbd-client/ctl/devices/<device_id>@<session_name>, which points
		to the block device created by rnbd (/sys/block/rnbd<N>/).
		The <device_id> of each device is created as follows:

		- If the 'device_path' provided during mapping contains slashes ("/"),
		  they are replaced by exclamation mark ("!") and used as as the
		  <device_id>. Otherwise, the <device_id> will be the same as the
		  "device_path" provided.
