diff --git a/sys/net80211/ieee80211_ioctl.h b/sys/net80211/ieee80211_ioctl.h index 18152495c499..d6c15f36ba3f 100644 --- a/sys/net80211/ieee80211_ioctl.h +++ b/sys/net80211/ieee80211_ioctl.h @@ -287,6 +287,26 @@ struct ieee80211req_key { uint8_t ik_keydata[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE]; }; +/* + * New versioned key get / set API. + */ + +#define IEEE80211_KEY_REQ_VERSION_1 0x00000001 + +struct ieee80211_req_key_version_1 { + uint32_t ik_version; /* must be IEEE80211_KEY_REQ_VERSION_1 */ + uint32_t ik_size; /* size of struct plus trailing keybuf / micbuf space */ + uint16_t ik_keyix; /* key index */ + uint16_t ik_keylen; /* key length in bytes */ + uint32_t ik_flags; +/* NB: IEEE80211_KEY_XMIT, IEEE80211_KEY_RECV, IEEE80211_KEY_DEFAULT defined elsewhere */ + uint64_t ik_keyrsc; /* key receive sequence counter */ + uint64_t ik_keytsc; /* key transmit sequence counter */ + uint8_t ik_macaddr[IEEE80211_ADDR_LEN]; + uint8_t ik_keydata[1]; /* NB: variable length */ +}; + + /* * Delete a key either by index or address. Set the index * to IEEE80211_KEYIX_NONE when deleting a unicast key.