mbox series

[PATCHv10,0/6] cfg80211/mac80211: Add support for TID specific configuration

Message ID 1579506687-18296-1-git-send-email-tamizhr@codeaurora.org (mailing list archive)
Headers show
Series cfg80211/mac80211: Add support for TID specific configuration | expand

Message

Tamizh chelvam Jan. 20, 2020, 7:51 a.m. UTC
From: Tamizh chelvam <tamizhr@codeaurora.org>

Add infrastructure to support per TID configurations like noack policy,
retry count, AMPDU control(disable/enable), RTSCTS control(enable/disable)
and TX rate mask configurations.
This will be useful for the driver which can supports data TID
specific configuration rather than phy level configurations.
Here NL80211_CMD_SET_TID_CONFIG added to support this operation by
accepting TID configuration.
This command can accept STA mac addreess to make the configuration
station specific rather than applying to all the connected stations
to the netdev.
And this nested command configuration can accept multiple number of
data TID specific configuration in a single command,
enum ieee80211_tid_conf_mask used to notify the driver that which
configuration got modified for the TID.

Tamizh chelvam (6):
  nl80211: Add NL command to support TID speicific configurations
  nl80211: Add support to configure TID specific retry configuration
  nl80211: Add support to configure TID specific AMPDU configuration
  nl80211: Add support to configure TID specific RTSCTS configuration
  nl80211: Add support to configure TID specific txrate configuration
  mac80211: Add api to support configuring TID specific configuration

 include/net/cfg80211.h       |   65 ++++++++++
 include/net/mac80211.h       |   10 ++
 include/uapi/linux/nl80211.h |  140 +++++++++++++++++++++
 net/mac80211/cfg.c           |   56 +++++++++
 net/mac80211/driver-ops.h    |   27 ++++
 net/wireless/nl80211.c       |  287 +++++++++++++++++++++++++++++++++++++++---
 net/wireless/rdev-ops.h      |   24 ++++
 net/wireless/trace.h         |   37 ++++++
 8 files changed, 629 insertions(+), 17 deletions(-)

v10:
  * Addressed Sergey comments.

v9:
  * Modified to accept multiple TIDs.
  * Splitted retry_short and retry_long as separate parameter
  * Introduced new api to reset tid config

v8:
  * Fixed enum typecast warning.

v7:
  * Fixed compilation error and removed tid config variables from mac80211

v6:
  * Addressed Johannes comments.

v5:
  * Fixed possible memleak of 'tid_conf' in nl80211_set_tid_config.

v4:
  * Fixed kbuild warnings.

v3:
  * Modified "nl80211: Add netlink attribute to configure TID specific tx rate" patch
    to accept multiple TX rate configuration at a time.
  * Modified noack and ampdu variable data type to int in
    "mac80211: Add api to support configuring TID specific configuration" patch to store
    default configuration.
  * Modified "ath10k: Add new api to support TID specific configuration" patch to handle
    default values for noack and ampdu. And added sta pointer sanity check in
    ath10k_mac_tid_bitrate_config function.
  * Fixed "ath10k: Add extended TID configuration support" wmi command parameters
    assigned part.

v2:
  * Added support to accept multiple TID configuration
  * Added support to configure TX rate and RTSCTS control

Comments

Sergey Matyukevich Jan. 21, 2020, 7:17 a.m. UTC | #1
> Add infrastructure to support per TID configurations like noack policy,
> retry count, AMPDU control(disable/enable), RTSCTS control(enable/disable)
> and TX rate mask configurations.
> This will be useful for the driver which can supports data TID
> specific configuration rather than phy level configurations.
> Here NL80211_CMD_SET_TID_CONFIG added to support this operation by
> accepting TID configuration.
> This command can accept STA mac addreess to make the configuration
> station specific rather than applying to all the connected stations
> to the netdev.
> And this nested command configuration can accept multiple number of
> data TID specific configuration in a single command,
> enum ieee80211_tid_conf_mask used to notify the driver that which
> configuration got modified for the TID.
> 
> Tamizh chelvam (6):
>   nl80211: Add NL command to support TID speicific configurations
>   nl80211: Add support to configure TID specific retry configuration
>   nl80211: Add support to configure TID specific AMPDU configuration
>   nl80211: Add support to configure TID specific RTSCTS configuration
>   nl80211: Add support to configure TID specific txrate configuration
>   mac80211: Add api to support configuring TID specific configuration
> 
>  include/net/cfg80211.h       |   65 ++++++++++
>  include/net/mac80211.h       |   10 ++
>  include/uapi/linux/nl80211.h |  140 +++++++++++++++++++++
>  net/mac80211/cfg.c           |   56 +++++++++
>  net/mac80211/driver-ops.h    |   27 ++++
>  net/wireless/nl80211.c       |  287 +++++++++++++++++++++++++++++++++++++++---
>  net/wireless/rdev-ops.h      |   24 ++++
>  net/wireless/trace.h         |   37 ++++++
>  8 files changed, 629 insertions(+), 17 deletions(-)

