diff --git a/components/tdls/core/src/wlan_tdls_main.c b/components/tdls/core/src/wlan_tdls_main.c index 5e8cfdfe64..6301718d27 100644 --- a/components/tdls/core/src/wlan_tdls_main.c +++ b/components/tdls/core/src/wlan_tdls_main.c @@ -804,7 +804,7 @@ static void tdls_state_param_setting_dump(struct tdls_info *info) if (!info) return; - tdls_debug("Setting tdls state and param in fw: vdev_id: %d, tdls_state: %d, notification_interval_ms: %d, tx_discovery_threshold: %d, tx_teardown_threshold: %d, rssi_teardown_threshold: %d, rssi_delta: %d, tdls_options: 0x%x, peer_traffic_ind_window: %d, peer_traffic_response_timeout: %d, puapsd_mask: 0x%x, puapsd_inactivity_time: %d, puapsd_rx_frame_threshold: %d, teardown_notification_ms: %d, tdls_peer_kickout_threshold: %d", + tdls_debug("Setting tdls state and param in fw: vdev_id: %d, tdls_state: %d, notification_interval_ms: %d, tx_discovery_threshold: %d, tx_teardown_threshold: %d, rssi_teardown_threshold: %d, rssi_delta: %d, tdls_options: 0x%x, peer_traffic_ind_window: %d, peer_traffic_response_timeout: %d, puapsd_mask: 0x%x, puapsd_inactivity_time: %d, puapsd_rx_frame_threshold: %d, teardown_notification_ms: %d, tdls_peer_kickout_threshold: %d, tdls_discovery_wake_timeout: %d", info->vdev_id, info->tdls_state, info->notification_interval_ms, @@ -819,7 +819,8 @@ static void tdls_state_param_setting_dump(struct tdls_info *info) info->puapsd_inactivity_time, info->puapsd_rx_frame_threshold, info->teardown_notification_ms, - info->tdls_peer_kickout_threshold); + info->tdls_peer_kickout_threshold, + info->tdls_discovery_wake_timeout); } @@ -1208,6 +1209,8 @@ void tdls_send_update_to_fw(struct tdls_vdev_priv_obj *tdls_vdev_obj, tdls_soc_obj->tdls_configs.tdls_idle_timeout; tdls_info_to_fw->tdls_peer_kickout_threshold = tdls_soc_obj->tdls_configs.tdls_peer_kickout_threshold; + tdls_info_to_fw->tdls_discovery_wake_timeout = + tdls_soc_obj->tdls_configs.tdls_discovery_wake_timeout; tdls_state_param_setting_dump(tdls_info_to_fw); diff --git a/components/tdls/dispatcher/inc/wlan_tdls_cfg.h b/components/tdls/dispatcher/inc/wlan_tdls_cfg.h index 9e7bcabc59..da57d3551f 100644 --- a/components/tdls/dispatcher/inc/wlan_tdls_cfg.h +++ b/components/tdls/dispatcher/inc/wlan_tdls_cfg.h @@ -625,6 +625,33 @@ 96, \ CFG_VALUE_OR_DEFAULT, \ "TDLS peer kick out threshold to firmware") +/* + * + * gTDLSDiscoveryWakeTimeout - TDLS discovery WAKE timeout in ms. + * @Min: 10 + * @Max: 5000 + * @Default: 96 + * + * DUT will wake until this timeout to receive TDLS discovery response + * from peer. If tdls_discovery_wake_timeout is 0x0, the DUT will + * choose autonomously what wake timeout value to use. + * + * + * Related: gEnableTDLSSupport. + * + * Supported Feature: TDLS + * + * Usage: External + * + * + */ + #define CFG_TDLS_DISCOVERY_WAKE_TIMEOUT CFG_INI_UINT( \ + "gTDLSDiscoveryWakeTimeout", \ + 0, \ + 2000, \ + 200, \ + CFG_VALUE_OR_DEFAULT, \ + "TDLS peer kick out threshold to firmware") /* * @@ -676,6 +703,7 @@ CFG(CFG_TDLS_WMM_MODE_ENABLE) \ CFG(CFG_TDLS_SCAN_ENABLE) \ CFG(CFG_TDLS_PEER_KICKOUT_THRESHOLD) \ + CFG(CFG_TDLS_DISCOVERY_WAKE_TIMEOUT) \ CFG(CFG_TDLS_ENABLE_DEFER_TIMER) #endif diff --git a/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h b/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h index 478ff2c1a8..fe7c3f09ec 100644 --- a/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h +++ b/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h @@ -455,6 +455,7 @@ enum tdls_feature_bit { * @tdls_pre_off_chan_num: tdls off channel number * @tdls_pre_off_chan_bw: tdls off channel bandwidth * @tdls_peer_kickout_threshold: sta kickout threshold for tdls peer + * @tdls_discovery_wake_timeout: tdls discovery wake timeout * @delayed_trig_framint: delayed trigger frame interval * @tdls_vdev_nss_2g: tdls NSS setting for 2G band * @tdls_vdev_nss_5g: tdls NSS setting for 5G band @@ -485,6 +486,7 @@ struct tdls_user_config { uint32_t tdls_pre_off_chan_num; uint32_t tdls_pre_off_chan_bw; uint32_t tdls_peer_kickout_threshold; + uint32_t tdls_discovery_wake_timeout; uint32_t delayed_trig_framint; uint8_t tdls_vdev_nss_2g; uint8_t tdls_vdev_nss_5g; @@ -826,6 +828,7 @@ struct tdls_oper_config_force_peer_request { * @teardown_notification_ms: tdls teardown notification interval * @tdls_peer_kickout_threshold: tdls packets threshold * for peer kickout operation + * @tdls_discovery_wake_timeout: tdls discovery wake timeout */ struct tdls_info { uint32_t vdev_id; @@ -843,6 +846,7 @@ struct tdls_info { uint32_t puapsd_rx_frame_threshold; uint32_t teardown_notification_ms; uint32_t tdls_peer_kickout_threshold; + uint32_t tdls_discovery_wake_timeout; }; /** diff --git a/components/tdls/dispatcher/src/wlan_tdls_ucfg_api.c b/components/tdls/dispatcher/src/wlan_tdls_ucfg_api.c index ec813b5282..f9cb11b9a4 100644 --- a/components/tdls/dispatcher/src/wlan_tdls_ucfg_api.c +++ b/components/tdls/dispatcher/src/wlan_tdls_ucfg_api.c @@ -200,6 +200,8 @@ static QDF_STATUS tdls_object_init_params( cfg_get(psoc, CFG_TDLS_PREFERRED_OFF_CHANNEL_BW); tdls_soc_obj->tdls_configs.tdls_peer_kickout_threshold = cfg_get(psoc, CFG_TDLS_PEER_KICKOUT_THRESHOLD); + tdls_soc_obj->tdls_configs.tdls_discovery_wake_timeout = + cfg_get(psoc, CFG_TDLS_DISCOVERY_WAKE_TIMEOUT); tdls_soc_obj->tdls_configs.delayed_trig_framint = cfg_get(psoc, CFG_TL_DELAYED_TRGR_FRM_INTERVAL); tdls_soc_obj->tdls_configs.tdls_wmm_mode_enable =