nl80211: Implement TX of control port frames
This commit implements the TX side of NL80211_CMD_CONTROL_PORT_FRAME. Userspace provides the raw EAPoL frame using NL80211_ATTR_FRAME. Userspace should also provide the destination address and the protocol type to use when sending the frame. This is used to implement TX of Pre-authentication frames. If CONTROL_PORT_ETHERTYPE_NO_ENCRYPT is specified, then the driver will be asked not to encrypt the outgoing frame. A new EXT_FEATURE flag is introduced so that nl80211 code can check whether a given wiphy has capability to pass EAPoL frames over nl80211. Signed-off-by: Denis Kenzior <denkenz@gmail.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:

committed by
Johannes Berg

parent
6a671a50f8
commit
2576a9ace4
@@ -2961,6 +2961,9 @@ struct cfg80211_external_auth_params {
|
||||
*
|
||||
* @external_auth: indicates result of offloaded authentication processing from
|
||||
* user space
|
||||
*
|
||||
* @tx_control_port: TX a control port frame (EAPoL). The noencrypt parameter
|
||||
* tells the driver that the frame should not be encrypted.
|
||||
*/
|
||||
struct cfg80211_ops {
|
||||
int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
|
||||
@@ -3256,6 +3259,12 @@ struct cfg80211_ops {
|
||||
const u8 *aa);
|
||||
int (*external_auth)(struct wiphy *wiphy, struct net_device *dev,
|
||||
struct cfg80211_external_auth_params *params);
|
||||
|
||||
int (*tx_control_port)(struct wiphy *wiphy,
|
||||
struct net_device *dev,
|
||||
const u8 *buf, size_t len,
|
||||
const u8 *dest, const __be16 proto,
|
||||
const bool noencrypt);
|
||||
};
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user