From nobody Fri Nov 03 21:08:27 2023 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 4SMYHw1GQPz50Nm8; Fri, 3 Nov 2023 21:08:28 +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 4SMYHv61f6z3N81; Fri, 3 Nov 2023 21:08:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699045707; 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=BkWjOWXegU/82aY5XHTDqgtVhIHMn3FfmSKRNINI8eE=; b=pVlyhG/6XiHkAik9R4TwgJV8tgh3MlOcFyghsBnzMN1UavGIV56xkLu+mzn/Bz3a7ZwLFe jCaK/1wBi/RMEpxRwWUyDeMTySBAVYNPE5cbCFERbqSM1E0t6GkJtN7rVg2q94hW9O5n/A tSZ+omxtivSaID8VBSKFnwNz5qV42kSlgN7n0MTf2Kpjd9rzo8sZo5J2IOFANDEc7x+hS5 cmMNrMXucdxQFMur4h6//2Ft+aFf5D3Cab8WMaSQy0UMaO7TTyYzjyLQVBdPwiCxVILLfE NIhiSIKn5kZDvWinSeFJ1oGiwn1SzfQGgIZLckbNrxxQhVkWTlOVpuD8zlD87w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699045707; 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=BkWjOWXegU/82aY5XHTDqgtVhIHMn3FfmSKRNINI8eE=; b=S5dr9OSMJfEZ0Rc9fmPBiDMJKiY+HyBAbfjecHTRwerKMMEsMyDp7lT2sA3FMoUX8pbsp2 BL+5JI3aOKhNLfyD9ZvLpEcu6bvMXF6QeGhV53ZOhpVdV3i7FTVEBgZeO10Zile3UwzZtD kx0Vzpgyx6t1NtQ+B2Ax1jqiR1WGg6WeDvV21a4SeDZ8JNl8kTwNXE6IetwZejl2BZHJLO DZsBPITNFGUo+jfXDJ38h/v98az28Gd/T1WYMeo5CKczKOg5u5rbNBUBuIDt4gRdF3YqTk t/X7iShYCTTxY+tFJz9jyHwIY7hXCPH3YnG8AHjXyEiZA46NGrcx7zVg4pbWzg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699045707; a=rsa-sha256; cv=none; b=PnRfJ4ixdzC/v0bH6xyJNuJrwSpTUxZifWtUfePOBvGF+0n5CVJA9+kJ57sj7vdoAvwnWA VP7yHEr/OVyefkXB6O1fk7rO+1JdM5H8m6FqOOlYCpr7tidZ3i92kKIzEWR3Cu/LA5muYa IOxxZxLXEdyWEMKhMLPjZzyN+vKmfAda50oN57Hb/k2pmeRmhtn1lBiyBPRkTxXA2wZaKS MHOrIU1FprAve8suTd2pTxLuCpIZe1dKNvL1gU8sJveX7Wm8Q1IMD5IUoEtFrSWeWWyiHa aerbcPaNiZrYdv9cj4vp6Yz+ety3PMmUWo26ZmLNL1kK0dbMJcaDD+sKS5aScQ== 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 4SMYHv4rH3zVcm; Fri, 3 Nov 2023 21:08:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A3L8R5r081319; Fri, 3 Nov 2023 21:08:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A3L8RaQ081316; Fri, 3 Nov 2023 21:08:27 GMT (envelope-from git) Date: Fri, 3 Nov 2023 21:08:27 GMT Message-Id: <202311032108.3A3L8RaQ081316@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: fbba0d6b6364 - main - net80211: combine iv_vhtcaps and iv_vht_mcsinfo 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: fbba0d6b636492505dc5878b9ed2c1bbdcd88b91 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=fbba0d6b636492505dc5878b9ed2c1bbdcd88b91 commit fbba0d6b636492505dc5878b9ed2c1bbdcd88b91 Author: Bjoern A. Zeeb AuthorDate: 2023-10-27 18:33:22 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-11-03 21:08:04 +0000 net80211: combine iv_vhtcaps and iv_vht_mcsinfo The iv_vhtcaps and iv_vht_mcsinfo fields together form struct ieee80211_vht_cap so combine them into one field in the VAP and keep the information together. While the structure layout changes no other functional changes intended. Sponsored by: The FreeBSD Foundation MFC after: 3 days Reviewed by: adrian, cc Differential Revision: https://reviews.freebsd.org/D42420 --- sys/net80211/ieee80211.c | 2 +- sys/net80211/ieee80211_ddb.c | 2 +- sys/net80211/ieee80211_ht.c | 4 ++-- sys/net80211/ieee80211_var.h | 3 +-- sys/net80211/ieee80211_vht.c | 50 ++++++++++++++++++++++---------------------- 5 files changed, 30 insertions(+), 31 deletions(-) diff --git a/sys/net80211/ieee80211.c b/sys/net80211/ieee80211.c index 41b743c988f4..dcd61e8de43a 100644 --- a/sys/net80211/ieee80211.c +++ b/sys/net80211/ieee80211.c @@ -553,7 +553,7 @@ ieee80211_vap_setup(struct ieee80211com *ic, struct ieee80211vap *vap, vap->iv_htextcaps = ic->ic_htextcaps; /* 11ac capabilities - XXX methodize */ - vap->iv_vhtcaps = ic->ic_vhtcaps; + vap->iv_vht_cap.vht_cap_info = ic->ic_vhtcaps; vap->iv_vhtextcaps = ic->ic_vhtextcaps; vap->iv_opmode = opmode; diff --git a/sys/net80211/ieee80211_ddb.c b/sys/net80211/ieee80211_ddb.c index e4a09a58049b..e3f70fbe3f29 100644 --- a/sys/net80211/ieee80211_ddb.c +++ b/sys/net80211/ieee80211_ddb.c @@ -490,7 +490,7 @@ _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs) db_printf("\tflags_ven=%b\n", vap->iv_flags_ven, IEEE80211_FVEN_BITS); db_printf("\tcaps=%b\n", vap->iv_caps, IEEE80211_C_BITS); db_printf("\thtcaps=%b\n", vap->iv_htcaps, IEEE80211_C_HTCAP_BITS); - db_printf("\tvhtcaps=%b\n", vap->iv_vhtcaps, IEEE80211_VHTCAP_BITS); + db_printf("\tvhtcap=%b\n", vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_BITS); _db_show_stats(&vap->iv_stats); diff --git a/sys/net80211/ieee80211_ht.c b/sys/net80211/ieee80211_ht.c index 34d330f0dd09..61c57b87c5d7 100644 --- a/sys/net80211/ieee80211_ht.c +++ b/sys/net80211/ieee80211_ht.c @@ -1938,7 +1938,7 @@ ieee80211_vht_get_vhtflags(struct ieee80211_node *ni, uint32_t htflags) if (ni->ni_flags & IEEE80211_NODE_VHT && vap->iv_vht_flags & IEEE80211_FVHT_VHT) { if ((ni->ni_vht_chanwidth == IEEE80211_VHT_CHANWIDTH_160MHZ) && /* XXX 2 means "160MHz and 80+80MHz", 1 means "160MHz" */ - (_IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + (_IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK) >= 1) && (vap->iv_vht_flags & IEEE80211_FVHT_USEVHT160)) { vhtflags = IEEE80211_CHAN_VHT160; @@ -1950,7 +1950,7 @@ ieee80211_vht_get_vhtflags(struct ieee80211_node *ni, uint32_t htflags) } } else if ((ni->ni_vht_chanwidth == IEEE80211_VHT_CHANWIDTH_80P80MHZ) && /* XXX 2 means "160MHz and 80+80MHz" */ - (_IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + (_IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK) == 2) && (vap->iv_vht_flags & IEEE80211_FVHT_USEVHT80P80)) { vhtflags = IEEE80211_CHAN_VHT80P80; diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index 1208a8b3ab4e..08812c5eb27c 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -424,9 +424,8 @@ struct ieee80211vap { /* VHT flags */ uint32_t iv_vht_flags; /* VHT state flags */ - uint32_t iv_vhtcaps; /* VHT capabilities */ + struct ieee80211_vht_cap iv_vht_cap; /* VHT capabilities + MCS info */ uint32_t iv_vhtextcaps; /* VHT extended capabilities (TODO) */ - struct ieee80211_vht_mcs_info iv_vht_mcsinfo; uint32_t iv_vht_spare[4]; int iv_des_nssid; /* # desired ssids */ diff --git a/sys/net80211/ieee80211_vht.c b/sys/net80211/ieee80211_vht.c index 9f8b104db10c..49d5fa18b448 100644 --- a/sys/net80211/ieee80211_vht.c +++ b/sys/net80211/ieee80211_vht.c @@ -144,7 +144,7 @@ ieee80211_vht_vattach(struct ieee80211vap *vap) if (! IEEE80211_CONF_VHT(ic)) return; - vap->iv_vhtcaps = ic->ic_vhtcaps; + vap->iv_vht_cap.vht_cap_info = ic->ic_vhtcaps; vap->iv_vhtextcaps = ic->ic_vhtextcaps; /* XXX assume VHT80 support; should really check vhtcaps */ @@ -152,12 +152,12 @@ ieee80211_vht_vattach(struct ieee80211vap *vap) IEEE80211_FVHT_VHT | IEEE80211_FVHT_USEVHT40 | IEEE80211_FVHT_USEVHT80; - if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(vap->iv_vhtcaps)) + if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(vap->iv_vht_cap.vht_cap_info)) vap->iv_vht_flags |= IEEE80211_FVHT_USEVHT160; - if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(vap->iv_vhtcaps)) + if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(vap->iv_vht_cap.vht_cap_info)) vap->iv_vht_flags |= IEEE80211_FVHT_USEVHT80P80; - memcpy(&vap->iv_vht_mcsinfo, &ic->ic_vht_mcsinfo, + memcpy(&vap->iv_vht_cap.supp_mcs, &ic->ic_vht_mcsinfo, sizeof(struct ieee80211_vht_mcs_info)); } @@ -366,7 +366,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, */ /* Limit MPDU size to the smaller of the two */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_MAX_MPDU_MASK); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -376,7 +376,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_MAX_MPDU_MASK); /* Limit supp channel config */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -393,7 +393,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK); /* RX LDPC */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_RXLDPC); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -403,7 +403,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_RXLDPC); /* Short-GI 80 */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SHORT_GI_80); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -413,7 +413,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_SHORT_GI_80); /* Short-GI 160 */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SHORT_GI_160); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -438,7 +438,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, */ /* TX STBC */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_TXSTBC); if (opmode == 1) { /* STA mode - enable it only if node RXSTBC is non-zero */ @@ -452,7 +452,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_TXSTBC); /* RX STBC1..4 */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_RXSTBC_MASK); if (opmode == 1) { /* STA mode - enable it only if node TXSTBC is non-zero */ @@ -483,7 +483,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, */ /* SU Beamformer capable */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SU_BEAMFORMER_CAPABLE); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -494,7 +494,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_SU_BEAMFORMER_CAPABLE); /* SU Beamformee capable */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SU_BEAMFORMEE_CAPABLE); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -505,7 +505,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_SU_BEAMFORMEE_CAPABLE); /* Beamformee STS capability - only if SU beamformee capable */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_BEAMFORMEE_STS_MASK); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -518,7 +518,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_BEAMFORMEE_STS_MASK); /* Sounding dimensions - only if SU beamformer capable */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SOUNDING_DIMENSIONS_MASK); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -533,7 +533,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, * MU Beamformer capable - only if SU BFF capable, MU BFF capable * and STA (not AP) */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_MU_BEAMFORMER_CAPABLE); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -550,7 +550,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, * MU Beamformee capable - only if SU BFE capable, MU BFE capable * and AP (not STA) */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_MU_BEAMFORMEE_CAPABLE); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -564,7 +564,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_SU_BEAMFORMEE_CAPABLE); /* VHT TXOP PS */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_VHT_TXOP_PS); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -573,7 +573,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_VHT_TXOP_PS); /* HTC_VHT */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_HTC_VHT); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -583,7 +583,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, /* A-MPDU length max */ /* XXX TODO: we need a userland config knob for this */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -596,7 +596,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, * Link adaptation is only valid if HTC-VHT capable is 1. * Otherwise, always set it to 0. */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_VHT_LINK_ADAPTATION_VHT_MASK); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -613,7 +613,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, */ /* RX antenna pattern */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_RX_ANTENNA_PATTERN); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -623,7 +623,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_RX_ANTENNA_PATTERN); /* TX antenna pattern */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_TX_ANTENNA_PATTERN); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -639,9 +639,9 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, */ /* MCS set - start with whatever the device supports */ - vhtcap->supp_mcs.rx_mcs_map = vap->iv_vht_mcsinfo.rx_mcs_map; + vhtcap->supp_mcs.rx_mcs_map = vap->iv_vht_cap.supp_mcs.rx_mcs_map; vhtcap->supp_mcs.rx_highest = 0; - vhtcap->supp_mcs.tx_mcs_map = vap->iv_vht_mcsinfo.tx_mcs_map; + vhtcap->supp_mcs.tx_mcs_map = vap->iv_vht_cap.supp_mcs.tx_mcs_map; vhtcap->supp_mcs.tx_highest = 0; vhtcap->vht_cap_info = new_vhtcap;