|
|
|
|
@ -4040,6 +4040,7 @@ static sint fill_radiotap_hdr(_adapter *padapter, union recv_frame *precvframe,
|
|
|
|
|
|
|
|
|
|
/* channel flags */
|
|
|
|
|
tmp_16bit = 0;
|
|
|
|
|
s8 snr = 0;
|
|
|
|
|
if (pHalData->current_band_type == 0)
|
|
|
|
|
tmp_16bit |= cpu_to_le16(IEEE80211_CHAN_2GHZ);
|
|
|
|
|
else
|
|
|
|
|
@ -4049,9 +4050,15 @@ static sint fill_radiotap_hdr(_adapter *padapter, union recv_frame *precvframe,
|
|
|
|
|
if (pattrib->data_rate < 4) {
|
|
|
|
|
/* CCK */
|
|
|
|
|
tmp_16bit |= cpu_to_le16(IEEE80211_CHAN_CCK);
|
|
|
|
|
|
|
|
|
|
// understand with value take when CCK
|
|
|
|
|
// snr = pattrib->phy_info.rx_snr[0];
|
|
|
|
|
} else {
|
|
|
|
|
/* OFDM */
|
|
|
|
|
tmp_16bit |= cpu_to_le16(IEEE80211_CHAN_OFDM);
|
|
|
|
|
|
|
|
|
|
// when is OFMD, take the first value of the array for snr
|
|
|
|
|
snr = pattrib->phy_info.rx_snr[0];
|
|
|
|
|
}
|
|
|
|
|
} else
|
|
|
|
|
tmp_16bit |= cpu_to_le16(IEEE80211_CHAN_DYN);
|
|
|
|
|
@ -4061,27 +4068,23 @@ static sint fill_radiotap_hdr(_adapter *padapter, union recv_frame *precvframe,
|
|
|
|
|
/* dBm Antenna Signal */
|
|
|
|
|
rtap_hdr->it_present |= (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL);
|
|
|
|
|
hdr_buf[rt_len] = pattrib->phy_info.recv_signal_power;
|
|
|
|
|
|
|
|
|
|
rt_len += 1;
|
|
|
|
|
|
|
|
|
|
/* dBm Antenna Noise */
|
|
|
|
|
rtap_hdr->it_present |= (1 << IEEE80211_RADIOTAP_DBM_ANTNOISE);
|
|
|
|
|
|
|
|
|
|
s16 avg_snr = 0;
|
|
|
|
|
int i;
|
|
|
|
|
for (i = 0; i < pHalData->NumTotalRFPath; i++) {
|
|
|
|
|
avg_snr += pattrib->phy_info.rx_snr[i];
|
|
|
|
|
if (snr == 0) {
|
|
|
|
|
hdr_buf[rt_len] = 0;
|
|
|
|
|
} else {
|
|
|
|
|
hdr_buf[rt_len] = pattrib->phy_info.recv_signal_power - (snr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO understand how to manage the four values
|
|
|
|
|
hdr_buf[rt_len] = pattrib->phy_info.recv_signal_power - (s8)(avg_snr/4);
|
|
|
|
|
rt_len += 1;
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
/* Signal Quality */
|
|
|
|
|
rtap_hdr->it_present |= (1 << IEEE80211_RADIOTAP_LOCK_QUALITY);
|
|
|
|
|
hdr_buf[rt_len] = pattrib->phy_info.signal_quality;
|
|
|
|
|
rt_len += 1;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/* Antenna */
|
|
|
|
|
//rtap_hdr->it_present |= (1 << IEEE80211_RADIOTAP_ANTENNA);
|
|
|
|
|
|