WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hmac_p2p.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2020-2022. All rights reserved.
3 * Description: hmac_p2p.c 的头文件.
4 */
5
6#ifndef __HMAC_P2P_H__
7#define __HMAC_P2P_H__
8
9#include "hmac_fsm.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_P2P_H
19
20#ifdef _PRE_WLAN_FEATURE_P2P
21/*****************************************************************************
22 1 其他头文件包含
23*****************************************************************************/
24
25/*****************************************************************************
26 2 宏定义
27*****************************************************************************/
28#define HMAC_P2P_WILDCARD_SSID "DIRECT-"
29#define HMAC_P2P_WILDCARD_SSID_LEN 7
30
31#define P2P_NOA_DESC_NUM 1
32
33
34/*****************************************************************************
35 3 枚举定义
36*****************************************************************************/
37/* p2p 状态码 */
38typedef enum {
39 P2P_STATUS_DISCOVERY_ON = 0,
40 P2P_STATUS_SEARCH_ENABLED,
41 P2P_STATUS_IF_ADD,
42 P2P_STATUS_IF_DEL,
43 P2P_STATUS_IF_DELETING,
44 P2P_STATUS_IF_CHANGING,
45 P2P_STATUS_IF_CHANGED,
46 P2P_STATUS_LISTEN_EXPIRED,
47 P2P_STATUS_ACTION_TX_COMPLETED,
48 P2P_STATUS_ACTION_TX_NOACK,
49 P2P_STATUS_SCANNING,
50 P2P_STATUS_GO_NEG_PHASE,
51 P2P_STATUS_DISC_IN_PROGRESS
52} hmac_cfgp2p_status_enum;
53typedef osal_u32 hmac_cfgp2p_status_enum_uint32;
54
55typedef enum {
56 P2P_PM_AWAKE_STATE = 0,
57 P2P_PM_SLEEP_STATE = 1
58} p2p_pm_state_enum;
59
60/*****************************************************************************
61 5 内联函数
62*****************************************************************************/
63static INLINE__ osal_u8 is_p2p_wildcard_ssid(const osal_u8 *ssid, osal_u8 len)
64{
65 return ((len == HMAC_P2P_WILDCARD_SSID_LEN) &&
66 !oal_memcmp(ssid, HMAC_P2P_WILDCARD_SSID, HMAC_P2P_WILDCARD_SSID_LEN));
67}
68
69static INLINE__ osal_u8 is_p2p_oppps_enabled(const hmac_vap_stru *hmac_vap)
70{
71 return (hmac_vap->p2p_ops_param.ops_ctrl != 0);
72}
73
74static INLINE__ osal_u8 is_p2p_noa_enabled(const hmac_vap_stru *hmac_vap)
75{
76 return (hmac_vap->p2p_noa_param.count != 0);
77}
78
79static INLINE__ osal_u8 is_p2p_ps_enabled(const hmac_vap_stru *hmac_vap)
80{
81 return (is_p2p_oppps_enabled(hmac_vap) || is_p2p_noa_enabled(hmac_vap));
82}
83
84static INLINE__ osal_u16 get_attr_len(const osal_u8 *buf)
85{
86 return oal_make_word16(buf[1], buf[2]);
87}
88
89/*****************************************************************************
90 10 函数声明
91*****************************************************************************/
92wlan_p2p_mode_enum_uint8 hmac_get_p2p_mode_etc(const hmac_vap_stru *hmac_vap);
93void hmac_dec_p2p_num_etc(hmac_vap_stru *hmac_vap);
94void hmac_inc_p2p_num_etc(hmac_vap_stru *hmac_vap);
95osal_s32 hmac_set_p2p_common_info(hmac_vap_stru *hmac_vap, frw_msg *msg);
96osal_u8 hmac_get_p2p_protocol_info(osal_void);
97osal_u8 hmac_get_p2p_common_band_info(osal_void);
98osal_u8 hmac_get_p2p_common_enable_info(osal_void);
99extern osal_u32 hmac_p2p_send_listen_expired_to_host_etc(hmac_vap_stru *hmac_vap);
100extern osal_u32 hmac_p2p_send_listen_expired_to_device_etc(hmac_vap_stru *hmac_vap);
101extern osal_u32 hmac_p2p_check_can_enter_state_etc(hmac_vap_stru *hmac_vap,
103extern osal_void hmac_disable_p2p_pm_etc(hmac_vap_stru *hmac_vap);
104osal_void mac_set_p2p_none_noa(const hmac_vap_stru *hmac_vap, osal_u8 *buffer, osal_u8 *ie_len);
105osal_u8 hmac_p2p_listen_rx_mgmt(hmac_vap_stru *hmac_vap, oal_netbuf_stru *netbuf);
106oal_bool_enum_uint8 hmac_is_p2p_go_neg_req_frame(const osal_u8* data);
107oal_bool_enum_uint8 hmac_is_p2p_pd_disc_req_frame(const osal_u8 *data);
108oal_bool_enum_uint8 hmac_is_p2p_presence_req_frame(const osal_u8 *data);
109osal_u32 hmac_p2p_listen_filter_vap(const hmac_vap_stru *hmac_vap);
110osal_u32 hmac_p2p_listen_filter_frame(const hmac_vap_stru *hmac_vap, osal_u8 *frame_body, osal_u16 frame_len);
111osal_void hmac_process_p2p_noa(hmac_vap_stru *hmac_vap, oal_netbuf_stru *netbuf);
112osal_u8 *hmac_get_p2p_noa_attr(osal_u8 *frame_body, osal_u16 rx_len, osal_u16 tag_param_offset, osal_u16 *attr_len);
113osal_void hmac_p2p_oppps_ctwindow_start_event(hmac_vap_stru *hmac_vap);
114osal_u32 hmac_send_p2p_state_to_device(hmac_vap_stru *hmac_vap,
116oal_bool_enum_uint8 hmac_is_p2p_action_frame(const osal_u8 *data);
117osal_s32 hmac_p2p_opps_info_event(hmac_vap_stru *hmac_vap, frw_msg *msg);
118oal_bool_enum_uint8 hmac_is_p2p_ie(const osal_u8 *data);
119osal_void mac_set_p2p0_ssid_ie(const hmac_vap_stru *hmac_vap, osal_u8 *buffer, osal_u8 *ie_len, osal_u16 frm_type);
120osal_void mac_set_p2p_noa(hmac_vap_stru *hmac_vap, osal_u8 *buffer, osal_u8 *e_len);
121osal_void mac_set_p2p_status(osal_u8 *buffer, osal_u8 *ie_len, p2p_status_code_t status);
122osal_void hmac_p2p_handle_ps(hmac_vap_stru *hmac_vap, oal_bool_enum_uint8 pause);
123osal_u32 hmac_process_p2p_presence_req(hmac_vap_stru *hmac_vap, oal_netbuf_stru *netbuf);
124osal_u16 hmac_mgmt_encap_p2p_presence_rsp(hmac_vap_stru *hmac_vap, oal_netbuf_stru *netbuf,
125 const osal_u8 *ra, const osal_u8 *data);
126osal_u32 hmac_p2p_event_sync2device(hmac_vap_stru *hmac_vap, osal_u8 type);
127extern osal_u8 hmac_get_p2p_status_etc(osal_u32 p2p_status, hmac_cfgp2p_status_enum_uint32 status);
128extern osal_void hmac_set_p2p_status_etc(osal_u32 *pul_p2p_status, hmac_cfgp2p_status_enum_uint32 status);
129osal_s32 hmac_config_cancel_remain_on_channel(hmac_vap_stru *hmac_vap);
130osal_s32 hmac_config_set_p2p_ps_noa(hmac_vap_stru *hmac_vap, mac_cfg_p2p_noa_param_stru *p2p_noa);
131osal_s32 hmac_config_set_p2p_ps_ops(hmac_vap_stru *hmac_vap, mac_cfg_p2p_ops_param_stru *p2p_ops);
132osal_s32 hmac_config_set_p2p_noa_adapt(hmac_vap_stru *hmac_vap, frw_msg *msg);
133osal_u32 hmac_p2p_remain_on_channel_etc(hmac_vap_stru *hmac_vap_sta, osal_void *p_param);
134osal_u32 hmac_p2p_listen_timeout_etc(hmac_vap_stru *hmac_vap, osal_void *p_param);
135osal_s32 hmac_config_remain_on_channel_etc(hmac_vap_stru *hmac_vap, frw_msg *msg);
136osal_s32 hmac_config_cancel_remain_on_channel_etc(hmac_vap_stru *hmac_vap, frw_msg *msg);
137#endif /* _PRE_WLAN_FEATURE_P2P */
138
139#ifdef __cplusplus
140#if __cplusplus
141}
142#endif
143#endif
144
145#endif /* end of hmac_p2p.h */
osal_u8 hmac_fsm_input_type_enum_uint8
Definition hmac_fsm.h:66
p2p_status_code_t
Definition mac_frame.h:605
osal_u8 type
Definition oal_net.h:0
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
int osal_s32
Definition osal_types.h:19
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 frw_msg_rom.h:74
Definition mac_vap_ext.h:2019
Definition wlan_resource_common_rom.h:130
Definition wlan_resource_common_rom.h:122
Definition oal_skbuff.h:82
Definition hal_uart_v151_regs_def.h:38
osal_u8 wlan_vap_mode_enum_uint8
Definition wlan_types_base_rom.h:89
osal_u8 wlan_p2p_mode_enum_uint8
Definition wlan_types_base_rom.h:405