summaryrefslogblamecommitdiffstats
path: root/drivers/staging/csr/csr_wifi_hip_ta_sampling.h
blob: aa684c654d063711137c722afc283b062f293064 (plain) (tree)






















                                                                              



                               



                        








                                                     
                      




                                                        
                   

                                                     
                             







                                                                         
                       





                                          
                              
/*****************************************************************************

            (c) Cambridge Silicon Radio Limited 2011
            All rights reserved and confidential information of CSR

            Refer to LICENSE.txt included with this source for details
            on the license terms.

*****************************************************************************/

/*
 * ---------------------------------------------------------------------------
 *  FILE:     csr_wifi_hip_ta_sampling.h
 *
 *  PURPOSE:
 *      This file contains Traffic Analysis definitions common to the
 *      sampling and analysis modules.
 *
 * ---------------------------------------------------------------------------
 */
#ifndef __TA_SAMPLING_H__
#define __TA_SAMPLING_H__

#include "csr_wifi_hip_unifi.h"

typedef struct ta_l4stats
{
    u32 rxTcpBytesCount;
    u32 txTcpBytesCount;
    u32 rxUdpBytesCount;
    u32 txUdpBytesCount;
} ta_l4stats_t;

/*
 * Context structure to preserve state between calls.
 */

typedef struct ta_data
{
    /* Current packet filter configuration */
    u16 packet_filter;

    /* Current packet custom filter configuration */
    CsrWifiRouterCtrlTrafficFilter custom_filter;

    /* The timestamp of the last tx packet processed. */
    u32 tx_last_ts;

    /* The timestamp of the last packet processed. */
    u32 last_indication_time;

    /* Statistics */
    CsrWifiRouterCtrlTrafficStats stats;

    /* Current traffic classification */
    CsrWifiRouterCtrlTrafficType traffic_type;

    /* Sum of packet rx rates for this interval used to calculate mean */
    u32    rx_sum_rate;
    ta_l4stats_t ta_l4stats;
} ta_data_t;


void unifi_ta_sampling_init(card_t *card);

#endif /* __TA_SAMPLING_H__ */