]> www.infradead.org Git - users/hch/blktests.git/commitdiff
nvme: support rdma transport type
authorSagi Grimberg <sagi@grimberg.me>
Thu, 3 Sep 2020 23:53:37 +0000 (16:53 -0700)
committerOmar Sandoval <osandov@fb.com>
Fri, 25 Sep 2020 17:19:55 +0000 (10:19 -0700)
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
tests/nvme/rc

index 8df00e7d15d0c9bcfd5917e317e8ab967c705401..4c5b2e8edf0d085b21c0b2b73b706ca5a5a9077a 100644 (file)
@@ -5,6 +5,7 @@
 # Test specific to NVMe devices
 
 . common/rc
+. common/multipath-over-rdma
 
 def_traddr="127.0.0.1"
 def_adrfam="ipv4"
@@ -25,6 +26,12 @@ _nvme_requires() {
                _have_modules nvmet nvme-core nvme-tcp nvmet-tcp
                _have_configfs
                ;;
+       rdma)
+               _have_modules nvmet nvme-core nvme-rdma nvmet-rdma
+               _have_configfs
+               _have_program rdma
+               _have_modules rdma_rxe || _have_modules siw
+               ;;
        *)
                SKIP_REASON="unsupported nvme_trtype=${nvme_trtype}"
                return 1
@@ -115,6 +122,9 @@ _cleanup_nvmet() {
                modprobe -r nvmet-"${nvme_trtype}" 2>/dev/null
        fi
        modprobe -r nvmet 2>/dev/null
+       if [[ "${nvme_trtype}" == "rdma" ]]; then
+               stop_soft_rdma
+       fi
 }
 
 _setup_nvmet() {
@@ -124,6 +134,16 @@ _setup_nvmet() {
                modprobe nvmet-"${nvme_trtype}"
        fi
        modprobe nvme-"${nvme_trtype}"
+       if [[ "${nvme_trtype}" == "rdma" ]]; then
+               start_soft_rdma
+               for i in $(rdma_network_interfaces)
+               do
+                       ipv4_addr=$(get_ipv4_addr "$i")
+                       if [ -n "${ipv4_addr}" ]; then
+                               def_traddr=${ipv4_addr}
+                       fi
+               done
+       fi
 }
 
 _nvme_disconnect_ctrl() {