Date: Thu, 20 Feb 2025 15:40:43 GMT From: John Baldwin <jhb@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: b277346d2462 - main - ctladm: Handle connected hosts for NVMeoF ports Message-ID: <202502201540.51KFehke016966@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=b277346d246237dd4051e9e03311b8ae5b0893d1 commit b277346d246237dd4051e9e03311b8ae5b0893d1 Author: John Baldwin <jhb@FreeBSD.org> AuthorDate: 2025-02-20 15:15:43 +0000 Commit: John Baldwin <jhb@FreeBSD.org> CommitDate: 2025-02-20 15:31:21 +0000 ctladm: Handle connected hosts for NVMeoF ports Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48776 --- usr.sbin/ctladm/ctladm.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/usr.sbin/ctladm/ctladm.c b/usr.sbin/ctladm/ctladm.c index d9bfa27c4820..593d3259125f 100644 --- a/usr.sbin/ctladm/ctladm.c +++ b/usr.sbin/ctladm/ctladm.c @@ -3496,7 +3496,8 @@ struct cctl_port { char *frontend_type; char *name; int pp, vp; - char *target, *port, *lun_map; + char *controller, *target, *port, *lun_map; + nvlist_t *host_list; nvlist_t *init_list; nvlist_t *lun_list; nvlist_t *attr_list; @@ -3550,6 +3551,7 @@ cctl_start_pelement(void *user_data, const char *name, const char **attr) portlist->num_ports++; portlist->cur_port = cur_port; + cur_port->host_list = nvlist_create(0); cur_port->init_list = nvlist_create(0); cur_port->lun_list = nvlist_create(0); cur_port->attr_list = nvlist_create(NV_FLAG_NO_UNIQUE); @@ -3610,6 +3612,9 @@ cctl_end_pelement(void *user_data, const char *name) } else if (strcmp(name, "target") == 0) { cur_port->target = str; str = NULL; + } else if (strcmp(name, "subnqn") == 0) { + cur_port->controller = str; + str = NULL; } else if (strcmp(name, "port") == 0) { cur_port->port = str; str = NULL; @@ -3620,6 +3625,14 @@ cctl_end_pelement(void *user_data, const char *name) portlist->cur_port = NULL; } else if (strcmp(name, "ctlportlist") == 0) { /* Nothing. */ + } else if (strcmp(name, "host") == 0) { + snprintf(idname, sizeof(idname), "%ju", portlist->cur_id); + nvlist_move_string(cur_port->host_list, idname, str); + error = nvlist_error(cur_port->host_list); + if (error != 0) + errc(1, error, "%s: can't add host nv pair", + __func__); + str = NULL; } else if (strcmp(name, "initiator") == 0) { snprintf(idname, sizeof(idname), "%ju", portlist->cur_id); nvlist_move_string(cur_port->init_list, idname, str); @@ -3771,6 +3784,9 @@ retry: port->port ? port->port : ""); if (init || verbose) { + if (port->controller) + printf(" Controller: %s\n", port->controller); + print_nvlist(port->host_list, " Host %s: %s\n"); if (port->target) printf(" Target: %s\n", port->target); print_nvlist(port->init_list, " Initiator %s: %s\n");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502201540.51KFehke016966>