From nobody Wed Aug 06 20:23:37 2025 X-Original-To: dev-commits-src-main@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 4by1vt5W3zz64B76; Wed, 06 Aug 2025 20:23:38 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (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 "smtp.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4by1vt4ZC1z45fX; Wed, 06 Aug 2025 20:23:38 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1754511818; 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: in-reply-to:in-reply-to:references:references; bh=q2ttkLCipuGrLXrSQImeYeB58p7S6oUhW4EGlupiztk=; b=W/vIsZoD13BPVEmMc/vEQPRP8RyGSENbkvRn9yUvJQpsbJqwYmEYFpn8Nhgej789gpSbyN X0U3mCj/taWLxuvPSmSpniwmn7CTfRXwFj3WLABRSHcY3l6zU7BASjQ20RaWl8JS4a2HKs 2wzpNF9HaOdK3ShhGmNxwdH/0TV35/fO7lz78wg/2SUMTDqCJTp3Cq44bsBJRaXnHgR+eL Stg4QbvDM/DbegnrAvdylYOuH9TXwnNqf9JL2+qrOo3CyjOHdY3/pIjcd4F4yKctEL4cEF LlRyaotzhoZ23/CePqiQbld6E35O1pDfQhMUDr8bBTnQyiQZKKitQ4wXCdwc5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1754511818; 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: in-reply-to:in-reply-to:references:references; bh=q2ttkLCipuGrLXrSQImeYeB58p7S6oUhW4EGlupiztk=; b=HD6isFIcG5InU/ROp4Krtre0dcs8TwDiT/mHV5fAMYSnBYp3YprDzjEljVhthTKduJmOcT tVeOTd2iqfUf9zv5bsRWROMFYh+O6BVwV5kOBgSzKWiMVONyhez/b0t1MHl8AbKCsQkf7z m8CzCyDRITjufI+GfPnnV5Bg/M5FJlmhdDVL8kQzkkPBq2ri2w974N0PvS+YESQO13xZSx 6Hwn0zwv7sKTMOS0w7DnoBroXisNnu4041q22PNM5taJ1AwKVLv4SHqvoPgFdUYFyjnKx4 N0d7OcJii5rMuJGzweUivUxU1/TsNsa1Gc1Mfj01Ts9q1cT01RGBdRbQ/8AUCQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1754511818; a=rsa-sha256; cv=none; b=VHLXhelbEz6wVwkvQXqfQNiwRWQuovudP9OngFLt8JWTWPjVDJk7ttV8T6ROhARjbh7uTj v+HViGfd0h5vKRNjE1BLcnb8eWoPJIpdfIug/q6u6/GtaLbmu3OrK+vMO7RZgpRNccK4OA xbGHRANcPRxn0ZUgjJKfpJrWqB2VK1LNmbqakjTTqYKxxyK5ty9nV5y3k1z2nDrXa/y563 xQXUrAxR1v2vPUzNkg36MouB9JhsCr9PRspi90P7jYB7hNn+xLJ63zei3IVLj7kyjc93GQ tK1Y4Ut52n9yLEOkPGh6M9VO6UJfEo83RZTEf9HFOOueH+WfBBLo8WYhqiaiDw== Received: from [IPV6:2601:5c0:4202:5670:c463:425d:db06:ab75] (unknown [IPv6:2601:5c0:4202:5670:c463:425d:db06:ab75]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 4by1vt2njKzNh6; Wed, 06 Aug 2025 20:23:38 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: Date: Wed, 6 Aug 2025 16:23:37 -0400 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: 66b5296f1b29 - main - ctld: Add support for NVMe over Fabrics Content-Language: en-US From: John Baldwin To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202508062010.576KA2Mk062184@gitrepo.freebsd.org> In-Reply-To: <202508062010.576KA2Mk062184@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 8/6/25 16:10, John Baldwin wrote: > The branch main has been updated by jhb: > > URL: https://cgit.FreeBSD.org/src/commit/?id=66b5296f1b29083634e2875ff08c32e7b6b866a8 > > commit 66b5296f1b29083634e2875ff08c32e7b6b866a8 > Author: John Baldwin > AuthorDate: 2025-08-06 19:57:50 +0000 > Commit: John Baldwin > CommitDate: 2025-08-06 19:59:13 +0000 > > ctld: Add support for NVMe over Fabrics > > While the overall structure is similar for NVMeoF controllers and > iSCSI targets, there are sufficient differences that NVMe support uses > an alternate configuration syntax. > > - In authentication groups, permitted NVMeoF hosts can be allowed by > names (NQNs) via "host-nqn" values (similar to "initiator-name" for > iSCSI). Similarly, "host-address" accepts permitted host addresses > similar to "initiator-portal" for iSCSI. > > - A new "transport-group" context enumerates transports that can be > used by a group of NVMeoF controllers similar to the "portal-group" > context for iSCSI. In this section, the "listen" keyword accepts a > transport as well as an address to permit other types of transports > besides TCP in the future. The "foreign", "offload", and "redirect" > keywords are also not meaningful and thus not supported. > > - A new "controller" context describes an NVMeoF I/O controller > similar to the "target" context for iSCSI. One key difference here > is that "lun" objects are replaced by "namespace" objects. However, > a "namespace" can reference a named global lun permitting LUNs to be > shared between iSCSI targets and NVMeoF controllers. > > NB: Authentication via CHAP is not implemented for NVMeoF. > > Reviewed by: imp > Sponsored by: Chelsio Communications > Differential Revision: https://reviews.freebsd.org/D48773 The config file (UCL) I used for most of my testing looks something like this (some settings omitted and names changed, etc.). It creates two LUNs that are exported by both iSCSI and NVMeoF (so you can access the same disk via either protocol). portal-group { pg0 { discovery-auth-group = no-authentication listen = [ 0.0.0.0, "[::]" ] offload = cxgbei } } lun { zvol { path /dev/zvol/bhyve/iscsi size 4GB }, ramdisk { backend ramdisk size 1G option capacity 1G } } target { "iqn.2001-03.com.example:myhost0" { auth-group = no-authentication portal-group = pg0 lun { 0 = zvol, 1 = ramdisk } } } controller { "nqn.2001-03.com.example:myhost0" { auth-group = no-authentication namespace { 1 = zvol, 2 = ramdisk } } } -- John Baldwin