linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: vthiagar@codeaurora.org
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless@vger.kernel.org
Subject: Re: [RFC 1/4] mac80211: Add NoAck policy functionality offload infrastructure
Date: Wed, 28 Mar 2018 11:05:33 +0530	[thread overview]
Message-ID: <5b341b2146fa9e0cf79fd9a6774a871f@codeaurora.org> (raw)
In-Reply-To: <1522155185.3050.7.camel@sipsolutions.net>

On 2018-03-27 18:23, Johannes Berg wrote:
> On Tue, 2018-03-27 at 14:12 +0530, Vasanthakumar Thiagarajan wrote:
>> 
>> + * @IEEE80211_HW_SUPPORTS_NOACK_POLICY: Hardware (or driver) manages 
>> noack
>> + *	policy handling. Hardware (or driver) takes care of setting
>> + *	noack policy in the qos header and does not wait for the ack based
>> + *	on the noack TID map. Driver advertising this support must 
>> implement
>> + *	callback @set_noack_tid_bitmap to receive the user configured 
>> noack TID
>> + *	bitmap.
> 
> Do you really need the ops method and the flag?

Ath10k would send NoAck policy configuration on control path 
configuration.
It seems a new ops might be appropriate. Perhaps the ops alone is 
sufficient
to know the capability?

> 
>> +	int (*set_noack_tid_bitmap)(struct ieee80211_hw *hw,
>> +				    struct ieee80211_vif *vif, u8 noack_map);
> 
> You'd safe some effort by reordering the nl80211 patch first, so you 
> can
> immediately introduce it with per-peer capability here.

Sure.

> 
>> +++ b/net/mac80211/cfg.c
>> @@ -347,9 +347,15 @@ static int ieee80211_set_noack_map(struct wiphy 
>> *wiphy,
>> 
>>  	sdata->noack_map = noack_map;
>> 
>> -	ieee80211_check_fast_xmit_iface(sdata);
>> +	if (!ieee80211_hw_check(&sdata->local->hw, SUPPORTS_NOACK_POLICY)) {
>> +		ieee80211_check_fast_xmit_iface(sdata);
>> +		return 0;
>> +	}
>> 
>> -	return 0;
>> +	if (!ieee80211_sdata_running(sdata))
>> +		return 0;
>> +
>> +	return drv_set_noack_tid_bitmap(sdata->local, sdata, noack_map);
> 
> This doesn't seem right - you should do the fast xmit checks even if
> calling the driver, no? And in fact, fast xmit should be permitted when
> the noack is offloaded, so you shouldn't set sdata->noack_map in the
> offloaded case at all.
> 
>> --- a/net/mac80211/iface.c
>> +++ b/net/mac80211/iface.c
>> @@ -631,6 +631,10 @@ int ieee80211_do_open(struct wireless_dev *wdev, 
>> bool coming_up)
>>  				ieee80211_vif_type_p2p(&sdata->vif));
>>  			if (res)
>>  				goto err_del_interface;
>> +
>> +			if (sdata->noack_map)
>> +				drv_set_noack_tid_bitmap(local, sdata,
>> +							 sdata->noack_map);
> 
> Or maybe you do need to store it for this reason, but need to ignore it
> for the purposes of fast-xmit if SUPPORTS_NOACK_POLICY is set.
> 
>> +++ b/net/mac80211/tx.c
>> @@ -2817,7 +2817,8 @@ void ieee80211_check_fast_xmit(struct sta_info 
>> *sta)
>>  	    test_sta_flag(sta, WLAN_STA_CLEAR_PS_FILT))
>>  		goto out;
>> 
>> -	if (sdata->noack_map)
>> +	if (sdata->noack_map &&
>> +	    !ieee80211_hw_check(&local->hw, SUPPORTS_NOACK_POLICY))
>>  		goto out;
> 
> Ah, and you do :-)
> 
> And then maybe you're indeed right and don't need to call the fast xmit
> check in that place since it wouldn't have any effect either way.

Right.

Vasanth

  reply	other threads:[~2018-03-28  5:35 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-27  8:42 [RFC 0/4] wireless: Per-sta NoAck and offload support Vasanthakumar Thiagarajan
2018-03-27  8:42 ` [RFC 1/4] mac80211: Add NoAck policy functionality offload infrastructure Vasanthakumar Thiagarajan
2018-03-27 12:53   ` Johannes Berg
2018-03-28  5:35     ` vthiagar [this message]
2018-03-27  8:42 ` [RFC 2/4] nl80211/mac80211: Extend NoAck policy command with peer MAC address Vasanthakumar Thiagarajan
2018-03-27 12:47   ` Johannes Berg
2018-03-28  4:54     ` vthiagar
2018-03-28  8:06       ` Johannes Berg
2018-03-28  8:50         ` vthiagar
2018-03-28  8:52           ` Johannes Berg
2018-03-27  8:42 ` [RFC 3/4] mac80211: Apply per-peer NoAck tid bitmap configuration Vasanthakumar Thiagarajan
2018-03-27 12:54   ` Johannes Berg
2018-03-28  5:43     ` vthiagar
2018-03-28  8:04       ` Johannes Berg
2018-03-29  5:31   ` vthiagar
2018-03-27  8:42 ` [RFC 4/4] mac80211: Advertise per-peer NoAck policy support Vasanthakumar Thiagarajan
2018-03-27 16:48 ` [RFC 0/4] wireless: Per-sta NoAck and offload support Steve deRosier
2018-03-28  6:09   ` vthiagar
2018-03-28  7:37     ` Arend van Spriel
2018-03-28  7:59       ` vthiagar
2018-03-28  8:03         ` Johannes Berg
2018-03-28 15:12     ` Steve deRosier

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=5b341b2146fa9e0cf79fd9a6774a871f@codeaurora.org \
    --to=vthiagar@codeaurora.org \
    --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).