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 | 1829 | * %NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities per |
| 1830 | 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 | 1851 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 1833 | 1852 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 1834 | 1853 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -2213,6 +2232,9 @@ enum nl80211_attrs { · 378 unmodified lines | ||
| 2213 | 2232 | |
| 2214 | 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 | 2238 | /* add attributes here, update the policy in nl80211.c */ |
| 2217 | 2239 | |
| 2218 | 2240 | __NL80211_ATTR_AFTER_LAST, |
| @@ -4479,6 +4501,12 @@ enum nl80211_feature_flags { · 2260 unmodified lines | ||
| 4479 | 4501 | * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set |
| 4480 | 4502 | * the ASSOC_REQ_USE_RRM flag in the association request even if |
| 4481 | 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 | 4511 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 4484 | 4512 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| @@ -4486,6 +4514,7 @@ enum nl80211_feature_flags { · 1 unmodified line | ||
| 4486 | 4514 | enum nl80211_ext_feature_index { |
| 4487 | 4515 | NL80211_EXT_FEATURE_VHT_IBSS, |
| 4488 | 4516 | NL80211_EXT_FEATURE_RRM, |
| 4517 | + NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER, | |
| 4489 | 4518 | |
| 4490 | 4519 | /* add new features before the definition below */ |
| 4491 | 4520 | NUM_NL80211_EXT_FEATURES, |