summaryrefslogtreecommitdiffstats
path: root/drivers/staging/csr/csr_wifi_hip_ta_sampling.h
blob: 46c630b4beea6d4f73ea41545f69fb6fc6f899f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*****************************************************************************

            (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__

#ifdef __cplusplus
extern "C" {
#endif

#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);


#ifdef __cplusplus
}
#endif

#endif /* __TA_SAMPLING_H__ */