WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hmac_single_proxysta.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2017-2023. All rights reserved.
3 * 文 件 名 : hmac_single_proxysta.h
4 * 生成日期 : 2017年5月15日
5 * 功能描述 : hmac_single_proxysta.c 的头文件
6 */
7#ifndef __HMAC_SINGLE_PROXYSTA_H__
8#define __HMAC_SINGLE_PROXYSTA_H__
9#include "hmac_vap.h"
10
11#ifdef __cplusplus
12#if __cplusplus
13extern "C" {
14#endif
15#endif
16
17#undef THIS_FILE_ID
18#define THIS_FILE_ID OAM_FILE_ID_HMAC_SINGLE_PROXYSTA_H
19
20/*****************************************************************************
21 全局变量定义
22*****************************************************************************/
23#define HMAC_BRIDGE_MAP_IPV4_HASHSIZE MAC_VAP_BRIDGE_MAP_MAX_VALUE
24#define HMAC_BRIDGE_MAP_UNKNOW_HASHSIZE MAC_VAP_BRIDGE_MAP_UNKNOW_VALUE
25#define HMAC_BRIDGE_MAP_AGING_TIME 120000 /* BRIDGE MAP表格老化时间 120s */
26#define HMAC_BRIDGE_MAP_AGING_TRIGGER_TIME 60000 /* MAP老化计时器触发时间 60s */
27#define HMAC_BRIDGE_MAP_MAX_NUM 16 /* MAP表格大小,当前限制为16 */
28#define DHCP_PORT_BOOTPS 0x0043 /* DHCP 服务端接收报文端口,即客户端发送报文的目的端口 */
29#define DHCP_PORT_BOOTPC 0x0044 /* DHCP 客户端接收报文端口,即服务器发送报文的目的端口 */
30#define DHCP_FLAG_BCAST 0x8000 /* 请求DHCP服务器以广播形式回复DHCP response */
31#define MAC_VAP_BRIDGE_MAP_MAX_VALUE 4 /* BRIDGE HASH表的桶值 目前设置4个桶 */
32#define MAC_VAP_BRIDGE_MAP_UNKNOW_VALUE 4 /* BRIDGE HASH表的未知协议报文桶值 目前4个桶 */
33
34#define BRIDGE_CMD_NAME_MAX_LEN 8
35#define BRIDGE_PORT_MAX_NUM 2
36#define BRIDGE_CMD_MAX_NUM 5
37
38/* 哈希函数定义 */
39#define hmac_bridge_cal_ipv4_hash(_puc_ip_addr) \
40 ((_puc_ip_addr)[ETH_TARGET_IP_ADDR_LEN - 1] & (HMAC_BRIDGE_MAP_IPV4_HASHSIZE - 1))
41
42#define hmac_bridge_cal_unknow_hash(_us_protocol) \
43 ((_us_protocol) & (HMAC_BRIDGE_MAP_UNKNOW_HASHSIZE - 1))
44
45/*****************************************************************************
46 STRUCT定义
47*****************************************************************************/
48typedef struct {
49 struct osal_list_head entry;
50 osal_u8 ipv4[ETH_TARGET_IP_ADDR_LEN]; /* 记录对应的ipv4地址 */
51 osal_u8 mac[WLAN_MAC_ADDR_LEN]; /* 记录对应的mac地址 */
53 osal_u32 last_active_timestamp; /* 最近一次发送数据的时间 */
55
56typedef struct {
57 struct osal_list_head entry;
58 osal_u16 protocol; /* 记录对应的未知协议类型 */
59 osal_u8 mac[WLAN_MAC_ADDR_LEN]; /* 记录对应的mac地址 */
60 osal_u32 last_active_timestamp; /* 最近一次发送数据的时间 */
62
63typedef struct {
64 osal_spinlock map_lock; /* 读写保护锁 */
65 struct osal_list_head map_ipv4_head[MAC_VAP_BRIDGE_MAP_MAX_VALUE]; /* IPV4的map hash表 */
66 struct osal_list_head map_unknow_head[MAC_VAP_BRIDGE_MAP_UNKNOW_VALUE]; /* 未知协议的map hash表 */
67 osal_u8 map_ipv4_num; /* 记录ipv4的条数 */
68 osal_u8 map_unknow_num; /* 记录未知协议的条数 */
71
77
79
84
91
96
97/*****************************************************************************
98 函数声明
99*****************************************************************************/
101typedef osal_u32 (*hmac_bridge_rx_process_cb)(const oal_netbuf_stru *netbuf, const hmac_vap_stru *hmac_vap);
102#ifdef _PRE_WLAN_FEATURE_SLE_BRIDGE
104typedef osal_u32 (*wifi_tx_sle_pbuf_t)(struct pbuf *lwip_buf);
105#endif
106
107static osal_u32 hmac_single_proxysta_init_weakref(osal_void)
109static osal_void hmac_single_proxysta_deinit_weakref(osal_void)
111
112#ifdef __cplusplus
113#if __cplusplus
114}
115#endif
116#endif
117
118#endif /* end of hmac_unique_proxysta.h */
#define ETH_TARGET_IP_ADDR_LEN
Definition eth_ip_common_rom.h:24
osal_void hmac_single_proxysta_deinit(osal_void)
Definition hmac_single_proxysta.c:1576
osal_u32 hmac_single_proxysta_init(osal_void)
Definition hmac_single_proxysta.c:1556
#define BRIDGE_CMD_NAME_MAX_LEN
Definition hmac_single_proxysta.h:34
#define MAC_VAP_BRIDGE_MAP_MAX_VALUE
Definition hmac_single_proxysta.h:31
osal_u32(* wifi_tx_sle_pbuf_t)(struct pbuf *lwip_buf)
Definition hmac_single_proxysta.h:104
osal_u32(* hmac_bridge_rx_process_cb)(const oal_netbuf_stru *netbuf, const hmac_vap_stru *hmac_vap)
Definition hmac_single_proxysta.h:101
osal_u32(* sle_tx_wifi_pbuf_t)(oal_lwip_buf *pbuf)
Definition hmac_single_proxysta.h:103
osal_void(* hmac_bridge_cmd_func)(const osal_char *param)
Definition hmac_single_proxysta.h:78
#define MAC_VAP_BRIDGE_MAP_UNKNOW_VALUE
Definition hmac_single_proxysta.h:32
static osal_u32 used
Definition hmac_single_proxysta.h:108
osal_u32(* hmac_bridge_tx_process_cb)(const oal_netbuf_stru *netbuf, hmac_vap_stru *hmac_vap)
Definition hmac_single_proxysta.h:100
struct pbuf oal_lwip_buf
Definition oal_netbuf.h:20
#define WLAN_MAC_ADDR_LEN
Definition mac_addr.c:28
osal_u8 rsv[3]
Definition oal_net.h:2
unsigned char osal_u8
Definition osal_types.h:11
char osal_char
Definition osal_types.h:16
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
Log message information header.
Definition log_oam_logger.h:564
Definition frw_ext_common_rom.h:20
Definition hmac_single_proxysta.h:85
osal_u8 br_switch
Definition hmac_single_proxysta.h:88
hmac_vap_stru * repeat_ap
Definition hmac_single_proxysta.h:87
hmac_vap_stru * repeat_sta
Definition hmac_single_proxysta.h:86
Definition hmac_single_proxysta.h:80
hmac_bridge_cmd_func func
Definition hmac_single_proxysta.h:82
Definition hmac_single_proxysta.h:48
osal_u32 last_active_timestamp
Definition hmac_single_proxysta.h:53
Definition hmac_single_proxysta.h:56
osal_u16 protocol
Definition hmac_single_proxysta.h:58
osal_u32 last_active_timestamp
Definition hmac_single_proxysta.h:60
Definition hmac_single_proxysta.h:72
hmac_vap_bridge_stru * vap_bridge
Definition hmac_single_proxysta.h:74
osal_u8 vap_id
Definition hmac_single_proxysta.h:73
frw_timeout_stru st_bridge_map_timer
Definition hmac_single_proxysta.h:75
Definition hmac_single_proxysta.h:63
osal_u8 map_unknow_num
Definition hmac_single_proxysta.h:68
osal_u8 map_ipv4_num
Definition hmac_single_proxysta.h:67
osal_u16 resv
Definition hmac_single_proxysta.h:69
osal_spinlock map_lock
Definition hmac_single_proxysta.h:64
Definition mac_vap_ext.h:2019
Definition hmac_single_proxysta.h:92
Definition osal_list.h:39
Definition osal_spinlock.h:18
Definition oal_skbuff.h:82
char td_char
Definition td_type.h:41