1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * TrafficMonitorAPI.h
3a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
4a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * All rights reserved.
6a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
7a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Redistribution and use in source and binary forms, with or without
8a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * modification, are permitted provided that the following conditions
9a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * are met:
10a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
11a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Redistributions of source code must retain the above copyright
12a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    notice, this list of conditions and the following disclaimer.
13a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Redistributions in binary form must reproduce the above copyright
14a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    notice, this list of conditions and the following disclaimer in
15a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    the documentation and/or other materials provided with the
16a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    distribution.
17a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Neither the name Texas Instruments nor the names of its
18a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    contributors may be used to endorse or promote products derived
19a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    from this software without specific prior written permission.
20a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
21a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
33a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
34a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
35a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/***************************************************************************/
36a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*                                                                                                                                                 */
37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*        MODULE:       TrafficMonitor.h                                                                           */
38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*    PURPOSE:  TrafficMonitor module Header file                                              */
39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*                                                                                                                                                 */
40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/***************************************************************************/
41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef _TRAFFIC_MONITOR_API_H
42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define _TRAFFIC_MONITOR_API_H
43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "DataCtrl_Api.h"
45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "DrvMainModules.h"
46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**/
48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* call back functions prototype.*/
49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**/
50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef void (*TraffEevntCall_t)(TI_HANDLE Context,TI_UINT32 Cookie);
51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *      This enum list all the available traffic monitor event
55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  that a client can register to.
56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef enum
58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
59a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TX_ALL_MSDU_FRAMES =1,
60a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    RX_ALL_MSDU_FRAMES,
61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TX_RX_DIRECTED_FRAMES,
62a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TX_RX_ALL_MSDU_FRAMES,
63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TX_RX_ALL_MSDU_IN_BYTES,
64a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TX_RX_DIRECTED_IN_BYTES,
65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TX_RX_ALL_802_11_DATA_IN_BYTES,
66a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TX_RX_ALL_802_11_DATA_FRAMES
67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} TraffEvntOptNum_t;
68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef enum
72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TRAFF_EDGE = 0,
74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TRAFF_LEVEL
75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}TraffTrigger_t;
76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef enum
78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TRAFF_UP = 0,
80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TRAFF_DOWN
81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}TraffDirection_t;
82a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct
84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    /*initial param*/
86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        TraffEevntCall_t    CallBack;
87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           Context;
88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT32              Cookie;
89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TraffDirection_t    Direction;
90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TraffTrigger_t      Trigger;
91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    int                                 Threshold;
92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT32              TimeIntervalMs;
93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TraffEvntOptNum_t   MonitorType;
94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}TrafficAlertRegParm_t;
95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*********************************************************************/
98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
99a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
100a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_HANDLE TrafficMonitor_create(TI_HANDLE hOs);
101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid TrafficMonitor_Init (TStadHandlesList *pStadHandles, TI_UINT32 BWwindowMs);
102a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS TrafficMonitor_Destroy(TI_HANDLE hTrafficMonitor);
103a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_HANDLE TrafficMonitor_RegEvent(TI_HANDLE hTrafficMonitor, TrafficAlertRegParm_t *TrafficAlertRegParm, TI_BOOL AutoResetCreate);
104a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS TrafficMonitor_SetRstCondition(TI_HANDLE hTrafficMonitor,TI_HANDLE EventHandle,TI_HANDLE ResetEventHandle,TI_BOOL MutualRst);
105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint TrafficMonitor_GetFrameBandwidth(TI_HANDLE hTrafficMonitor);
106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid TrafficMonitor_UnregEvent(TI_HANDLE hTrafficMonitor, TI_HANDLE EventHandle);
107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid TrafficMonitor_Event(TI_HANDLE hTrafficMonitor,int Count,TI_UINT16 Mask,TI_UINT32 MonitorModuleType);
108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid TrafficMonitor_StopEventNotif(TI_HANDLE hTrafficMonitor,TI_HANDLE EventHandle);
109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid TrafficMonitor_StartEventNotif(TI_HANDLE hTrafficMonitor,TI_HANDLE EventHandle);
110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid TrafficMonitor_ResetEvent(TI_HANDLE hTrafficMonitor, TI_HANDLE EventHandle);
111a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS TrafficMonitor_Stop(TI_HANDLE hTrafficMonitor);
112a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS TrafficMonitor_Start(TI_HANDLE hTrafficMonitor);
113a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_BOOL TrafficMonitor_IsEventOn(TI_HANDLE EventHandle);
114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
121