Add a new wdev-only interface type NL80211_IFTYPE_PD to support Proximity Detection (PD) operations such as PASN and peer measurement operations. This interface type operates without a netdev, similar to P2P_DEVICE and NAN interfaces. Implement support across cfg80211 and mac80211 layers with PD-specific checks gated by the NL80211_EXT_FEATURE_SECURE_RTT feature flag, management frame registration and transmission capabilities, and proper channel context handling where PD interfaces are excluded from bandwidth calculations. Update mac80211 to recognize the new interface type in the relevant paths for this management-only interface. PD discovery can be performed on any available interface, such as NL80211_IFTYPE_STATION. If PD/PMSR uses the MAC address of an existing interface type, such as NL80211_IFTYPE_STATION, then pairing and measurement shall use that same interface. If PD/PMSR uses a different MAC address, such as a random MAC address, then pairing and measurement can be performed on a new NL80211_IFTYPE_PD interface created with that random MAC address.
Showing the changes to include/uapi (1 of 13 files). Show all
Unified · Split
| @@ -3842,6 +3842,7 @@ enum nl80211_attrs { · 3841 unmodified lines | |||
| 3842 | * @NL80211_IFTYPE_NAN_DATA: NAN data interface type (netdev); NAN data | 3842 | * @NL80211_IFTYPE_NAN_DATA: NAN data interface type (netdev); NAN data |
| 3843 | * interfaces can only be brought up (IFF_UP) when a NAN interface | 3843 | * interfaces can only be brought up (IFF_UP) when a NAN interface |
| 3844 | * already exists and NAN has been started (using %NL80211_CMD_START_NAN). | 3844 | * already exists and NAN has been started (using %NL80211_CMD_START_NAN). |
| 3845 | * @NL80211_IFTYPE_PD: PD device interface type (not a netdev) | ||
| 3845 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined | 3846 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined |
| 3846 | * @NUM_NL80211_IFTYPES: number of defined interface types | 3847 | * @NUM_NL80211_IFTYPES: number of defined interface types |
| 3847 | * | 3848 | * |
| @@ -3864,6 +3865,7 @@ enum nl80211_iftype { · 16 unmodified lines | |||
| 3864 | NL80211_IFTYPE_OCB, | 3865 | NL80211_IFTYPE_OCB, |
| 3865 | NL80211_IFTYPE_NAN, | 3866 | NL80211_IFTYPE_NAN, |
| 3866 | NL80211_IFTYPE_NAN_DATA, | 3867 | NL80211_IFTYPE_NAN_DATA, |
| 3868 | NL80211_IFTYPE_PD, | ||
| 3867 | 3869 | ||
| 3868 | /* keep last */ | 3870 | /* keep last */ |
| 3869 | NUM_NL80211_IFTYPES, | 3871 | NUM_NL80211_IFTYPES, |