From nobody Tue Apr 29 11:41:39 2025 X-Original-To: dev-commits-src-branches@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 4Zmz1K19Rwz5tvBn; Tue, 29 Apr 2025 11:41:41 +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 4Zmz1H4mkVz3wbK; Tue, 29 Apr 2025 11:41:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926899; 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=OIsUOnuYVE1yLFD8pXeKnJ0w/WBBGSZcJBqBc5s7dlA=; b=sci3ZBLImMs9uxIlPjR6q6lDbGPBF8JHChMeWmpt3znRMW69DDKVMMFt17CkLjwtmtorDZ XcLnL8m+zkP2t7JqHZdwwyhOWoMwiWAcveBpwTZ1v/BstXbfaoLk7ZWuTkOrb1fVG2FO+O pjvSy71s0FMLxGS+O3SWGQ86B3WxzI/ewpQ6uj7t2uIR9y+W6n+PCMMEiaJ/fMncxWl6HQ /8FHGhWV2+EldOXhiRsxIwsi61SdfgkTvRE9ResY7HlfeifDo0ZTKSd5GkVvCdpSpiKzht UJ7+QMCkXJZ9c0Ckxj9oFvIWWm9LiwRBjafg/G1lw0VSNqZsvALd8/AO4Pnj7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926899; a=rsa-sha256; cv=none; b=ORhapzJQf2hxA/tLCpINJ+8YclEj6+YvagqqkNlfjrdVa/7ru/8YLg+//yi4j7d8t0q+Cb UwhdVYUicmc/KJsmYKkjCy8IX4NZKlqLuOd3+MA/YLImpDFJs8jX90p+Tb5gE61lpewLUs qlZfoLHeGEoaBcmE4cLppisUl34yCLw4cyKBucLXtZ5kTKHJ6CnSduncF/8UilFs1FndX5 2OSJKdVD53+55KVAetsHWqAihgAsEV04PmQzxcCxBegbNR6tyAxDX9Mfb4CMzIB5UCIsx4 msNkwZcV5CH+nQfzCBM44cWpK9ZgE76lCrgd3kE9j+s0Ko51dKRRKm7gZoL6HQ== 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=1745926899; 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=OIsUOnuYVE1yLFD8pXeKnJ0w/WBBGSZcJBqBc5s7dlA=; b=Eb6kSwgmIJEIWLcWSU7SXf/tZZeZeLE+fNDcsh/Mqj0oZucwUKMg+U19orxHxpztWmBGnp yJg+OzvOOtRgxceAHMkSM2++8vaDj60sXS1CyTiXDw9Pqb36Wzj86Le+9hCfioMD8JcK7v oQyqCEftW6lI8oKSgiNnUVDKkuIIZKQrL2O78gifsyZGxlRT4Bre4Dg0ZZWDZcHqmHbE8t aiDqYPATZ0uLH8fCJ6xK6FensUTsGIM2FuncPzvBVe5rSp27Zl14MnJESbvaf9hsyg8/1+ MHpUXj8faEPu4QCj4+xZykirZdM3QKPyzvXdJ1cY4cjXjQlSMHZTvv6iehcsDg== 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 4Zmz1H4C6tz3wH; Tue, 29 Apr 2025 11:41:39 +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 53TBfdPb045808; Tue, 29 Apr 2025 11:41:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfd0u045805; Tue, 29 Apr 2025 11:41:39 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:39 GMT Message-Id: <202504291141.53TBfd0u045805@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: a638734e4a5c - stable/14 - net80211: add driver / crypto methods to set the hardware / software cipher suites List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a638734e4a5c1bb22b30760f9fa9d3f2ac037780 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=a638734e4a5c1bb22b30760f9fa9d3f2ac037780 commit a638734e4a5c1bb22b30760f9fa9d3f2ac037780 Author: Adrian Chadd AuthorDate: 2024-04-18 01:47:07 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:28 +0000 net80211: add driver / crypto methods to set the hardware / software cipher suites Drivers currently announce hardware crypto cipher support by setting up ic_cryptocaps. This adds two public function calls: * ieee80211_set_software_ciphers() - set the software cipher set; * ieee80211_set_hardware_ciphers() - set the hardware cipher set. For now these just call into the newly crypto routines to set the ciphers. This then adds the two crypto routines, similarly named, to set the hardware/software cipher suite. This is a no-op right now - wep/tkip/ccmp are already set by default so drivers aren't required to call these routines for software encryption, and drivers already set ic_cryptocaps for hardware encryption. Differential Revision: https://reviews.freebsd.org/D44827 (cherry picked from commit e9961ea164968bf2bdab210eab69201b4bf2cb37) --- sys/net80211/ieee80211.c | 22 ++++++++++++++++++++++ sys/net80211/ieee80211_crypto.c | 21 +++++++++++++++++++++ sys/net80211/ieee80211_crypto.h | 4 ++++ sys/net80211/ieee80211_var.h | 4 ++++ 4 files changed, 51 insertions(+) diff --git a/sys/net80211/ieee80211.c b/sys/net80211/ieee80211.c index 0aaded2bdbcd..cdfb7654ee40 100644 --- a/sys/net80211/ieee80211.c +++ b/sys/net80211/ieee80211.c @@ -434,6 +434,28 @@ ieee80211_ifdetach(struct ieee80211com *ic) IEEE80211_LOCK_DESTROY(ic); } +/* + * Called by drivers during attach to set the supported + * cipher set for software encryption. + */ +void +ieee80211_set_software_ciphers(struct ieee80211com *ic, + uint32_t cipher_suite) +{ + ieee80211_crypto_set_supported_software_ciphers(ic, cipher_suite); +} + +/* + * Called by drivers during attach to set the supported + * cipher set for hardware encryption. + */ +void +ieee80211_set_hardware_ciphers(struct ieee80211com *ic, + uint32_t cipher_suite) +{ + ieee80211_crypto_set_supported_hardware_ciphers(ic, cipher_suite); +} + struct ieee80211com * ieee80211_find_com(const char *name) { diff --git a/sys/net80211/ieee80211_crypto.c b/sys/net80211/ieee80211_crypto.c index fef63390c27b..16803fa59141 100644 --- a/sys/net80211/ieee80211_crypto.c +++ b/sys/net80211/ieee80211_crypto.c @@ -164,6 +164,27 @@ ieee80211_crypto_detach(struct ieee80211com *ic) { } +/* + * Set the supported ciphers for software encryption. + */ +void +ieee80211_crypto_set_supported_software_ciphers(struct ieee80211com *ic, + uint32_t cipher_set) +{ + ic->ic_sw_cryptocaps = cipher_set; +} + +/* + * Set the supported ciphers for hardware encryption. + */ +void +ieee80211_crypto_set_supported_hardware_ciphers(struct ieee80211com *ic, + uint32_t cipher_set) +{ + ic->ic_cryptocaps = cipher_set; +} + + /* * Setup crypto support for a vap. */ diff --git a/sys/net80211/ieee80211_crypto.h b/sys/net80211/ieee80211_crypto.h index fcc6973dd62e..68143f66aaf5 100644 --- a/sys/net80211/ieee80211_crypto.h +++ b/sys/net80211/ieee80211_crypto.h @@ -180,6 +180,10 @@ MALLOC_DECLARE(M_80211_CRYPTO); void ieee80211_crypto_attach(struct ieee80211com *); void ieee80211_crypto_detach(struct ieee80211com *); +void ieee80211_crypto_set_supported_software_ciphers(struct ieee80211com *, + uint32_t cipher_set); +void ieee80211_crypto_set_supported_hardware_ciphers(struct ieee80211com *, + uint32_t cipher_set); void ieee80211_crypto_vattach(struct ieee80211vap *); void ieee80211_crypto_vdetach(struct ieee80211vap *); int ieee80211_crypto_newkey(struct ieee80211vap *, diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index dd6737aedb66..552c45e5ddb2 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -765,6 +765,10 @@ MALLOC_DECLARE(M_80211_VAP); int ic_printf(struct ieee80211com *, const char *, ...) __printflike(2, 3); void ieee80211_ifattach(struct ieee80211com *); void ieee80211_ifdetach(struct ieee80211com *); +void ieee80211_set_software_ciphers(struct ieee80211com *, + uint32_t cipher_suite); +void ieee80211_set_hardware_ciphers(struct ieee80211com *, + uint32_t cipher_suite); int ieee80211_vap_setup(struct ieee80211com *, struct ieee80211vap *, const char name[IFNAMSIZ], int unit, enum ieee80211_opmode opmode, int flags,