nvmf: add keep alive unit test
Add the KATO==0 uint test of keep alive feature. 1, If subsystem == nvme && KATO == 0, it means initiator don't want to enable keep alive feature, the keep_alive_poller would not be registered. 2, If subsystem == discovery, KATO must be 0. Change-Id: I212b344e235e94d5f34168d43d45766283773446 Signed-off-by: JinYu <jin.yu@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/451819 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
a37999b44b
commit
50a130c6da
@ -372,6 +372,20 @@ test_connect(void)
|
||||
free(qpair.ctrlr);
|
||||
qpair.ctrlr = NULL;
|
||||
|
||||
/* Valid admin connect command with kato = 0 */
|
||||
cmd.connect_cmd.kato = 0;
|
||||
memset(&rsp, 0, sizeof(rsp));
|
||||
TAILQ_INSERT_TAIL(&qpair.outstanding, &req, link);
|
||||
rc = spdk_nvmf_ctrlr_connect(&req);
|
||||
poll_threads();
|
||||
CU_ASSERT(rc == SPDK_NVMF_REQUEST_EXEC_STATUS_ASYNCHRONOUS);
|
||||
CU_ASSERT(nvme_status_success(&rsp.nvme_cpl.status));
|
||||
CU_ASSERT(qpair.ctrlr != NULL && qpair.ctrlr->keep_alive_poller == NULL);
|
||||
spdk_bit_array_free(&qpair.ctrlr->qpair_mask);
|
||||
free(qpair.ctrlr);
|
||||
qpair.ctrlr = NULL;
|
||||
cmd.connect_cmd.kato = 120000;
|
||||
|
||||
/* Invalid data length */
|
||||
memset(&rsp, 0, sizeof(rsp));
|
||||
req.length = sizeof(connect_data) - 1;
|
||||
@ -534,6 +548,20 @@ test_connect(void)
|
||||
CU_ASSERT(rsp.connect_rsp.status_code_specific.invalid.iattr == 0);
|
||||
CU_ASSERT(rsp.connect_rsp.status_code_specific.invalid.ipo == 42);
|
||||
CU_ASSERT(qpair.ctrlr == NULL);
|
||||
|
||||
/* I/O connect to discovery controller keep-alive-timeout should be 0 */
|
||||
cmd.connect_cmd.qid = 0;
|
||||
memset(&rsp, 0, sizeof(rsp));
|
||||
subsystem.subtype = SPDK_NVMF_SUBTYPE_DISCOVERY;
|
||||
subsystem.state = SPDK_NVMF_SUBSYSTEM_ACTIVE;
|
||||
TAILQ_INSERT_TAIL(&qpair.outstanding, &req, link);
|
||||
rc = spdk_nvmf_ctrlr_connect(&req);
|
||||
poll_threads();
|
||||
CU_ASSERT(rc == SPDK_NVMF_REQUEST_EXEC_STATUS_COMPLETE);
|
||||
CU_ASSERT(rsp.nvme_cpl.status.sct == SPDK_NVME_SCT_GENERIC);
|
||||
CU_ASSERT(rsp.nvme_cpl.status.sc == SPDK_NVME_SC_INTERNAL_DEVICE_ERROR);
|
||||
CU_ASSERT(qpair.ctrlr == NULL);
|
||||
cmd.connect_cmd.qid = 1;
|
||||
subsystem.subtype = SPDK_NVMF_SUBTYPE_NVME;
|
||||
|
||||
/* I/O connect to disabled controller */
|
||||
|
Loading…
Reference in New Issue
Block a user