Search Linux Wireless

Re: [RFC 1/1] ath9k: Add radiotap vendor specific data example

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 23, 2012 at 4:16 PM, Wojciech Dubowik
<Wojciech.Dubowik@xxxxxxxxxxx> wrote:
> As an exmaple of vendor specific data we can extract rssi
> and evm values for all the chains so one can see them on
> per packet basis. More can be added depending on the needs i.e.
> noise floor, Ness, STBC, key miss, etc.
> AtheorsC OUI is used in this example but it should be replaced
> by own when in use.
>
> Signed-off-by: Wojciech Dubowik <Wojciech.Dubowik@xxxxxxxxxxx>
> ---
>  drivers/net/wireless/ath/ath9k/recv.c |   33 +++++++++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
> index 6aafbb7..02c36c4 100644
> --- a/drivers/net/wireless/ath/ath9k/recv.c
> +++ b/drivers/net/wireless/ath/ath9k/recv.c
> @@ -1246,6 +1246,39 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
>                 if ((ah->caps.hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB) && sc->ant_rx == 3)
>                         ath_ant_comb_scan(sc, &rs);
>
> +#if 0

please remove ifdefs .


> +               /*TODO: Replace oui and vendor sub namespace with valid data
> +                * and add/remove fields below
> +                */
> +               if( skb_headroom(skb) >  22 ) {
> +                       int8_t* vendor_data;

we can use s8 ?


> +
> +                       vendor_data = skb_push(skb, 22);
> +
> +                       rxs->vendor_radiotap_len = 22;
> +                       rxs->vendor_radiotap_align = 4;
> +                       rxs->vendor_radiotap_oui[0] = 0x0;
> +                       rxs->vendor_radiotap_oui[1] = 0x3;
> +                       rxs->vendor_radiotap_oui[2] = 0x7f;
> +                       rxs->vendor_radiotap_subns = 0;
> +                       rxs->vendor_radiotap_bitmap = 0x00000001;
> +
> +                       /* count bytes below and put it as the length*/
> +                       *vendor_data++ = rs.rs_rssi;
> +                       *vendor_data++ = rs.rs_rssi_ctl0;
> +                       *vendor_data++ = rs.rs_rssi_ctl1;
> +                       *vendor_data++ = rs.rs_rssi_ctl2;
> +                       put_unaligned_le32(rs.evm0, vendor_data);
> +                       vendor_data += 4;
> +                       put_unaligned_le32(rs.evm1, vendor_data);
> +                       vendor_data += 4;
> +                       put_unaligned_le32(rs.evm2, vendor_data);
> +                       vendor_data += 4;
> +                       put_unaligned_le32(rs.evm3, vendor_data);
> +                       vendor_data += 4;
> +                       put_unaligned_le16(rs.evm4, vendor_data);
> +               }
> +#endif


would be nice check this stuff in sniffer.

>                 ieee80211_rx(hw, skb);
>
>  requeue_drop_frag:
> --
> 1.7.10.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
thanks,
shafi
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux