Can OpenBSD do mixed b/g/n mode in hostap?

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Can OpenBSD do mixed b/g/n mode in hostap?

Tom Murphy-7
Hi,

  I was wondering if OpenBSD had a way to do mixed b/g/n mode with hostap?
Recently 802.11n support was added for athn(4). I have 4 802.11n devices,
but 1 device which only does 802.11g. If I use 'mode 11n' or even -mode,
the hostap is in 802.11n-only mode and the 802.11g device cannot connect.
Is it possible to do a mixed mode?

  Also, is powersave working in hostap mode yet?

 Thanks,
  Tom

athn0 at pci5 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 2 int 16
athn0: AR9280 rev 2 (2T2R), ROM rev 22, address xx:xx:xx:xx:xx:xx

Reply | Threaded
Open this post in threaded view
|

Re: Can OpenBSD do mixed b/g/n mode in hostap?

Stefan Sperling-5
On Sun, Jan 15, 2017 at 01:53:41PM +0000, Tom Murphy wrote:

> Hi,
>
>   I was wondering if OpenBSD had a way to do mixed b/g/n mode with hostap?
> Recently 802.11n support was added for athn(4). I have 4 802.11n devices,
> but 1 device which only does 802.11g. If I use 'mode 11n' or even -mode,
> the hostap is in 802.11n-only mode and the 802.11g device cannot connect.
> Is it possible to do a mixed mode?
>
>   Also, is powersave working in hostap mode yet?
>
>  Thanks,
>   Tom
>
> athn0 at pci5 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 2 int 16
> athn0: AR9280 rev 2 (2T2R), ROM rev 22, address xx:xx:xx:xx:xx:xx

I did test an OpenBSD 11g-only device against my 11n AP. It worked.
We always have compat with 11a/b/g enabled.
There is no way to make OpenBSD run as 11n-only as far as I know.
Perhaps your 11g device does not support WPA2?
Try again after 'ifconfig athn0 wpaprotos wpa1,wpa2', and understand
that running this command means your AP is using broken crypto.

Regarding your second question, yes, athn(4) does support power saving.

Reply | Threaded
Open this post in threaded view
|

Re: Can OpenBSD do mixed b/g/n mode in hostap?

Tom Murphy-7
On 15/01/17 20:13, Stefan Sperling wrote:

> On Sun, Jan 15, 2017 at 01:53:41PM +0000, Tom Murphy wrote:
>> Hi,
>>
>>   I was wondering if OpenBSD had a way to do mixed b/g/n mode with hostap?
>> Recently 802.11n support was added for athn(4). I have 4 802.11n devices,
>> but 1 device which only does 802.11g. If I use 'mode 11n' or even -mode,
>> the hostap is in 802.11n-only mode and the 802.11g device cannot connect.
>> Is it possible to do a mixed mode?
>>
>>   Also, is powersave working in hostap mode yet?
>>
>>  Thanks,
>>   Tom
>>
>> athn0 at pci5 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 2 int 16
>> athn0: AR9280 rev 2 (2T2R), ROM rev 22, address xx:xx:xx:xx:xx:xx
>
> I did test an OpenBSD 11g-only device against my 11n AP. It worked.
> We always have compat with 11a/b/g enabled.
> There is no way to make OpenBSD run as 11n-only as far as I know.
> Perhaps your 11g device does not support WPA2?
> Try again after 'ifconfig athn0 wpaprotos wpa1,wpa2', and understand
> that running this command means your AP is using broken crypto.
>
> Regarding your second question, yes, athn(4) does support power saving.
>

Hi Stefan,

  I've done some more testing. I managed to get 802.11n working in
hostap mode for a while but then it crashed (not a kernel panic but the
driver dropped into ddb mode). Not sure if these help:

ddb{0}> trace
ieee80211_input_ba() at ieee80211_input_ba+0x1af
ar5008_rx_intr() at ar5008_rx_intr+0x2de
ar5008_intr() at ar5008_intr+0x22d
intr_handler() at intr_handler+0x67
Xintr_ioapic_level23() at Xintr_ioapic_level23+0xcd
--- interrupt ---
acpicpu_idle() at acpicpu_idle+0x13c
cpu_idle_cycle() at cpu_idle_cycle+0x10
end trace frame: 0x0, count: -7

