diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2019-03-17 23:31:22 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-03-17 23:31:22 -0700 |
| commit | e011552eeeaf9dec090946f8e2f3c65020b0436e (patch) | |
| tree | b7c2bcd18225d380e56a8b032e9a96e8a6280cab /include | |
| parent | ba8736dd231884b53f8518b9492f581df264d9fc (diff) | |
| parent | f57fa308b0d8330580a932dcc5c460e9d2352284 (diff) | |
Merge "cfg80211/nl80211: Offload OWE processing to user space"
Diffstat (limited to 'include')
| -rw-r--r-- | include/net/cfg80211.h | 41 | ||||
| -rw-r--r-- | include/uapi/linux/nl80211.h | 6 |
2 files changed, 47 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 18aff0c86724..78ad3fe17a09 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -2444,6 +2444,31 @@ struct cfg80211_external_auth_params { }; /** + * struct cfg80211_update_owe_info - OWE Information + * + * This structure provides information needed for the drivers to offload OWE + * (Oppurtunistic Wireless Encryption) processing to the user space. + * + * Commonly used across update_owe request and event interfaces. + * + * @bssid: BSSID of the peer from which the OWE processing has to be done. + * @status: status code, %WLAN_STATUS_SUCCESS for successful OWE info + * processing, use %WLAN_STATUS_UNSPECIFIED_FAILURE if user space + * cannot give you the real status code for failures. Used only for + * OWE update response command interface (user space to driver). + * @ie: IE's obtained from the peer or constructed by the user space. These are + * the IE's of the remote peer in the event from the host driver and + * the constructed IE's by the user space in the request interface. + * @ie_len: Length of IE's in octets. + */ +struct cfg80211_update_owe_info { + u8 bssid[ETH_ALEN] __aligned(2); + u16 status; + const u8 *ie; + size_t ie_len; +}; + +/** * struct cfg80211_ops - backend description for wireless configuration * * This struct is registered by fullmac card drivers and/or wireless stacks @@ -2741,6 +2766,10 @@ struct cfg80211_external_auth_params { * * @external_auth: indicates result of offloaded authentication processing from * user space + * + * @update_owe_info: Provide updated OWE info to driver. Driver implementing SME + * but offloading the OWE processing to the user space will get the updated + * DH IE's (from the IE's) obtained through this interface. */ struct cfg80211_ops { int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); @@ -3012,6 +3041,8 @@ struct cfg80211_ops { const u8 *addr); int (*external_auth)(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_external_auth_params *params); + int (*update_owe_info)(struct wiphy *wiphy, struct net_device *dev, + struct cfg80211_update_owe_info *owe_info); }; /* @@ -5896,4 +5927,14 @@ int cfg80211_external_auth_request(struct net_device *netdev, #define wiphy_WARN(wiphy, format, args...) \ WARN(1, "wiphy: %s\n" format, wiphy_name(wiphy), ##args); +/** + * cfg80211_update_owe_info_event - Notify the peer's OWE info to user space + * @netdev: network device + * @owe_info: peer's owe info + * @gfp: allocation flags + */ +void cfg80211_update_owe_info_event(struct net_device *netdev, + struct cfg80211_update_owe_info *owe_info, + gfp_t gfp); + #endif /* __NET_CFG80211_H */ diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index 0527b779f2f0..9ac3946a916f 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h @@ -990,6 +990,11 @@ * indicated by %NL80211_ATTR_WIPHY_FREQ and other attributes * determining the width and type. * + * @NL80211_CMD_UPDATE_OWE_INFO: This interface allows the host driver to + * offload OWE processing to user space. This intends to support + * OWE/Enhanced Open AKM by the host drivers that implemnt SME but rely + * on the user space for the crypotographic/DH IE processing. + * * @NL80211_CMD_MAX: highest used command number * @__NL80211_CMD_AFTER_LAST: internal use */ @@ -1210,6 +1215,7 @@ enum nl80211_commands { NL80211_CMD_NOTIFY_RADAR, + NL80211_CMD_UPDATE_OWE_INFO, /* add new commands above here */ /* used to define NL80211_CMD_MAX below */ |
