From nobody Mon Apr 18 09:33:52 2022 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 8A65F11E496B; Mon, 18 Apr 2022 09:33:53 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KhhZn24G6z3D15; Mon, 18 Apr 2022 09:33:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1650274433; 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=Jr86iApXwCV8aQuO7Q6iKBAqY9G9o1/nP/yD6OMDzY8=; b=P+dVo0uLABgJ1RliIY/LxHUfzneazsn3l9NknryckAScchsouIdHlHHQRSCyeKENV2cBnY PXLAaAvSGUg4/55urTvo1rXElt8FqeFCYpiNIHDVMIWEcmkCq6PsC1xljgLHqdzjA4Di3X uFvs4hUYydWUSeveaYvZekPTSSCUVH/rpNUfGvB+ic83UTi32kla0+Tz0tS/VMfeXcmRUl KUu4gmSonaVV+THGEKhJGosRcGMUC0DO1xvmuK3+MfJsv3Jfgx75SBrKzQdshG2ZFxNjyU cBNcLzXjTvVft9JViF8zZu3O4Hou+qmVzaieMSbxwg95Z/OL0mI3rxqEi3P8dQ== 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 10C0B7FAE; Mon, 18 Apr 2022 09:33:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 23I9Xquk018565; Mon, 18 Apr 2022 09:33:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 23I9Xqj8018564; Mon, 18 Apr 2022 09:33:52 GMT (envelope-from git) Date: Mon, 18 Apr 2022 09:33:52 GMT Message-Id: <202204180933.23I9Xqj8018564@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: e4e2ad470e6b - stable/13 - LinuxKPI: 802.11: implement ieee80211_probereq_get() 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: e4e2ad470e6b47f4e549fb27c8ab3030795226a7 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1650274433; 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=Jr86iApXwCV8aQuO7Q6iKBAqY9G9o1/nP/yD6OMDzY8=; b=uiM76r0JPiHQeh15OH179wCJcPaVXONjl5eDaM/h5UsrPmOIWfQdrWLUfbvqMZQnR54LeN K0j5QCfWo4HN+XNri56/oCvs5swBmrNMDUYBFv4RqX4hVyG/0iDPQ2yF3PZF6gQFQFz4rJ 0mxWY9/DBSvegkkEHeO8C+djAiB6uVNMPC5Q2Z602+0iyuhMMps38v+oM0eQOhudHVLQgA QATv7o/394slVpB0rZhWZbK7n9pgTSdpc1Iin7eAcz7Vyq7wvzSO5em0A9P8sYSlKMDrb+ 4XXaWuwPm2H+u1SYiTAzQnu4gRpaCLiBfuQvTr2KyRMkoApOeo1JaDoJaAo+gg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1650274433; a=rsa-sha256; cv=none; b=nJW7qjd/FHRuhWGN6of97M53zpel63bpQN+TZbl1P8MTE4yO+2aohJmzpWCextUogf0qni IM94adMMr63FdmGpHmZeWYgGGMQ/tI51zs9416iHxb8j8MoztwYg+ASDTxn8PAT2KNiEbJ PqeojtqcFXQ+6dL/uijoqVEikRasWtECP364Jvss6faL6bX2lc4tR8iwfL0w6+5YCkIz3x Ob9WidUDZY/1WQbskN+2Am8MKZNyXOMrLr1gZUcC221ugcbpoYL2xk5ipTEtOzm5BSVSaE 4fNdOs3LeRQWYWHkZtNIlfAsZU8AVOa5aKXe0gcqr38QCvZHAYSBURr6aUUAtw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=e4e2ad470e6b47f4e549fb27c8ab3030795226a7 commit e4e2ad470e6b47f4e549fb27c8ab3030795226a7 Author: Bjoern A. Zeeb AuthorDate: 2022-04-15 12:53:06 +0000 Commit: Bjoern A. Zeeb CommitDate: 2022-04-18 09:32:58 +0000 LinuxKPI: 802.11: implement ieee80211_probereq_get() Implement ieee80211_probereq_get() needed by Realtek drivers. Sponsored by: The FreeBSD Foundation (cherry picked from commit ade774b19f9a7b35f01cbca68e51a768d1dd0773) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 9 ++++-- sys/compat/linuxkpi/common/src/linux_80211.c | 34 +++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index a5195581f237..59101e334376 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -905,6 +905,8 @@ void linuxkpi_ieee80211_txq_get_depth(struct ieee80211_txq *, unsigned long *, struct wireless_dev *linuxkpi_ieee80211_vif_to_wdev(struct ieee80211_vif *); void linuxkpi_ieee80211_connection_loss(struct ieee80211_vif *); void linuxkpi_ieee80211_beacon_loss(struct ieee80211_vif *); +struct sk_buff *linuxkpi_ieee80211_probereq_get(struct ieee80211_hw *, + uint8_t *, uint8_t *, size_t, size_t); /* -------------------------------------------------------------------------- */ @@ -1868,10 +1870,11 @@ ieee80211_nullfunc_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif, static __inline struct sk_buff * ieee80211_probereq_get(struct ieee80211_hw *hw, uint8_t *addr, - uint8_t *ssid, size_t ssid_len, int _x) + uint8_t *ssid, size_t ssid_len, size_t tailroom) { - TODO(); - return (NULL); + + return (linuxkpi_ieee80211_probereq_get(hw, addr, ssid, ssid_len, + tailroom)); } static __inline void diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 227016b77d82..9355098295a9 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -4232,6 +4232,40 @@ linuxkpi_ieee80211_queue_work(struct ieee80211_hw *hw, queue_work(lhw->workq, w); } +struct sk_buff * +linuxkpi_ieee80211_probereq_get(struct ieee80211_hw *hw, uint8_t *addr, + uint8_t *ssid, size_t ssid_len, size_t tailroom) +{ + struct sk_buff *skb; + struct ieee80211_frame *wh; + uint8_t *p; + size_t len; + + len = sizeof(*wh); + len += 2 + ssid_len; + + skb = dev_alloc_skb(hw->extra_tx_headroom + len + tailroom); + if (skb == NULL) + return (NULL); + + skb_reserve(skb, hw->extra_tx_headroom); + + wh = skb_put_zero(skb, sizeof(*wh)); + wh->i_fc[0] = IEEE80211_FC0_VERSION_0; + wh->i_fc[0] |= IEEE80211_FC0_SUBTYPE_PROBE_REQ | IEEE80211_FC0_TYPE_MGT; + IEEE80211_ADDR_COPY(wh->i_addr1, ieee80211broadcastaddr); + IEEE80211_ADDR_COPY(wh->i_addr2, addr); + IEEE80211_ADDR_COPY(wh->i_addr3, ieee80211broadcastaddr); + + p = skb_put(skb, 2 + ssid_len); + *p++ = IEEE80211_ELEMID_SSID; + *p++ = ssid_len; + if (ssid_len > 0) + memcpy(p, ssid, ssid_len); + + return (skb); +} + struct sk_buff * linuxkpi_ieee80211_pspoll_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif)