blob: dbbfb55387a1ac8c3ddc898ada839a69c2da7ab5 [file] [log] [blame]
developer0415fc32024-04-19 18:29:00 +08001From 71be2e718dc884fb35433338dc21d6547b237819 Mon Sep 17 00:00:00 2001
2From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
3Date: Mon, 13 Mar 2023 05:23:37 +0800
4Subject: [PATCH 16/61] mtk: mac80211: track obss color bitmap
5
6Track OBSS BSS color when receive their beacon.
7
8Adding 2 tracepoint for debug, usage:
9echo 1 > /sys/kernel/debug/tracing/events/mac80211/bss_color_bitmap/enable
10echo 1 > /sys/kernel/debug/tracing/events/mac80211/bss_color_collision/enable
11
12Change-Id: I24ebcc3181c05476b41107ce8fe7f3d4c8907e81
13---
14 include/net/mac80211.h | 1 +
15 net/mac80211/rx.c | 6 +++++-
16 net/mac80211/trace.h | 22 ++++++++++++++++++++++
17 3 files changed, 28 insertions(+), 1 deletion(-)
18
19diff --git a/include/net/mac80211.h b/include/net/mac80211.h
20index 01cfcc0..965a026 100644
21--- a/include/net/mac80211.h
22+++ b/include/net/mac80211.h
23@@ -762,6 +762,7 @@ struct ieee80211_bss_conf {
24 } he_oper;
25 struct ieee80211_he_obss_pd he_obss_pd;
26 struct cfg80211_he_bss_color he_bss_color;
27+ u64 used_color_bitmap;
28 struct ieee80211_fils_discovery fils_discovery;
29 u32 unsol_bcast_probe_resp_interval;
30 struct cfg80211_bitrate_mask beacon_tx_rate;
31diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
32index 89a1199..65982a6 100644
33--- a/net/mac80211/rx.c
34+++ b/net/mac80211/rx.c
35@@ -3395,9 +3395,13 @@ ieee80211_rx_check_bss_color_collision(struct ieee80211_rx_data *rx)
36
37 color = le32_get_bits(he_oper->he_oper_params,
38 IEEE80211_HE_OPERATION_BSS_COLOR_MASK);
39+
40+ bss_conf->used_color_bitmap |= BIT_ULL(color);
41+
42+ // trace_bss_color_bitmap(color, bss_conf->used_color_bitmap);
43 if (color == bss_conf->he_bss_color.color)
44 ieee80211_obss_color_collision_notify(&rx->sdata->vif,
45- BIT_ULL(color));
46+ bss_conf->used_color_bitmap);
47 }
48 }
49
50diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h
51index 8e758b5..9ec45ce 100644
52--- a/net/mac80211/trace.h
53+++ b/net/mac80211/trace.h
54@@ -3145,6 +3145,28 @@ TRACE_EVENT(drv_neg_ttlm_res,
55 LOCAL_PR_ARG, VIF_PR_ARG, __entry->res
56 )
57 );
58+
59+TRACE_EVENT(bss_color_bitmap,
60+ TP_PROTO(u8 color,
61+ u64 color_bitmap),
62+
63+ TP_ARGS(color, color_bitmap),
64+
65+ TP_STRUCT__entry(
66+ __field(u8, color)
67+ __field(u64, color_bitmap)
68+ ),
69+
70+ TP_fast_assign(
71+ __entry->color = color;
72+ __entry->color_bitmap = color_bitmap;
73+ ),
74+
75+ TP_printk(
76+ "color=%u color_bitmap=0x%llx", __entry->color, __entry->color_bitmap
77+ )
78+);
79+
80 #endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */
81
82 #undef TRACE_INCLUDE_PATH
83--
842.39.2
85