From: Aditya Kumar Singh <quic_adisi@quicinc.com>
To: <johannes@sipsolutions.net>
Cc: <linux-wireless@vger.kernel.org>,
Aditya Kumar Singh <quic_adisi@quicinc.com>
Subject: [PATCH 2/7] wifi: cfg80211: notify link ID in bss_color_notify
Date: Tue, 16 Apr 2024 10:29:38 +0530 [thread overview]
Message-ID: <20240416045943.576656-3-quic_adisi@quicinc.com> (raw)
In-Reply-To: <20240416045943.576656-1-quic_adisi@quicinc.com>
Add changes to send link ID as well in bss color notify during MLO.
Userspace application can make use of this to take necessary actions.
For now, pass 0 as link ID. Appropriate link ID will be passed in a
subsequent change.
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
---
include/net/cfg80211.h | 26 +++++++++++++++++---------
net/mac80211/cfg.c | 11 ++++++-----
net/wireless/nl80211.c | 6 +++++-
3 files changed, 28 insertions(+), 15 deletions(-)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 0e2b3e0c8541..e0f488eb15d1 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -9389,60 +9389,68 @@ void cfg80211_bss_flush(struct wiphy *wiphy);
* @cmd: the actual event we want to notify
* @count: the number of TBTTs until the color change happens
* @color_bitmap: representations of the colors that the local BSS is aware of
+ * @link_id: valid link_id in case of MLO or 0 for non-MLO.
*/
int cfg80211_bss_color_notify(struct net_device *dev,
enum nl80211_commands cmd, u8 count,
- u64 color_bitmap);
+ u64 color_bitmap, u8 link_id);
/**
* cfg80211_obss_color_collision_notify - notify about bss color collision
* @dev: network device
* @color_bitmap: representations of the colors that the local BSS is aware of
+ * @link_id: valid link_id in case of MLO or 0 for non-MLO.
*/
static inline int cfg80211_obss_color_collision_notify(struct net_device *dev,
- u64 color_bitmap)
+ u64 color_bitmap,
+ u8 link_id)
{
return cfg80211_bss_color_notify(dev, NL80211_CMD_OBSS_COLOR_COLLISION,
- 0, color_bitmap);
+ 0, color_bitmap, link_id);
}
/**
* cfg80211_color_change_started_notify - notify color change start
* @dev: the device on which the color is switched
* @count: the number of TBTTs until the color change happens
+ * @link_id: valid link_id in case of MLO or 0 for non-MLO.
*
* Inform the userspace about the color change that has started.
*/
static inline int cfg80211_color_change_started_notify(struct net_device *dev,
- u8 count)
+ u8 count, u8 link_id)
{
return cfg80211_bss_color_notify(dev, NL80211_CMD_COLOR_CHANGE_STARTED,
- count, 0);
+ count, 0, link_id);
}
/**
* cfg80211_color_change_aborted_notify - notify color change abort
* @dev: the device on which the color is switched
+ * @link_id: valid link_id in case of MLO or 0 for non-MLO.
*
* Inform the userspace about the color change that has aborted.
*/
-static inline int cfg80211_color_change_aborted_notify(struct net_device *dev)
+static inline int cfg80211_color_change_aborted_notify(struct net_device *dev,
+ u8 link_id)
{
return cfg80211_bss_color_notify(dev, NL80211_CMD_COLOR_CHANGE_ABORTED,
- 0, 0);
+ 0, 0, link_id);
}
/**
* cfg80211_color_change_notify - notify color change completion
* @dev: the device on which the color was switched
+ * @link_id: valid link_id in case of MLO or 0 for non-MLO.
*
* Inform the userspace about the color change that has completed.
*/
-static inline int cfg80211_color_change_notify(struct net_device *dev)
+static inline int cfg80211_color_change_notify(struct net_device *dev,
+ u8 link_id)
{
return cfg80211_bss_color_notify(dev,
NL80211_CMD_COLOR_CHANGE_COMPLETED,
- 0, 0);
+ 0, 0, link_id);
}
/**
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index f67c1d021812..f9374ce04c93 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3920,7 +3920,7 @@ static void ieee80211_color_change_abort(struct ieee80211_sub_if_data *sdata)
ieee80211_free_next_beacon(&sdata->deflink);
- cfg80211_color_change_aborted_notify(sdata->dev);
+ cfg80211_color_change_aborted_notify(sdata->dev, 0);
}
static int
@@ -4768,14 +4768,14 @@ static int ieee80211_color_change_finalize(struct ieee80211_sub_if_data *sdata)
err = ieee80211_set_after_color_change_beacon(sdata, &changed);
if (err) {
- cfg80211_color_change_aborted_notify(sdata->dev);
+ cfg80211_color_change_aborted_notify(sdata->dev, 0);
return err;
}
ieee80211_color_change_bss_config_notify(sdata,
sdata->vif.bss_conf.color_change_color,
1, changed);
- cfg80211_color_change_notify(sdata->dev);
+ cfg80211_color_change_notify(sdata->dev, 0);
return 0;
}
@@ -4808,7 +4808,8 @@ void ieee80211_color_collision_detection_work(struct work_struct *work)
color_collision_detect_work);
struct ieee80211_sub_if_data *sdata = link->sdata;
- cfg80211_obss_color_collision_notify(sdata->dev, link->color_bitmap);
+ cfg80211_obss_color_collision_notify(sdata->dev, link->color_bitmap,
+ link->link_id);
}
void ieee80211_color_change_finish(struct ieee80211_vif *vif)
@@ -4872,7 +4873,7 @@ ieee80211_color_change(struct wiphy *wiphy, struct net_device *dev,
sdata->vif.bss_conf.color_change_active = true;
sdata->vif.bss_conf.color_change_color = params->color;
- cfg80211_color_change_started_notify(sdata->dev, params->count);
+ cfg80211_color_change_started_notify(sdata->dev, params->count, 0);
if (changed)
ieee80211_color_change_bss_config_notify(sdata, 0, 0, changed);
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index a9d01cd16196..8013796f2afe 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -19455,7 +19455,7 @@ EXPORT_SYMBOL(cfg80211_ch_switch_started_notify);
int cfg80211_bss_color_notify(struct net_device *dev,
enum nl80211_commands cmd, u8 count,
- u64 color_bitmap)
+ u64 color_bitmap, u8 link_id)
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct wiphy *wiphy = wdev->wiphy;
@@ -19478,6 +19478,10 @@ int cfg80211_bss_color_notify(struct net_device *dev,
if (nla_put_u32(msg, NL80211_ATTR_IFINDEX, dev->ifindex))
goto nla_put_failure;
+ if (wdev->valid_links &&
+ nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id))
+ goto nla_put_failure;
+
if (cmd == NL80211_CMD_COLOR_CHANGE_STARTED &&
nla_put_u32(msg, NL80211_ATTR_COLOR_CHANGE_COUNT, count))
goto nla_put_failure;
--
2.25.1
next prev parent reply other threads:[~2024-04-16 5:00 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-16 4:59 [PATCH 0/7] wifi: cfg80211/mac80211: add support for HE BSS color handling with Multi-Link Operation Aditya Kumar Singh
2024-04-16 4:59 ` [PATCH 1/7] wifi: cfg80211: send link id in color_change ops Aditya Kumar Singh
2024-04-16 4:59 ` Aditya Kumar Singh [this message]
2024-04-16 4:59 ` [PATCH 3/7] wifi: mac80211: handle set color_change/after_color_change beacon on per link basis Aditya Kumar Singh
2024-04-16 4:59 ` [PATCH 4/7] wifi: mac80211: handle color_change_abort and bss_config_notify on per link Aditya Kumar Singh
2024-04-16 4:59 ` [PATCH 5/7] wifi: mac80211: start and finalize color change on link basis Aditya Kumar Singh
2024-04-16 4:59 ` [PATCH 6/7] wifi: mac80211: add support to call color_change and OBSS collision on a link Aditya Kumar Singh
2024-04-16 4:59 ` [PATCH 7/7] wifi: mac80211_hwsim: add support for BSS color Aditya Kumar Singh
2024-04-22 8:15 ` Johannes Berg
2024-04-22 8:48 ` Aditya Kumar Singh
2024-04-22 12:46 ` Aditya Kumar Singh
2024-04-19 9:12 ` [PATCH 0/7] wifi: cfg80211/mac80211: add support for HE BSS color handling with Multi-Link Operation Johannes Berg
2024-04-22 4:58 ` Aditya Kumar Singh
2024-04-23 18:37 ` Jeff Johnson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240416045943.576656-3-quic_adisi@quicinc.com \
--to=quic_adisi@quicinc.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).