diff options
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/mac80211.h | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 75a34609eed7..909956c97c44 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -336,13 +336,16 @@ enum mac80211_rx_flags { | |||
336 | * The low-level driver should provide this information (the subset | 336 | * The low-level driver should provide this information (the subset |
337 | * supported by hardware) to the 802.11 code with each received | 337 | * supported by hardware) to the 802.11 code with each received |
338 | * frame. | 338 | * frame. |
339 | * | ||
339 | * @mactime: value in microseconds of the 64-bit Time Synchronization Function | 340 | * @mactime: value in microseconds of the 64-bit Time Synchronization Function |
340 | * (TSF) timer when the first data symbol (MPDU) arrived at the hardware. | 341 | * (TSF) timer when the first data symbol (MPDU) arrived at the hardware. |
341 | * @band: the active band when this frame was received | 342 | * @band: the active band when this frame was received |
342 | * @freq: frequency the radio was tuned to when receiving this frame, in MHz | 343 | * @freq: frequency the radio was tuned to when receiving this frame, in MHz |
343 | * @ssi: signal strength when receiving this frame | 344 | * @signal: signal strength when receiving this frame, either in dBm, in dB or |
344 | * @signal: used as 'qual' in statistics reporting | 345 | * unspecified depending on the hardware capabilities flags |
345 | * @noise: PHY noise when receiving this frame | 346 | * @IEEE80211_HW_SIGNAL_* |
347 | * @noise: noise when receiving this frame, in dBm. | ||
348 | * @qual: overall signal quality indication, in percent (0-100). | ||
346 | * @antenna: antenna used | 349 | * @antenna: antenna used |
347 | * @rate_idx: index of data rate into band's supported rates | 350 | * @rate_idx: index of data rate into band's supported rates |
348 | * @flag: %RX_FLAG_* | 351 | * @flag: %RX_FLAG_* |
@@ -351,9 +354,9 @@ struct ieee80211_rx_status { | |||
351 | u64 mactime; | 354 | u64 mactime; |
352 | enum ieee80211_band band; | 355 | enum ieee80211_band band; |
353 | int freq; | 356 | int freq; |
354 | int ssi; | ||
355 | int signal; | 357 | int signal; |
356 | int noise; | 358 | int noise; |
359 | int qual; | ||
357 | int antenna; | 360 | int antenna; |
358 | int rate_idx; | 361 | int rate_idx; |
359 | int flag; | 362 | int flag; |
@@ -392,7 +395,8 @@ enum ieee80211_tx_status_flags { | |||
392 | * relevant only if IEEE80211_TX_STATUS_AMPDU was set. | 395 | * relevant only if IEEE80211_TX_STATUS_AMPDU was set. |
393 | * @ampdu_ack_map: block ack bit map for the aggregation. | 396 | * @ampdu_ack_map: block ack bit map for the aggregation. |
394 | * relevant only if IEEE80211_TX_STATUS_AMPDU was set. | 397 | * relevant only if IEEE80211_TX_STATUS_AMPDU was set. |
395 | * @ack_signal: signal strength of the ACK frame | 398 | * @ack_signal: signal strength of the ACK frame either in dBm, dB or unspec |
399 | * depending on hardware capabilites flags @IEEE80211_HW_SIGNAL_* | ||
396 | */ | 400 | */ |
397 | struct ieee80211_tx_status { | 401 | struct ieee80211_tx_status { |
398 | struct ieee80211_tx_control control; | 402 | struct ieee80211_tx_control control; |
@@ -703,6 +707,25 @@ enum ieee80211_tkip_key_type { | |||
703 | * @IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE: | 707 | * @IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE: |
704 | * Hardware is not capable of receiving frames with short preamble on | 708 | * Hardware is not capable of receiving frames with short preamble on |
705 | * the 2.4 GHz band. | 709 | * the 2.4 GHz band. |
710 | * | ||
711 | * @IEEE80211_HW_SIGNAL_UNSPEC: | ||
712 | * Hardware can provide signal values but we don't know its units. We | ||
713 | * expect values between 0 and @max_signal. | ||
714 | * If possible please provide dB or dBm instead. | ||
715 | * | ||
716 | * @IEEE80211_HW_SIGNAL_DB: | ||
717 | * Hardware gives signal values in dB, decibel difference from an | ||
718 | * arbitrary, fixed reference. We expect values between 0 and @max_signal. | ||
719 | * If possible please provide dBm instead. | ||
720 | * | ||
721 | * @IEEE80211_HW_SIGNAL_DBM: | ||
722 | * Hardware gives signal values in dBm, decibel difference from | ||
723 | * one milliwatt. This is the preferred method since it is standardized | ||
724 | * between different devices. @max_signal does not need to be set. | ||
725 | * | ||
726 | * @IEEE80211_HW_NOISE_DBM: | ||
727 | * Hardware can provide noise (radio interference) values in units dBm, | ||
728 | * decibel difference from one milliwatt. | ||
706 | */ | 729 | */ |
707 | enum ieee80211_hw_flags { | 730 | enum ieee80211_hw_flags { |
708 | IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE = 1<<0, | 731 | IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE = 1<<0, |
@@ -710,6 +733,10 @@ enum ieee80211_hw_flags { | |||
710 | IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 1<<2, | 733 | IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 1<<2, |
711 | IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE = 1<<3, | 734 | IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE = 1<<3, |
712 | IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE = 1<<4, | 735 | IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE = 1<<4, |
736 | IEEE80211_HW_SIGNAL_UNSPEC = 1<<5, | ||
737 | IEEE80211_HW_SIGNAL_DB = 1<<6, | ||
738 | IEEE80211_HW_SIGNAL_DBM = 1<<7, | ||
739 | IEEE80211_HW_NOISE_DBM = 1<<8, | ||
713 | }; | 740 | }; |
714 | 741 | ||
715 | /** | 742 | /** |
@@ -740,12 +767,8 @@ enum ieee80211_hw_flags { | |||
740 | * | 767 | * |
741 | * @channel_change_time: time (in microseconds) it takes to change channels. | 768 | * @channel_change_time: time (in microseconds) it takes to change channels. |
742 | * | 769 | * |
743 | * @max_rssi: Maximum value for ssi in RX information, use | 770 | * @max_signal: Maximum value for signal (rssi) in RX information, used |
744 | * negative numbers for dBm and 0 to indicate no support. | 771 | * only when @IEEE80211_HW_SIGNAL_UNSPEC or @IEEE80211_HW_SIGNAL_DB |
745 | * | ||
746 | * @max_signal: like @max_rssi, but for the signal value. | ||
747 | * | ||
748 | * @max_noise: like @max_rssi, but for the noise value. | ||
749 | * | 772 | * |
750 | * @queues: number of available hardware transmit queues for | 773 | * @queues: number of available hardware transmit queues for |
751 | * data packets. WMM/QoS requires at least four, these | 774 | * data packets. WMM/QoS requires at least four, these |
@@ -775,9 +798,7 @@ struct ieee80211_hw { | |||
775 | int channel_change_time; | 798 | int channel_change_time; |
776 | int vif_data_size; | 799 | int vif_data_size; |
777 | u16 queues, ampdu_queues; | 800 | u16 queues, ampdu_queues; |
778 | s8 max_rssi; | ||
779 | s8 max_signal; | 801 | s8 max_signal; |
780 | s8 max_noise; | ||
781 | }; | 802 | }; |
782 | 803 | ||
783 | /** | 804 | /** |