ni_flags
(ni->ni_flags & IEEE80211_NODE_RXPROT) &&
if ((ni->ni_flags & IEEE80211_NODE_HT) && ic->ic_fixed_mcs == -1) {
} else if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if (ni->ni_flags & IEEE80211_NODE_HT)
((ni->ni_flags & IEEE80211_NODE_HT) &&
if ((ni->ni_flags & IEEE80211_NODE_HT) == 0)
if ((ni->ni_flags & IEEE80211_NODE_HT) == 0)
ni->ni_flags |= IEEE80211_NODE_VHT;
ni->ni_flags |= IEEE80211_NODE_HT; /* VHT implies HT support */
ni->ni_flags |= IEEE80211_NODE_HT;
(ic->ic_bss->ni_flags & IEEE80211_NODE_MFP) &&
else if (ic->ic_bss->ni_flags & IEEE80211_NODE_ERP)
if ((ni->ni_flags & IEEE80211_NODE_MFP) &&
ni->ni_flags &= ~IEEE80211_NODE_TXRXPROT;
ni->ni_flags &= ~IEEE80211_NODE_TXMGMTPROT;
ni->ni_flags &= ~IEEE80211_NODE_RXMGMTPROT;
if (ni->ni_flags & IEEE80211_NODE_MFP) {
if ((ni->ni_flags & IEEE80211_NODE_HT) == 0)
if (ni->ni_flags & IEEE80211_NODE_QOS) {
if (ni->ni_flags & IEEE80211_NODE_HT) {
(ni->ni_flags & IEEE80211_NODE_MFP)) {
(ic->ic_bss->ni_flags & IEEE80211_NODE_MFP) &&
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
else if (ic->ic_bss->ni_flags & IEEE80211_NODE_ERP)
if ((ni->ni_flags & IEEE80211_NODE_HT) == 0)
if (ni->ni_flags & IEEE80211_NODE_QOS) {
(ni->ni_flags & IEEE80211_NODE_MFP)) {
(ic->ic_bss->ni_flags & IEEE80211_NODE_MFP))
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
if ((ni->ni_flags & IEEE80211_NODE_RXPROT) &&
if (ni->ni_flags & IEEE80211_NODE_VHT)
if ((ni->ni_flags & IEEE80211_NODE_HT) == 0) {
} else if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
if (ni->ni_flags & IEEE80211_NODE_VHT) {
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
if (ni->ni_flags & IEEE80211_NODE_VHT) {
if (ni->ni_flags & IEEE80211_NODE_VHT)
if (ni->ni_flags & IEEE80211_NODE_HT) /* VHT implies HT */
if ((ni->ni_flags & IEEE80211_NODE_VHT) == 0 &&
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
if (ni->ni_flags & IEEE80211_NODE_VHT)
if (ni->ni_flags & IEEE80211_NODE_VHT) {
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if (in->in_ni.ni_flags & IEEE80211_NODE_HT) {
if (in->in_ni.ni_flags & IEEE80211_NODE_VHT) {
if (in->in_ni.ni_flags & IEEE80211_NODE_VHT) {
if (ni->ni_flags & IEEE80211_NODE_QOS)
if (ni->ni_flags & IEEE80211_NODE_HT) {
} else if (ni->ni_flags & IEEE80211_NODE_HT) {
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
if (in->in_ni.ni_flags & IEEE80211_NODE_HT) {
if (ni->ni_flags & IEEE80211_NODE_MFP)
if (ni->ni_flags & IEEE80211_NODE_MFP)
(ni->ni_flags & IEEE80211_NODE_HT) == 0 &&
if (ni->ni_flags & IEEE80211_NODE_HT) {
if (ni->ni_flags & IEEE80211_NODE_VHT)
if (ni->ni_flags & IEEE80211_NODE_HT) {
if ((ni->ni_flags & IEEE80211_NODE_HT) == 0)
if ((ni->ni_flags & IEEE80211_NODE_HT) == 0) {
(ni->ni_flags & IEEE80211_NODE_RXPROT) &&
if (data->ni->ni_flags & IEEE80211_NODE_HT) {
if (ni->ni_flags & IEEE80211_NODE_HT)
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if (ni->ni_flags & IEEE80211_NODE_HT) {
if (ni->ni_flags & IEEE80211_NODE_HT) {
} else if (ni->ni_flags & IEEE80211_NODE_HT) {
if (ni->ni_flags & IEEE80211_NODE_HT) {
(ni->ni_flags & IEEE80211_NODE_MFP)) {
(ic->ic_bss->ni_flags & IEEE80211_NODE_MFP))
(ni->ni_flags & IEEE80211_NODE_UAPSD) == 0)
ni->ni_flags &= ~IEEE80211_NODE_UAPSD;
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
else if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
(ni->ni_flags & IEEE80211_NODE_RXPROT) &&
} else if (ni->ni_flags & IEEE80211_NODE_HT) {
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if ((ni->ni_flags & IEEE80211_NODE_UAPSD) &&
if (in->in_ni.ni_flags & IEEE80211_NODE_HT) {
if (in->in_ni.ni_flags & IEEE80211_NODE_VHT) {
if (in->in_ni.ni_flags & IEEE80211_NODE_VHT) {
if ((in->in_ni.ni_flags & IEEE80211_NODE_UAPSD) &&
if (ni->ni_flags & IEEE80211_NODE_QOS)
if (ni->ni_flags & IEEE80211_NODE_HT) {
if (in->in_ni.ni_flags & IEEE80211_NODE_HT) {
if (in->in_ni.ni_flags & IEEE80211_NODE_VHT) {
if (in->in_ni.ni_flags & IEEE80211_NODE_VHT) {
if (in->in_ni.ni_flags & IEEE80211_NODE_MFP)
if ((in->in_ni.ni_flags & IEEE80211_NODE_UAPSD) &&
if (ni->ni_flags & IEEE80211_NODE_QOS)
if (ni->ni_flags & IEEE80211_NODE_HT) {
if (ic->ic_bss->ni_flags & IEEE80211_NODE_MFP)
ni->ni_flags &= ~IEEE80211_NODE_TXRXPROT;
ni->ni_flags &= ~IEEE80211_NODE_TXMGMTPROT;
ni->ni_flags &= ~IEEE80211_NODE_RXMGMTPROT;
if (ni->ni_flags & IEEE80211_NODE_MFP) {
if (ni->ni_flags & IEEE80211_NODE_VHT) {
} else if (ni->ni_flags & IEEE80211_NODE_HT) {
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
else if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
else if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if ((ni->ni_flags & IEEE80211_NODE_HT) && iwx_mimo_enabled(sc))
if (ni->ni_flags & IEEE80211_NODE_VHT)
else if (ni->ni_flags & IEEE80211_NODE_HT)
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
else if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if (ni->ni_flags & IEEE80211_NODE_HT) {
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
if (ni->ni_flags & IEEE80211_NODE_VHT) {
} else if (ni->ni_flags & IEEE80211_NODE_HT) {
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
else if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
else if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if ((ni->ni_flags & IEEE80211_NODE_HT) && iwx_mimo_enabled(sc))
if (ni->ni_flags & IEEE80211_NODE_VHT)
else if (ni->ni_flags & IEEE80211_NODE_HT)
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
else if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if (ni->ni_flags & IEEE80211_NODE_HT) {
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
} else if (ni->ni_flags & IEEE80211_NODE_HT) {
if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
else if ((ni->ni_flags & IEEE80211_NODE_VHT) &&
else if (ni->ni_flags & IEEE80211_NODE_MFP)
if (ni->ni_flags & IEEE80211_NODE_MFP)
if (ni->ni_flags & IEEE80211_NODE_MFP)
if (ni->ni_flags & IEEE80211_NODE_MFP)
ni->ni_flags |= IEEE80211_NODE_TXMGMTPROT;
if (ni->ni_flags & IEEE80211_NODE_HT) {
if (ic->ic_bss->ni_flags & IEEE80211_NODE_MFP)
ni->ni_flags &= ~IEEE80211_NODE_TXRXPROT;
ni->ni_flags &= ~IEEE80211_NODE_TXMGMTPROT;
ni->ni_flags &= ~IEEE80211_NODE_RXMGMTPROT;
if (ni->ni_flags & IEEE80211_NODE_MFP) {
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
basic->qos = (ni->ni_flags & IEEE80211_NODE_QOS) != 0;
generic->qos = (ni->ni_flags & IEEE80211_NODE_QOS) != 0;
if (ni->ni_flags & IEEE80211_NODE_MFP)
ni->ni_flags |= IEEE80211_NODE_TXMGMTPROT;
(ni->ni_flags & IEEE80211_NODE_RXPROT) &&
if (ni->ni_flags & IEEE80211_NODE_HT)
if (ni->ni_flags & IEEE80211_NODE_HT) {
(ni->ni_flags & IEEE80211_NODE_RXPROT) &&
if (ni->ni_flags & IEEE80211_NODE_QOS)
if (ni->ni_flags & IEEE80211_NODE_HT)
ni->ni_flags |= IEEE80211_NODE_TXRXPROT;
(ni->ni_flags & IEEE80211_NODE_RXPROT) &&
else if (ni->ni_flags & IEEE80211_NODE_HE) /* in MODE_AUTO */
else if (ni->ni_flags & IEEE80211_NODE_VHT) /* in MODE_AUTO */
else if (ni->ni_flags & IEEE80211_NODE_HT) /* in MODE_AUTO */
if (ni->ni_flags & IEEE80211_NODE_MFP)
(ni->ni_flags & IEEE80211_NODE_QOS)) {
ni->ni_flags |= IEEE80211_NODE_UAPSD;
ni->ni_flags &= ~IEEE80211_NODE_UAPSD;
ni->ni_flags &= ~IEEE80211_NODE_CSA;
ni->ni_flags |= IEEE80211_NODE_CSA;
if (htop && (ic->ic_bss->ni_flags & IEEE80211_NODE_HT)) {
if (htop && (ic->ic_bss->ni_flags & IEEE80211_NODE_HT) &&
if (ni->ni_flags & IEEE80211_NODE_QOS) {
ni->ni_flags |= IEEE80211_NODE_QOS;
ni->ni_flags &= ~IEEE80211_NODE_QOS;
ni->ni_flags |= IEEE80211_NODE_QOS;
ni->ni_flags &= ~IEEE80211_NODE_QOS;
(ni->ni_flags & IEEE80211_NODE_MFP)) {
if (ni->ni_flags & IEEE80211_NODE_SA_QUERY_FAILED) {
if (!(ni->ni_flags & IEEE80211_NODE_SA_QUERY))
ni->ni_flags |= IEEE80211_NODE_QOS;
ni->ni_flags &= ~IEEE80211_NODE_QOS;
ni->ni_flags |= IEEE80211_NODE_PMK;
ni->ni_flags |= IEEE80211_NODE_QOS;
ni->ni_flags &= ~IEEE80211_NODE_QOS;
if (ni->ni_flags & IEEE80211_NODE_HE)
else if (ni->ni_flags & IEEE80211_NODE_VHT)
else if (ni->ni_flags & IEEE80211_NODE_HT)
ni->ni_flags |= IEEE80211_NODE_TXRXPROT;
if (!(ni->ni_flags & IEEE80211_NODE_HT)) {
if (!(ni->ni_flags & IEEE80211_NODE_MFP) ||
(!(ni->ni_flags & IEEE80211_NODE_MFP) ||
!(ni->ni_flags & IEEE80211_NODE_MFP)) {
if (!(ni->ni_flags & IEEE80211_NODE_SA_QUERY)) {
ni->ni_flags &= ~IEEE80211_NODE_SA_QUERY;
if (!(ni->ni_flags & IEEE80211_NODE_HT)) {
if ((ni->ni_flags & IEEE80211_NODE_MFP) &&
(ni->ni_flags & IEEE80211_NODE_RXPROT))) {
if ((ni->ni_flags & IEEE80211_NODE_HT) &&
if (ni->ni_flags & IEEE80211_NODE_RXMGMTPROT) {
if (ni->ni_flags & IEEE80211_NODE_HT)
if (ni->ni_flags & IEEE80211_NODE_VHT)
ni->ni_flags |= IEEE80211_NODE_TXPROT;
if (ni->ni_flags & IEEE80211_NODE_CSA)
if (ni->ni_flags & IEEE80211_NODE_VHT)
else if (ni->ni_flags & IEEE80211_NODE_HT)
ni->ni_flags |= IEEE80211_NODE_PMKID;
ni->ni_flags |= IEEE80211_NODE_MFP;
if ((ni->ni_flags & IEEE80211_NODE_HTCAP) == 0) {
if ((ni->ni_flags & IEEE80211_NODE_HTCAP) == 0) {
ni->ni_flags |= IEEE80211_NODE_HTCAP;
ni->ni_flags &= ~(IEEE80211_NODE_HT | IEEE80211_NODE_HT_SGI20 |
ni->ni_flags |= IEEE80211_NODE_VHTCAP;
ni->ni_flags |= IEEE80211_NODE_HECAP;
ni->ni_flags &= ~(IEEE80211_NODE_VHT | IEEE80211_NODE_VHT_SGI80 |
ni->ni_flags &= ~(IEEE80211_NODE_HE | IEEE80211_NODE_HECAP);
ni->ni_flags |= IEEE80211_NODE_ERP;
if ((ni->ni_flags & IEEE80211_NODE_ERP) &&
if ((ni->ni_flags & IEEE80211_NODE_HT) == 0) {
ni->ni_flags &= ~IEEE80211_NODE_TXRXPROT;
ni->ni_flags &= ~IEEE80211_NODE_RXMGMTPROT;
ni->ni_flags &= ~IEEE80211_NODE_TXMGMTPROT;
ni->ni_flags &= ~IEEE80211_NODE_RSN_NEW_PTK;
ni->ni_flags |= IEEE80211_NODE_PMK;
} else if (ni->ni_flags & IEEE80211_NODE_PMK) {
if ((ni->ni_flags & IEEE80211_NODE_ERP) == 0)
if (ni->ni_flags & IEEE80211_NODE_REKEY)
if ((ni->ni_flags & IEEE80211_NODE_ERP) == 0) {
if (ni->ni_flags & IEEE80211_NODE_REKEY) {
ni->ni_flags &= ~IEEE80211_NODE_REKEY;
ni->ni_flags &= ~IEEE80211_NODE_PMK;
ni->ni_flags &= ~IEEE80211_NODE_TXRXPROT;
ni->ni_flags &= ~IEEE80211_NODE_RXMGMTPROT;
ni->ni_flags &= ~IEEE80211_NODE_TXMGMTPROT;
ni->ni_flags &= ~IEEE80211_NODE_RSN_NEW_PTK;
if (!(ni->ni_flags & IEEE80211_NODE_ERP)) {
if (ni->ni_flags & IEEE80211_NODE_HT)
if (ni->ni_flags & IEEE80211_NODE_VHT)
if (ni->ni_flags & IEEE80211_NODE_HE)
u_int32_t ni_flags; /* special-purpose state */
return ((ni->ni_flags & IEEE80211_NODE_HTCAP) &&
return ((ni->ni_flags & IEEE80211_NODE_VHTCAP) &&
return ((ni->ni_flags & IEEE80211_NODE_HECAP) &&
if (ni->ni_flags & IEEE80211_NODE_PMKID) {
if ((ni->ni_flags & IEEE80211_NODE_PMKID) == 0) {
addwme = (ni->ni_flags & IEEE80211_NODE_QOS) &&
((ni->ni_flags & IEEE80211_NODE_QOS) ? 2 + 18 : 0) +
if (ni->ni_flags & IEEE80211_NODE_QOS)
if ((ni->ni_flags & IEEE80211_NODE_MFP) &&
if ((ni->ni_flags & IEEE80211_NODE_MFP) &&
(ni->ni_flags & IEEE80211_NODE_TXMGMTPROT))
return (ni->ni_flags & IEEE80211_NODE_HT) &&
(ni->ni_flags & IEEE80211_NODE_QOS) &&
(ni->ni_flags & IEEE80211_NODE_TXPROT)))
if (ni->ni_flags & IEEE80211_NODE_REKEY) {
ni->ni_flags &= ~IEEE80211_NODE_REKEY;
ni->ni_flags |= IEEE80211_NODE_TXRXPROT;
ni->ni_flags |= IEEE80211_NODE_PMK;
ni->ni_flags |= IEEE80211_NODE_RSN_NEW_PTK;
if (!(ni->ni_flags & IEEE80211_NODE_PMK)) {
if (ni->ni_flags & IEEE80211_NODE_MFP)
(ni->ni_flags & IEEE80211_NODE_RSN_NEW_PTK)) {
ni->ni_flags &= ~IEEE80211_NODE_RSN_NEW_PTK;
ni->ni_flags &= ~IEEE80211_NODE_TXRXPROT;
ni->ni_flags |= IEEE80211_NODE_RXPROT;
ni->ni_flags |= IEEE80211_NODE_TXMGMTPROT;
ni->ni_flags |= IEEE80211_NODE_RXMGMTPROT;
ni->ni_flags |= IEEE80211_NODE_TXRXPROT;
ni->ni_flags |= IEEE80211_NODE_TXRXPROT;
ni->ni_flags |= IEEE80211_NODE_TXRXPROT;
if (ni->ni_flags & IEEE80211_NODE_MFP)
ni->ni_flags |= IEEE80211_NODE_TXMGMTPROT;
ni->ni_flags |= IEEE80211_NODE_RXMGMTPROT;
((ni->ni_flags & IEEE80211_NODE_MFP) ? 2 + 28 : 0));
((ni->ni_flags & IEEE80211_NODE_MFP) ? 2 + 28 : 0));
if (ni->ni_flags & IEEE80211_NODE_MFP) {
if (ni->ni_flags & IEEE80211_NODE_REKEY)
((ni->ni_flags & IEEE80211_NODE_MFP) ? 2 + 28 : 0) +
if (ni->ni_flags & IEEE80211_NODE_MFP) {
if (ni->ni_flags & IEEE80211_NODE_REKEY)
ic->ic_bss->ni_flags &= ~IEEE80211_NODE_TXRXPROT;
ic->ic_bss->ni_flags &= ~IEEE80211_NODE_RXMGMTPROT;
ic->ic_bss->ni_flags &= ~IEEE80211_NODE_TXMGMTPROT;
if (ni->ni_flags & IEEE80211_NODE_HT)
(ni->ni_flags & IEEE80211_NODE_HT) ?
(ni->ni_flags & IEEE80211_NODE_VHT) ?
((ni->ni_flags & IEEE80211_NODE_UAPSD) ?
ni->ni_flags |= IEEE80211_NODE_PMK;
ni->ni_flags |= IEEE80211_NODE_REKEY;
ni->ni_flags &= ~IEEE80211_NODE_REKEY;
ni->ni_flags &= ~IEEE80211_NODE_SA_QUERY;
ni->ni_flags |= IEEE80211_NODE_SA_QUERY_FAILED;
if (!(ni->ni_flags & IEEE80211_NODE_SA_QUERY)) {
ni->ni_flags |= IEEE80211_NODE_SA_QUERY;
ni->ni_flags &= ~IEEE80211_NODE_SA_QUERY_FAILED;
ni->ni_flags &= ~(IEEE80211_NODE_HT | IEEE80211_NODE_HT_SGI20 |
ni->ni_flags |= IEEE80211_NODE_HT;
ni->ni_flags |= IEEE80211_NODE_HT_SGI20;
ni->ni_flags |= IEEE80211_NODE_HT_SGI40;
ni->ni_flags &= ~(IEEE80211_NODE_VHT | IEEE80211_NODE_VHT_SGI80 |
ni->ni_flags |= IEEE80211_NODE_VHT;
ni->ni_flags |= IEEE80211_NODE_VHT_SGI80;
ni->ni_flags |= IEEE80211_NODE_VHT_SGI160;
ni->ni_flags &= ~IEEE80211_NODE_HE;
if ((ni->ni_flags & IEEE80211_NODE_HT) == 0)
ni->ni_flags |= IEEE80211_NODE_HE;
if (ni->ni_flags & IEEE80211_NODE_HT_SGI40)
} else if (ni->ni_flags & IEEE80211_NODE_HT_SGI20)
if (ni->ni_flags & IEEE80211_NODE_VHT_SGI160)
if (ni->ni_flags & IEEE80211_NODE_VHT_SGI80)
u_int16_t ni_flags;
node.ni_flags = IEEE80211_NODEREQ_STATE(nr.nr_state);