cfg80211: VLAN offload support for set_key and set_sta_vlan
This provides an alternative mechanism for AP VLAN support where a single netdev is used with VLAN tagged frames instead of separate netdevs for each VLAN without tagged frames from the WLAN driver. By setting NL80211_EXT_FEATURE_VLAN_OFFLOAD flag the driver indicates support for a single netdev with VLAN tagged frames. Separate VLAN-specific netdevs can be added using RTM_NEWLINK/IFLA_VLAN_ID similarly to Ethernet. NL80211_CMD_NEW_KEY (for group keys), NL80211_CMD_NEW_STATION, and NL80211_CMD_SET_STATION will optionally specify vlan_id using NL80211_ATTR_VLAN_ID. Signed-off-by: Gurumoorthi Gnanasambandhan <gguru@codeaurora.org> Signed-off-by: Jouni Malinen <jouni@codeaurora.org> Link: https://lore.kernel.org/r/20191031214640.5012-1-jouni@codeaurora.org Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
committed by
Johannes Berg
parent
6912daed05
commit
14f34e36b3
@@ -565,6 +565,7 @@ struct vif_params {
|
||||
* with the get_key() callback, must be in little endian,
|
||||
* length given by @seq_len.
|
||||
* @seq_len: length of @seq.
|
||||
* @vlan_id: vlan_id for VLAN group key (if nonzero)
|
||||
* @mode: key install mode (RX_TX, NO_TX or SET_TX)
|
||||
*/
|
||||
struct key_params {
|
||||
@@ -572,6 +573,7 @@ struct key_params {
|
||||
const u8 *seq;
|
||||
int key_len;
|
||||
int seq_len;
|
||||
u16 vlan_id;
|
||||
u32 cipher;
|
||||
enum nl80211_key_mode mode;
|
||||
};
|
||||
@@ -1124,6 +1126,7 @@ struct sta_txpwr {
|
||||
* (bitmask of BIT(%NL80211_STA_FLAG_...))
|
||||
* @listen_interval: listen interval or -1 for no change
|
||||
* @aid: AID or zero for no change
|
||||
* @vlan_id: VLAN ID for station (if nonzero)
|
||||
* @peer_aid: mesh peer AID or zero for no change
|
||||
* @plink_action: plink action to take
|
||||
* @plink_state: set the peer link state for a station
|
||||
@@ -1159,6 +1162,7 @@ struct station_parameters {
|
||||
u32 sta_modify_mask;
|
||||
int listen_interval;
|
||||
u16 aid;
|
||||
u16 vlan_id;
|
||||
u16 peer_aid;
|
||||
u8 supported_rates_len;
|
||||
u8 plink_action;
|
||||
|
||||
Reference in New Issue
Block a user