MIMO in athn(4)

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

MIMO in athn(4)

tomr

I've been playing with an apu2 and an AR9280, which is supported by athn(4).

It seems to perform terribly when I connect a second antenna. Is this
the expected behaviour currently? Is there some MIMO magic that isn't
yet implemented? Or do I just need to get the antenna spacing right?

I see a foreboding "No Tx aggregation" in the commit message...

Thanks,
t

Reply | Threaded
Open this post in threaded view
|

Re: MIMO in athn(4)

Stefan Sperling-2
On Sat, May 12, 2018 at 10:53:29PM +1000, tomr wrote:

>
> I've been playing with an apu2 and an AR9280, which is supported by athn(4).
>
> It seems to perform terribly when I connect a second antenna. Is this
> the expected behaviour currently? Is there some MIMO magic that isn't
> yet implemented? Or do I just need to get the antenna spacing right?
>
> I see a foreboding "No Tx aggregation" in the commit message...
>
> Thanks,
> t
>

You'll need to be more specific before anyone can help you.
You're not showing us relevant configuration files, dmesg, etc.
See https://www.openbsd.org/report.html

Note that there is one known big problem: This driver lacks periodic
calibration which is a likely reason for bad performance in some
environments. Make sure to pick a channel where your network
overlaps with relatively few other networks. That might help.

Reply | Threaded
Open this post in threaded view
|

Re: MIMO in athn(4)

tomr

On 05/13/18 01:00, Stefan Sperling wrote:
> On Sat, May 12, 2018 at mybeautifulwifi10:53:29PM +1000, tomr wrote:
>>
>> I've been playing with an apu2 and an AR9280, which is supported by
athn(4).

>>
>> It seems to perform terribly when I connect a second antenna. Is this
>> the expected behaviour currently? Is there some MIMO magic that isn't
>> yet implemented? Or do I just need to get the antenna spacing right?
>>
>> I see a foreboding "No Tx aggregation" in the commit message...
>>
>> Thanks,
>> t
>>
>
> You'll need to be more specific before anyone can help you.
> You're not showing us relevant configuration files, dmesg, etc.
> See https://www.openbsd.org/report.html
>
> Note that there is one known big problem: This driver lacks periodic
> calibration which is a likely reason for bad performance in some
> environments. Make sure to pick a channel where your network
> overlaps with relatively few other networks. That might help.
>
I'll check on the local channels. In the mean time, here's more info.

With one antenna connected, I get about 60-80% signal on my iwm client
at a distance of approximately 5m. With two antennas connected, the same
client needs to be <1m away from the AP to connect at all, and even then
gets about <20%.b

hostname.athn0:
media autoselect mode 11n mediaopt hostap chan 120
nwid <mynet>
wpakey <mysecret>
chan 120
inet 10.1.2.1 255.255.255.0

ifconfig athn0:
athn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 04:f0:21:3e:1f:93
        index 1 priority 4 llprio 3
        groups: wlan
        media: IEEE802.11 autoselect (autoselect mode 11n hostap)
        status: active
        ieee80211: nwid <myent> chan 120 bssid 04:f0:21:3e:1f:93 wpakey
wpaprotos wpa2 wpaakms psk wpaciphers ccmp wpagroupcipher ccmp
        inet 10.1.2.1 netmask 0xffffff00 broadcast 10.1.2.255


