Problems with B.A.T.M.A.N. V speed recognition on ath10k

Hi,

I'm trying to setup a B.A.T.M.A.N. V mesh on a TP-Link RE450v1 running on OpenWRT 19.07.3.
It's working but I've got problems with the speed recognition:

[   37.909038] batman_adv: bat0: Adding interface: wlan0
[   37.914391] batman_adv: bat0: Interface activated: wlan0
[   40.476462] batman_adv: bat0: WiFi driver or ethtool info does not provide information about link speeds on interface wlan0, therefore defaulting to hardcoded throughput values of 1.0 Mbps. Consider overriding the throughput manually or checking your driver.

batman_adv version:

root@re450-4:~# batctl -v
batctl openwrt-2019.2-4 [batman-adv: openwrt-2019.2-7]

Currently I'm using

ath10k-firmware-qca988x
kmod-ath10k

but I also tried it with kmod-ath10k-ct and ath10k-firmware-qca988x-ct as well as ath10k-firmware-qca988x-ct-htt. In the ct firmware there is no 802.11s support for wave-1 wifi chips which I use as a basis for B.A.T.M.A.N. V so let's concentrate on the regular ath10k-firmware-qca988x with which 802.11s is working perfectly. I also tried to use the firmware with the ct driver but that didn't change anything. It's not working better but also not working worser so I decided to use the regular firmware with the regular (non-ct) driver.

What I don't understand is that I can see link speed estimations in iw station dump - so why aren't they recognized by batman_adv?

The link speed is clearly visible from iw station dump:

root@re450-4:~# iw wlan0 station dump
Station 88:c3:97:xx:xx:c2 (on wlan0)
        inactive time:  10 ms
        rx bytes:       94078037
        rx packets:     121397
        tx bytes:       19061720
        tx packets:     44082
        tx retries:     0
        tx failed:      1
        rx drop misc:   34
        signal:         -62 [-73, -65, -67] dBm
        signal avg:     -53 [-64, -57, -60] dBm
        Toffset:        35108160011 us
-->        tx bitrate:     975.0 MBit/s VHT-MCS 7 80MHz short GI VHT-NSS 3**
-->        rx bitrate:     975.0 MBit/s VHT-MCS 7 80MHz short GI VHT-NSS 3**
        rx duration:    9492580 us
        last ack signal:-95 dBm
        mesh llid:      0
        mesh plid:      0
        mesh plink:     ESTAB
        mesh local PS mode:     ACTIVE
        mesh peer PS mode:      ACTIVE
        mesh non-peer PS mode:  ACTIVE
        authorized:     yes
        authenticated:  yes
        associated:     yes
        preamble:       long
        WMM/WME:        yes
        MFP:            yes
        TDLS peer:      no
        DTIM period:    2
        beacon interval:100
        connected time: 1579 seconds
Station 78:11:dc:xx:xx:c2 (on wlan0)
        inactive time:  10 ms
        rx bytes:       6635308
        rx packets:     51126
        tx bytes:       1647561
        tx packets:     6883
        tx retries:     0
        tx failed:      57
        rx drop misc:   12
        signal:         -71 [-76, -74, -76] dBm
        signal avg:     -72 [-79, -77, -80] dBm
        Toffset:        18446744073690348898 us
-->        tx bitrate:     117.0 MBit/s VHT-MCS 3 80MHz VHT-NSS 1**
-->        rx bitrate:     390.0 MBit/s VHT-MCS 4 80MHz short GI VHT-NSS 2**
        rx duration:    2875884 us
        last ack signal:-95 dBm
        mesh llid:      0
        mesh plid:      0
        mesh plink:     ESTAB
        mesh local PS mode:     ACTIVE
        mesh peer PS mode:      ACTIVE
        mesh non-peer PS mode:  ACTIVE
        authorized:     yes
        authenticated:  yes
        associated:     yes
        preamble:       long
        WMM/WME:        yes
        MFP:            yes
        TDLS peer:      no
        DTIM period:    2
        beacon interval:100
        connected time: 1578 seconds
