add API to support VHT MU-MIMO air sniffer. in MU-MIMO there are parallel frames on the air while the HW has only one RX. add the capability to sniff one of the MU-MIMO parallel frames by giving the sniffer additional information so it'll know which of the parallel frames it shall follow. Add attribute - NL80211_ATTR_MU_MIMO_GROUP_DATA - for getting a MU-MIMO groupID in order to monitor packets from that group using VHT MU-MIMO. And add attribute -NL80211_ATTR_MU_MIMO_FOLLOW_ADDR - for passing MAC address to monitor mode. that option will be used by VHT MU-MIMO air sniffer to follow a station according to it's MAC address using VHT MU-MIMO.
Showing the changes to include/uapi (1 of 3 files). Show all
Unified · Split
| @@ -1829,6 +1829,25 @@ enum nl80211_commands { · 1828 unmodified lines | |||
| 1829 | * %NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities per | 1829 | * %NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities per |
| 1830 | * interface type. | 1830 | * interface type. |
| 1831 | * | 1831 | * |
| 1832 | * @NL80211_ATTR_MU_MIMO_GROUP_DATA: array of 24 bytes that defines a MU-MIMO | ||
| 1833 | * groupID for monitor mode. | ||
| 1834 | * The first 8 bytes are a mask that defines the membership in each | ||
| 1835 | * group (there are 64 groups, group 0 and 63 are reserved), | ||
| 1836 | * each bit represents a group and set to 1 for being a member in | ||
| 1837 | * that group and 0 for not being a member. | ||
| 1838 | * The remaining 16 bytes define the position in each group: 2 bits for | ||
| 1839 | * each group. | ||
| 1840 | * (smaller group numbers represented on most significant bits and bigger | ||
| 1841 | * group numbers on least significant bits.) | ||
| 1842 | * This attribute is used only if all interfaces are in monitor mode. | ||
| 1843 | * Set this attribute in order to monitor packets using the given MU-MIMO | ||
| 1844 | * groupID data. | ||
| 1845 | * to turn off that feature set all the bits of the groupID to zero. | ||
| 1846 | * @NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR: mac address for the sniffer to follow | ||
| 1847 | * when using MU-MIMO air sniffer. | ||
| 1848 | * to turn that feature off set an invalid mac address | ||
| 1849 | * (e.g. FF:FF:FF:FF:FF:FF) | ||
| 1850 | * | ||
| 1832 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 1851 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 1833 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 1852 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 1834 | * @__NL80211_ATTR_AFTER_LAST: internal use | 1853 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -2213,6 +2232,9 @@ enum nl80211_attrs { · 378 unmodified lines | |||
| 2213 | 2232 | ||
| 2214 | NL80211_ATTR_IFTYPE_EXT_CAPA, | 2233 | NL80211_ATTR_IFTYPE_EXT_CAPA, |
| 2215 | 2234 | ||
| 2235 | NL80211_ATTR_MU_MIMO_GROUP_DATA, | ||
| 2236 | NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR, | ||
| 2237 | |||
| 2216 | /* add attributes here, update the policy in nl80211.c */ | 2238 | /* add attributes here, update the policy in nl80211.c */ |
| 2217 | 2239 | ||
| 2218 | __NL80211_ATTR_AFTER_LAST, | 2240 | __NL80211_ATTR_AFTER_LAST, |
| @@ -4479,6 +4501,12 @@ enum nl80211_feature_flags { · 2260 unmodified lines | |||
| 4479 | * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set | 4501 | * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set |
| 4480 | * the ASSOC_REQ_USE_RRM flag in the association request even if | 4502 | * the ASSOC_REQ_USE_RRM flag in the association request even if |
| 4481 | * NL80211_FEATURE_QUIET is not advertized. | 4503 | * NL80211_FEATURE_QUIET is not advertized. |
| 4504 | * @NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER: This device supports MU-MIMO air | ||
| 4505 | * sniffer which means that it can be configured to hear packets from | ||
| 4506 | * certain groups which can be configured by the | ||
| 4507 | * %NL80211_ATTR_MU_MIMO_GROUP_DATA attribute, | ||
| 4508 | * or can be configured to follow a station by configuring the | ||
| 4509 | * %NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR attribute. | ||
| 4482 | * | 4510 | * |
| 4483 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | 4511 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 4484 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | 4512 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| @@ -4486,6 +4514,7 @@ enum nl80211_feature_flags { · 1 unmodified line | |||
| 4486 | enum nl80211_ext_feature_index { | 4514 | enum nl80211_ext_feature_index { |
| 4487 | NL80211_EXT_FEATURE_VHT_IBSS, | 4515 | NL80211_EXT_FEATURE_VHT_IBSS, |
| 4488 | NL80211_EXT_FEATURE_RRM, | 4516 | NL80211_EXT_FEATURE_RRM, |
| 4517 | NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER, | ||
| 4489 | 4518 | ||
| 4490 | /* add new features before the definition below */ | 4519 | /* add new features before the definition below */ |
| 4491 | NUM_NL80211_EXT_FEATURES, | 4520 | NUM_NL80211_EXT_FEATURES, |