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.
Showing the changes to include/uapi/linux (1 of 3 files). Show all
Unified · Split
| @@ -248,6 +248,22 @@ · 247 unmodified lines | ||
| 248 | 248 | * %NL80211_ATTR_SAE_PASSWORD. |
| 249 | 249 | */ |
| 250 | 250 | |
| 251 | +/** | |
| 252 | + * DOC: VLAN offload support for setting group keys and binding STAs to VLANs | |
| 253 | + * | |
| 254 | + * By setting @NL80211_EXT_FEATURE_VLAN_OFFLOAD flag drivers can indicate they | |
| 255 | + * support offloading VLAN functionality in a manner where the driver exposes a | |
| 256 | + * single netdev that uses VLAN tagged frames and separate VLAN-specific netdevs | |
| 257 | + * can then be added using RTM_NEWLINK/IFLA_VLAN_ID similarly to the Ethernet | |
| 258 | + * case. Frames received from stations that are not assigned to any VLAN are | |
| 259 | + * delivered on the main netdev and frames to such stations can be sent through | |
| 260 | + * that main netdev. | |
| 261 | + * | |
| 262 | + * %NL80211_CMD_NEW_KEY (for group keys), %NL80211_CMD_NEW_STATION, and | |
| 263 | + * %NL80211_CMD_SET_STATION will optionally specify vlan_id using | |
| 264 | + * %NL80211_ATTR_VLAN_ID. | |
| 265 | + */ | |
| 266 | + | |
| 251 | 267 | /** |
| 252 | 268 | * enum nl80211_commands - supported nl80211 commands |
| 253 | 269 | * |
| @@ -2381,6 +2397,9 @@ enum nl80211_commands { · 2127 unmodified lines | ||
| 2381 | 2397 | * the allowed channel bandwidth configurations. (u8 attribute) |
| 2382 | 2398 | * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13. |
| 2383 | 2399 | * |
| 2400 | + * @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key | |
| 2401 | + * (u16). | |
| 2402 | + * | |
| 2384 | 2403 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2385 | 2404 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 2386 | 2405 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -2843,6 +2862,8 @@ enum nl80211_attrs { · 456 unmodified lines | ||
| 2843 | 2862 | NL80211_ATTR_WIPHY_EDMG_CHANNELS, |
| 2844 | 2863 | NL80211_ATTR_WIPHY_EDMG_BW_CONFIG, |
| 2845 | 2864 | |
| 2865 | + NL80211_ATTR_VLAN_ID, | |
| 2866 | + | |
| 2846 | 2867 | /* add attributes here, update the policy in nl80211.c */ |
| 2847 | 2868 | |
| 2848 | 2869 | __NL80211_ATTR_AFTER_LAST, |
| @@ -5492,6 +5513,10 @@ enum nl80211_feature_flags { · 2643 unmodified lines | ||
| 5492 | 5513 | * @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in |
| 5493 | 5514 | * station mode (SAE password is passed as part of the connect command). |
| 5494 | 5515 | * |
| 5516 | + * @NL80211_EXT_FEATURE_VLAN_OFFLOAD: The driver supports a single netdev | |
| 5517 | + * with VLAN tagged frames and separate VLAN-specific netdevs added using | |
| 5518 | + * vconfig similarly to the Ethernet case. | |
| 5519 | + * | |
| 5495 | 5520 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 5496 | 5521 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| 5497 | 5522 | */ |
| @@ -5537,6 +5562,7 @@ enum nl80211_ext_feature_index { · 39 unmodified lines | ||
| 5537 | 5562 | NL80211_EXT_FEATURE_EXT_KEY_ID, |
| 5538 | 5563 | NL80211_EXT_FEATURE_STA_TX_PWR, |
| 5539 | 5564 | NL80211_EXT_FEATURE_SAE_OFFLOAD, |
| 5565 | + NL80211_EXT_FEATURE_VLAN_OFFLOAD, | |
| 5540 | 5566 | |
| 5541 | 5567 | /* add new features before the definition below */ |
| 5542 | 5568 | NUM_NL80211_EXT_FEATURES, |