ddb{0}> show panic
the kernel did not panic

ddb{0}> show registers
rdi               0xffff800000a10840
rsi               0xffff800000a10080
rbp               0xffff80002202cc78
rbx               0xffff800000a10808
rdx                                0
rcx                            0x588    hib_hlt_real+0x283
rax                            0x588    hib_hlt_real+0x283
r8                0xffff800000a10870
r9                              0x80    mptramp_gdt32_desc+0x5e
r10               0xffff800000a10000
r11               0xffffff00099ca002
r12                                0
r13               0xffff800000a10080
r14                            0x8bb    hib_hlt_real+0x5b6
r15               0xffff80000071e048
rip               0xffffffff81235a9f    ieee80211_input_ba+0x1af
cs                               0x8
rflags                       0x10206    mptramp_longmode+0x15e
rsp               0xffff80002202cc18
ss                              0x10
ieee80211_input_ba+0x1af:       cmpq    $0,0(%rax)

hostname.athn0:

inet 10.0.0.1 255.255.255.0 NONE media autoselect mediaopt hostap nwid
MyHome
wpa wpakey 'redacted' description "Wifi AP"

ifconfig athn0:

athn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 04:f0:21:14:c5:07
        description: Wifi AP
        index 4 priority 4 llprio 3
        groups: wlan
        media: IEEE802.11 autoselect (autoselect hostap)
        status: active
        ieee80211: nwid MyHome chan 1 bssid 04:f0:21:14:c5:07 wpakey
0xdeadbeef