Station 78:11:dc:xx:xx:12 (on wlan0)
        inactive time:  80 ms
        rx bytes:       6884939
        rx packets:     52341
        tx bytes:       1527371
        tx packets:     6383
        tx retries:     0
        tx failed:      0
        rx drop misc:   25
        signal:         -65 [-79, -82, -72] dBm
        signal avg:     -66 [-74, -76, -69] dBm
        Toffset:        35070486681 us
-->        tx bitrate:     325.0 MBit/s VHT-MCS 7 80MHz short GI VHT-NSS 1**
-->        rx bitrate:     390.0 MBit/s VHT-MCS 4 80MHz short GI VHT-NSS 2**
        rx duration:    2835120 us
        last ack signal:-95 dBm
        mesh llid:      0
        mesh plid:      0
        mesh plink:     ESTAB
        mesh local PS mode:     ACTIVE
        mesh peer PS mode:      ACTIVE
        mesh non-peer PS mode:  ACTIVE
        authorized:     yes
        authenticated:  yes
        associated:     yes
        preamble:       long
        WMM/WME:        yes
        MFP:            yes
        TDLS peer:      no
        DTIM period:    2
        beacon interval:100
        connected time: 1578 seconds

But batman_adv is not able to use these speed values:

root@re450-4:~# batctl n
[B.A.T.M.A.N. adv openwrt-2019.2-7, MainIF/MAC: wlan0/d4:6e:0e:xx:xx:de (bat0/ea:59:0f:xx:xx:d6 BATMAN_V)]
IF             Neighbor              last-seen
78:11:dc:xx:xx:12    0.350s (        1.0) [     wlan0]
78:11:dc:xx:xx:c2    0.430s (        1.0) [     wlan0]
88:c3:97:xx:xx:c2    0.250s (        1.0) [     wlan0]

This results in non optimized routes/hops. In contradiction to the problems with the ath10k driver it is working without any issues on mt76 (mt7615e to be precise).

What I also don't understand is why batman_adv is not falling back to integrated speed measurements. Throughput_override is disabled (set to 0) so it should normally try to estimate the real speed instead of using 1 Mbit/s:

root@re450-4:~# batctl hardif wlan0 throughput_override
0.0 MBit

Full dmesg output:

