diff options
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index cc6035f1a2f1..f386c480e134 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -829,6 +829,15 @@ ieee80211_tx_info_clear_status(struct ieee80211_tx_info *info) | |||
829 | * @RX_FLAG_STBC_MASK: STBC 2 bit bitmask. 1 - Nss=1, 2 - Nss=2, 3 - Nss=3 | 829 | * @RX_FLAG_STBC_MASK: STBC 2 bit bitmask. 1 - Nss=1, 2 - Nss=2, 3 - Nss=3 |
830 | * @RX_FLAG_10MHZ: 10 MHz (half channel) was used | 830 | * @RX_FLAG_10MHZ: 10 MHz (half channel) was used |
831 | * @RX_FLAG_5MHZ: 5 MHz (quarter channel) was used | 831 | * @RX_FLAG_5MHZ: 5 MHz (quarter channel) was used |
832 | * @RX_FLAG_AMSDU_MORE: Some drivers may prefer to report separate A-MSDU | ||
833 | * subframes instead of a one huge frame for performance reasons. | ||
834 | * All, but the last MSDU from an A-MSDU should have this flag set. E.g. | ||
835 | * if an A-MSDU has 3 frames, the first 2 must have the flag set, while | ||
836 | * the 3rd (last) one must not have this flag set. The flag is used to | ||
837 | * deal with retransmission/duplication recovery properly since A-MSDU | ||
838 | * subframes share the same sequence number. Reported subframes can be | ||
839 | * either regular MSDU or singly A-MSDUs. Subframes must not be | ||
840 | * interleaved with other frames. | ||
832 | */ | 841 | */ |
833 | enum mac80211_rx_flags { | 842 | enum mac80211_rx_flags { |
834 | RX_FLAG_MMIC_ERROR = BIT(0), | 843 | RX_FLAG_MMIC_ERROR = BIT(0), |
@@ -859,6 +868,7 @@ enum mac80211_rx_flags { | |||
859 | RX_FLAG_STBC_MASK = BIT(26) | BIT(27), | 868 | RX_FLAG_STBC_MASK = BIT(26) | BIT(27), |
860 | RX_FLAG_10MHZ = BIT(28), | 869 | RX_FLAG_10MHZ = BIT(28), |
861 | RX_FLAG_5MHZ = BIT(29), | 870 | RX_FLAG_5MHZ = BIT(29), |
871 | RX_FLAG_AMSDU_MORE = BIT(30), | ||
862 | }; | 872 | }; |
863 | 873 | ||
864 | #define RX_FLAG_STBC_SHIFT 26 | 874 | #define RX_FLAG_STBC_SHIFT 26 |
@@ -1492,6 +1502,11 @@ struct ieee80211_tx_control { | |||
1492 | * | 1502 | * |
1493 | * @IEEE80211_HW_TIMING_BEACON_ONLY: Use sync timing from beacon frames | 1503 | * @IEEE80211_HW_TIMING_BEACON_ONLY: Use sync timing from beacon frames |
1494 | * only, to allow getting TBTT of a DTIM beacon. | 1504 | * only, to allow getting TBTT of a DTIM beacon. |
1505 | * | ||
1506 | * @IEEE80211_HW_CHANCTX_STA_CSA: Support 802.11h based channel-switch (CSA) | ||
1507 | * for a single active channel while using channel contexts. When support | ||
1508 | * is not enabled the default action is to disconnect when getting the | ||
1509 | * CSA frame. | ||
1495 | */ | 1510 | */ |
1496 | enum ieee80211_hw_flags { | 1511 | enum ieee80211_hw_flags { |
1497 | IEEE80211_HW_HAS_RATE_CONTROL = 1<<0, | 1512 | IEEE80211_HW_HAS_RATE_CONTROL = 1<<0, |
@@ -1522,6 +1537,7 @@ enum ieee80211_hw_flags { | |||
1522 | IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 1<<25, | 1537 | IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 1<<25, |
1523 | IEEE80211_HW_TIMING_BEACON_ONLY = 1<<26, | 1538 | IEEE80211_HW_TIMING_BEACON_ONLY = 1<<26, |
1524 | IEEE80211_HW_SUPPORTS_HT_CCK_RATES = 1<<27, | 1539 | IEEE80211_HW_SUPPORTS_HT_CCK_RATES = 1<<27, |
1540 | IEEE80211_HW_CHANCTX_STA_CSA = 1<<28, | ||
1525 | }; | 1541 | }; |
1526 | 1542 | ||
1527 | /** | 1543 | /** |
@@ -2666,6 +2682,10 @@ enum ieee80211_roc_type { | |||
2666 | * zero using ieee80211_csa_is_complete() after the beacon has been | 2682 | * zero using ieee80211_csa_is_complete() after the beacon has been |
2667 | * transmitted and then call ieee80211_csa_finish(). | 2683 | * transmitted and then call ieee80211_csa_finish(). |
2668 | * | 2684 | * |
2685 | * @join_ibss: Join an IBSS (on an IBSS interface); this is called after all | ||
2686 | * information in bss_conf is set up and the beacon can be retrieved. A | ||
2687 | * channel context is bound before this is called. | ||
2688 | * @leave_ibss: Leave the IBSS again. | ||
2669 | */ | 2689 | */ |
2670 | struct ieee80211_ops { | 2690 | struct ieee80211_ops { |
2671 | void (*tx)(struct ieee80211_hw *hw, | 2691 | void (*tx)(struct ieee80211_hw *hw, |
@@ -2857,6 +2877,9 @@ struct ieee80211_ops { | |||
2857 | void (*channel_switch_beacon)(struct ieee80211_hw *hw, | 2877 | void (*channel_switch_beacon)(struct ieee80211_hw *hw, |
2858 | struct ieee80211_vif *vif, | 2878 | struct ieee80211_vif *vif, |
2859 | struct cfg80211_chan_def *chandef); | 2879 | struct cfg80211_chan_def *chandef); |
2880 | |||
2881 | int (*join_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif); | ||
2882 | void (*leave_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif); | ||
2860 | }; | 2883 | }; |
2861 | 2884 | ||
2862 | /** | 2885 | /** |
@@ -3920,6 +3943,25 @@ void ieee80211_iterate_active_interfaces_atomic(struct ieee80211_hw *hw, | |||
3920 | void *data); | 3943 | void *data); |
3921 | 3944 | ||
3922 | /** | 3945 | /** |
3946 | * ieee80211_iterate_active_interfaces_rtnl - iterate active interfaces | ||
3947 | * | ||
3948 | * This function iterates over the interfaces associated with a given | ||
3949 | * hardware that are currently active and calls the callback for them. | ||
3950 | * This version can only be used while holding the RTNL. | ||
3951 | * | ||
3952 | * @hw: the hardware struct of which the interfaces should be iterated over | ||
3953 | * @iter_flags: iteration flags, see &enum ieee80211_interface_iteration_flags | ||
3954 | * @iterator: the iterator function to call, cannot sleep | ||
3955 | * @data: first argument of the iterator function | ||
3956 | */ | ||
3957 | void ieee80211_iterate_active_interfaces_rtnl(struct ieee80211_hw *hw, | ||
3958 | u32 iter_flags, | ||
3959 | void (*iterator)(void *data, | ||
3960 | u8 *mac, | ||
3961 | struct ieee80211_vif *vif), | ||
3962 | void *data); | ||
3963 | |||
3964 | /** | ||
3923 | * ieee80211_queue_work - add work onto the mac80211 workqueue | 3965 | * ieee80211_queue_work - add work onto the mac80211 workqueue |
3924 | * | 3966 | * |
3925 | * Drivers and mac80211 use this to add work onto the mac80211 workqueue. | 3967 | * Drivers and mac80211 use this to add work onto the mac80211 workqueue. |