aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-11-09 08:56:41 -0500
committerJohannes Berg <johannes.berg@intel.com>2012-11-26 06:42:59 -0500
commitdb9c64cf8d9d3fcbc34b09d037f266d1fc9f928c (patch)
tree86326193fa7ad6762023e1777402bc3662c53597 /include/net/cfg80211.h
parent4bf88530be971bf95a7830ca61b4120980bf4347 (diff)
nl80211/cfg80211: add VHT MCS support
Add support for reporting and calculating VHT MCSes. Note that I'm not completely sure that the bitrate calculations are correct, nor that they can't be simplified. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r--include/net/cfg80211.h24
1 files changed, 17 insertions, 7 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 977da58fb7ea..e78db2cf3d1b 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -662,16 +662,24 @@ enum station_info_flags {
662 * Used by the driver to indicate the specific rate transmission 662 * Used by the driver to indicate the specific rate transmission
663 * type for 802.11n transmissions. 663 * type for 802.11n transmissions.
664 * 664 *
665 * @RATE_INFO_FLAGS_MCS: @tx_bitrate_mcs filled 665 * @RATE_INFO_FLAGS_MCS: mcs field filled with HT MCS
666 * @RATE_INFO_FLAGS_40_MHZ_WIDTH: 40 Mhz width transmission 666 * @RATE_INFO_FLAGS_VHT_MCS: mcs field filled with VHT MCS
667 * @RATE_INFO_FLAGS_40_MHZ_WIDTH: 40 MHz width transmission
668 * @RATE_INFO_FLAGS_80_MHZ_WIDTH: 80 MHz width transmission
669 * @RATE_INFO_FLAGS_80P80_MHZ_WIDTH: 80+80 MHz width transmission
670 * @RATE_INFO_FLAGS_160_MHZ_WIDTH: 160 MHz width transmission
667 * @RATE_INFO_FLAGS_SHORT_GI: 400ns guard interval 671 * @RATE_INFO_FLAGS_SHORT_GI: 400ns guard interval
668 * @RATE_INFO_FLAGS_60G: 60gHz MCS 672 * @RATE_INFO_FLAGS_60G: 60GHz MCS
669 */ 673 */
670enum rate_info_flags { 674enum rate_info_flags {
671 RATE_INFO_FLAGS_MCS = 1<<0, 675 RATE_INFO_FLAGS_MCS = BIT(0),
672 RATE_INFO_FLAGS_40_MHZ_WIDTH = 1<<1, 676 RATE_INFO_FLAGS_VHT_MCS = BIT(1),
673 RATE_INFO_FLAGS_SHORT_GI = 1<<2, 677 RATE_INFO_FLAGS_40_MHZ_WIDTH = BIT(2),
674 RATE_INFO_FLAGS_60G = 1<<3, 678 RATE_INFO_FLAGS_80_MHZ_WIDTH = BIT(3),
679 RATE_INFO_FLAGS_80P80_MHZ_WIDTH = BIT(4),
680 RATE_INFO_FLAGS_160_MHZ_WIDTH = BIT(5),
681 RATE_INFO_FLAGS_SHORT_GI = BIT(6),
682 RATE_INFO_FLAGS_60G = BIT(7),
675}; 683};
676 684
677/** 685/**
@@ -682,11 +690,13 @@ enum rate_info_flags {
682 * @flags: bitflag of flags from &enum rate_info_flags 690 * @flags: bitflag of flags from &enum rate_info_flags
683 * @mcs: mcs index if struct describes a 802.11n bitrate 691 * @mcs: mcs index if struct describes a 802.11n bitrate
684 * @legacy: bitrate in 100kbit/s for 802.11abg 692 * @legacy: bitrate in 100kbit/s for 802.11abg
693 * @nss: number of streams (VHT only)
685 */ 694 */
686struct rate_info { 695struct rate_info {
687 u8 flags; 696 u8 flags;
688 u8 mcs; 697 u8 mcs;
689 u16 legacy; 698 u16 legacy;
699 u8 nss;
690}; 700};
691 701
692/** 702/**