]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - include/net/mac80211.h
Merge tag 'mac80211-next-for-davem-2019-04-26' of git://git.kernel.org/pub/scm/linux...
[linux.git] / include / net / mac80211.h
index 112dc18c658f15f79525cae64afa0ea38e2a1159..72080d9d617e2708233659a455bd679f290886b1 100644 (file)
@@ -807,6 +807,7 @@ enum mac80211_tx_info_flags {
  * @IEEE80211_TX_CTRL_RATE_INJECT: This frame is injected with rate information
  * @IEEE80211_TX_CTRL_AMSDU: This frame is an A-MSDU frame
  * @IEEE80211_TX_CTRL_FAST_XMIT: This frame is going through the fast_xmit path
+ * @IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP: This frame skips mesh path lookup
  *
  * These flags are used in tx_info->control.flags.
  */
@@ -816,6 +817,7 @@ enum mac80211_tx_control_flags {
        IEEE80211_TX_CTRL_RATE_INJECT           = BIT(2),
        IEEE80211_TX_CTRL_AMSDU                 = BIT(3),
        IEEE80211_TX_CTRL_FAST_XMIT             = BIT(4),
+       IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP     = BIT(5),
 };
 
 /*
@@ -1697,6 +1699,7 @@ struct wireless_dev *ieee80211_vif_to_wdev(struct ieee80211_vif *vif);
  * @IEEE80211_KEY_FLAG_PUT_MIC_SPACE: This flag should be set by the driver for
  *     a TKIP key if it only requires MIC space. Do not set together with
  *     @IEEE80211_KEY_FLAG_GENERATE_MMIC on the same key.
+ * @IEEE80211_KEY_FLAG_NO_AUTO_TX: Key needs explicit Tx activation.
  */
 enum ieee80211_key_flags {
        IEEE80211_KEY_FLAG_GENERATE_IV_MGMT     = BIT(0),
@@ -1708,6 +1711,7 @@ enum ieee80211_key_flags {
        IEEE80211_KEY_FLAG_RX_MGMT              = BIT(6),
        IEEE80211_KEY_FLAG_RESERVE_TAILROOM     = BIT(7),
        IEEE80211_KEY_FLAG_PUT_MIC_SPACE        = BIT(8),
+       IEEE80211_KEY_FLAG_NO_AUTO_TX           = BIT(9),
 };
 
 /**
@@ -1887,6 +1891,24 @@ struct ieee80211_sta_rates {
        } rate[IEEE80211_TX_RATE_TABLE_SIZE];
 };
 
+/**
+ * struct ieee80211_sta_txpwr - station txpower configuration
+ *
+ * Used to configure txpower for station.
+ *
+ * @power: indicates the tx power, in dBm, to be used when sending data frames
+ *     to the STA.
+ * @type: In particular if TPC %type is NL80211_TX_POWER_LIMITED then tx power
+ *     will be less than or equal to specified from userspace, whereas if TPC
+ *     %type is NL80211_TX_POWER_AUTOMATIC then it indicates default tx power.
+ *     NL80211_TX_POWER_FIXED is not a valid configuration option for
+ *     per peer TPC.
+ */
+struct ieee80211_sta_txpwr {
+       s16 power;
+       enum nl80211_tx_power_setting type;
+};
+
 /**
  * struct ieee80211_sta - station table entry
  *
@@ -1973,6 +1995,7 @@ struct ieee80211_sta {
        bool support_p2p_ps;
        u16 max_rc_amsdu_len;
        u16 max_tid_amsdu_len[IEEE80211_NUM_TIDS];
+       struct ieee80211_sta_txpwr txpwr;
 
        struct ieee80211_txq *txq[IEEE80211_NUM_TIDS + 1];
 
@@ -2243,6 +2266,9 @@ struct ieee80211_txq {
  * @IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID: Hardware supports multi BSSID
  *     only for HE APs. Applies if @IEEE80211_HW_SUPPORTS_MULTI_BSSID is set.
  *
+ * @IEEE80211_HW_EXT_KEY_ID_NATIVE: Driver and hardware are supporting Extended
+ *     Key ID and can handle two unicast keys per station for Rx and Tx.
+ *
  * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
  */
 enum ieee80211_hw_flags {
@@ -2294,6 +2320,7 @@ enum ieee80211_hw_flags {
        IEEE80211_HW_TX_STATUS_NO_AMPDU_LEN,
        IEEE80211_HW_SUPPORTS_MULTI_BSSID,
        IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID,
+       IEEE80211_HW_EXT_KEY_ID_NATIVE,
 
        /* keep last, obviously */
        NUM_IEEE80211_HW_FLAGS
@@ -3794,6 +3821,9 @@ struct ieee80211_ops {
 #endif
        void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                        enum sta_notify_cmd, struct ieee80211_sta *sta);
+       int (*sta_set_txpwr)(struct ieee80211_hw *hw,
+                            struct ieee80211_vif *vif,
+                            struct ieee80211_sta *sta);
        int (*sta_state)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                         struct ieee80211_sta *sta,
                         enum ieee80211_sta_state old_state,