From e128121f6e4bf9b6ddc9a4a8de60739acc9b1184 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Fri, 19 Nov 2021 13:33:42 +0100 Subject: [PATCH] nvme/rc: add functions for in-band authentication Add functions to enable in-band authentication. Signed-off-by: Hannes Reinecke --- tests/nvme/rc | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/tests/nvme/rc b/tests/nvme/rc index 14c3088..cbc6f68 100644 --- a/tests/nvme/rc +++ b/tests/nvme/rc @@ -94,6 +94,14 @@ _require_nvme_trtype_is_fabrics() { return 0 } +_require_nvme_cli_auth() { + if ! nvme gen-dhchap-key -n nvmf-test-subsys > /dev/null 2>&1 ; then + SKIP_REASON="nvme gen-dhchap-key command missing" + return 1 + fi + return 0 +} + _test_dev_nvme_ctrl() { echo "/dev/char/$(cat "${TEST_DEV_SYSFS}/device/dev")" } @@ -281,6 +289,25 @@ _create_nvmet_subsystem() { _create_nvmet_ns "${nvmet_subsystem}" "1" "${blkdev}" "${uuid}" } +_create_nvmet_host() { + local nvmet_subsystem="$1" + local nvmet_hostnqn="$2" + local nvmet_hostkey="$3" + local nvmet_ctrlkey="$4" + local cfs_path="${NVMET_CFS}/subsystems/${nvmet_subsystem}" + local host_path="${NVMET_CFS}/hosts/${nvmet_hostnqn}" + + mkdir "${host_path}" + echo 0 > "${cfs_path}/attr_allow_any_host" + ln -s "${host_path}" "${cfs_path}/allowed_hosts/${nvmet_hostnqn}" + if [[ "${nvmet_hostkey}" ]] ; then + echo "${nvmet_hostkey}" > "${host_path}/dhchap_key" + fi + if [[ "${nvmet_ctrlkey}" ]] ; then + echo "${nvmet_ctrlkey}" > "${host_path}/dhchap_ctrl_key" + fi +} + _remove_nvmet_ns() { local nvmet_subsystem="$1" local nsid=$2 @@ -300,6 +327,13 @@ _remove_nvmet_subsystem() { rmdir "${subsys_path}" } +_remove_nvmet_host() { + local nvmet_host="$1" + local host_path="${NVMET_CFS}/hosts/${nvmet_host}" + + rmdir "${host_path}" +} + _create_nvmet_passthru() { local nvmet_subsystem="$1" local subsys_path="${NVMET_CFS}/subsystems/${nvmet_subsystem}" @@ -339,6 +373,42 @@ _remove_nvmet_subsystem_from_port() { rm "${NVMET_CFS}/ports/${port}/subsystems/${nvmet_subsystem}" } +_set_nvmet_hostkey() { + local nvmet_hostnqn="$1" + local nvmet_hostkey="$2" + local cfs_path="${NVMET_CFS}/hosts/${nvmet_hostnqn}" + + echo "${nvmet_hostkey}" > \ + "${cfs_path}/dhchap_key" +} + +_set_nvmet_ctrlkey() { + local nvmet_hostnqn="$1" + local nvmet_ctrlkey="$2" + local cfs_path="${NVMET_CFS}/hosts/${nvmet_hostnqn}" + + echo "${nvmet_ctrlkey}" > \ + "${cfs_path}/dhchap_ctrl_key" +} + +_set_nvmet_hash() { + local nvmet_hostnqn="$1" + local nvmet_hash="$2" + local cfs_path="${NVMET_CFS}/hosts/${nvmet_hostnqn}" + + echo "${nvmet_hash}" > \ + "${cfs_path}/dhchap_hash" +} + +_set_nvmet_dhgroup() { + local nvmet_hostnqn="$1" + local nvmet_dhgroup="$2" + local cfs_path="${NVMET_CFS}/hosts/${nvmet_hostnqn}" + + echo "${nvmet_dhgroup}" > \ + "${cfs_path}/dhchap_dhgroup" +} + _find_nvme_dev() { local subsys=$1 local subsysnqn -- 2.49.0