2020-04-20 11:37:45

by Sergey Matyukevich

[permalink] [raw]
Subject: [RFC PATCH 0/4] cfg80211: updates and fixes for TID specific configuration

Hello Johannes, Tamizh, and all

This patch series contains several minor fixes and enhancements for TID
specific configuration functionality. The first three patches include
minor fixes and TID specific AMSDU configuration.

The last patch is somewhat controversial, so the series is marked as RFC.
The last patch simplifies current override logic. It suggests to make no
difference between 'specific peer' and 'all peers' cases and to apply
new TID configuration immediately after resetting the previous one.

Regards,
Sergey

Sergey Matyukevich (4):
cfg80211: fix mask type in cfg80211_tid_cfg structure
mac80211: fix variable names in TID config methods
cfg80211: add support for TID specific AMSDU configuration
nl80211: simplify peer specific TID configuration

include/net/cfg80211.h | 6 ++++--
include/uapi/linux/nl80211.h | 20 +++++++++++---------
net/mac80211/cfg.c | 6 +++---
net/mac80211/driver-ops.h | 4 ++--
net/wireless/nl80211.c | 11 +++++++----
5 files changed, 27 insertions(+), 20 deletions(-)

--
2.11.0


2020-04-20 11:37:52

by Sergey Matyukevich

[permalink] [raw]
Subject: [RFC PATCH 1/4] cfg80211: fix mask type in cfg80211_tid_cfg structure

TIDs mask type is u64 in wiphy settings and nl80211 processing, see:
- wiphy TIDs mask sizes in tid_config_support structure
- prepare driver command in parse_tid_conf

Use the same type for TIDs mask in cfg80211_tid_cfg.

Signed-off-by: Sergey Matyukevich <[email protected]>
---
include/net/cfg80211.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 70e48f66dac8..6ff2646ed5fa 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -642,7 +642,7 @@ struct cfg80211_chan_def {
struct cfg80211_tid_cfg {
bool config_override;
u8 tids;
- u32 mask;
+ u64 mask;
enum nl80211_tid_config noack;
u8 retry_long, retry_short;
enum nl80211_tid_config ampdu;
--
2.11.0

2020-04-20 11:38:16

by Sergey Matyukevich

[permalink] [raw]
Subject: [RFC PATCH 2/4] mac80211: fix variable names in TID config methods

Fix all variable names from 'tid' to 'tids' to avoid confusion.
Now this is not TID number, but TID mask.

Signed-off-by: Sergey Matyukevich <[email protected]>
---
net/mac80211/cfg.c | 6 +++---
net/mac80211/driver-ops.h | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 0f72813fed53..e8ec658a3c7b 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3925,7 +3925,7 @@ static int ieee80211_set_tid_config(struct wiphy *wiphy,

static int ieee80211_reset_tid_config(struct wiphy *wiphy,
struct net_device *dev,
- const u8 *peer, u8 tid)
+ const u8 *peer, u8 tids)
{
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
struct sta_info *sta;
@@ -3935,7 +3935,7 @@ static int ieee80211_reset_tid_config(struct wiphy *wiphy,
return -EOPNOTSUPP;

if (!peer)
- return drv_reset_tid_config(sdata->local, sdata, NULL, tid);
+ return drv_reset_tid_config(sdata->local, sdata, NULL, tids);

mutex_lock(&sdata->local->sta_mtx);
sta = sta_info_get_bss(sdata, peer);
@@ -3944,7 +3944,7 @@ static int ieee80211_reset_tid_config(struct wiphy *wiphy,
return -ENOENT;
}

- ret = drv_reset_tid_config(sdata->local, sdata, &sta->sta, tid);
+ ret = drv_reset_tid_config(sdata->local, sdata, &sta->sta, tids);
mutex_unlock(&sdata->local->sta_mtx);

return ret;
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index 3877710e3b48..de69fc9c4f07 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -1375,12 +1375,12 @@ static inline int drv_set_tid_config(struct ieee80211_local *local,

static inline int drv_reset_tid_config(struct ieee80211_local *local,
struct ieee80211_sub_if_data *sdata,
- struct ieee80211_sta *sta, u8 tid)
+ struct ieee80211_sta *sta, u8 tids)
{
int ret;

might_sleep();
- ret = local->ops->reset_tid_config(&local->hw, &sdata->vif, sta, tid);
+ ret = local->ops->reset_tid_config(&local->hw, &sdata->vif, sta, tids);
trace_drv_return_int(local, ret);

return ret;
--
2.11.0

2020-04-24 10:21:42

by Johannes Berg

[permalink] [raw]
Subject: Re: [RFC PATCH 0/4] cfg80211: updates and fixes for TID specific configuration

Hi,

> This patch series contains several minor fixes and enhancements for TID
> specific configuration functionality. The first three patches include
> minor fixes and TID specific AMSDU configuration.

Looks good, though I just saw you noticed a small bug :)

> The last patch is somewhat controversial, so the series is marked as RFC.
> The last patch simplifies current override logic. It suggests to make no
> difference between 'specific peer' and 'all peers' cases and to apply
> new TID configuration immediately after resetting the previous one.

Yeah, I tend to agree.

Can you resend with the small fix?

johannes

2020-04-24 10:29:44

by Sergey Matyukevich

[permalink] [raw]
Subject: Re: [RFC PATCH 0/4] cfg80211: updates and fixes for TID specific configuration

> > This patch series contains several minor fixes and enhancements for TID
> > specific configuration functionality. The first three patches include
> > minor fixes and TID specific AMSDU configuration.
>
> Looks good, though I just saw you noticed a small bug :)
>
> > The last patch is somewhat controversial, so the series is marked as RFC.
> > The last patch simplifies current override logic. It suggests to make no
> > difference between 'specific peer' and 'all peers' cases and to apply
> > new TID configuration immediately after resetting the previous one.
>
> Yeah, I tend to agree.
>
> Can you resend with the small fix?

Sure, will do. Is it ok if I add a patch supporting this feature in iw tool ?
Or you would prefer to review it separately after this series lands in
mac80211-next ?

Regards,
Sergey

2020-04-24 10:30:36

by Johannes Berg

[permalink] [raw]
Subject: Re: [RFC PATCH 0/4] cfg80211: updates and fixes for TID specific configuration

On Fri, 2020-04-24 at 13:26 +0300, Sergey Matyukevich wrote:
> > > This patch series contains several minor fixes and enhancements for TID
> > > specific configuration functionality. The first three patches include
> > > minor fixes and TID specific AMSDU configuration.
> >
> > Looks good, though I just saw you noticed a small bug :)
> >
> > > The last patch is somewhat controversial, so the series is marked as RFC.
> > > The last patch simplifies current override logic. It suggests to make no
> > > difference between 'specific peer' and 'all peers' cases and to apply
> > > new TID configuration immediately after resetting the previous one.
> >
> > Yeah, I tend to agree.
> >
> > Can you resend with the small fix?
>
> Sure, will do. Is it ok if I add a patch supporting this feature in iw tool ?
> Or you would prefer to review it separately after this series lands in
> mac80211-next ?

That's fine. Not sure how you could possibly send them in the same
series with git, but go ahead :)

FWIW, I will always ignore nl80211.h update patches, I do those myself,
so no need to send that.

johannes