2019-03-08 13:03:38

by Ben Greear

[permalink] [raw]
Subject: Block ACK in firmware and software decrypt

I have run into a slightly tricky problem related to software decrypt
and block-ack handling in ath10k.

For testing purposes, I need to be able to run ath10k firmware in
software-decrypt mode, but the ath10k firmware also handles block
ack frames. This becomes a problem when using PMF because then the
firmware cannot decrypt the block-ack setup frames and so blockack
fails.

But, the mac80211 stack can indeed decrypt management frames, so I
was thinking maybe I could have a logic flow that looked like this:

ath10k registers with mac80211 on startup and asks to be notified
of certain management frames once they are decrypted (block-ack req, response)
ath10k sends encrypted frames up the stack to mac80211
mac80211 decrypts frames
mac80211 remembers ath10k wants to see decrypted mgt frames, and so sends
decoded block-ack req and response frames back to ath10k driver.
ath10k driver use WMI messaging interface to send contents and meta data
for the decoded block-ack frames to the firmware.
Firmware processes this as if it received it directly off the wire, letting
block-ack setup work.

So, this is a special case that would only work in my ath10k driver and
firmware, but does anyone else see another reason to allow something like
this into the upstream kernel?

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com