On Mon, 2023-05-01 at 09:59 -0700, Muna Sinada wrote: > Add option for user space to enable driver to dynamically update MU-EDCA > parameters. > > The updated MU-EDCA parameters from driver are part of an AP mode feature > where firmware determines better MU-EDCA parameters based on channel > conditions. The updated parameters are used and reported to user space > to reflect in AP management frames. These dynamic parameter updates > are offloaded to firmware for better user experience, thus details on > algorithm are not provided. This is a driver specific feature, thus > no spec references. > > Signed-off-by: Muna Sinada <quic_msinada@xxxxxxxxxxx> > --- > v6: no change > > v5: no change > > v4: newly created patch in response to review comment to add opt in > for user for this feature > --- > include/net/cfg80211.h | 3 +++ > include/uapi/linux/nl80211.h | 5 +++++ > net/wireless/nl80211.c | 5 +++++ > 3 files changed, 13 insertions(+) > > diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h > index 9e04f69712b1..e56af095828e 100644 > --- a/include/net/cfg80211.h > +++ b/include/net/cfg80211.h > @@ -1359,6 +1359,8 @@ struct cfg80211_unsol_bcast_probe_resp { > * @punct_bitmap: Preamble puncturing bitmap. Each bit represents > * a 20 MHz channel, lowest bit corresponding to the lowest channel. > * Bit set to 1 indicates that the channel is punctured. > + * @dyn_muedca_enable: enable/disable driver control of dynamically update > + * MU-EDCA parameters please use tabs for indentation > */ > struct cfg80211_ap_settings { > struct cfg80211_chan_def chandef; > @@ -1394,6 +1396,7 @@ struct cfg80211_ap_settings { > struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp; > struct cfg80211_mbssid_config mbssid_config; > u16 punct_bitmap; > + bool dyn_muedca_enable; > }; > > /** > diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h > index cf4fb981e131..e68169130e7e 100644 > --- a/include/uapi/linux/nl80211.h > +++ b/include/uapi/linux/nl80211.h > @@ -2805,6 +2805,9 @@ enum nl80211_commands { > * index. If the userspace includes more RNR elements than number of > * MBSSID elements then these will be added in every EMA beacon. > * > + * @NL80211_ATTR_DYN_MUEDCA_ENABLE: Flag attribute to indicate user space has > + * enabled Driver control of dynamically updating MU-EDCA parameters. dito > @@ -6156,6 +6157,10 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info) > goto out_unlock; > } > > + if (info->attrs[NL80211_ATTR_DYN_MUEDCA_ENABLE]) > + params->dyn_muedca_enable = > + nla_get_flag(info->attrs[NL80211_ATTR_DYN_MUEDCA_ENABLE]); > Should it be possible to dynamically change this configuration? See also https://patchwork.kernel.org/project/linux-wireless/patch/20230727174100.11721-4-quic_alokad@xxxxxxxxxxx/ where this gets used differently later. I'll look at that next. You're both @quicinc so you can talk to each other I hope ;-) johannes