From: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: "Luis R . Rodriguez" <rodrigue@qca.qualcomm.com>,
Jouni Malinen <jouni@qca.qualcomm.com>,
"John W . Linville" <linville@tuxdriver.com>,
<linux-wireless@vger.kernel.org>
Subject: Re: [RFC] P2P find offload
Date: Thu, 7 Mar 2013 16:10:37 +0200 [thread overview]
Message-ID: <1628850.y8u4o7KRXH@lx-vladimir> (raw)
In-Reply-To: <1362650938.8694.21.camel@jlt4.sipsolutions.net>
On Thursday, March 07, 2013 11:08:58 AM Johannes Berg wrote:
> > + int n_channels;
> > + /* Up to 4 social channels: 3 in 2.4GHz band + 1 in 60GHz band */
> > + struct ieee80211_channel *channels[4];
>
> Hmm, is 4 really a good limit? If you wanted to implement progressive
> search as part of the find, for example, you'd need more? It seems like
> a pretty arbitrary limit -- should it be advertised to userspace?
It is P2P spec. P2P find operates on social channels; there are 3 social
channels on 2.4 band and 1 on 60. No social channels on 5.2.
I can rework to do dynamic allocation, but does it worth the effort?
>
> > + * start_p2p_find: start P2P find phase
> > + * Parameters include IEs for probe/probe resp and channels to operate on
>
> The parameters?
>
> you could spell out "resp" ...
>
> Also needs a period (".") at the end or so, if the sentence runs on in
> the next line it doesn't make sense.
Yes, I'll fix this
>
> > + * Parameters are not retained after call, driver need to copy data if
> > + * it need it later.
> > + * stop_p2p_find: stop P2P find phase
> > + *
>
> don't need that blank line
Sure
>
> > + i = 0;
> > + if (attr_freq) {
>
> i can be inside the if()?
Moved to initializer
>
> > + /* user specified, bail out if channel not found */
> > + nla_for_each_nested(attr, attr_freq, tmp) {
> > + struct ieee80211_channel *chan;
> > +
> > + chan = ieee80211_get_channel(wiphy, nla_get_u32(attr));
> > +
> > + if (!chan)
> > + return -EINVAL;
> > +
> > + /* ignore disabled channels */
> > + if (chan->flags & IEEE80211_CHAN_DISABLED)
> > + continue;
>
> I think you should reject them, also if they have passive scan or
> various other flags set, I think?
Passive channel may be used as social for the listening; and may be
actively scanned if beacon found on the channel. Scan do not filter
based on these flags, I suppose same reason apply here.
>
> > + params.channels[i] = chan;
> > + i++;
> > + }
> > + if (!i)
> > + return -EINVAL;
> > + }
> > +
> > + params.n_channels = i;
>
> if you also move that assignment
>
> > + i = 0;
>
> Not needed.
Sure
>
> > + attr = info->attrs[NL80211_ATTR_IE];
> > + if (attr) {
>
> This is not typically done in nl80211, I'd prefer not having the
> variable I think.
It is to reasonable fit code into 80 columns. Let me know if this
argument don't play for you, I'll revert to variables.
>
> > + msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
> > + if (!msg)
> > + return -ENOMEM;
> > +
> > + hdr = nl80211hdr_put(msg, info->snd_portid, info->snd_seq, 0,
> > + NL80211_CMD_START_P2P_FIND);
>
> Err? What's the value of sending a reply back here? It would seem maybe
> appropriate to send one when it *actually* started, but you haven't
> implemented that.
>
> > + hdr = nl80211hdr_put(msg, info->snd_portid, info->snd_seq, 0,
> > + NL80211_CMD_STOP_P2P_FIND);
>
> same here ...
Yes, agree. I'll add indications, like ROC do.
>
> You're also entirely missing feature advertising, so userspace can only
> guess whether it's supported or not ...
Will do
>Also ...
>
> I really don't think this should be supported on IBSS/AP/... netdevs.
> Seems like the only reasonable ones are P2P_DEVICE and STATION, although
> it would probably be good to have feature advertising for both, or
> document that if P2P_DEVICE is supported at all then this doesn't have
> to be supported on STATION interfaces, or so.
Yes, sure. will add checks
>
> And then ... should this really be allowed to be concurrent with
> scanning/remain-on-channel? You haven't done any checking or
> documentation, so users and driver authors are left to guess.
I check for scan, but not for ROC. Btw, scan also don't check for ROC.
And, ROC don't check for scan.
I'll document that driver should do all checks for ROC/scan.
>
> johannes
>
Thanks, Vladimir
next prev parent reply other threads:[~2013-03-07 14:11 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-27 12:24 [RFC] P2P find offload Vladimir Kondratiev
2013-03-04 15:47 ` Johannes Berg
2013-03-07 7:10 ` Vladimir Kondratiev
2013-03-07 9:31 ` Vladimir Kondratiev
2013-03-07 10:08 ` Johannes Berg
2013-03-07 10:11 ` Johannes Berg
2013-03-07 14:10 ` Vladimir Kondratiev [this message]
2013-03-10 15:43 ` Vladimir Kondratiev
2013-03-15 18:40 ` Johannes Berg
2013-03-17 8:56 ` Vladimir Kondratiev
2013-03-18 20:31 ` Johannes Berg
[not found] ` <3959922.dEpYdEMVAq@lx-vladimir>
2013-03-19 20:27 ` Johannes Berg
2013-03-15 15:51 ` Johannes Berg
2013-03-07 10:01 ` Johannes Berg
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=1628850.y8u4o7KRXH@lx-vladimir \
--to=qca_vkondrat@qca.qualcomm.com \
--cc=johannes@sipsolutions.net \
--cc=jouni@qca.qualcomm.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=rodrigue@qca.qualcomm.com \
/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.