dmesg:
OpenBSD 6.3-current (GENERIC.MP) #29: Fri May  4 09:22:48 MDT 2018
    [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 4261076992 (4063MB)
avail mem = 4123918336 (3932MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xdffb7020 (7 entries)
bios0: vendor coreboot version "4.0.7" date 02/28/2017
bios0: PC Engines APU2
acpi0 at bios0: rev 2
acpi0: sleep states S0 S1 S2 S3 S4 S5
acpi0: tables DSDT FACP SSDT APIC HEST SSDT SSDT HPET
acpi0: wakeup devices PWRB(S4) PBR4(S4) PBR5(S4) PBR6(S4) PBR7(S4)
PBR8(S4) UOH1(S3) UOH3(S3) UOH5(S3) XHC0(S4)
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: AMD GX-412TC SOC, 998.25 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,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1
cpu0: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB
64b/line 16-way L2 cache
cpu0: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu0: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: AMD GX-412TC SOC, 998.13 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,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1
cpu1: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB
64b/line 16-way L2 cache
cpu1: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu1: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu1: smt 0, core 1, package 0
cpu2 at mainbus0: apid 2 (application processor)
cpu2: AMD GX-412TC SOC, 998.13 MHz
cpu2:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1
cpu2: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB
64b/line 16-way L2 cache
cpu2: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu2: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu2: smt 0, core 2, package 0
cpu3 at mainbus0: apid 3 (application processor)
cpu3: AMD GX-412TC SOC, 998.13 MHz
cpu3:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1
cpu3: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB
64b/line 16-way L2 cache
cpu3: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu3: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu3: smt 0, core 3, package 0
ioapic0 at mainbus0: apid 4 pa 0xfec00000, version 21, 24 pins
ioapic1 at mainbus0: apid 5 pa 0xfec20000, version 21, 32 pins
, remapped to apid 5
acpihpet0 at acpi0: 14318180 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 1 (PBR4)
acpiprt2 at acpi0: bus 2 (PBR5)
acpiprt3 at acpi0: bus 3 (PBR6)
acpiprt4 at acpi0: bus 4 (PBR7)
acpiprt5 at acpi0: bus 5 (PBR8)
acpicpu0 at acpi0: C2(0@400 io@0x1771), C1(@1 halt!), PSS
acpicpu1 at acpi0: C2(0@400 io@0x1771), C1(@1 halt!), PSS
acpicpu2 at acpi0: C2(0@400 io@0x1771), C1(@1 halt!), PSS
acpicpu3 at acpi0: C2(0@400 io@0x1771), C1(@1 halt!), PSS
acpibtn0 at acpi0: PWRB
acpicmos0 at acpi0
cpu0: 998 MHz: speeds: 1000 800 600 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "AMD AMD64 16h Root Complex" rev 0x00
pchb1 at pci0 dev 2 function 0 "AMD AMD64 16h Host" rev 0x00
ppb0 at pci0 dev 2 function 1 "AMD AMD64 16h PCIE" rev 0x00: msi
pci1 at ppb0 bus 1
athn0 at pci1 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 5 int 0
athn0: AR9280 rev 2 (2T2R), ROM rev 22, address 04:f0:21:3e:1f:93
ppb1 at pci0 dev 2 function 2 "AMD AMD64 16h PCIE" rev 0x00: msi
pci2 at ppb1 bus 2
em0 at pci2 dev 0 function 0 "Intel I210" rev 0x03: msi, address
00:0d:b9:4b:1c:88
ppb2 at pci0 dev 2 function 3 "AMD AMD64 16h PCIE" rev 0x00: msi
pci3 at ppb2 bus 3
em1 at pci3 dev 0 function 0 "Intel I210" rev 0x03: msi, address
00:0d:b9:4b:1c:89
ppb3 at pci0 dev 2 function 4 "AMD AMD64 16h PCIE" rev 0x00: msi
pci4 at ppb3 bus 4
em2 at pci4 dev 0 function 0 "Intel I210" rev 0x03: msi, address
00:0d:b9:4b:1c:8a
ppb4 at pci0 dev 2 function 5 "AMD AMD64 16h PCIE" rev 0x00: msi
pci5 at ppb4 bus 5
athn1 at pci5 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 5 int 16
athn1: AR9280 rev 2 (2T2R), ROM rev 22, address 04:f0:21:3e:1f:95
ccp0 at pci0 dev 8 function 0 "AMD Cryptographic Co-processor v3" rev 0x00
xhci0 at pci0 dev 16 function 0 "AMD Bolton xHCI" rev 0x11: msi
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev
3.00/1.00 addr 1
ahci0 at pci0 dev 17 function 0 "AMD Hudson-2 SATA" rev 0x40: apic 4 int
19, AHCI 1.3
ahci0: port 0: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, SATA SSD, SBFM> SCSI3 0/direct fixed
naa.0000000000000000
sd0: 15272MB, 512 bytes/sector, 31277232 sectors, thin
ehci0 at pci0 dev 19 function 0 "AMD Hudson-2 USB2" rev 0x39: apic 4 int 18
usb1 at ehci0: USB revision 2.0
uhub1 at usb1 configuration 1 interface 0 "AMD EHCI root hub" rev
2.00/1.00 addr 1
piixpm0 at pci0 dev 20 function 0 "AMD Hudson-2 SMBus" rev 0x42: SMBus
disabled
pcib0 at pci0 dev 20 function 3 "AMD Hudson-2 LPC" rev 0x11
sdhc0 at pci0 dev 20 function 7 "AMD Bolton SD/MMC" rev 0x01: apic 4 int 16
sdhc0: SDHC 2.0, 50 MHz base clock
sdmmc0 at sdhc0: 4-bit, sd high-speed, mmc high-speed, dma
pchb2 at pci0 dev 24 function 0 "AMD AMD64 16h Link Cfg" rev 0x00
pchb3 at pci0 dev 24 function 1 "AMD AMD64 16h Address Map" rev 0x00
pchb4 at pci0 dev 24 function 2 "AMD AMD64 16h DRAM Cfg" rev 0x00
km0 at pci0 dev 24 function 3 "AMD AMD64 16h Misc Cfg" rev 0x00
pchb5 at pci0 dev 24 function 4 "AMD AMD64 16h CPU Power" rev 0x00
pchb6 at pci0 dev 24 function 5 "AMD AMD64 16h Misc Cfg" rev 0x00
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 0x53
vmm0 at mainbus0: SVM/RVI
uhub2 at uhub1 port 1 configuration 1 interface 0 "Advanced Micro
Devices product 0x7900" rev 2.00/0.18 addr 2
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on sd0a (e30ecfbee74f5a9e.a) swap on sd0b dump on sd0b
Process (pid 1) got signal 31
pppoe0: received unexpected PADO
pppoe0: received unexpected PADO
pppoe0: received unexpected PADO
pppoe0: received unexpected PADO
pppoe0: received unexpected PADO

Reply | Threaded
Open this post in threaded view
|

Re: MIMO in athn(4)

Stefan Sperling-2
On Sun, May 13, 2018 at 01:32:59AM +1000, tomr wrote:
> With one antenna connected, I get about 60-80% signal on my iwm client
> at a distance of approximately 5m. With two antennas connected, the same
> client needs to be <1m away from the AP to connect at all, and even then
> gets about <20%.b

Huh, that is certainly not expected.

This driver generally works fine with two antennas. In fact, 2 antennas
are required for 11n mode to work correctly (use 11a or 11g mode instead
if only one antenna is attached). If such an issue was due to a bug in
the driver it almost certainly would have been noticed elsewhere already.

As a first step, check the health of your antennas and cables.

Reply | Threaded
Open this post in threaded view
|

Re: MIMO in athn(4)

Артур Истомин
In reply to this post by tomr
On Sat, May 12, 2018 at 10:53:29PM +1000, tomr wrote:
>
> I've been playing with an apu2 and an AR9280, which is supported by athn(4).
>
> It seems to perform terribly when I connect a second antenna. Is this
> the expected behaviour currently? Is there some MIMO magic that isn't
> yet implemented? Or do I just need to get the antenna spacing right?
>
> I see a foreboding "No Tx aggregation" in the commit message...

I have the same problems with the same hardware. Not only with n-mode, with g-mode too.
If I remember correctly there was no problems with g-mode circa 5.0-5.3 releases OpenBSD.

I thought it is a hardware problem and planed to test it with linux.

If you find solution, please post it here.

Reply | Threaded
Open this post in threaded view
|

Re: MIMO in athn(4)

tomr
In reply to this post by Stefan Sperling-2


On 05/13/18 02:21, Stefan Sperling wrote:

> On Sun, May 13, 2018 at 01:32:59AM +1000, tomr wrote:
>> With one antenna connected, I get about 60-80% signal on my iwm client
>> at a distance of approximately 5m. With two antennas connected, the same
>> client needs to be <1m away from the AP to connect at all, and even then
>> gets about <20%.b
>
> Huh, that is certainly not expected.
>
> This driver generally works fine with two antennas. In fact, 2 antennas
> are required for 11n mode to work correctly (use 11a or 11g mode instead
> if only one antenna is attached). If such an issue was due to a bug in
> the driver it almost certainly would have been noticed elsewhere already.
>
> As a first step, check the health of your antennas and cables.
>

Looks like it is/was indeed a cable/antenna issue.

I had a spare ar9280 card. I connected that, being extra careful that
the pigtails were properly seated this time. That improved things
immediately (whether it was the card or the connection I haven't checked
in detail). With the dual-band antennas I've got, ~2.4GHz channels seem
to work much better.

Thanks for the pointers,

t

Reply | Threaded
Open this post in threaded view
|

Re: MIMO in athn(4)

Stefan Sperling-2
On Tue, May 15, 2018 at 10:20:17AM +1000, tomr wrote:

>
>
> On 05/13/18 02:21, Stefan Sperling wrote:
> > On Sun, May 13, 2018 at 01:32:59AM +1000, tomr wrote:
> >> With one antenna connected, I get about 60-80% signal on my iwm client
> >> at a distance of approximately 5m. With two antennas connected, the same
> >> client needs to be <1m away from the AP to connect at all, and even then
> >> gets about <20%.b
> >
> > Huh, that is certainly not expected.
> >
> > This driver generally works fine with two antennas. In fact, 2 antennas
> > are required for 11n mode to work correctly (use 11a or 11g mode instead
> > if only one antenna is attached). If such an issue was due to a bug in
> > the driver it almost certainly would have been noticed elsewhere already.
> >
> > As a first step, check the health of your antennas and cables.
> >
>
> Looks like it is/was indeed a cable/antenna issue.
>
> I had a spare ar9280 card. I connected that, being extra careful that
> the pigtails were properly seated this time. That improved things
> immediately (whether it was the card or the connection I haven't checked
> in detail). With the dual-band antennas I've got, ~2.4GHz channels seem
> to work much better.
>
> Thanks for the pointers,
>
> t
>

Thanks for following up! I'm glad the problem is resolved.

Reply | Threaded
Open this post in threaded view
|

Re: MIMO in athn(4)

lists-3
In reply to this post by Артур Истомин
Sun, 13 May 2018 11:07:19 +0500 Артур Истомин <[hidden email]>

> On Sat, May 12, 2018 at 10:53:29PM +1000, tomr wrote:
> >
> > I've been playing with an apu2 and an AR9280, which is supported by athn(4).
> >
> > It seems to perform terribly when I connect a second antenna. Is this
> > the expected behaviour currently? Is there some MIMO magic that isn't
> > yet implemented? Or do I just need to get the antenna spacing right?
> >
> > I see a foreboding "No Tx aggregation" in the commit message...  
>
> I have the same problems with the same hardware. Not only with n-mode, with g-mode too.
> If I remember correctly there was no problems with g-mode circa 5.0-5.3 releases OpenBSD.
>
> I thought it is a hardware problem and planed to test it with linux.
>
> If you find solution, please post it here.
>

Hi Artur,

I have a late 2010 laptop with a SISO (not MIMO) athn(4) AR9285 device:

athn0 at pci2 dev 0 function 0 "Atheros AR9285" rev 0x01: apic 2 int 17
athn0: AR9285 rev 2 (1T1R), ROM rev 13, address 00:25:d3:xx:xx:xx

athn(4) - Atheros IEEE 802.11a/b/g/n wireless network device
http://man.openbsd.org/athn

The maker put only 1 cable for an antenna, despite the card being B/G/N
and I found similar problems which I could not sort with another cable.

So, in my particular case the device defaulted to N mode (at one point)
and I had to find the hard way the now obvious solution to run it as G:

media autoselect mode 11g mediaopt hostap

You could put this line in /etc/hostname.athn0 or skip mediaopt hostap.
Hope the tip is for SISO devices with only 1 antenna, or prefer G mode.

https://en.wikipedia.org/wiki/Single-input_single-output_system
https://en.wikipedia.org/wiki/MIMO#Forms

Kind regards,
Anton Lazarov