From nobody Fri Apr 15 15:56:51 2022 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 00CE17CD83D; Fri, 15 Apr 2022 15:56: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 4Kg1D428KQz3G1p; Fri, 15 Apr 2022 15:56:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1650038212; 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=60t3/EFPFJpHrdKCkORM9oTngnzlkbFkm54+fmAIIOw=; b=QCM+Z7vnVkR/Gr1ps6HJdyhlmMuIJUjJcjgc4T8Shv4GBEimxsirDR3s2L9EAcdPZb6jj7 RLynxWWjo3e5c1PZJy9VKJh68W29011xzX64pid30BoCtrZnLdUvgy3iU3QTFI0teaT2Ij 4gKch1yFdL5/RBVmUPJxH+HWzX9ai5XxfbIk1h4YCahJNVRoy0/jfOeeiAPJIpcJHDNMhc YxcGCxqNZViKj8c9TvpdxoHNZJuDtkrHMIgYYV4uMBzl3sf1d74RqFflHtNFYZYjMfU7yd 6XVHa/cmjRh75JDnB1JfgGvvfsISI6l4Kjz656Q1C5zbcjhMwSaAHX9CAnFe+A== 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 0B0B118158; Fri, 15 Apr 2022 15:56:52 +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 23FFupqY084341; Fri, 15 Apr 2022 15:56:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 23FFup6t084340; Fri, 15 Apr 2022 15:56:51 GMT (envelope-from git) Date: Fri, 15 Apr 2022 15:56:51 GMT Message-Id: <202204151556.23FFup6t084340@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ade774b19f9a - main - LinuxKPI: 802.11: implement ieee80211_probereq_get() 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@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/main X-Git-Reftype: branch X-Git-Commit: ade774b19f9a7b35f01cbca68e51a768d1dd0773 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1650038212; 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=60t3/EFPFJpHrdKCkORM9oTngnzlkbFkm54+fmAIIOw=; b=mZw3tSfh/OarHdyP68wQA6qy1+DF4Q8nrI7SlUXF6ywPHvctncaqF1M/A8h/6OXviFnd55 cp8Q7Tm5Z4yTfZ1bn2FcgN7wMZ1svUIuabxgNeVsfpYd/dkQirVLmKkmJo13UDjwKRkAHQ DSf4PhBv7x2Vic5hNT8cAg42Da5omPyYtV4S1ufMO3fgkyeSNI4dsj3N0ei8jvnnIQwCnH YmJHIcy1+qNQGTFUdUpJ/QfJmtu4Q3+KbvV9LNqB1iLcc0ZfTR5vJEVVyqPZVZFgcKT6G+ wMuInoX2Ucl4eu/89puTJ5OhPBEC5aZloJ+WgNVUO7nGB8v39FLMDX+pjw9JSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1650038212; a=rsa-sha256; cv=none; b=vauGF5oQSKRou7KuTwk2zL4YEgi1R4ZIKYGODzBfDttwEKFWJhhNC76pR+AuBbWqd6r72Z VAZw9GOzlVi++nhYRPZ2BwSeauNJ0lJWUvdu0loGlh+o2j71HVJtY+AlCIwW8pbVxMK/Bb wp9+vTKx8ieuNkE+3XoTf8berAVwM0DVeWmcubP9K69a6yXUDQV7HxAjZeJcFsy3O6/l34 /hN0wZAvuww0bVwueHcuJlwr7O3v/6UFoPYqekRmwtzZvX6UpTJ1cA+7biuCmymGhGKGrp 8b1sMrDvV1UJ6r2xv76qYwOWMoEvZdvprImxoRMTHcTv1InBfaFoe+BypFOUFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ade774b19f9a7b35f01cbca68e51a768d1dd0773 commit ade774b19f9a7b35f01cbca68e51a768d1dd0773 Author: Bjoern A. Zeeb AuthorDate: 2022-04-15 12:53:06 +0000 Commit: Bjoern A. Zeeb CommitDate: 2022-04-15 15:54:03 +0000 LinuxKPI: 802.11: implement ieee80211_probereq_get() Implement ieee80211_probereq_get() needed by Realtek drivers. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- 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 b5eb3131a7de..18e95eb33558 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 001040d025ed..f13c204b9ccc 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -4116,6 +4116,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)