747c19eb75
Substantially all bug fixes and cleanups: - Update drivers to use common helpers for GUIDs, pkeys, bitmaps, memset_startat, and others - General code cleanups from bots - Simplify some of the rxe pool code in preparation for a larger rework - Clean out old stuff from hns, including all support for hip06 devices - Fix a bug where GID table entries could be missed if the table had holes in it - Rename paths and sessions in rtrs for better understandability - Consolidate the roce source port selection code - NDR speed support in mlx5 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfB7FMLh+8QxL+6i3OG33FX4gmxoFAmHgct4ACgkQOG33FX4g mxpFuQ//UqtbxowPeDB9bjJ5OLKZ1fGx0FxWkfBeR1cr0apboBNqdK1WOiz5Q7un F2xpASNEsOCr6JMMBhHMOvNiMjRSs33GvydyBj5T7LRx/QGie+0AeSzlS314/mJs NXvOinD21l1YEKIodw4Pfhtdl2QVmEvRpUJnccGyEGUKQ4jpUwVCTfa/tpoMVD5y MsWqv+xOrhsmDahW2nUSXHhBIazVqYETg4EE8O7J1Lb48F98keVOdVkH5wL4nmKj gl6oyN9lkw1sWDJBnom7mgd38L2M42mRtQkiFdMdnpj5D5jbLTcGv30GgBfyMPr6 8tI3sXcAJh3Wk3TUu2jEh2F+SjsHKRTqVjGVwQbkvEuhFK2TSHAhGC+gmP6ueZKG diHKcJVNm6rBX6L/EczYQ7hjOiMzJLlLjhZnr8+2Lqw0X+DzQbN19RUb+XX8iqkP ITM5LPQHf+7N8Rz2W7jcHk1h3wLv1VcKktErc6mUTHdxxpJv/XEsmLP22kqHgSyx So6yAlMtMMMZfP6taWkpTzC6KoduFJwWARf3zYoJreeWmL18F4+Tha2th8xnQMi2 cq0UOu1WnVEFwiIzdMa3aCtTDxXQ6UgPVk1E24RaiZTEBp5hO5+Xmn56du7G89Cb nlZbAudbh3aElbj9ptUsJGSVowGgSLJvvfgFyZz2u+wFBqdJnUk= =EL3r -----END PGP SIGNATURE----- Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma Pull rdma updates from Jason Gunthorpe: "Another small cycle. Mostly cleanups and bug fixes, quite a bit assisted from bots. There are a few new syzkaller splats that haven't been solved yet but they should get into the rcs in a few weeks, I think. Summary: - Update drivers to use common helpers for GUIDs, pkeys, bitmaps, memset_startat, and others - General code cleanups from bots - Simplify some of the rxe pool code in preparation for a larger rework - Clean out old stuff from hns, including all support for hip06 devices - Fix a bug where GID table entries could be missed if the table had holes in it - Rename paths and sessions in rtrs for better understandability - Consolidate the roce source port selection code - NDR speed support in mlx5" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (83 commits) RDMA/irdma: Remove the redundant return RDMA/rxe: Use the standard method to produce udp source port RDMA/irdma: Make the source udp port vary RDMA/hns: Replace get_udp_sport with rdma_get_udp_sport RDMA/core: Calculate UDP source port based on flow label or lqpn/rqpn IB/qib: Fix typos RDMA/rtrs-clt: Rename rtrs_clt to rtrs_clt_sess RDMA/rtrs-srv: Rename rtrs_srv to rtrs_srv_sess RDMA/rtrs-clt: Rename rtrs_clt_sess to rtrs_clt_path RDMA/rtrs-srv: Rename rtrs_srv_sess to rtrs_srv_path RDMA/rtrs: Rename rtrs_sess to rtrs_path RDMA/hns: Modify the hop num of HIP09 EQ to 1 IB/iser: Align coding style across driver IB/iser: Remove un-needed casting to/from void pointer IB/iser: Don't suppress send completions IB/iser: Rename ib_ret local variable IB/iser: Fix RNR errors IB/iser: Remove deprecated pi_guard module param IB/mlx5: Expose NDR speed through MAD RDMA/cxgb4: Set queue pair state when being queried ... |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
README | ||
rnbd-clt-sysfs.c | ||
rnbd-clt.c | ||
rnbd-clt.h | ||
rnbd-common.c | ||
rnbd-log.h | ||
rnbd-proto.h | ||
rnbd-srv-dev.c | ||
rnbd-srv-dev.h | ||
rnbd-srv-sysfs.c | ||
rnbd-srv.c | ||
rnbd-srv.h |
******************************** RDMA Network Block Device (RNBD) ******************************** Introduction ------------ RNBD (RDMA Network Block Device) is a pair of kernel modules (client and server) that allow for remote access of a block device on the server over RTRS protocol using the RDMA (InfiniBand, RoCE, iWARP) transport. After being mapped, the remote block devices can be accessed on the client side as local block devices. I/O is transferred between client and server by the RTRS transport modules. The administration of RNBD and RTRS modules is done via sysfs entries. Requirements ------------ RTRS kernel modules Quick Start ----------- Server side: # modprobe rnbd_server Client side: # modprobe rnbd_client # echo "sessname=blya path=ip:10.50.100.66 device_path=/dev/ram0" > \ /sys/devices/virtual/rnbd-client/ctl/map_device Where "sessname=" is a session name, a string to identify the session on client and on server sides; "path=" is a destination IP address or a pair of a source and a destination IPs, separated by comma. Multiple "path=" options can be specified in order to use multipath (see RTRS description for details); "device_path=" is the block device to be mapped from the server side. After the session to the server machine is established, the mapped device will appear on the client side under /dev/rnbd<N>. RNBD-Server Module Parameters ============================= dev_search_path --------------- When a device is mapped from the client, the server generates the path to the block device on the server side by concatenating dev_search_path and the "device_path" that was specified in the map_device operation. The default dev_search_path is: "/". dev_search_path option can also contain %SESSNAME% in order to provide different device namespaces for different sessions. See "device_path" option for details. ============================ Protocol (rnbd/rnbd-proto.h) ============================ 1. Before mapping first device from a given server, client sends an RNBD_MSG_SESS_INFO to the server. Server responds with RNBD_MSG_SESS_INFO_RSP. Currently the messages only contain the protocol version for backward compatibility. 2. Client requests to open a device by sending RNBD_MSG_OPEN message. This contains the path to the device and access mode (read-only or writable). Server responds to the message with RNBD_MSG_OPEN_RSP. This contains a 32 bit device id to be used for IOs and device "geometry" related information: side, max_hw_sectors, etc. 3. Client attaches RNBD_MSG_IO to each IO message send to a device. This message contains device id, provided by server in his rnbd_msg_open_rsp, sector to be accessed, read-write flags and bi_size. 4. Client closes a device by sending RNBD_MSG_CLOSE which contains only the device id provided by the server. ========================================= Contributors List(in alphabetical order) ========================================= Danil Kipnis <danil.kipnis@profitbricks.com> Fabian Holler <mail@fholler.de> Guoqing Jiang <guoqing.jiang@cloud.ionos.com> Jack Wang <jinpu.wang@profitbricks.com> Kleber Souza <kleber.souza@profitbricks.com> Lutz Pogrell <lutz.pogrell@cloud.ionos.com> Milind Dumbare <Milind.dumbare@gmail.com> Roman Penyaev <roman.penyaev@profitbricks.com> Swapnil Ingle <ingleswapnil@gmail.com>