From nobody Thu Feb 20 15:40:43 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4YzHXX1ZPkz5p3Vx; Thu, 20 Feb 2025 15:40:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YzHXX0CpXz4Hn9; Thu, 20 Feb 2025 15:40:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740066044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1XGLW0xsMjTgyMW3IGb9eM7TrO1GdE1qDSLkg1Yh3Iw=; b=BmtRhJOPj/MMtZCgJm0k8saXXG5P6VjondKLDZNvIZVCyU6WsZPKN9DsscjdICDuwweF/4 xWG8YWuj2fiRezGHwZpQhv79rOk7PyYZT00ltZLIo6UiZok0Co0fn6Oa7nGX/whMUQ59nL at4SnlNLYoZGRqOYO+TW3GOgOa7t5L27hj4YSgVGGNrfpRKUg+RVzq7N6VVOJNeqj4hgpj Tztuo2cHRkg/VL5SPBqieb7VmZw/TimMKT5JZEWhEo+4C5pTydXyx6dFV0rnNbS3RwFfg/ s740KiKjrm4cHrVjcuBQ4uqqcwyoA00CpuXt2K1tgMrzRCaVntbk34pSDAdfEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740066044; a=rsa-sha256; cv=none; b=dD9qBDOqIg9ndWxOLkgtIHhbM8j+s7kXwAiLL0ZRcRLHIy9lSOiu8tfvdKaM8ThYcKVxp0 u5wcwKelrOCUBQAcD1sJogxa4TlB8HRzTgKWe8JfnG6YjrgUhW3aDQsZbNYXCNGYmaOjSh o4IrlYvfdQi+2LcqFAiGlI/LWYBe08Kz299xHElRtCv/z8ptTZ0nQTv9Q7emO8n7bqoTdl ybh2vg3Z+TwDA4mM1R3RfEcEXcG5rsUdChfUio0VHMR6MLKtXxvN8BK+YW3zwQSloTlcCK sFN2Mx3B+w3444kGNWX/km60DGlZjq0VJhUw0dkOZg1R2vZpRgG2wXhgZaxKvQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740066044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1XGLW0xsMjTgyMW3IGb9eM7TrO1GdE1qDSLkg1Yh3Iw=; b=H43m8fS1pXPssKADUbsqpMABgfZ7RUD9EUOkOMS4u3Sk8W9tXgU5uCIi5kHKsxr6oDGH7C ujfbf/qhbQlnU4OVHJ+ohgh1m+TqKfiPn9pYdZjyCS9tKZnakUz/S2G7h4uYHJa5a+GxcB 5oGRN3HxwkE8Vn0ePsBnZVNGfdWdz3DsZ5bLzgHffbVviced7hks6cO6bFDpzWvJTkMCmR gZEGght/KmHqpocKI0dys2giVyn0SjooZU/wTARqwtNYo1j5iX7jXsFqLmUOJYi5BPVfHw 4scDC0unQ6mZYUtkkwwQfDQorQOLfLR+nJq8Mnz6UW2vPuWx0IxIqkiKOqwHBw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4YzHXW6tbkzy7s; Thu, 20 Feb 2025 15:40:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 51KFehOi016969; Thu, 20 Feb 2025 15:40:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51KFehke016966; Thu, 20 Feb 2025 15:40:43 GMT (envelope-from git) Date: Thu, 20 Feb 2025 15:40:43 GMT Message-Id: <202502201540.51KFehke016966@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: b277346d2462 - main - ctladm: Handle connected hosts for NVMeoF ports List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b277346d246237dd4051e9e03311b8ae5b0893d1 Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=b277346d246237dd4051e9e03311b8ae5b0893d1 commit b277346d246237dd4051e9e03311b8ae5b0893d1 Author: John Baldwin AuthorDate: 2025-02-20 15:15:43 +0000 Commit: John Baldwin 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");