The kernel commit
d68006348288 ("nvme: rework NVME_AUTH Kconfig
selection") in v6.7-rc1 introduced a new kernel config option
NVME_HOST_AUTH. When the option is disabled, nvme test cases from 041 to
045 fail because nvme-fabrics module does not support the feature
dhchap_ctrl_secret.
To check the requirement, add _require_kernel_nvme_fabrics_feature()
which refers /dev/nvme-fabrics and checks if the specified feature
string is found or not. Call it to check dhchap_ctrl_secret support in
require() of the test cases.
This change relies on the kernel commit
1697d7d4c5ef ("nvme: blank out
authentication fabrics options if not configured").
Suggested-by: Daniel Wagner <dwagner@suse.de>
Suggested-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
_have_loop
_have_kernel_option NVME_AUTH
_have_kernel_option NVME_TARGET_AUTH
+ _require_kernel_nvme_fabrics_feature dhchap_ctrl_secret
_require_nvme_trtype_is_fabrics
_require_nvme_cli_auth
}
_have_loop
_have_kernel_option NVME_AUTH
_have_kernel_option NVME_TARGET_AUTH
+ _require_kernel_nvme_fabrics_feature dhchap_ctrl_secret
_require_nvme_trtype_is_fabrics
_require_nvme_cli_auth
}
_have_loop
_have_kernel_option NVME_AUTH
_have_kernel_option NVME_TARGET_AUTH
+ _require_kernel_nvme_fabrics_feature dhchap_ctrl_secret
_require_nvme_trtype_is_fabrics
_require_nvme_cli_auth
_have_driver dh_generic
_have_loop
_have_kernel_option NVME_AUTH
_have_kernel_option NVME_TARGET_AUTH
+ _require_kernel_nvme_fabrics_feature dhchap_ctrl_secret
_require_nvme_trtype_is_fabrics
_require_nvme_cli_auth
_have_driver dh_generic
_have_loop
_have_kernel_option NVME_AUTH
_have_kernel_option NVME_TARGET_AUTH
+ _require_kernel_nvme_fabrics_feature dhchap_ctrl_secret
_require_nvme_trtype_is_fabrics
_require_nvme_cli_auth
_have_driver dh_generic
return 0
}
+_require_kernel_nvme_fabrics_feature() {
+ local feature="$1"
+
+ _have_driver nvme-fabrics || return 1
+
+ if ! [[ -r /dev/nvme-fabrics ]]; then
+ SKIP_REASONS+=("/dev/nvme-fabrics not available")
+ return 1;
+ fi
+ if ! grep -qe "${feature}" /dev/nvme-fabrics; then
+ SKIP_REASONS+=("nvme-fabrics does not support ${feature}")
+ return 1;
+ fi
+ return 0
+}
+
_test_dev_nvme_ctrl() {
echo "/dev/char/$(cat "${TEST_DEV_SYSFS}/device/dev")"
}