27#ifdef _PRE_WLAN_FEATURE_FTM
28#define MAC_FTM_TIMER_CNT 4
29#define MAX_FTM_RANGE_ENTRY_COUNT 15
30#define MAX_FTM_ERROR_ENTRY_COUNT 11
31#define MAX_MINIMUN_AP_COUNT 14
32#define MAX_REPEATER_NUM 3
35#define FTM_INITIATOR BIT0
36#define FTM_ENABLE BIT1
38#define FTM_RESPONDER BIT3
39#define FTM_SEND_FTM BIT4
40#define FTM_SEND_IFTMR BIT5
41#define FTM_SET_CORRECT_TIME BIT6
42#define FTM_SET_M2S BIT7
43#define FTM_DBG_AUTO_BANDWIDTH BIT8
45#define FTM_SEND_RANGE BIT10
46#define FTM_ADD_TSF BIT11
48#define PERIOD_OF_FTM_TIMER 12
50#define PHY_TX_ADJUTST_VAL 0
51#define PHY_RX_ADJUTST_VAL 0
53#define T1_FINE_ADJUST_VAL 0
54#define T2_FINE_ADJUST_VAL 0
55#define T3_FINE_ADJUST_VAL 0
56#define T4_FINE_ADJUST_VAL 0
58#define FTM_FRAME_DIALOG_TOKEN_OFFSET 2
59#define FTM_FRAME_IE_OFFSET 3
60#define FTM_FRAME_FOLLOWUP_DIALOG_TOKEN_OFFSET 3
61#define FTM_FRAME_TOD_OFFSET 4
62#define FTM_FRAME_TOA_OFFSET 10
63#define FTM_FRAME_OPTIONAL_IE_OFFSET 20
64#define FTM_FRAME_TSF_SYNC_INFO_OFFSET 3
65#define FTM_RANGE_IE_OFFSET 3
66#define FTM_REQ_TRIGGER_OFFSET 2
68#define FTM_WAIT_TIMEOUT 1000
69#define FTM_MAX_SESSION_TIMEOUT 4000
71#define FTM_MIN_DETECTABLE_DISTANCE 0
72#define FTM_MAX_DETECTABLE_DISTANCE 8192000
74#define FTM_FRAME_TOD_LENGTH 6
75#define FTM_FRAME_TOA_LENGTH 6
76#define FTM_FRAME_TOD_ERROR_LENGTH 2
77#define FTM_FRAME_TOA_ERROR_LENGTH 2
78#define FTM_TMIE_MASK 0xFFFFFFFFFFFF
82#define FTM_PER_BURST 2
84#define FTM_MIN_DELTA 200
86#define FTM_BURST_DURATION 15
88#define FTM_BURST_PERIOD 4
90#define FTM_TIME_SYNC_FTM2 2
92#define MAX_FTM_SESSION 8
94#define DEFAULT_FTM_SESSION 4
100 MAC_FTM_DISABLE_MODE = 0,
101 MAC_FTM_RESPONDER_MODE = 1,
102 MAC_FTM_INITIATOR_MODE = 2,
103 MAC_FTM_MIX_MODE = 3,
107typedef osal_u8 mac_ftm_mode_enum_uint8;
119 FTM_FORMAT_NO_PREFERENCE = 0,
120 FTM_FORMAT_NO_HT_5M = 4,
121 FTM_FORMAT_NO_HT_10M = 6,
122 FTM_FORMAT_NO_HT_20M = 8,
123 FTM_FORMAT_HT_MIXED_20M,
125 FTM_FORMAT_HT_MIXED_40M,
128 FTM_FORMAT_VHT_80PLUS80M,
129 FTM_FORMAT_VHT_160M_TWO_RF,
130 FTM_FORMAT_VHT_160M_SINGLE_RF,
131 FTM_FORMAT_DMG_2160 = 31
132} ftm_format_and_bandwidth_enum;
140} oal_location_type_enum;
141typedef osal_u8 oal_location_type_enum_uint8;
168 osal_u32 rpt_ftm_max_pre_power : 13;
176 osal_u32 rpt_ftm_max_next_power : 13;
178 osal_u32 rpt_ftm_max_pre1_power : 13;
186 osal_u32 rpt_ftm_max_pre2_power : 13;
188 osal_u32 rpt_ftm_max_pre3_power : 13;
196 osal_u32 rpt_ftm_max_pre4_power : 13;
198 osal_u32 rpt_ftm_max_pre5_power : 13;
208} ftm_timeout_arg_stru;
218 osal_u8 follow_up_dialog_token;
237 osal_u8 ftms_per_burst_cmd : 5;
251 ftm_timer_stru ftm_timer[MAC_FTM_TIMER_CNT];
252 ftm_timeout_arg_stru arg;
253} hmac_ftm_initiator_stru;
263 osal_u8 follow_up_dialog_token;
279 osal_u8 ftm_synchronization_information : 1;
284 osal_u8 ftms_per_burst_varied : 5;
298 ftm_timer_stru ftm_timer[MAC_FTM_TIMER_CNT];
299 ftm_timeout_arg_stru arg;
300} hmac_ftm_responder_stru;
307 osal_u32 max_range_error_exponent : 8;
308} ftm_range_entry_stru;
315} ftm_error_entry_stru;
322 ftm_range_entry_stru ftm_range_entry[MAX_FTM_RANGE_ENTRY_COUNT];
323 ftm_error_entry_stru ftm_error_entry[MAX_FTM_ERROR_ENTRY_COUNT];
335 osal_u8 channel[MAX_MINIMUN_AP_COUNT];
341 hmac_ftm_initiator_stru *ftm_init;
342 hmac_ftm_responder_stru *ftm_rspder;
347 ftm_range_req_stru send_ftm_range;
348 ftm_range_rpt_stru ftm_range_rpt;
368} hmac_ftm_data_report;
379} mac_send_iftmr_stru;
390} mac_ftm_enable_stru;
405 osal_u8 channel[MAX_MINIMUN_AP_COUNT];
408} mac_send_ftm_range_req_stru;
415} mac_set_ftm_time_stru;
427 mac_ftm_enable_stru ftm_enable;
428 mac_send_ftm_stru send_ftm;
429 mac_send_iftmr_stru send_iftmr;
430 mac_set_ftm_time_stru ftm_time;
431 mac_send_ftm_range_req_stru send_ftm_range;
433} mac_ftm_debug_switch_stru;
439osal_u32 hmac_config_d2h_ftm_info(
const hmac_vap_stru *hmac_vap,
const hmac_ftm_data_report *d2h_data);
444osal_u32 hmac_process_ftm_ack_complete_process(hmac_ftm_initiator_stru *ftm_init,
462osal_u32 hmac_set_ftm_correct_time(mac_set_ftm_time_stru ftm_time);
479osal_void hmac_ftm_initor_end_session(hmac_ftm_initiator_stru *ftm_init);
480osal_void hmac_ftm_rspder_end_session(hmac_ftm_responder_stru *ftm_rspder);
494 if ((mac_mib_get_fine_timing_msmt_init_activated(hmac_vap) ==
OSAL_FALSE) &&
495 (mac_mib_get_fine_timing_msmt_resp_activated(hmac_vap) ==
OSAL_FALSE)) {
496 return MAC_FTM_DISABLE_MODE;
497 }
else if ((mac_mib_get_fine_timing_msmt_init_activated(hmac_vap) ==
OSAL_FALSE) &&
498 (mac_mib_get_fine_timing_msmt_resp_activated(hmac_vap) ==
OSAL_TRUE)) {
499 return MAC_FTM_RESPONDER_MODE;
500 }
else if ((mac_mib_get_fine_timing_msmt_init_activated(hmac_vap) ==
OSAL_TRUE) &&
501 (mac_mib_get_fine_timing_msmt_resp_activated(hmac_vap) ==
OSAL_FALSE)) {
502 return MAC_FTM_INITIATOR_MODE;
504 return MAC_FTM_MIX_MODE;
#define max(x, y)
Definition common_def.h:33
#define WLAN_MAC_ADDR_LEN
Definition mac_addr.c:28
osal_u16 resv2
Definition oal_net.h:3
osal_u8 resv1
Definition oal_net.h:1
osal_u8 rsv[3]
Definition oal_net.h:2
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
signed char osal_s8
Definition osal_types.h:17
#define OSAL_FALSE
Definition osal_types.h:56
char osal_char
Definition osal_types.h:16
unsigned long long osal_u64
Definition osal_types.h:14
short osal_s16
Definition osal_types.h:18
long long osal_s64
Definition osal_types.h:20
void osal_void
Definition osal_types.h:29
#define OSAL_TRUE
Definition osal_types.h:57
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 frw_ext_common_rom.h:20
Definition mac_vap_ext.h:2019
Definition wlan_types_base_rom.h:258
Definition oal_skbuff.h:82
Definition hal_ops_common_rom.h:213
Definition hal_uart_v151_regs_def.h:38
wlan_phy_protocol_enum
Definition wlan_spec_type_rom.h:22
osal_u8 wlan_phy_protocol_enum_uint8
Definition wlan_spec_type_rom.h:33
wlan_bw_cap_enum
Definition wlan_types.h:442
osal_u8 wlan_bw_cap_enum_uint8
Definition wlan_types.h:455
td_u8 wlan_protocol_enum_uint8
Definition wlan_types.h:488
osal_u8 wlan_channel_bandwidth_enum_uint8
Definition wlan_types_base_rom.h:237
osal_u8 wlan_channel_band_enum_uint8
Definition wlan_types_base_rom.h:97