On Monday, 25 February 2019 15:08:15 CET Jeff Kletsky wrote:
> >> Mesh is broken using ath10k-ct?
> >> https://bugs.openwrt.org/index.php?do=details&task_id=2123
[...]
> * The "classic" drivers/firmware fail on or after the indicated commit
> 
>      CONFIG_PACKAGE_ath10k-firmware-qca9887=y
>      CONFIG_PACKAGE_kmod-ath10k=y
>      # CONFIG_PACKAGE_kmod-ath10k-ct is not set
> 
> 
> That the CT drivers/firmware don't support 802.11s mesh
> isn't really an OpenWrt issue.
> 
> That there is a regression in overall system capability
> that "kills" connectivity is a signficant concern.

* Can you confirm that it works with ath10k-ct but not with ath10k?
* And can you confirm that changing encryption to none has no effect on the 
  problem.
* Can you confirm that reverting commit cd93b83ad927 ("ath10k: support for 
  multicast rate control") [1] in ath10k fixes this problem?
* Can you confirm that manually setting mcast_rate to 18000  in the mesh wifi-
  iface fixes the problem?

    config wifi-iface 'mesh0'
        option device 'radio0'
        option ifname 'mesh0'
        option network 'nwi_mesh0'
        option mode 'mesh'
        option mesh_id 'TestMesh'
        option mesh_fwding '1'
        option mcast_rate '18000' 
        option encryption 'none'

* can you confirm that it lo

It looks for me like mac80211 is trying to set the mcast_rate which is 
interpreted by ath10k in ath10k_bss_info_changed as 11 Mbit/s (CCK). Which is 
of course not supported on 5GHz. So all your pretty little broadcast/multicast 
packets end up in nirvana.

Problem here is that rateidx is -1. Which means that it cannot just programmed 
up by us.

Can you check if following works for you (add it as patch to 
package/kernel/mac80211/patches/ath/ and hope that my MUA didn't
reformat the patch):

diff --git a/drivers/net/wireless/ath/ath10k/mac.c 
b/drivers/net/wireless/ath/ath10k/mac.c
index b73c23d4ce86..85c6d820e8c4 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -5778,6 +5778,10 @@ static void ath10k_bss_info_changed(struct ieee80211_hw 
*hw,
                band = def.chan->band;
                rateidx = vif->bss_conf.mcast_rate[band] - 1;
 
+               /* fallback to lowest rate when mcast_rate == -1 */
+               if (rateidx < 0)
+                       rateidx = 0;
+
                if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY)
                        rateidx += ATH10K_MAC_FIRST_OFDM_RATE_IDX;


Kind regards,
        Sven

[1] 
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=cd93b83ad927b2c7979e0add0343ace59328b461

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to