Getting back to this ... as I was preparing my patch. > @@ -3687,6 +3692,9 @@ enum nl80211_key_attributes { > NL80211_KEY_DEFAULT_MGMT, > NL80211_KEY_TYPE, > NL80211_KEY_DEFAULT_TYPES, > + NL80211_KEY_REPLAY_CTR, > + NL80211_KEY_KCK, > + NL80211_KEY_KEK, You made those key attributes, but ... > nla_put(msg, NL80211_ATTR_RESP_IE, resp_ie_len, > resp_ie))) > goto nla_put_failure; > > + if (wiphy_ext_feature_isset(&rdev->wiphy, > + NL80211_EXT_FEATURE_KEY_MGMT_OFF > LOAD) && > + (nla_put_u8(msg, NL80211_ATTR_AUTHORIZED, authorized) || > + (key_replay_ctr && nla_put(msg, NL80211_KEY_REPLAY_CTR, > + NL80211_REPLAY_CTR_LEN, key_replay_ctr)) || > + (key_kck && > + nla_put(msg, NL80211_KEY_KCK, NL80211_KCK_LEN, > key_kck)) || > + (key_kek && > + nla_put(msg, NL80211_KEY_KEK, NL80211_KEK_LEN, > key_kek)))) > + goto nla_put_failure; Used them at a top level here! That can't possibly have worked. Anyway, I checked and we can transport these without adding new attributes, but adding the NL80211_ATTR_REKEY_DATA attribute with its nested KEK, KCK and REPLAY_CTR. That leaves the authorized attribute, I guess nesting a whole bunch of station info etc. doesn't make a lot of sense. I also fail to see how the data is actually configured down, since you just pass it through. I'll send our patch for configuring the PMK/PSK via the PMKSA cache separately in a few minutes. johannes