dmesg:
OpenBSD 6.0-current (GENERIC.MP) #134: Fri Jan 13 07:10:19 MST 2017
    [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
RTC BIOS diagnostic error
ff<clock_battery,ROM_cksum,config_unit,memory_size,fixed_disk,invalid_time>
real mem = 4246003712 (4049MB)
avail mem = 4112740352 (3922MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xdf16d820 (7 entries)
bios0: vendor coreboot version "4.0" date 09/08/2014
bios0: PC Engines APU
acpi0 at bios0: rev 0
acpi0: sleep states S0 S1 S3 S4 S5
acpi0: tables DSDT FACP SPCR HPET APIC HEST SSDT SSDT SSDT
acpi0: wakeup devices AGPB(S4) HDMI(S4) PBR4(S4) PBR5(S4) PBR6(S4)
PBR7(S4) PE20(S4) PE21(S4) PE22(S4) PE23(S4) PIBR(S4) UOH1(S3) UOH2(S3)
UOH3(S3) UOH4(S3) UOH5(S3) [...]
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpihpet0 at acpi0: 14318180 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: AMD G-T40E Processor, 1000.14 MHz
cpu0:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,SSSE3,CX16,POPCNT,NXE,MMXX,FFXSR,PAGE1GB,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,IBS,SKINIT,ITSC
cpu0: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 512KB
64b/line 16-way L2 cache
cpu0: 8 4MB entries fully associative
cpu0: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu0: TSC frequency 1000140300 Hz
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 200MHz
cpu0: mwait min=64, max=64, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: AMD G-T40E Processor, 1000.00 MHz
cpu1:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,SSSE3,CX16,POPCNT,NXE,MMXX,FFXSR,PAGE1GB,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,IBS,SKINIT,ITSC
cpu1: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 512KB
64b/line 16-way L2 cache
cpu1: 8 4MB entries fully associative
cpu1: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu1: smt 0, core 1, package 0
ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 21, 24 pins
acpiprt0 at acpi0: bus -1 (AGPB)
acpiprt1 at acpi0: bus -1 (HDMI)
acpiprt2 at acpi0: bus 1 (PBR4)
acpiprt3 at acpi0: bus 2 (PBR5)
acpiprt4 at acpi0: bus 3 (PBR6)
acpiprt5 at acpi0: bus -1 (PBR7)
acpiprt6 at acpi0: bus 5 (PE20)
acpiprt7 at acpi0: bus -1 (PE21)
acpiprt8 at acpi0: bus -1 (PE22)
acpiprt9 at acpi0: bus -1 (PE23)
acpiprt10 at acpi0: bus 0 (PCI0)
acpiprt11 at acpi0: bus 4 (PIBR)
acpicpu0 at acpi0: C2(0@100 io@0x841), C1(@1 halt!), PSS
acpicpu1 at acpi0: C2(0@100 io@0x841), C1(@1 halt!), PSS
acpibtn0 at acpi0: PWRB
cpu0: 1000 MHz: speeds: 1000 800 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "AMD AMD64 14h Host" rev 0x00
ppb0 at pci0 dev 4 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi
pci1 at ppb0 bus 1
re0 at pci1 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E
(0x2c00), msi, address 00:0d:b9:3f:76:18
rgephy0 at re0 phy 7: RTL8169S/8110S/8211 PHY, rev. 4
ppb1 at pci0 dev 5 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi
pci2 at ppb1 bus 2
re1 at pci2 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E
(0x2c00), msi, address 00:0d:b9:3f:76:19
rgephy1 at re1 phy 7: RTL8169S/8110S/8211 PHY, rev. 4
ppb2 at pci0 dev 6 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi
pci3 at ppb2 bus 3
re2 at pci3 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E
(0x2c00), msi, address 00:0d:b9:3f:76:1a
rgephy2 at re2 phy 7: RTL8169S/8110S/8211 PHY, rev. 4
ahci0 at pci0 dev 17 function 0 "ATI SBx00 SATA" rev 0x40: apic 2 int
19, AHCI 1.2
ahci0: port 0: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, KINGSTON SMS200S, 605A> SCSI3
0/direct fixed naa.50026b725a04c0e2
sd0: 28626MB, 512 bytes/sector, 58626288 sectors, thin
ohci0 at pci0 dev 18 function 0 "ATI SB700 USB" rev 0x00: apic 2 int 18,
version 1.0, legacy support
ehci0 at pci0 dev 18 function 2 "ATI SB700 USB2" rev 0x00: apic 2 int 17
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 configuration 1 interface 0 "ATI EHCI root hub" rev
2.00/1.00 addr 1
ohci1 at pci0 dev 19 function 0 "ATI SB700 USB" rev 0x00: apic 2 int 18,
version 1.0, legacy support
ehci1 at pci0 dev 19 function 2 "ATI SB700 USB2" rev 0x00: apic 2 int 17
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 configuration 1 interface 0 "ATI EHCI root hub" rev
2.00/1.00 addr 1
piixpm0 at pci0 dev 20 function 0 "ATI SBx00 SMBus" rev 0x42: polling
iic0 at piixpm0
pcib0 at pci0 dev 20 function 3 "ATI SB700 ISA" rev 0x40
ppb3 at pci0 dev 20 function 4 "ATI SB600 PCI" rev 0x40
pci4 at ppb3 bus 4
ohci2 at pci0 dev 20 function 5 "ATI SB700 USB" rev 0x00: apic 2 int 18,
version 1.0, legacy support
ppb4 at pci0 dev 21 function 0 "ATI SB800 PCIE" rev 0x00
pci5 at ppb4 bus 5
athn0 at pci5 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 2 int 16
athn0: AR9280 rev 2 (2T2R), ROM rev 22, address 04:f0:21:14:c5:07
ohci3 at pci0 dev 22 function 0 "ATI SB700 USB" rev 0x00: apic 2 int 18,
version 1.0, legacy support
ehci2 at pci0 dev 22 function 2 "ATI SB700 USB2" rev 0x00: apic 2 int 17
usb2 at ehci2: USB revision 2.0
uhub2 at usb2 configuration 1 interface 0 "ATI EHCI root hub" rev
2.00/1.00 addr 1
pchb1 at pci0 dev 24 function 0 "AMD AMD64 14h Link Cfg" rev 0x43
pchb2 at pci0 dev 24 function 1 "AMD AMD64 14h Address Map" rev 0x00
pchb3 at pci0 dev 24 function 2 "AMD AMD64 14h DRAM Cfg" rev 0x00
km0 at pci0 dev 24 function 3 "AMD AMD64 14h Misc Cfg" rev 0x00
pchb4 at pci0 dev 24 function 4 "AMD AMD64 14h CPU Power" rev 0x00
pchb5 at pci0 dev 24 function 5 "AMD AMD64 14h Reserved" rev 0x00
pchb6 at pci0 dev 24 function 6 "AMD AMD64 14h NB Power" rev 0x00
pchb7 at pci0 dev 24 function 7 "AMD AMD64 14h Reserved" rev 0x00
usb3 at ohci0: USB revision 1.0
uhub3 at usb3 configuration 1 interface 0 "ATI OHCI root hub" rev
1.00/1.00 addr 1
usb4 at ohci1: USB revision 1.0
uhub4 at usb4 configuration 1 interface 0 "ATI OHCI root hub" rev
1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
wbsio0 at isa0 port 0x2e/2: NCT5104D rev 0x52
usb5 at ohci2: USB revision 1.0
uhub5 at usb5 configuration 1 interface 0 "ATI OHCI root hub" rev
1.00/1.00 addr 1
usb6 at ohci3: USB revision 1.0
uhub6 at usb6 configuration 1 interface 0 "ATI OHCI root hub" rev
1.00/1.00 addr 1
vmm at mainbus0 not configured
umass0 at uhub2 port 1 configuration 1 interface 0 "Generic Flash Card
Reader/Writer" rev 2.01/1.00 addr 2
umass0: using SCSI over Bulk-Only
scsibus2 at umass0: 2 targets, initiator 0
sd1 at scsibus2 targ 1 lun 0: <Multiple, Card Reader, 1.00> SCSI2
0/direct removable serial.058f6366058F63666485
vscsi0 at root
scsibus3 at vscsi0: 256 targets
softraid0 at root
scsibus4 at softraid0: 256 targets
root on sd0a (6e7365a9c6f20826.a) swap on sd0b dump on sd0b


Kind regards,
Tom

Reply | Threaded
Open this post in threaded view
|

Re: Can OpenBSD do mixed b/g/n mode in hostap?

Stefan Sperling-5
On Tue, Jan 24, 2017 at 09:00:26PM +0000, Tom Murphy wrote:

> Hi Stefan,
>
>   I've done some more testing. I managed to get 802.11n working in
> hostap mode for a while but then it crashed (not a kernel panic but the
> driver dropped into ddb mode). Not sure if these help:
>
> ddb{0}> trace
> ieee80211_input_ba() at ieee80211_input_ba+0x1af
> ar5008_rx_intr() at ar5008_rx_intr+0x2de
> ar5008_intr() at ar5008_intr+0x22d
> intr_handler() at intr_handler+0x67
> Xintr_ioapic_level23() at Xintr_ioapic_level23+0xcd
> --- interrupt ---
> acpicpu_idle() at acpicpu_idle+0x13c
> cpu_idle_cycle() at cpu_idle_cycle+0x10
> end trace frame: 0x0, count: -7

PLease update to the latest snapshot and try again.
This particular crash should be fixed as of this commit:
https://marc.info/?l=openbsd-cvs&m=148455934902163&w=2

Reply | Threaded
Open this post in threaded view
|

Re: Can OpenBSD do mixed b/g/n mode in hostap?

Tom Murphy-7
Hi Stefan,

  I upgraded my kernel to 24 January 2017 and every once in a while I get:

  athn0: device timeout

  I've gotten 3 of these in 12 days. Running:

  ifconfig athn0 down; sh /etc/netstart athn0

  fixes this, but not had this on mode 11g. Could it be something in the 11n
hostap code?

  Thanks,
  Tom

On Wed, Jan 25, 2017 at 10:39:08AM +0100, Stefan Sperling wrote:

> On Tue, Jan 24, 2017 at 09:00:26PM +0000, Tom Murphy wrote:
> > Hi Stefan,
> >
> >   I've done some more testing. I managed to get 802.11n working in
> > hostap mode for a while but then it crashed (not a kernel panic but the
> > driver dropped into ddb mode). Not sure if these help:
> >
> > ddb{0}> trace
> > ieee80211_input_ba() at ieee80211_input_ba+0x1af
> > ar5008_rx_intr() at ar5008_rx_intr+0x2de
> > ar5008_intr() at ar5008_intr+0x22d
> > intr_handler() at intr_handler+0x67
> > Xintr_ioapic_level23() at Xintr_ioapic_level23+0xcd
> > --- interrupt ---
> > acpicpu_idle() at acpicpu_idle+0x13c
> > cpu_idle_cycle() at cpu_idle_cycle+0x10
> > end trace frame: 0x0, count: -7
>
> PLease update to the latest snapshot and try again.
> This particular crash should be fixed as of this commit:
> https://marc.info/?l=openbsd-cvs&m=148455934902163&w=2

Reply | Threaded
Open this post in threaded view
|

Re: Can OpenBSD do mixed b/g/n mode in hostap?

Stefan Sperling-5
On Tue, Feb 07, 2017 at 08:16:10PM +0000, Tom Murphy wrote:

> Hi Stefan,
>
>   I upgraded my kernel to 24 January 2017 and every once in a while I get:
>
>   athn0: device timeout
>
>   I've gotten 3 of these in 12 days. Running:
>
>   ifconfig athn0 down; sh /etc/netstart athn0
>
>   fixes this, but not had this on mode 11g. Could it be something in the 11n
> hostap code?
>

This was already hapening a long time before 11n mode was implemented.
There is no reason to worry about this message if the AP works otherwise.

Below I'm quoting my reply to this same question I wrote to somebody
else a few weeks ago, who also noted that the BUGS section of the
athn($) man page says that a device timeout "should not happen".

[[[
It means we asked the device to transmit a frame, and 5 seconds or so
later we still did not receive a notification from the device that it
is done transmitting the frame, as it would normally send us.

We then assume the device is wedged and reset it. This is mostly
transparent since the upper layer interface state does not change
(or changes only briefly).

So, it should not happen. But it does, and there's no easy way to fix
it short of debugging this stuff at a very low level, which takes a
lot of time and effort.

The simple fact is that the driver isn't perfect.
]]]

Reply | Threaded
Open this post in threaded view
|

Re: Can OpenBSD do mixed b/g/n mode in hostap?

Tom Murphy-7
Hi Stefan,

  Many thanks for that explanation! It makes sense. You're right, some
low level code is really difficult to debug!

Kind regards,
Tom

On 07/02/17 20:41, Stefan Sperling wrote:

> On Tue, Feb 07, 2017 at 08:16:10PM +0000, Tom Murphy wrote:
>> Hi Stefan,
>>
>>   I upgraded my kernel to 24 January 2017 and every once in a while I get:
>>
>>   athn0: device timeout
>>
>>   I've gotten 3 of these in 12 days. Running:
>>
>>   ifconfig athn0 down; sh /etc/netstart athn0
>>
>>   fixes this, but not had this on mode 11g. Could it be something in the 11n
>> hostap code?
>>
>
> This was already hapening a long time before 11n mode was implemented.
> There is no reason to worry about this message if the AP works otherwise.
>
> Below I'm quoting my reply to this same question I wrote to somebody
> else a few weeks ago, who also noted that the BUGS section of the
> athn($) man page says that a device timeout "should not happen".
>
> [[[
> It means we asked the device to transmit a frame, and 5 seconds or so
> later we still did not receive a notification from the device that it
> is done transmitting the frame, as it would normally send us.
>
> We then assume the device is wedged and reset it. This is mostly
> transparent since the upper layer interface state does not change
> (or changes only briefly).
>
> So, it should not happen. But it does, and there's no easy way to fix
> it short of debugging this stuff at a very low level, which takes a
> lot of time and effort.
>
> The simple fact is that the driver isn't perfect.
> ]]]