Commit 5a8c76d9 authored by Abhineet Pandey's avatar Abhineet Pandey Committed by Konrad Sztyber
Browse files

lib/nvmf: Add spdk_nvmf_send_discovery_log_notice API



Added spdk_nvmf_send_discovery_log_notice API to send
discovery log page change notice to hosts.

This may be use cases where the host may have a low
controller loss timeout, any maintenance operations
can cause hosts to lose connection to one of the
controllers. Once we send AEN, host can add the
controlller back again.

Change-Id: I82e294ec226b5402c29f9ce6fce2c29ce9eaaa40
Signed-off-by: default avatarAbhineet Pandey <abhineet.pandey@nutanix.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25188


Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
parent a70c3a90
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -16,6 +16,11 @@ to `multipath` field in spdk_bdev_nvme_ctrlr_opts structure passed as a paramete
If multipathing shall be enabled for nvme bdev, `bdev_opts.multipath` shall be set to `true`. When
`bdev_opts.multipath` is set to `false`, failover mode is enabled.

### nvmf

Added public API `spdk_nvmf_send_discovery_log_notice` to send discovery log page
change notice to client.

## v24.09

### accel
+14 −0
Original line number Diff line number Diff line
@@ -1567,6 +1567,20 @@ struct spdk_nvmf_ns_reservation_ops {
 */
void spdk_nvmf_set_custom_ns_reservation_ops(const struct spdk_nvmf_ns_reservation_ops *ops);

/**
 * Send discovery log page change AEN.
 *
 * This sends discovery log page change notice to all the controllers in the
 * target's discovery subsystem associated with host 'hostnqn'.
 *
 * \param tgt The target for which discovery log page change notice is to be
 *            sent.
 * \param hostnqn The hostnqn to which the notice will be sent. If NULL, all
 *                the controllers associated with discovery subsystem will have
 *                the discovery log page change notice.
 */
void spdk_nvmf_send_discovery_log_notice(struct spdk_nvmf_tgt *tgt, const char *hostnqn);

#ifdef __cplusplus
}
#endif
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk

SO_VER := 19
SO_MINOR := 0
SO_MINOR := 1

C_SRCS = ctrlr.c ctrlr_discovery.c ctrlr_bdev.c \
	 subsystem.c nvmf.c nvmf_rpc.c transport.c tcp.c \
+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
#include "spdk/log.h"

void
nvmf_update_discovery_log(struct spdk_nvmf_tgt *tgt, const char *hostnqn)
spdk_nvmf_send_discovery_log_notice(struct spdk_nvmf_tgt *tgt, const char *hostnqn)
{
	struct spdk_nvmf_subsystem *discovery_subsystem;
	struct spdk_nvmf_ctrlr *ctrlr;
+2 −2
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ spdk_nvmf_tgt_add_referral(struct spdk_nvmf_tgt *tgt,
	spdk_strcpy_pad(referral->entry.traddr, trid->traddr, sizeof(referral->entry.traddr), ' ');

	TAILQ_INSERT_HEAD(&tgt->referrals, referral, link);
	nvmf_update_discovery_log(tgt, NULL);
	spdk_nvmf_send_discovery_log_notice(tgt, NULL);

	return 0;
}
@@ -128,7 +128,7 @@ spdk_nvmf_tgt_remove_referral(struct spdk_nvmf_tgt *tgt,
	}

	TAILQ_REMOVE(&tgt->referrals, referral, link);
	nvmf_update_discovery_log(tgt, NULL);
	spdk_nvmf_send_discovery_log_notice(tgt, NULL);

	free(referral);

Loading