• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  * Description: hmac_blacklist.c 的头文件
15  */
16 
17 #ifndef HMAC_BLAKLIST_H
18 #define HMAC_BLAKLIST_H
19 
20 /*****************************************************************************
21   1 其他头文件包含
22 *****************************************************************************/
23 #include "oal_ext_if.h"
24 #include "mac_vap_ext.h"
25 #include "hmac_vap.h"
26 
27 #ifdef __cplusplus
28 #if __cplusplus
29 extern "C" {
30 #endif
31 #endif
32 
33 /*****************************************************************************
34   2 宏定义
35 *****************************************************************************/
36 #define CS_INVALID_AGING_TIME         0
37 #define CS_DEFAULT_AGING_TIME         3600
38 #define CS_DEFAULT_RESET_TIME         3600
39 #define CS_DEFAULT_THRESHOLD          100
40 
41 
42 /*****************************************************************************
43   3 枚举定义
44 *****************************************************************************/
45 
46 /* 黑名单类型 */
47 typedef enum {
48     CS_BLACKLIST_TYPE_ADD,           /* 增加       */
49     CS_BLACKLIST_TYPE_DEL,           /* 删除       */
50 
51     CS_BLACKLIST_TYPE_BUTT
52 } cs_blacklist_type_enum;
53 typedef osal_u8 cs_blacklist_type_enum_uint8;
54 
55 /*****************************************************************************
56   4 全局变量声明
57 *****************************************************************************/
58 
59 
60 /*****************************************************************************
61   5 消息头定义
62 *****************************************************************************/
63 
64 
65 /*****************************************************************************
66   6 消息定义
67 *****************************************************************************/
68 
69 
70 /*****************************************************************************
71   7 STRUCT定义
72 *****************************************************************************/
73 /* 自动黑名单配置参数 */
74 typedef struct {
75     osal_u8                       enabled;               /* 使能标志 0:未使能  1:使能 */
76     osal_u8                       reserved[3];          /* 字节对齐                  */
77     osal_u32                      ul_threshold;             /* 门限                      */
78     osal_u32                      reset_time;            /* 重置时间                  */
79     osal_u32                      aging_time;            /* 老化时间                  */
80 } hmac_autoblacklist_cfg_stru;
81 
82 /* 黑白名单配置 */
83 typedef struct {
84     osal_u8                       type;                  /* 配置类型    */
85     osal_u8                       mode;                  /* 配置模式    */
86     osal_u8                       sa[6];                /* mac地址     */
87 } hmac_blacklist_cfg_stru;
88 
89 /*****************************************************************************
90   8 UNION定义
91 *****************************************************************************/
92 
93 
94 /*****************************************************************************
95   9 OTHERS定义
96 *****************************************************************************/
97 
98 
99 /*****************************************************************************
100   10 函数声明
101 *****************************************************************************/
102 typedef osal_u32 (*hmac_ap_up_rx_mgmt_blacklist_filter_cb)(hmac_vap_stru *hmac_vap, osal_u8 *mac_hdr);
103 typedef oal_bool_enum_uint8 (*hmac_blacklist_filter_etc_cb)(hmac_vap_stru *hmac_vap, osal_u8 *mac_addr);
104 typedef osal_void (*hmac_blacklist_get_pointer_cb)(wlan_vap_mode_enum vap_mod, hmac_vap_stru *hmac_vap,
105     osal_u8 chip_id, osal_u8 device_id, osal_u8 vap_id);
106 
107 static osal_u32 hmac_blacklist_init_weakref(osal_void)
108     __attribute__ ((weakref("hmac_blacklist_register_init"), used));
109 static osal_void hmac_blacklist_deinit_weakref(osal_void)
110     __attribute__ ((weakref("hmac_blacklist_register_deinit"), used));
111 
112 #ifdef __cplusplus
113 #if __cplusplus
114 }
115 #endif
116 #endif
117 #endif
118