ath11k multicast action frame RX

Baochen Qiang quic_bqiang at quicinc.com
Wed Feb 21 18:26:45 PST 2024



On 2/21/2024 8:24 PM, James Prestwood wrote:
> 
> On 2/20/24 7:45 PM, Baochen Qiang wrote:
>>
>>
>> On 1/31/2024 8:28 PM, James Prestwood wrote:
>>> Hi Baochen,
>>>
>>>>> As you may have guessed I don't _really_ know what I'm doing. When 
>>>>> I got this working with ath10k I saw monitor device was being used 
>>>>> in order to receive probes, and did the same for multicast action 
>>>>> frames and it "just worked". The frames themselves were still being 
>>>>> received on the station device. I attempted to mimic the changes 
>>>>> with ath11k.
>>>>>
>>>>> The end goal here is just that, be able to receive multicast action 
>>>>> frames on the station device which currently does not work. I'm 
>>>>> only seeing unicast frames when i enable RX debugging. The driver 
>>>>> support for multicast action RX in the kernel for this is basically 
>>>>> zero. An extended feature flag was added by Jouni when he added 
>>>>> support to ath9k, I added limited ath10k support for a variant I 
>>>>> tested, and I'd like to do the same for ath11k as we are 
>>>>> transitioning to the WCN6855.
>>>> OK, so you are testing this with latest ath.git, without any private 
>>>> changes, and it doesn't work, right? Could you share your test 
>>>> steps? Basically how are you sending multicast action frames from 
>>>> AP/peer, and how to check if that frame received or not (I am 
>>>> assuming by checking RX logs)?
>>>
>>> Yep I'm on the latest ath.git, and with no changes apart from that 
>>> MSI vector hack to get it working with vfio-pci.
>>>
>>> The way I'm testing this is using IWD with DPP PKEX. Building IWD 
>>> should be relatively straight forward, very few dependencies. This 
>>> will also include iwctl which is IWD's command line utility:
>>>
>>> https://git.kernel.org/pub/scm/network/wireless/iwd.git/
>>>
>>> I have two devices, the configurator device (device A, ath11k) is 
>>> what should be able to receive the multicast action frames. The 
>>> enrollee device (device B) can use probably any hardware as sending 
>>> multicast action frames should be supported. IWD will not start a DPP 
>>> PKEX configurator without EXT_FEATURE_MULTICAST_REGISTRATIONS set but 
>>> if you enable RX logging that should be good enough to see if the 
>>> frame is making it to the ath11k driver itself. Once multicast RX is 
>>> supported we would need to add that extended feature to ath11k, or at 
>>> least the tested variant. If you want, you can hack in that feature 
>>> bit and start a configurator but if your able to get the muticast RX 
>>> working I can probably take it from there:
>>>
>>> 1. Enable RX logging on device A
>>>
>>> 2. Start IWD on device A
>>>
>>>      iwd -d
>>>
>>> 3. Connect to a network on device A
>>>
>>>      iwctl station <wlan> connect <ssid>
>>>
>>>      <enter passphrase>
>>>
>>> # Optional: start a configurator. This won't work without the ext 
>>> feature set
>>>
>>>     iwctl pkex <wlan> configure secret123
>>>
>>> 4. Start IWD on device B, do not connect.
>>>
>>>      iwd -d
>>>
>>> 5. Start DPP PKEX as an enrollee on device B:
>>>
>>>      iwctl pkex <wlan> enroll secret123
>>>
>>> On device B you should see IWD first scan to establish nearby 
>>> APs/frequencies, then begin iterating those frequencies and sending a 
>>> multicast action frame.
>> Hi James, I reproduced this issue following your guide. From the 
>> advise of firmware team, a new flag is needed. With that flag, I did 
>> see the multicast action frame in device A logging. Before I proceed, 
>> want to clarify something: that frame is only seen after device A 
>> triggers a scan (I triggered it manually using iw, not IWD itself 
>> because IWD not working on device A due to unknown errors), if no scan 
>> no frame seen. I am not sure if this behavior is expected so now 
>> checking with internal team on it.
>>
>> So there comes a question: will IWD triggers scan on device A in order 
>> to receive that frame?
> 
> That's great its possible! And thank you for looking into this.
> 
> That seems very odd that device A would need to scan in order to receive 
> a multicast frame. In all reality neither device should have to scan at 
> all, device B just does in order to know what frequencies to start 
> sending the multicast frames on. Even this isn't entirely needed if the 
> frequency was known ahead of time. I think something is not right if a 
> scan must be issued in order to receive these frames. This wasn't 
> required by ath10k when I added it, nor is it by mac80211_hwsim; you can 
But you are using monitor mode, not station mode, on ath10k, right?

> just start listening and receive the frames.
> 
> Thanks,
> 
> James
> 
>>
>>>
>>> Thanks,
>>>
>>> James
>>>
>>>>
>>>>>
>>>>> And help is much appreciated, and I'm happy to put in the work its 
>>>>> just a steep learning curve coupled with the fact that any FW level 
>>>>> communication is proprietary. I really just need a nudge in the 
>>>>> right direction.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> James
>>>>>
>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> James
>>>>>>>
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>>
>>>>>>>> James
>>>>>>>>
>>>>>>>>
>>>>>>



More information about the ath11k mailing list