From nobody Tue Apr 11 21:30:51 2023 X-Original-To: stable@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 4PwzXs2r15z44ccv for ; Tue, 11 Apr 2023 21:30:53 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PwzXs2DJDz3LTk; Tue, 11 Apr 2023 21:30:53 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1681248653; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MXbHr9ljf3OyAO0dxY5ZcjTPu1RX+Q+mbwusgrNcBHU=; b=WKRmeZMGGJ3/AMYnpaerjbqcTGK5aFgqyaik+s0OIk4r9tGh50Nm7ZAAXUdvxXVaUYZ3Dx s075+oNGBux/ERjWGEJWOWFpjsZM8XG0WizfRhe1gUuVoWyD7FYAAU96/a5PUlAGr9GQ7F 4qyrAAutwthqAqRmbFDzxvI1KRRU+Aq6O01UTu1he3ZpQpdeyM2Cdb1ff1qEIwlRweTmQ2 qaYMwrzf81GB/jERPHgJWGtQoin8RyqqPy+x9WhAGKEKbEkeHN/dX9frRvM5xSuUlAWq40 HDS0RZfWljLgOsSptk59fKi8Zi3rbjE12+n+rxw1IE3orwAcsz2c1efpHWHB7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1681248653; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MXbHr9ljf3OyAO0dxY5ZcjTPu1RX+Q+mbwusgrNcBHU=; b=ljrm9YWy6FcyI5PTito7SYxDqMMdPTueERChacYArLH8KK1XlGwqULU+uQ64h+j6QnAreJ vWRIzoi712CQ5uW47MLPVLN3tpp0FGIt1LTFKRYWMXXLbMGJgzeUju5xUg9wiDq4W7UrgN 6G8QKtcSXKiSFI/Kt8stZz8mZ3evJQVyLm7KxbE6vDhsc8o1uEUFd1NSmPGTfZ2PhaXO11 XmpkWfa9iDSayQgqDFLG1jvDhKeOPfUrT+CR+tBp04esJi2eGonXUTRNqtJJztKxpKaDS7 9IxszRI5w9XtZ6ELi2iWHJ+2CvvnINpNkJ7cRl6+laVfUkJ/ZX6LqzSagSWEDA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1681248653; a=rsa-sha256; cv=none; b=qlcGoJt8+H4HBHxT9rySU4w4ZHpIWbmUev1cU4+VJLnqiZ86CaMtzTVnuWe5LcVOZev7yq BwJh7gKAlAMAuRwXNGpzSUhPW9H+zvZgYOZfnMNf1wBhzFOyqJIIuqsJ/SG4UQrojY+Oqw SF4J5nvGo8OmgNKSZnKWzKTedXLS5DjACi0jv8ITzDTu90bD43i/nCtnF2OTrlW2tm+U9u PW6HWV9lVgwkvt4k9r7EjFEUKoUOGiZuNX6jz0Qnsl/JKo9sV+P1MdeHwZxwksXZi3RyUd +1SK5UhrJycLJBiyeyNJa9biTUloAYbNntxdvTCGg0Ol081Cwz4ZuM4NdHPaKg== Received: from [IPV6:2601:648:8680:16b0:f4ff:5acc:9dc0:ebcf] (unknown [IPv6:2601:648:8680:16b0:f4ff:5acc:9dc0:ebcf]) (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 4PwzXr6NNNz195n; Tue, 11 Apr 2023 21:30:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: Date: Tue, 11 Apr 2023 14:30:51 -0700 List-Id: Production branch of FreeBSD source code List-Archive: https://lists.freebsd.org/archives/freebsd-stable List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-stable@freebsd.org X-BeenThere: freebsd-stable@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Content-Language: en-US From: John Baldwin To: stable@FreeBSD.org Subject: Clarifications to kernel TLS offload support in 13.x Cc: Graham Perrin Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ThisMailContainsUnwantedMimeParts: N Kernel TLS offload support for each direction (transmit and receive) operates in three different modes: software, ifnet, and TOE. Software KTLS uses software ciphers (or crypto offload engines on co-processors like qat(4)) to encrypt/decrypt TLS records at the socket buffer layer. ifnet TLS depends on encrpytion/decryption of TLS records being performed by the NIC as TLS records are either sent or received (mlx5 and cxgbe T6 do transmit ifnet TLS, mlx5 does receive ifnet TLS). TOE TLS is similar to ifnet TLS but it relies on a smart NIC that has a TCP offload engine that performs the encryption/decryption in the NIC (cxgbe T6 can do this) 13.0 included kernel TLS offload transmit support for all three modes and covering most commonly-used ciphers (TLS 1.0-1.3 using AES-CBC (MtE) and AES-GCM). It also included support for TLS offload receive support for AES-GCM with TLS 1.2 using either the software or TOE modes. 13.1 added support for the Chacha20-Poly1305 cipher suite, both for TLS 1.2 (send and receive) and TLS 1.3 (send-only) using the software mode. 13.2 added support for TLS 1.3 receive (AES-GCM and Chacha20), but only via the software mode. 14.0 adds support for ifnet mode TLS receive (currently supported on mlx5 adapters) for AES-GCM using versions 1.2 and 1.3. It also includes easier to use TOE support. KTLS is enabled/disabled on a global basis via the kern.ipc.tls.enable sysctl. In addition, ifnet TLS can be enabled/disabled on individual NICs via ifconfig using the "txtls" (for transmit) or "rxtls" (for receive) flags. Software and TOE TLS do not depend on ifconfig flags however. Software TLS is only controlled via the global sysctl. TOE TLS is controlled via driver-specific sysctls. -- John Baldwin