From 059613f4d1cacc0ccc90c88fac35b7a9a45ead5c Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 22 Nov 2010 19:59:13 +0000 Subject: [PATCH] iw: sync nl80211 header to fix the multicast rate setting SVN-Revision: 24104 --- package/iw/patches/001-nl80211_sync.patch | 60 ++++++++++++++++++----- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/package/iw/patches/001-nl80211_sync.patch b/package/iw/patches/001-nl80211_sync.patch index b3482d70e4..3f01fbf0d4 100644 --- a/package/iw/patches/001-nl80211_sync.patch +++ b/package/iw/patches/001-nl80211_sync.patch @@ -55,19 +55,41 @@ * * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver. * We recommend using nested, driver-specific attributes within this. -@@ -787,6 +801,11 @@ enum nl80211_commands { +@@ -787,6 +801,33 @@ enum nl80211_commands { * This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING * for non-automatic settings. * + * @NL80211_ATTR_SUPPORT_IBSS_RSN: The device supports IBSS RSN, which mostly + * means support for per-station GTKs. + * ++ * @NL80211_ATTR_WIPHY_ANTENNA_TX: Bitmap of allowed antennas for transmitting. ++ * This can be used to mask out antennas which are not attached or should ++ * not be used for transmitting. If an antenna is not selected in this ++ * bitmap the hardware is not allowed to transmit on this antenna. ++ * ++ * Each bit represents one antenna, starting with antenna 1 at the first ++ * bit. Depending on which antennas are selected in the bitmap, 802.11n ++ * drivers can derive which chainmasks to use (if all antennas belonging to ++ * a particular chain are disabled this chain should be disabled) and if ++ * a chain has diversity antennas wether diversity should be used or not. ++ * HT capabilities (STBC, TX Beamforming, Antenna selection) can be ++ * derived from the available chains after applying the antenna mask. ++ * Non-802.11n drivers can derive wether to use diversity or not. ++ * Drivers may reject configurations or RX/TX mask combinations they cannot ++ * support by returning -EINVAL. ++ * ++ * @NL80211_ATTR_WIPHY_ANTENNA_RX: Bitmap of allowed antennas for receiving. ++ * This can be used to mask out antennas which are not attached or should ++ * not be used for receiving. If an antenna is not selected in this bitmap ++ * the hardware should not be configured to receive on this antenna. ++ * For a more detailed descripton see @NL80211_ATTR_WIPHY_ANTENNA_TX. ++ * + * @NL80211_ATTR_MCAST_RATE: Multicast tx rate (in 100 kbps) for IBSS + * * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use */ -@@ -951,6 +970,13 @@ enum nl80211_attrs { +@@ -951,6 +992,16 @@ enum nl80211_attrs { NL80211_ATTR_RX_FRAME_TYPES, NL80211_ATTR_FRAME_TYPE, @@ -76,12 +98,15 @@ + + NL80211_ATTR_SUPPORT_IBSS_RSN, + ++ NL80211_ATTR_WIPHY_ANTENNA_TX, ++ NL80211_ATTR_WIPHY_ANTENNA_RX, ++ + NL80211_ATTR_MCAST_RATE, + /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, -@@ -1006,6 +1032,8 @@ enum nl80211_attrs { +@@ -1006,6 +1057,8 @@ enum nl80211_attrs { * @NL80211_IFTYPE_WDS: wireless distribution interface * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames * @NL80211_IFTYPE_MESH_POINT: mesh point @@ -90,7 +115,7 @@ * @NL80211_IFTYPE_MAX: highest interface type number currently defined * @NUM_NL80211_IFTYPES: number of defined interface types * -@@ -1022,6 +1050,8 @@ enum nl80211_iftype { +@@ -1022,6 +1075,8 @@ enum nl80211_iftype { NL80211_IFTYPE_WDS, NL80211_IFTYPE_MONITOR, NL80211_IFTYPE_MESH_POINT, @@ -99,7 +124,7 @@ /* keep last */ NUM_NL80211_IFTYPES, -@@ -1111,6 +1141,8 @@ enum nl80211_rate_info { +@@ -1111,6 +1166,8 @@ enum nl80211_rate_info { * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station) * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this * station) @@ -108,7 +133,7 @@ */ enum nl80211_sta_info { __NL80211_STA_INFO_INVALID, -@@ -1124,6 +1156,8 @@ enum nl80211_sta_info { +@@ -1124,6 +1181,8 @@ enum nl80211_sta_info { NL80211_STA_INFO_TX_BITRATE, NL80211_STA_INFO_RX_PACKETS, NL80211_STA_INFO_TX_PACKETS, @@ -117,7 +142,20 @@ /* keep last */ __NL80211_STA_INFO_AFTER_LAST, -@@ -1382,6 +1416,17 @@ enum nl80211_reg_rule_flags { +@@ -1277,7 +1336,11 @@ enum nl80211_bitrate_attr { + * wireless core it thinks its knows the regulatory domain we should be in. + * @NL80211_REGDOM_SET_BY_COUNTRY_IE: the wireless core has received an + * 802.11 country information element with regulatory information it +- * thinks we should consider. ++ * thinks we should consider. cfg80211 only processes the country ++ * code from the IE, and relies on the regulatory domain information ++ * structure pased by userspace (CRDA) from our wireless-regdb. ++ * If a channel is enabled but the country code indicates it should ++ * be disabled we disable the channel and re-enable it upon disassociation. + */ + enum nl80211_reg_initiator { + NL80211_REGDOM_SET_BY_CORE, +@@ -1382,6 +1445,17 @@ enum nl80211_reg_rule_flags { * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) @@ -135,7 +173,7 @@ * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number * currently defined * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use -@@ -1390,6 +1435,12 @@ enum nl80211_survey_info { +@@ -1390,6 +1464,12 @@ enum nl80211_survey_info { __NL80211_SURVEY_INFO_INVALID, NL80211_SURVEY_INFO_FREQUENCY, NL80211_SURVEY_INFO_NOISE, @@ -148,7 +186,7 @@ /* keep last */ __NL80211_SURVEY_INFO_AFTER_LAST, -@@ -1636,11 +1687,14 @@ enum nl80211_auth_type { +@@ -1636,11 +1716,14 @@ enum nl80211_auth_type { * @NL80211_KEYTYPE_GROUP: Group (broadcast/multicast) key * @NL80211_KEYTYPE_PAIRWISE: Pairwise (unicast/individual) key * @NL80211_KEYTYPE_PEERKEY: PeerKey (DLS) @@ -163,7 +201,7 @@ }; /** -@@ -1671,6 +1725,9 @@ enum nl80211_wpa_versions { +@@ -1671,6 +1754,9 @@ enum nl80211_wpa_versions { * CCMP keys, each six bytes in little endian * @NL80211_KEY_DEFAULT: flag indicating default key * @NL80211_KEY_DEFAULT_MGMT: flag indicating default management key @@ -173,7 +211,7 @@ * @__NL80211_KEY_AFTER_LAST: internal * @NL80211_KEY_MAX: highest key attribute */ -@@ -1682,6 +1739,7 @@ enum nl80211_key_attributes { +@@ -1682,6 +1768,7 @@ enum nl80211_key_attributes { NL80211_KEY_SEQ, NL80211_KEY_DEFAULT, NL80211_KEY_DEFAULT_MGMT,