Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=10816d40f2e9500057cb46d7608a362a1d10bb9b
Commit:     10816d40f2e9500057cb46d7608a362a1d10bb9b
Parent:     82b3cad942ebf1f64798e6ec3c46c277822e1fce
Author:     Ron Rindjunsky <[EMAIL PROTECTED]>
AuthorDate: Mon Nov 26 16:14:30 2007 +0200
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Jan 28 14:55:30 2008 -0800

    mac80211: adding 802.11n HT framework definitions
    
    New structures:
     - ieee80211_ht_info: describing STA's HT capabilities
     - ieee80211_ht_bss_info: describing BSS's HT characteristics
    Changed structures:
     - ieee80211_hw_mode: now also holds PHY HT capabilities for each HW mode
     - ieee80211_conf: ht_conf holds current self HT configuration
                       ht_bss_conf holds current BSS HT configuration
     - flag IEEE80211_CONF_SUPPORT_HT_MODE added to indicate if HT use is
       desired
     - sta_info: now also holds Peer's HT capabilities
    
    Signed-off-by: Ron Rindjunsky <[EMAIL PROTECTED]>
    Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 include/net/mac80211.h  |   56 +++++++++++++++++++++++++++++++++++++++++-----
 net/mac80211/sta_info.h |    3 ++
 2 files changed, 53 insertions(+), 6 deletions(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 4cc5b1c..79e9645 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -139,17 +139,54 @@ enum ieee80211_phymode {
 };
 
 /**
+ * struct ieee80211_ht_info - describing STA's HT capabilities
+ *
+ * This structure describes most essential parameters needed
+ * to describe 802.11n HT capabilities for an STA.
+ *
+ * @ht_supported: is HT supported by STA, 0: no, 1: yes
+ * @cap: HT capabilities map as described in 802.11n spec
+ * @ampdu_factor: Maximum A-MPDU length factor
+ * @ampdu_density: Minimum A-MPDU spacing
+ * @supp_mcs_set: Supported MCS set as described in 802.11n spec
+ */
+struct ieee80211_ht_info {
+       u8 ht_supported;
+       u16 cap; /* use IEEE80211_HT_CAP_ */
+       u8 ampdu_factor;
+       u8 ampdu_density;
+       u8 supp_mcs_set[16];
+};
+
+/**
+ * struct ieee80211_ht_bss_info - describing BSS's HT characteristics
+ *
+ * This structure describes most essential parameters needed
+ * to describe 802.11n HT characteristics in a BSS
+ *
+ * @primary_channel: channel number of primery channel
+ * @bss_cap: 802.11n's general BSS capabilities (e.g. channel width)
+ * @bss_op_mode: 802.11n's BSS operation modes (e.g. HT protection)
+ */
+struct ieee80211_ht_bss_info {
+       u8 primary_channel;
+       u8 bss_cap;  /* use IEEE80211_HT_IE_CHA_ */
+       u8 bss_op_mode; /* use IEEE80211_HT_IE_ */
+};
+
+/**
  * struct ieee80211_hw_mode - PHY mode definition
  *
  * This structure describes the capabilities supported by the device
  * in a single PHY mode.
  *
+ * @list: internal
+ * @channels: pointer to array of supported channels
+ * @rates: pointer to array of supported bitrates
  * @mode: the PHY mode for this definition
  * @num_channels: number of supported channels
- * @channels: pointer to array of supported channels
  * @num_rates: number of supported bitrates
- * @rates: pointer to array of supported bitrates
- * @list: internal
+ * @ht_info: PHY's 802.11n HT abilities for this mode
  */
 struct ieee80211_hw_mode {
        struct list_head list;
@@ -158,6 +195,7 @@ struct ieee80211_hw_mode {
        enum ieee80211_phymode mode;
        int num_channels;
        int num_rates;
+       struct ieee80211_ht_info ht_info;
 };
 
 /**
@@ -406,11 +444,12 @@ struct ieee80211_tx_status {
  *
  * @IEEE80211_CONF_SHORT_SLOT_TIME: use 802.11g short slot time
  * @IEEE80211_CONF_RADIOTAP: add radiotap header at receive time (if supported)
- *
+ * @IEEE80211_CONF_SUPPORT_HT_MODE: use 802.11n HT capabilities (if supported)
  */
 enum ieee80211_conf_flags {
-       IEEE80211_CONF_SHORT_SLOT_TIME  = 1<<0,
-       IEEE80211_CONF_RADIOTAP         = 1<<1,
+       IEEE80211_CONF_SHORT_SLOT_TIME  = (1<<0),
+       IEEE80211_CONF_RADIOTAP         = (1<<1),
+       IEEE80211_CONF_SUPPORT_HT_MODE  = (1<<2),
 };
 
 /**
@@ -434,6 +473,8 @@ enum ieee80211_conf_flags {
  * @antenna_sel_tx: transmit antenna selection, 0: default/diversity,
  *     1/2: antenna 0/1
  * @antenna_sel_rx: receive antenna selection, like @antenna_sel_tx
+ * @ht_conf: describes current self configuration of 802.11n HT capabilies
+ * @ht_bss_conf: describes current BSS configuration of 802.11n HT parameters
  */
 struct ieee80211_conf {
        int channel;                    /* IEEE 802.11 channel number */
@@ -452,6 +493,9 @@ struct ieee80211_conf {
        u8 antenna_max;
        u8 antenna_sel_tx;
        u8 antenna_sel_rx;
+
+       struct ieee80211_ht_info ht_conf;
+       struct ieee80211_ht_bss_info ht_bss_conf;
 };
 
 /**
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
index 8f7ebe4..e1a4ac1 100644
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -99,6 +99,9 @@ struct sta_info {
 
        u16 listen_interval;
 
+       struct ieee80211_ht_info ht_info; /* 802.11n HT capabilities
+                                            of this STA */
+
 #ifdef CONFIG_MAC80211_DEBUGFS
        struct sta_info_debugfsdentries {
                struct dentry *dir;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to