History

nl80211: Add API to support VHT MU-MIMO air sniffer

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.

Aviya Erenfeld committed 10 years ago

Commit c6e6a0c1 parent f89e07d3 files · +73 −2Browse files

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

Unified · Split

include/uapi/linux/nl80211.h+29−0
@@ -1829,6 +1829,25 @@ enum nl80211_commands { · 1828 unmodified lines
18291829 * %NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities per
18301830 * interface type.
18311831 *
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+ *
18321851 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
18331852 * @NL80211_ATTR_MAX: highest attribute number currently defined
18341853 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2213,6 +2232,9 @@ enum nl80211_attrs { · 378 unmodified lines
22132232
22142233 NL80211_ATTR_IFTYPE_EXT_CAPA,
22152234
2235+ NL80211_ATTR_MU_MIMO_GROUP_DATA,
2236+ NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR,
2237+
22162238 /* add attributes here, update the policy in nl80211.c */
22172239
22182240 __NL80211_ATTR_AFTER_LAST,
@@ -4479,6 +4501,12 @@ enum nl80211_feature_flags { · 2260 unmodified lines
44794501 * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set
44804502 * the ASSOC_REQ_USE_RRM flag in the association request even if
44814503 * 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.
44824510 *
44834511 * @NUM_NL80211_EXT_FEATURES: number of extended features.
44844512 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
@@ -4486,6 +4514,7 @@ enum nl80211_feature_flags { · 1 unmodified line
44864514 enum nl80211_ext_feature_index {
44874515 NL80211_EXT_FEATURE_VHT_IBSS,
44884516 NL80211_EXT_FEATURE_RRM,
4517+ NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER,
44894518
44904519 /* add new features before the definition below */
44914520 NUM_NL80211_EXT_FEATURES,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t