QCA9888: mesh does not receive broadcast packets
Remi Pommarel
repk at triplefau.lt
Mon Mar 20 04:51:16 PDT 2023
Hi,
Using QCA9888 on kernel 5.15 with FW 10.4-3.10-00076, if a mesh
interface is created while a STA is scanning on the same phy, the mesh
interface connects correctly to other mesh nodes but not a single
broadcast packet is received by ath10k (unicast packets are received
correctly). Creating a monitor interface on this phy and bringing it up
allows the mesh interface to receive those broadcast packet.
I tried to add debug in ath10k_htt_rx_h_enqueue() to see ath10k was
seeing those broadcast packets but it doesn't (ath10k_htt_rx_h_enqueue()
sees them only when monitor interface is up).
So I have a hunch it could be that this is a FW issue, I tried with
10.4-3.9.0.2-00157 FW which seem more recent than 10.4-3.10-00076 but
the issue is still here.
Has anyone with a better understanding of the 9888 firmware and/or
ath10k driver any idea how to debug this further ?
I use the script below to reproduce the issue but as it seems to be very
timing sensitive I am not sure other plateform will behave the same.
Thanks
--
Remi
---
#!/bin/sh
start_sta() {
iw phy phy1 interface add wlan1 type managed
wpa_supplicant -Dnl80211 -i wlan1 -C /tmp/sta_supp&
STA_PID=$!
sleep 4
wpa_cli -p /tmp/sta_supp/ RAW ADD_NETWORK
wpa_cli -p /tmp/sta_supp/ RAW SET_NETWORK 0 ssid \"\"
wpa_cli -p /tmp/sta_supp/ RAW SET_NETWORK 0 key_mgmt NONE
wpa_cli -p /tmp/sta_supp/ RAW SET_NETWORK 0 scan_ssid 0
wpa_cli -p /tmp/sta_supp/ RAW ENABLE_NETWORK 0
}
stop_sta() {
if [ ! "x${STA_PID}" = "x" ]; then
wpa_cli -p /tmp/wpa_supp RAW REMOVE_NETWORK 0
kill ${STA_PID}
fi
iw dev wlan1 del
}
start_mesh() {
iw phy phy1 interface add mesh1 type mesh
ip link set dev mesh1 address 72:FC:8F:A6:00:C4
wpa_supplicant -Dnl80211 -i mesh1 -C /tmp/mesh_supp&
MESH_PID=$!
sleep 4
wpa_cli -p /tmp/mesh_supp/ RAW ADD_NETWORK
wpa_cli -p /tmp/mesh_supp/ RAW SET_NETWORK 0 ssid \"mesh\"
wpa_cli -p /tmp/mesh_supp/ RAW SET_NETWORK 0 key_mgmt NONE
wpa_cli -p /tmp/mesh_supp/ RAW SET_NETWORK 0 frequency 5240
wpa_cli -p /tmp/mesh_supp/ RAW SET_NETWORK 0 mode 5
wpa_cli -p /tmp/mesh_supp/ RAW SET_NETWORK 0 beacon_int 120
wpa_cli -p /tmp/mesh_supp/ RAW ENABLE_NETWORK 0
}
stop_mesh() {
if [ ! "x${MESH_PID}" = "x" ]; then
wpa_cli -p /tmp/mesh_supp RAW REMOVE_NETWORK 0
kill ${MESH_PID}
fi
iw dev mesh1 del
}
main() {
while [ true ]; do
stop_sta
stop_mesh
start_sta
start_mesh
sleep 10
tcpdump -nepi mesh1 -c 4 -Qin broadcast
done
}
main
More information about the ath10k
mailing list