root@re450-4:~# dmesg
[    0.000000] Linux version 4.14.180 (user@ubuntu16dev) (gcc version 7.5.0 (OpenWrt GCC 7.5.0 r11063-85e04e9f46)) #0 Sat May 16 18:32:20 2020
[    0.000000] MyLoader: sysp=f1879f07, boardp=943f8740, parts=d68f8ff7
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019750 (MIPS 74Kc)
[    0.000000] SoC: Qualcomm Atheros QCA9558 ver 1 rev 0
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 04000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] On node 0 totalpages: 16384
[    0.000000] free_area_init_node: node 0, pgdat 8047e2c0, node_mem_map 81000020
[    0.000000]   Normal zone: 128 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16384 pages, LIFO batch:3
[    0.000000] random: get_random_bytes called from 0x80481740 with crng_init=0
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line:  board=RE450 mtdparts=spi0.0:128k(u-boot)ro,6016k(firmware),64k(partition-table)ro,64k(product-info)ro,1856k(config)ro,64k(art)ro console=ttyS0,115200 rootfstype=squashfs noinitrd
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 59776K/65536K available (3647K kernel code, 185K rwdata, 388K rodata, 316K init, 204K bss, 5760K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 51
[    0.000000] Clocks: CPU:720.000MHz, DDR:600.000MHz, AHB:200.000MHz, Ref:40.000MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 5309056796 ns
[    0.000007] sched_clock: 32 bits at 360MHz, resolution 2ns, wraps every 5965232126ns
[    0.008287] Calibrating delay loop... 358.80 BogoMIPS (lpj=1794048)
[    0.074983] pid_max: default: 32768 minimum: 301
[    0.080082] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.087123] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.096453] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.106948] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.113825] NET: Registered protocol family 16
[    0.119735] MIPS: machine is TP-LINK RE450
[    0.125955] registering PCI controller with io_map_base unset
[    0.132255] ar724x-pci ar724x-pci.1: PCIe link is down
[    0.137719] registering PCI controller with io_map_base unset
[    0.393046] PCI host bridge to bus 0000:00
[    0.397454] pci_bus 0000:00: root bus resource [mem 0x10000000-0x11ffffff]
[    0.404763] pci_bus 0000:00: root bus resource [io  0x0000]
[    0.410695] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.417909] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.426366] pci 0000:00:00.0: [168c:003c] type 00 class 0x028000
[    0.426423] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.426480] pci 0000:00:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    0.426555] pci 0000:00:00.0: supports D1 D2
[    0.426718] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.426742] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x101fffff 64bit]
[    0.434535] pci 0000:00:00.0: BAR 6: assigned [mem 0x10200000-0x1020ffff pref]
[    0.442347] PCI host bridge to bus 0000:01
[    0.446707] pci_bus 0000:01: root bus resource [mem 0x12000000-0x13ffffff]
[    0.454043] pci_bus 0000:01: root bus resource [io  0x0001]
[    0.459968] pci_bus 0000:01: root bus resource [??? 0x00000000 flags 0x0]
[    0.467192] pci_bus 0000:01: No busn resource found for root bus, will use [bus 01-ff]
[    0.475625] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    0.476149] clocksource: Switched to clocksource MIPS
[    0.482416] NET: Registered protocol family 2
[    0.487703] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.495130] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.501937] TCP: Hash tables configured (established 1024 bind 1024)
[    0.508825] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.515051] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.521967] NET: Registered protocol family 1
[    0.526674] PCI: CLS 0 bytes, default 32
[    0.530765] Crashlog allocated RAM at address 0x3f00000
[    0.537415] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[    0.548321] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.554522] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.572602] io scheduler noop registered
[    0.576814] io scheduler deadline registered (default)
[    0.582517] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[    0.589612] console [ttyS0] disabled
[    0.613486] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 2500000) is a 16550A
[    0.622673] console [ttyS0] enabled
[    0.630099] bootconsole [early0] disabled
[    0.641863] m25p80 spi0.0: found gd25q64, expected m25p80
[    0.649775] m25p80 spi0.0: gd25q64 (8192 Kbytes)
[    0.654487] 6 cmdlinepart partitions found on MTD device spi0.0
[    0.660526] Creating 6 MTD partitions on "spi0.0":
[    0.665393] 0x000000000000-0x000000020000 : "u-boot"
[    0.671559] 0x000000020000-0x000000600000 : "firmware"
[    0.689343] 2 tplink-fw partitions found on MTD device firmware
[    0.695365] 0x000000020000-0x000000180f22 : "kernel"
[    0.701034] 0x000000180f22-0x000000600000 : "rootfs"
[    0.706690] mtd: device 3 (rootfs) set to be root filesystem
[    0.712465] 1 squashfs-split partitions found on MTD device rootfs
[    0.718778] 0x0000005a0000-0x000000600000 : "rootfs_data"
[    0.726526] 0x000000600000-0x000000610000 : "partition-table"
[    0.733490] 0x000000610000-0x000000620000 : "product-info"
[    0.740718] 0x000000620000-0x0000007f0000 : "config"
[    0.746898] 0x0000007f0000-0x000000800000 : "art"
[    0.755748] libphy: GPIO Bitbanged MDIO: probed
[    0.760851] libphy: Fixed MDIO Bus: probed
[    1.496499] ag71xx ag71xx.0: connected to PHY at gpio-0:04 [uid=004dd072, driver=Atheros 8035 ethernet]
[    1.506548] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: rgmii
[    1.514480] NET: Registered protocol family 10
[    1.522797] Segment Routing with IPv6
[    1.526641] NET: Registered protocol family 17
[    1.531619] 8021q: 802.1Q VLAN Support v1.8
[    1.541397] VFS: Mounted root (squashfs filesystem) readonly on device 31:3.
[    1.550006] Freeing unused kernel memory: 316K
[    1.554517] This architecture does not have kernel memory protection.
[    2.127916] init: Console is alive
[    2.131561] init: - watchdog -
[    2.483006] random: fast init done
[    3.086572] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.143839] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.153650] init: - preinit -
[    4.233010] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    4.257420] random: procd: uninitialized urandom read (4 bytes read)
[    7.328073] eth0: link up (1000Mbps/Full duplex)
[    7.332788] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    7.507949] jffs2_scan_eraseblock(): End of filesystem marker found at 0x10000
[    7.515279] jffs2_build_filesystem(): unlocking the mtd device...
[    7.515318] done.
[    7.523628] jffs2_build_filesystem(): erasing all blocks after the end marker...
[    9.035209] done.
[    9.044812] jffs2: notice: (398) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[    9.061790] mount_root: overlay filesystem has not been fully initialized yet
[    9.075131] mount_root: switching to jffs2 overlay
[    9.101275] overlayfs: upper fs does not support tmpfile.
[    9.598383] urandom-seed: Seed file not found (/etc/urandom.seed)
[    9.698228] eth0: link down
[    9.711484] procd: - early -
[    9.714494] procd: - watchdog -
[   10.316252] procd: - watchdog -
[   10.319708] procd: - ubus -
[   10.418621] random: ubusd: uninitialized urandom read (4 bytes read)
[   10.425944] random: ubusd: uninitialized urandom read (4 bytes read)
[   10.432834] random: ubusd: uninitialized urandom read (4 bytes read)
[   10.440148] procd: - init -
[   11.220870] kmodloader: loading kernel modules from /etc/modules.d/*
[   11.270647] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   11.293281] Loading modules backported from Linux version v4.19.120-0-gfdc072324f3c
[   11.301087] Backport generated by backports.git v4.19.120-1-0-g60c3a249
[   11.328028] ip_tables: (C) 2000-2006 Netfilter Core Team
[   11.353004] nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
[   11.448932] xt_time: kernel timezone is -0000
[   11.670214] PPP generic driver version 2.4.2
[   11.686918] NET: Registered protocol family 24
[   11.728245] pci 0000:00:00.0: using irq 40 for pin 1
[   11.746838] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
[   11.752759] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   11.766963] urngd: v1.0.2 started.
[   11.937137] random: crng init done
[   11.940595] random: 6 urandom warning(s) missed due to ratelimiting
[   12.066309] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:00:00.0.bin failed with error -2
[   12.077202] ath10k_pci 0000:00:00.0: Falling back to user helper
[   12.431351] firmware ath10k!pre-cal-pci-0000:00:00.0.bin: firmware_loading_store: map pages failed
[   12.440731] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/cal-pci-0000:00:00.0.bin failed with error -2
[   12.451259] ath10k_pci 0000:00:00.0: Falling back to user helper
[   12.897289] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/firmware-6.bin failed with error -2
[   12.908182] ath10k_pci 0000:00:00.0: Falling back to user helper
[   13.116883] firmware ath10k!QCA988X!hw2.0!firmware-6.bin: firmware_loading_store: map pages failed
[   13.130901] ath10k_pci 0000:00:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043202ff sub 0000:0000
[   13.140306] ath10k_pci 0000:00:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   13.153404] ath10k_pci 0000:00:00.0: firmware ver 10.2.4-1.0-00047 api 5 features no-p2p,raw-mode,mfp,allows-mesh-bcast crc32 35bd9258
[   13.306287] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/board-2.bin failed with error -2
[   13.316907] ath10k_pci 0000:00:00.0: Falling back to user helper
[   13.486918] firmware ath10k!QCA988X!hw2.0!board-2.bin: firmware_loading_store: map pages failed
[   13.583615] ath10k_pci 0000:00:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
[   14.762189] ath10k_pci 0000:00:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1
[   14.897466] ath: EEPROM regdomain: 0x0
[   14.897473] ath: EEPROM indicates default country code should be used
[   14.897476] ath: doing EEPROM country->regdmn map search
[   14.897488] ath: country maps to regdmn code: 0x3a
[   14.897493] ath: Country alpha2 being used: US
[   14.897496] ath: Regpair used: 0x3a
[   15.000887] batman_adv: B.A.T.M.A.N. advanced openwrt-2019.2-7 (compatibility version 15) loaded
[   15.029155] ath: EEPROM regdomain: 0x0
[   15.029163] ath: EEPROM indicates default country code should be used
[   15.029166] ath: doing EEPROM country->regdmn map search
[   15.029179] ath: country maps to regdmn code: 0x3a
[   15.029184] ath: Country alpha2 being used: US
[   15.029187] ath: Regpair used: 0x3a
[   15.047000] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[   15.048673] ieee80211 phy1: Atheros AR9550 Rev:0 mem=0xb8100000, irq=47
[   15.076521] kmodloader: done loading kernel modules from /etc/modules.d/*
[   28.498647] br-lan: port 1(eth0) entered blocking state
[   28.503958] br-lan: port 1(eth0) entered disabled state
[   28.509565] device eth0 entered promiscuous mode
[   28.550503] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   29.942873] 8021q: adding VLAN 0 to HW filter on device bat0
[   30.029112] br-lan: port 2(bat0.10) entered blocking state
[   30.034683] br-lan: port 2(bat0.10) entered disabled state
[   30.040554] device bat0.10 entered promiscuous mode
[   30.045502] device bat0 entered promiscuous mode
[   30.050414] br-lan: port 2(bat0.10) entered blocking state
[   30.055986] br-lan: port 2(bat0.10) entered forwarding state
[   30.061951] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   30.414628] br-guest: port 1(bat0.20) entered blocking state
[   30.420421] br-guest: port 1(bat0.20) entered disabled state
[   30.426446] device bat0.20 entered promiscuous mode
[   30.517249] br-guest: port 1(bat0.20) entered blocking state
[   30.523005] br-guest: port 1(bat0.20) entered forwarding state
[   30.710268] br-iot: port 1(bat0.30) entered blocking state
[   30.715839] br-iot: port 1(bat0.30) entered disabled state
[   30.768610] eth0: link up (10Mbps/Full duplex)
[   30.796263] device bat0.30 entered promiscuous mode
[   30.817465] br-lan: port 1(eth0) entered blocking state
[   30.822781] br-lan: port 1(eth0) entered forwarding state
[   30.860945] br-iot: port 1(bat0.30) entered blocking state
[   30.866560] br-iot: port 1(bat0.30) entered forwarding state
[   30.873057] ath: EEPROM regdomain: 0x8114
[   30.877181] ath: EEPROM indicates we should expect a country code
[   30.883358] ath: doing EEPROM country->regdmn map search
[   30.888763] ath: country maps to regdmn code: 0x37
[   30.893620] ath: Country alpha2 being used: DE
[   30.898251] ath: Regpair used: 0x37
[   30.901797] ath: regdomain 0x8114 dynamically updated by user
[   30.907730] ath: EEPROM regdomain: 0x8114
[   30.911789] ath: EEPROM indicates we should expect a country code
[   30.917979] ath: doing EEPROM country->regdmn map search
[   30.923362] ath: country maps to regdmn code: 0x37
[   30.928282] ath: Country alpha2 being used: DE
[   30.932787] ath: Regpair used: 0x37
[   30.936413] ath: regdomain 0x8114 dynamically updated by user
[   32.846692] eth0: link down
[   33.914628] ath10k_pci 0000:00:00.0: pdev param 0 not supported by firmware
[   33.935994] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   33.947919] br-lan: port 1(eth0) entered disabled state
[   34.927793] eth0: link up (1000Mbps/Full duplex)
[   34.932536] br-lan: port 1(eth0) entered blocking state
[   34.937892] br-lan: port 1(eth0) entered forwarding state
[   37.772835] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   37.909038] batman_adv: bat0: Adding interface: wlan0
[   37.914391] batman_adv: bat0: Interface activated: wlan0
[   40.476462] batman_adv: bat0: WiFi driver or ethtool info does not provide information about link speeds on interface wlan0, therefore defaulting to hardcoded throughput values of 1.0 Mbps. Consider overriding the throughput manually or checking your driver.

Does anybody have an idea how to troubleshoot this? From where does the batman_adv try to read the wifi link speed?

Was anybody able to setup a working B.A.T.M.A.N. V mesh with ath10k wave-1 chips (e.g. qca9880)?

Did nobody ever experience such issues with ath10k and B.A.T.M.A.N. V?

If anybody has the same problem here is the explanation and a workaround how to overcome the missing speed values from the driver:

https://www.open-mesh.org/issues/410

what values do you get measuring performance with batctl ?

get other nodes mac from the Neighbor table

batctl n

root@OpenWrt:~# batctl tp 6c:f3:7f:c1:3e:36
Test duration 10028ms.
Sent 466520796 Bytes.
Throughput: 44.37 MB/s (372.17 Mbps)