Hello Tamizh,

Thanks for you fixes and patience! The last two versions look pretty
good to me.

Reviewed-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com>

Regards,
Sergey
Tamizh chelvam Jan. 21, 2020, 7:41 a.m. UTC | #2
On 2020-01-21 12:47, Sergey Matyukevich wrote:
>> Add infrastructure to support per TID configurations like noack 
>> policy,
>> retry count, AMPDU control(disable/enable), RTSCTS 
>> control(enable/disable)
>> and TX rate mask configurations.
>> This will be useful for the driver which can supports data TID
>> specific configuration rather than phy level configurations.
>> Here NL80211_CMD_SET_TID_CONFIG added to support this operation by
>> accepting TID configuration.
>> This command can accept STA mac addreess to make the configuration
>> station specific rather than applying to all the connected stations
>> to the netdev.
>> And this nested command configuration can accept multiple number of
>> data TID specific configuration in a single command,
>> enum ieee80211_tid_conf_mask used to notify the driver that which
>> configuration got modified for the TID.
>> 
>> Tamizh chelvam (6):
>>   nl80211: Add NL command to support TID speicific configurations
>>   nl80211: Add support to configure TID specific retry configuration
>>   nl80211: Add support to configure TID specific AMPDU configuration
>>   nl80211: Add support to configure TID specific RTSCTS configuration
>>   nl80211: Add support to configure TID specific txrate configuration
>>   mac80211: Add api to support configuring TID specific configuration
>> 
>>  include/net/cfg80211.h       |   65 ++++++++++
>>  include/net/mac80211.h       |   10 ++
>>  include/uapi/linux/nl80211.h |  140 +++++++++++++++++++++
>>  net/mac80211/cfg.c           |   56 +++++++++
>>  net/mac80211/driver-ops.h    |   27 ++++
>>  net/wireless/nl80211.c       |  287 
>> +++++++++++++++++++++++++++++++++++++++---
>>  net/wireless/rdev-ops.h      |   24 ++++
>>  net/wireless/trace.h         |   37 ++++++
>>  8 files changed, 629 insertions(+), 17 deletions(-)
> 
> Hello Tamizh,
> 
> Thanks for you fixes and patience! The last two versions look pretty
> good to me.
> 
> Reviewed-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com>
> 
Sergey,

Thanks for your continuous support in reviewing this patchset:)

Thanks,
Tamizh.
Johannes Berg Feb. 24, 2020, 12:58 p.m. UTC | #3
Hi,

I've finally applied most of this.

However, I made some significant changes to how the feature is
advertised to userspace to simplify the code; I also made some other
changes all over, please check the patch I inserted in the middle and
the rebase of the others.

I also didn't apply the last patch so please respin that with the new
code, but I don't like the fact that the driver needs to free the buffer
there - please find a different solution for that.

johannes
Johannes Berg Feb. 24, 2020, 1:07 p.m. UTC | #4
On Mon, 2020-02-24 at 13:58 +0100, Johannes Berg wrote:
> Hi,
> 
> I've finally applied most of this.
> 
> However, I made some significant changes to how the feature is
> advertised to userspace to simplify the code; I also made some other
> changes all over, please check the patch I inserted in the middle and
> the rebase of the others.
> 
> I also didn't apply the last patch 

Oops, I meant patch 5, the last of the new features.

johannes