History

wifi: cfg80211/mac80211: Add NL80211_IFTYPE_PD for PD PASN and PMSR operations

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.

Peddolla Harshavardhan Reddy committed 6 months ago

Commit 55f23d61 parent 4dbd18213 files · +55 −4Browse files

Showing the changes to include/uapi (1 of 13 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+2−0
@@ -3842,6 +3842,7 @@ enum nl80211_attrs { · 3841 unmodified lines
3842 * @NL80211_IFTYPE_NAN_DATA: NAN data interface type (netdev); NAN data3842 * @NL80211_IFTYPE_NAN_DATA: NAN data interface type (netdev); NAN data
3843 * interfaces can only be brought up (IFF_UP) when a NAN interface3843 * 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 defined3846 * @NL80211_IFTYPE_MAX: highest interface type number currently defined
3846 * @NUM_NL80211_IFTYPES: number of defined interface types3847 * @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,