blob: 31811d3ea8dc18c7bf7f66e895470056f37cd195 [file] [log] [blame]
developer83ad30d2023-09-12 17:28:06 +08001From 529ea5156b39398b24801eabcb3f1531ca53d3ca Mon Sep 17 00:00:00 2001
developerc9eaf902023-03-13 05:45:10 +08002From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
3Date: Mon, 13 Mar 2023 05:23:37 +0800
developer83ad30d2023-09-12 17:28:06 +08004Subject: [PATCH 12/21] mac80211: mtk: track obss color bitmap
developerc9eaf902023-03-13 05:45:10 +08005
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---
developer83ad30d2023-09-12 17:28:06 +080012 include/net/mac80211.h | 1 +
13 net/mac80211/rx.c | 6 +++++-
developerc9eaf902023-03-13 05:45:10 +080014 net/mac80211/trace.h | 21 +++++++++++++++++++++
developer83ad30d2023-09-12 17:28:06 +080015 3 files changed, 27 insertions(+), 1 deletion(-)
developerc9eaf902023-03-13 05:45:10 +080016
17diff --git a/include/net/mac80211.h b/include/net/mac80211.h
developer83ad30d2023-09-12 17:28:06 +080018index 2c282e6..b90e828 100644
developerc9eaf902023-03-13 05:45:10 +080019--- a/include/net/mac80211.h
20+++ b/include/net/mac80211.h
developer83ad30d2023-09-12 17:28:06 +080021@@ -744,6 +744,7 @@ struct ieee80211_bss_conf {
developerc9eaf902023-03-13 05:45:10 +080022 } he_oper;
23 struct ieee80211_he_obss_pd he_obss_pd;
24 struct cfg80211_he_bss_color he_bss_color;
25+ u64 used_color_bitmap;
26 struct ieee80211_fils_discovery fils_discovery;
27 u32 unsol_bcast_probe_resp_interval;
28 struct cfg80211_bitrate_mask beacon_tx_rate;
developerc9eaf902023-03-13 05:45:10 +080029diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
developer83ad30d2023-09-12 17:28:06 +080030index 56abe67..cf41b93 100644
developerc9eaf902023-03-13 05:45:10 +080031--- a/net/mac80211/rx.c
32+++ b/net/mac80211/rx.c
developer83ad30d2023-09-12 17:28:06 +080033@@ -3349,9 +3349,13 @@ ieee80211_rx_check_bss_color_collision(struct ieee80211_rx_data *rx)
developerc9eaf902023-03-13 05:45:10 +080034
35 color = le32_get_bits(he_oper->he_oper_params,
36 IEEE80211_HE_OPERATION_BSS_COLOR_MASK);
37+
38+ bss_conf->used_color_bitmap |= BIT_ULL(color);
39+
developer83ad30d2023-09-12 17:28:06 +080040+ // trace_bss_color_bitmap(color, bss_conf->used_color_bitmap);
developerc9eaf902023-03-13 05:45:10 +080041 if (color == bss_conf->he_bss_color.color)
developer83ad30d2023-09-12 17:28:06 +080042 ieee80211_obss_color_collision_notify(&rx->sdata->vif,
43- BIT_ULL(color),
44+ bss_conf->used_color_bitmap,
45 GFP_ATOMIC);
developerc9eaf902023-03-13 05:45:10 +080046 }
47 }
48diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h
developer83ad30d2023-09-12 17:28:06 +080049index b8c53b4..814aed6 100644
developerc9eaf902023-03-13 05:45:10 +080050--- a/net/mac80211/trace.h
51+++ b/net/mac80211/trace.h
developer83ad30d2023-09-12 17:28:06 +080052@@ -3060,6 +3060,27 @@ TRACE_EVENT(stop_queue,
developerc9eaf902023-03-13 05:45:10 +080053 )
54 );
55
56+TRACE_EVENT(bss_color_bitmap,
57+ TP_PROTO(u8 color,
58+ u64 color_bitmap),
59+
60+ TP_ARGS(color, color_bitmap),
61+
62+ TP_STRUCT__entry(
63+ __field(u8, color)
64+ __field(u64, color_bitmap)
65+ ),
66+
67+ TP_fast_assign(
68+ __entry->color = color;
69+ __entry->color_bitmap = color_bitmap;
70+ ),
71+
72+ TP_printk(
73+ "color=%u color_bitmap=0x%llx", __entry->color, __entry->color_bitmap
74+ )
75+);
76+
77 #endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */
78
79 #undef TRACE_INCLUDE_PATH
80--
developerebaa5512023-04-19 18:23:21 +0800812.39.2
developerc9eaf902023-03-13 05:45:10 +080082