Hi Johannes,
Let me start a separate thread on this:
Also, while we're on this subject. Should the kernel auto-manage
the LINKMODE and OPERSTATE flags? It would seem that it already has
the information to do so, and having userspace manage this just
introduces another source of latency / possibility of race
conditions, etc.
I'm not convinced that it does have that information in all cases, and
I don't see how that causes race conditions or much latency, since for
client mode userspace would probably just set that together with the
NL80211_STA_FLAG_AUTHORIZED flag?
Well right there is a race condition. You have 2 sockets and both
conveying the same information?
If we can optimize away an extra kernel trap, isn't that worthwhile
thing to do?
The most common case is issuing Dormant + UP after setting keys &
issuing the set_station command. Isn't setting STA_FLAG_AUTHORIZED and
operstate to IF_OPER_UP in effect equivalent?
Oh, by the way, some drivers don't implement set_station for normal
links (e.g. setting STA_FLAG_AUTHORIZED returns an error), should they?
The only other cases where we mess with setting linkmode I can think of are:
1. After connecting to an open network
2. After a fast transition
For 1, it would seem that the kernel can easily infer that the
IF_OPER_UP flag should be tweaked.
For 2, this needs to be done after the new TK is installed. Can we
combine these steps somehow?
Regards,
-Denis