From eee41e0fa9bff506c8402b8cc86ae5e688fdc2c2 Mon Sep 17 00:00:00 2001
From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
Date: Wed, 8 Mar 2023 06:23:55 +0800
Subject: [PATCH] mac80211: mtk: track obss color bitmap

Track OBSS BSS color when receive their beacon.

Adding 2 tracepoint for debug, usage:
echo 1 > /sys/kernel/debug/tracing/events/mac80211/bss_color_bitmap/enable
echo 1 > /sys/kernel/debug/tracing/events/mac80211/bss_color_collision/enable
---
 include/net/mac80211.h |  5 +++--
 net/mac80211/cfg.c     |  4 ++--
 net/mac80211/rx.c      |  9 +++++++--
 net/mac80211/trace.h   | 21 +++++++++++++++++++++
 4 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 6419397..c6cadf7 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -699,6 +699,7 @@ struct ieee80211_bss_conf {
 	} he_oper;
 	struct ieee80211_he_obss_pd he_obss_pd;
 	struct cfg80211_he_bss_color he_bss_color;
+	u64 used_color_bitmap;
 	struct ieee80211_fils_discovery fils_discovery;
 	u32 unsol_bcast_probe_resp_interval;
 	bool s1g;
@@ -6875,7 +6876,7 @@ ieee80211_get_unsol_bcast_probe_resp_tmpl(struct ieee80211_hw *hw,
 					  struct ieee80211_vif *vif);
 
 /**
- * ieeee80211_obss_color_collision_notify - notify userland about a BSS color
+ * ieee80211_obss_color_collision_notify - notify userland about a BSS color
  * collision.
  *
  * @vif: &struct ieee80211_vif pointer from the add_interface callback.
@@ -6883,7 +6884,7 @@ ieee80211_get_unsol_bcast_probe_resp_tmpl(struct ieee80211_hw *hw,
  *	aware of.
  */
 void
-ieeee80211_obss_color_collision_notify(struct ieee80211_vif *vif,
+ieee80211_obss_color_collision_notify(struct ieee80211_vif *vif,
 				       u64 color_bitmap);
 
 /**
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 0a6257d..86d231b 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -4435,7 +4435,7 @@ void ieee80211_color_change_finish(struct ieee80211_vif *vif)
 EXPORT_SYMBOL_GPL(ieee80211_color_change_finish);
 
 void
-ieeee80211_obss_color_collision_notify(struct ieee80211_vif *vif,
+ieee80211_obss_color_collision_notify(struct ieee80211_vif *vif,
 				       u64 color_bitmap)
 {
 	struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
@@ -4445,7 +4445,7 @@ ieeee80211_obss_color_collision_notify(struct ieee80211_vif *vif,
 
 	cfg80211_obss_color_collision_notify(sdata->dev, color_bitmap);
 }
-EXPORT_SYMBOL_GPL(ieeee80211_obss_color_collision_notify);
+EXPORT_SYMBOL_GPL(ieee80211_obss_color_collision_notify);
 
 static int
 ieee80211_color_change(struct wiphy *wiphy, struct net_device *dev,
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index eb16838..36fcf97 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -3219,9 +3219,14 @@ ieee80211_rx_check_bss_color_collision(struct ieee80211_rx_data *rx)
 
 		color = le32_get_bits(he_oper->he_oper_params,
 				      IEEE80211_HE_OPERATION_BSS_COLOR_MASK);
+
+		bss_conf->used_color_bitmap |= BIT_ULL(color);
+
+		trace_bss_color_bitmap(color, bss_conf->used_color_bitmap);
+
 		if (color == bss_conf->he_bss_color.color)
-			ieeee80211_obss_color_collision_notify(&rx->sdata->vif,
-							       BIT_ULL(color));
+			ieee80211_obss_color_collision_notify(&rx->sdata->vif,
+				bss_conf->used_color_bitmap);
 	}
 }
 
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h
index bbda9e9..bd43aab 100644
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -2901,6 +2901,27 @@ DEFINE_EVENT(sta_event, drv_net_fill_forward_path,
 );
 #endif
 
+TRACE_EVENT(bss_color_bitmap,
+	TP_PROTO(u8 color,
+		 u64 color_bitmap),
+
+	TP_ARGS(color, color_bitmap),
+
+	TP_STRUCT__entry(
+		__field(u8, color)
+		__field(u64, color_bitmap)
+	),
+
+	TP_fast_assign(
+		__entry->color = color;
+		__entry->color_bitmap = color_bitmap;
+	),
+
+	TP_printk(
+		"color=%u color_bitmap=0x%llx", __entry->color, __entry->color_bitmap
+	)
+);
+
 #endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */
 
 #undef TRACE_INCLUDE_PATH
-- 
2.39.0

