On Fri, Mar 22, 2019 at 09:17:50PM -0400, Johan Huldtgren wrote: > hello, > > i recently got a Thinkpad X1 Carbon gen6. I'm seeing something with > regard to wireless that strike me as at least slightly unexpected. > I enabled debug on the interface but did not recompile my kernel with > IWM_DEBUG, if that will help let me know. > > tl;dr > > 1) If the AP changes channel iwm0 does not always detect this and > recover, manual intervention is needed
At present the iwm driver is relying on the firmware to signal that it is missing beacons from the AP. This was first implemented and tested on a 7265 device. I don't know if this mechanism works on 8265 devices. I have seen situations where the firmware is failing to report an event even though the AP has gone away. I haven't dug into it yet. A long-term fix would be to move this check away from firmware into our opw net80211 wireless code. The stack is already receiving and checking beacons for other reasons, so it would be able to keep track of the validity of current APs connection, if someone added the code to do so. If the current code isn't working for you, I blame the magic black box Intel firwmare for this. However, see below... > 2) With a trunk setup after changing channels iwm0 is assigned a > bogus IP. > > Details on issue #1: > > iwm0 and em0 are in a trunk failover configuration. > > $ cat /etc/hostname.iwm0 > join mynet wpa wpaakms 802.1x You are using 802.1x, which means wpa_supplicant from the ports tree is involved. I never use 802.1x myself, but I supose you'll need to manually kick wpa_supplicant somehow to regain a connection when the AP changes channel. Until proper 802.1x support arrives in the base system (if ever), automatic roaming on OpenBSD will only work with WPA2 PSK. > debug > -powersave You can remove the -powersave option. It does nothing. > I can see that I'm joined to channel 5, but the AP is now using > channel 8, so a quick change: > > $ doas ifconfig iwm0 -chan 5 chan 8 The -chan option does not take an argument, so ifconfig will interpret '5' as an address in this command. Furthermore, you are hard-coding channel 8, so the wireless stack will from now on never use a channel other than 8 until you run ifconfig iwm0 -chan. You are overriding automatic channel selection and this might well be the reasons why you are seeing a roaming problem in the first place. > Details on issue #2: > inet 0.0.0.8 netmask 0xff000000 broadcast 0.255.255.255 > > Note how it changed to end in 8 now. This seems to have no adverse > effect, but it doesn't seem correct. The -chan option does not take an argument.
