Page MenuHomeFreeBSD

LinuxKPI: LKPI_80211_HW_CRYPTO: add basic multi-keys support
Needs ReviewPublic

Authored by cc on Mar 21 2024, 10:11 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, May 4, 1:23 PM
Unknown Object (File)
Thu, May 2, 10:01 AM
Unknown Object (File)
Tue, Apr 30, 8:22 PM
Unknown Object (File)
Fri, Apr 26, 12:52 PM
Unknown Object (File)
Fri, Apr 26, 4:25 AM
Unknown Object (File)
Tue, Apr 23, 6:23 AM
Unknown Object (File)
Mon, Apr 22, 11:30 PM
Unknown Object (File)
Sun, Apr 14, 5:49 PM

Details

Reviewers
adrian
bz
Summary

This patch is based on D43648 and D44260.

PR: 277554,277416,277095
MFC after: 3 days
Sponsored by: The FreeBSD Foundation

Test Plan

My current AP only gives two keys: unicast and broadcast. Need discussion with
reviewers about why the hw key based on unicast key index does not work for
dhclient.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 56729
Build 53617: arc lint + arc unit

Event Timeline

cc requested review of this revision.Mar 21 2024, 10:11 PM

you negotiate it as an extension, and then it's used to switch STA keys without dropping frames.

Otherwise there's a window when you change STA keys where you'd have to stop traffic, flip the keys over, and then start traffic again, and that causes hiccups in traffic flows. Super annoying for low latency operations like VoIP.

you negotiate it as an extension, and then it's used to switch STA keys without dropping frames.

During association with the AP, sw/hw keys (indexes) are set. And before tx, the hw key is selected by sw key's index returned from ieee80211_crypto_get_txkey(), same way as without LKPI_80211_HW_CRYPTO.

Would you please elaborate "you negotiate it as an extension"? I am not fully following up with your comment. I thought a frame only needs one key, as a key is selected every time the lkpi_80211_txq_tx_one() is called. Why would a frame need to switch STA keys?

sys/compat/linuxkpi/common/src/linux_80211.c
849

Should this be asserted/logged after the key alloc/set call? Since if the driver hasn't set this to anything you're gonna have big problems?