All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.