linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Arend van Spriel" <arend@broadcom.com>
To: "Ben Greear" <greearb@candelatech.com>
Cc: "Johannes Berg" <johannes@sipsolutions.net>,
	linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [RFC V4] cfg80211: introduce critical protocol indication from user-space
Date: Fri, 5 Apr 2013 21:19:00 +0200	[thread overview]
Message-ID: <515F23A4.3040906@broadcom.com> (raw)
In-Reply-To: <515ED9BF.20203@candelatech.com>

On 04/05/2013 04:03 PM, Ben Greear wrote:
> On 04/05/2013 06:25 AM, Arend van Spriel wrote:
>> Some protocols need a more reliable connection to complete
>> successful in reasonable time. This patch adds a user-space
>> API to indicate the wireless driver that a critical protocol
>> is about to commence and when it is done, using nl80211 primitives
>> NL80211_CMD_CRIT_PROTOCOL_START and NL80211_CRIT_PROTOCOL_STOP.
>>
>> There can be only on critical protocol session started per
>> registered cfg80211 device. The driver can support this by
>> implementing the cfg80211 callbacks .crit_proto_start() and
>> .crit_proto_stop(). Examples of protocols that can benefit from
>> this are DHCP, EAPOL, APIPA. Exactly how the link can/should be
>> made more reliable is up to the driver. Things to consider are
>> avoid scanning, no multi-channel operations, and alter coexistence
>> schemes.
>>
>> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
>> Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
>> Signed-off-by: Arend van Spriel <arend@broadcom.com>
>> ---

>> +
>> +    duration = max_t(u16, duration, NL80211_MAX_CRIT_PROT_DURATION);
>
> Maybe that should be min_t(....) ?

Yes, definitely.

>> cfg80211_registered_device *rdev,
>> +                    struct wireless_dev *wdev,
>> +                    enum nl80211_crit_proto_id protocol,
>> +                    u16 duration)
>> +{
>> +    int ret;
>> +
>> +    trace_rdev_crit_proto_start(&rdev->wiphy, wdev, protocol, duration);
>> +    ret = rdev->ops->crit_proto_start(&rdev->wiphy, wdev,
>> +                      protocol, duration);
>> +    rdev->crit_proto_started = !ret;
>> +    trace_rdev_return_int(&rdev->wiphy, ret);
>> +    return ret;
>> +}
>> +
>> +static inline int rdev_crit_proto_stop(struct
>> cfg80211_registered_device *rdev,
>> +                       struct wireless_dev *wdev)
>> +{
>> +    int ret = 0;
>> +
>> +    trace_rdev_crit_proto_stop(&rdev->wiphy, wdev);
>> +    if (rdev->crit_proto_started) {
>> +        ret = rdev->ops->crit_proto_stop(&rdev->wiphy, wdev);
>> +        rdev->crit_proto_started = ret != 0;
>
> Maybe:  rdev->crit_proto_started = !ret;

Maybe not. If ret == 0, crit_proto_started should be false. If ret != 0, 
ie. crit_proto_stop() failed, it should remain true. It is a bit of 
reverse logic. I could change it to !!ret or make it more clear using 
!ret ? false : true. Another idea is changing the return type of 
crit_proto_stop() to void and always set crit_proto_started to false.

Gr. AvS


  reply	other threads:[~2013-04-05 19:19 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-05 13:25 [RFC V4] cfg80211: introduce critical protocol indication from user-space Arend van Spriel
2013-04-05 14:03 ` Ben Greear
2013-04-05 19:19   ` Arend van Spriel [this message]
2013-04-05 19:29     ` Ben Greear
2013-04-05 20:50       ` Arend van Spriel

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=515F23A4.3040906@broadcom.com \
    --to=arend@broadcom.com \
    --cc=greearb@candelatech.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).