The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=42cf2798110e12df6ccc22a138ed89617ac7d407
commit 42cf2798110e12df6ccc22a138ed89617ac7d407 Author: Bjoern A. Zeeb <[email protected]> AuthorDate: 2026-06-22 01:01:15 +0000 Commit: Bjoern A. Zeeb <[email protected]> CommitDate: 2026-06-22 01:21:39 +0000 LinuxKPI: 802.11: add/change rate related tracing Make use of the TRACE_RATES() macro and add various tracing events. Also adjust some events formerly under TRACEOK to TRACE_RATES(). Ignoring the tracing, no other functional changes. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/src/linux_80211.c | 33 ++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 4754d116f438..1a07213a58d6 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -657,6 +657,9 @@ lkpi_sync_chanctx_cw_from_rx_bw(struct ieee80211_hw *hw, return; old_bw = lkpi_cw_to_rx_bw(chanctx_conf->def.width); + TRACE_RATES("old_bw %d sta->deflink.bandwidth %d hw->conf.chandef.width %d", + old_bw, sta->deflink.bandwidth, lkpi_cw_to_rx_bw(hw->conf.chandef.width)); + if (old_bw == sta->deflink.bandwidth) return; @@ -669,6 +672,11 @@ lkpi_sync_chanctx_cw_from_rx_bw(struct ieee80211_hw *hw, vif->bss_conf.chanreq.oper.width = chanctx_conf->def.width; + TRACE_RATES("chanctx_conf %p def.width %d sta->deflink.bandwidth %d " + "ht_supported %d vht_supported %d", + chanctx_conf, chanctx_conf->def.width, sta->deflink.bandwidth, + sta->deflink.ht_cap.ht_supported, sta->deflink.vht_cap.vht_supported); + changed = IEEE80211_CHANCTX_CHANGE_MIN_WIDTH; changed |= IEEE80211_CHANCTX_CHANGE_WIDTH; lkpi_80211_mo_change_chanctx(hw, chanctx_conf, changed); @@ -688,6 +696,7 @@ lkpi_sta_sync_ht_from_ni(struct ieee80211_hw *hw, struct ieee80211_vif *vif, if ((ni->ni_flags & IEEE80211_NODE_HT) == 0) { sta->deflink.ht_cap.ht_supported = false; + TRACE_RATES("HT ht_supported %d", sta->deflink.ht_cap.ht_supported); return; } @@ -722,7 +731,7 @@ lkpi_sta_sync_ht_from_ni(struct ieee80211_hw *hw, struct ieee80211_vif *vif, sta_ht_cap = &sta->deflink.ht_cap; rx_nss = 0; for (i = 0; i < 4; i++) { - TRACEOK("HT rx_mask[%d] sta %#04x & hw %#04x", i, + TRACE_RATES("HT rx_mask[%d] sta %#04x & hw %#04x", i, sta_ht_cap->mcs.rx_mask[i], ht_cap->mcs.rx_mask[i]); sta_ht_cap->mcs.rx_mask[i] = sta_ht_cap->mcs.rx_mask[i] & ht_cap->mcs.rx_mask[i]; @@ -732,10 +741,11 @@ lkpi_sta_sync_ht_from_ni(struct ieee80211_hw *hw, struct ieee80211_vif *vif, rx_nss++; } if (rx_nss > 0) { - TRACEOK("HT rx_nss = max(%d, %d)", rx_nss, sta->deflink.rx_nss); + TRACE_RATES("HT rx_nss = max(%d, %d)", rx_nss, sta->deflink.rx_nss); sta->deflink.rx_nss = MAX(rx_nss, sta->deflink.rx_nss); } else { sta->deflink.ht_cap.ht_supported = false; + TRACE_RATES("HT ht_supported %d", sta->deflink.ht_cap.ht_supported); return; } @@ -757,6 +767,7 @@ lkpi_sta_sync_ht_from_ni(struct ieee80211_hw *hw, struct ieee80211_vif *vif, sta->deflink.agg.max_tid_amsdu_len[j] = ; } #endif + TRACE_RATES("HT ht_supported %d", sta->deflink.ht_cap.ht_supported); } #endif @@ -775,6 +786,7 @@ lkpi_sta_sync_vht_from_ni(struct ieee80211_hw *hw, struct ieee80211_vif *vif, if ((ni->ni_flags & IEEE80211_NODE_VHT) == 0 || !IEEE80211_IS_CHAN_VHT_5GHZ(ni->ni_chan)) { sta->deflink.vht_cap.vht_supported = false; + TRACE_RATES("VHT vht_supported %d", sta->deflink.vht_cap.vht_supported); return; } @@ -856,16 +868,17 @@ skip_bw: } tx_map |= (sta << (2 * i)); } - TRACEOK("VHT rx_mcs_map %#010x->%#010x, tx_mcs_map %#010x->%#010x, rx_nss = %d", + TRACE_RATES("VHT rx_mcs_map %#010x->%#010x, tx_mcs_map %#010x->%#010x, rx_nss = %d", sta_vht_cap->vht_mcs.rx_mcs_map, rx_map, sta_vht_cap->vht_mcs.tx_mcs_map, tx_map, rx_nss); sta_vht_cap->vht_mcs.rx_mcs_map = rx_map; sta_vht_cap->vht_mcs.tx_mcs_map = tx_map; if (rx_nss > 0) { - TRACEOK("VHT rx_nss = max(%d, %d)", rx_nss, sta->deflink.rx_nss); + TRACE_RATES("VHT rx_nss = max(%d, %d)", rx_nss, sta->deflink.rx_nss); sta->deflink.rx_nss = MAX(rx_nss, sta->deflink.rx_nss); } else { sta->deflink.vht_cap.vht_supported = false; + TRACE_RATES("VHT vht_supported %d", sta->deflink.vht_cap.vht_supported); return; } @@ -881,6 +894,8 @@ skip_bw: sta->deflink.agg.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_3895; break; } + + TRACE_RATES("VHT vht_supported %d", sta->deflink.vht_cap.vht_supported); } #endif @@ -922,6 +937,11 @@ lkpi_sta_sync_from_ni(struct ieee80211_hw *hw, struct ieee80211_vif *vif, bss_changed |= lkpi_sta_supp_rates(hw, vif, ni, &rc_changed); + TRACE_RATES("updchnctx %d rc_change %#010x bss_changed %#010jx " + "bandwidth %d rx_nss %u", + updchnctx, rc_changed, (uintmax_t)bss_changed, + sta->deflink.bandwidth, sta->deflink.rx_nss); + if (rc_changed != 0) lkpi_80211_mo_link_sta_rc_update(hw, vif, &sta->deflink, rc_changed); @@ -6092,6 +6112,7 @@ lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m) if ((m->m_flags & M_EAPOL) != 0) { info->control.flags |= IEEE80211_TX_CTRL_PORT_CTRL_PROTO; info->flags |= IEEE80211_TX_CTL_USE_MINRATE; /* mt76 */ + TRACE_RATES("M_EAPOL -> TX_CTL_USE_MINRATE"); } info->control.vif = vif; @@ -8752,6 +8773,10 @@ lkpi_wiphy_band_annotate(struct wiphy *wiphy) } break; } + TRACE_RATES("band %d bitrate[%d/%u] %u flags %#010x", + band, i, supband->n_bitrates, + supband->bitrates[i].bitrate, + supband->bitrates[i].flags); } } }
