Search Linux Wireless

Re: [PATCH 3/3] cfg80211: Specify the reason for connect timeout

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 11, 2017 at 02:31:31PM +0100, Johannes Berg wrote:
> > + * @timeout_reason: reason for connection timeout. This is used when
> > the
> > + *	connection fails due to a timeout instead of an explicit
> > rejection from
> > + *	the AP. 0 (NL80211_CONNECT_TIMEOUT_UNSPECIFIED) is used
> > for other cases.
> 
> I think this description is misleading - one could easily understand
> "for other cases" to indicate for the cases that the AP did explicitly
> reject it, but that's obviously not true.

Well, the expectation here really was that the reason for the timeout
would be known if there was a timeout and the unspecified value would be
used in all other cases, i.e., in cases where the AP did indeed
explicitly reject the connection.

I guess there might be a driver where the connect request goes into
firmware implementation and the driver would not know whether the
operation failed due to authentication frame or association frame
timeout out.. Implementation itself would still be fine, but I agree
that it might be a bit confusing the try to interpret the description
here on what the driver should do.

> Perhaps that could be reworded, to say it's used when it's not known,
> or such? I'd not indicate the value (0) either, just specify the name,
> and put a % in front to get better formatting for it please.

Sure, I can say that NL80211_TIMEOUT_UNSPECIFIED is used when the reason
for the timeout is not known or there was an explicit rejection instead
of a timeout.

That said, cfg80211_connect_bss() is really currently documented to be
used only for the success case just like cfg80211_connect_result(). In
other words, if a driver were to call cfg80211_connect_bss(), it should
really always specify NL80211_TIMEOUT_UNSPECIFIED here based on the
current documented use. All failure would then need to be reported with
cfg80211_connect_timeout() for the timeout case or by not following the
documentation and calling cfg80211_connect_result() or
cfg80211_connect_bss() for rejection cases. That said, the documentation
for the connect() callback function does describe the failure case
behavior correctly. I think I cleaned up that at some point, but did not
update the function documentation at the same time.

So it looks like some additional cleanup would be needed to make the
documentation actually match what we expect the driver to do for
rejection cases.. I'd like to leave it out from this specific patch and
address the cleanup of existing failure case description in a separate
patch.

> > +			     NL80211_TIMEOUT_UNSPECIFIED);
> 
> NL80211_CONNECT_TIMEOUT_UNSPECIFIED in the comment is wrong then.

Yeah, these got renamed at some point and looks like that one was
missed.

-- 
Jouni Malinen                                            PGP id EFC895FA




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux