WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hmac_wds.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2016-2023. All rights reserved.
3 * 文 件 名 : hmac_wds.c
4 * 生成日期 : 2016年12月13日
5 * 功能描述 : hmac_wds.c的头文件
6 */
7
8
9#ifndef __HMAC_WDS_H__
10#define __HMAC_WDS_H__
11
12/*****************************************************************************
13 1 头文件包含
14*****************************************************************************/
15#include "oal_types.h"
16#include "mac_vap_ext.h"
17#include "hmac_vap.h"
18
19#ifdef __cplusplus
20#if __cplusplus
21extern "C" {
22#endif
23#endif
24
25#undef THIS_FILE_ID
26#define THIS_FILE_ID OAM_FILE_ID_HMAC_WDS_H
27#ifdef _PRE_WLAN_FEATURE_VIRTUAL_MULTI_STA
28/*****************************************************************************/
29/*****************************************************************************
30 2 宏定义
31*****************************************************************************/
32static INLINE__ osal_u32 mac_calculate_hash_value(const osal_u8 *sta_mac_addr)
33{
34 return (sta_mac_addr[0] + sta_mac_addr[1] + sta_mac_addr[2] + sta_mac_addr[3] + sta_mac_addr[4] + sta_mac_addr[5]) &
36}
37
38#define wds_calc_mac_hash_val(mac_addr) (mac_calculate_hash_value(mac_addr) & (WDS_HASH_NUM - 1))
39#define WDS_TABLE_ADD_ENTRY 0
40#define WDS_TABLE_DEL_ENTRY 1
41#define WDS_MAX_STAS_NUM 256
42#define WDS_MAX_NODE_NUM 4
43#define WDS_MAX_NEIGH_NUM 512
44
45#define WDS_MIN_AGE_NUM 5
46#define WDS_MAX_AGE_NUM 10000
47
48#define WDS_TABLE_DEF_TIMER 15000 /* timer interval as 15 secs */
49
50#ifdef _PRE_WLAN_FEATURE_VIRTUAL_MULTI_STA
51#define VMSTA_4ADDR_SUPPORT 0
52#define VMSTA_4ADDR_UNSUPPORT -1
53#endif
54/*****************************************************************************
55 3 枚举定义
56*****************************************************************************/
57
58
59/*****************************************************************************
60 4 全局变量声明
61*****************************************************************************/
62
63
64/*****************************************************************************
65 5 消息头定义
66*****************************************************************************/
67
68
69/*****************************************************************************
70 6 消息定义
71*****************************************************************************/
72
73
74/*****************************************************************************
75 7 STRUCT定义
76*****************************************************************************/
77typedef struct {
78 struct osal_list_head entry;
80 osal_u8 stas_num;
81 osal_u8 auc_resv[1];
82} hmac_wds_node_stru;
83
84typedef struct {
85 struct osal_list_head entry;
86 osal_u32 last_pkt_age;
87 hmac_wds_node_stru *related_node;
89 osal_u8 auc_resv[2];
90} hmac_wds_stas_stru;
91
92typedef struct {
93 struct osal_list_head entry;
94 osal_u32 last_pkt_age;
96 osal_u8 auc_resv[2];
97} hmac_wds_neigh_stru;
98
99typedef struct {
100 osal_u8 sta_mac[WLAN_MAC_ADDR_LEN];
101 osal_u8 node_mac[WLAN_MAC_ADDR_LEN];
102} mac_cfg_wds_sta_stru;
103
104/*****************************************************************************
105 8 UNION定义
106*****************************************************************************/
107
108/*****************************************************************************
109 9 OTHERS定义
110*****************************************************************************/
111typedef osal_u32(*p_hmac_wds_node_func)(hmac_vap_stru *hmac_vap, osal_u8 *addr, osal_void *arg);
112
113/*****************************************************************************
114 10 函数声明
115*****************************************************************************/
116extern osal_u32 hmac_wds_update_table(hmac_vap_stru *hmac_vap, osal_u8 *node_mac, osal_u8 *sta_mac,
117 osal_u8 update_mode);
118extern osal_u32 hmac_wds_add_node(hmac_vap_stru *hmac_vap, osal_u8 *node_mac);
119extern osal_u32 hmac_wds_del_node(hmac_vap_stru *hmac_vap, osal_u8 *node_mac);
120extern osal_u32 hmac_wds_reset_sta_mapping_table(hmac_vap_stru *hmac_vap);
121extern osal_u32 hmac_wds_add_sta(hmac_vap_stru *hmac_vap, osal_u8 *node_mac, osal_u8 *sta_mac);
122extern osal_u32 hmac_wds_del_sta(hmac_vap_stru *hmac_vap, osal_u8 *addr);
123extern osal_u32 hmac_find_valid_user_by_wds_sta(hmac_vap_stru *hmac_vap, osal_u8 *sta_mac_addr,
124 osal_u16 *pus_user_idx);
125extern osal_u32 hmac_wds_node_ergodic(hmac_vap_stru *hmac_vap, osal_u8 *src_addr,
126 p_hmac_wds_node_func hmac_wds_node, osal_void *arg);
127
128extern osal_u32 hmac_wds_update_neigh(hmac_vap_stru *hmac_vap, osal_u8 *addr);
129extern osal_u32 hmac_wds_neigh_not_expired(hmac_vap_stru *hmac_vap, osal_u8 *addr);
130extern osal_u32 hmac_wds_reset_neigh_table(hmac_vap_stru *hmac_vap);
131extern osal_u32 hmac_wds_table_create_timer(hmac_vap_stru *hmac_vap);
132extern oal_bool_enum_uint8 hmac_vmsta_get_user_a4_support(hmac_vap_stru *hmac_vap, osal_u8 *addr);
133extern oal_bool_enum_uint8 hmac_vmsta_check_vap_a4_support(osal_u8 *ie, osal_u32 ie_len);
134extern oal_bool_enum_uint8 hmac_vmsta_check_user_a4_support(osal_u8 *frame, osal_u32 frame_len);
135extern osal_u32 hmac_vmsta_set_vap_a4_enable(hmac_vap_stru *hmac_vap);
136extern osal_void hmac_wds_init_table(hmac_vap_stru *hmac_vap);
137extern osal_u32 hmac_wds_find_sta(hmac_vap_stru *hmac_vap, osal_u8 *addr,
138 hmac_wds_stas_stru **ppst_wds_node);
139extern osal_u32 hmac_wds_tx_broadcast_pkt(hmac_vap_stru *hmac_vap, osal_u8 *addr, osal_void *arg);
140
141#endif
142
143#ifdef __cplusplus
144#if __cplusplus
145}
146#endif
147#endif
148
149#endif /* end of hmac_wds.h */
#define WLAN_MAC_ADDR_LEN
Definition mac_addr.c:28
#define MAC_VAP_USER_HASH_MAX_VALUE
Definition mac_vap_ext.h:90
osal_u32 ie_len
Definition oal_net.h:0
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
#define INLINE__
Definition osal_list.h:25
unsigned char osal_u8
Definition osal_types.h:11
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Definition mac_vap_ext.h:2019
Definition osal_list.h:39