1 enable
WifiManager.setTdlsEnabledWithMacAddress()
|WifiService.enableTdlsWithMacAddress()
|WifiStateMachine.enableTdls()
|WifiNative.startTdls()
|doBooleanCommand()//TDLS_DISCOVER
|wpa_supplicant_ctrl_iface_tdls_discover()//LINUX/android/external/wpa_supplicant_8/wpa_supplicant/ctrl_iface.c
|wpa_tdls_is_external_setup()//=>yes
|wpa_tdls_send_discovery_request()
|wpa_tdls_tpk_send()//WLAN_TDLS_DISCOVERY_REQUEST
|wpa_tdls_send_tpk_msg()
|wpa_sm_send_tdls_mgmt()
|wpa_supplicant_send_tdls_mgmt()
|wpa_drv_send_tdls_mgmt()
|send_and_recv_msgs()//in LINUX/android/external/wpa_supplicant_8/src/drivers/driver_nl80211.c
|nl80211_tdls_mgmt()//in LINUX/android/kernel/net/wireless/nl80211.c
|wlan_hdd_cfg80211_tdls_mgmt()// in LINUX/android/vendor/qcom/opensource/wlan/prima/
|doBooleanCommand()//TDLS_SETUP
|wpa_supplicant_ctrl_iface_tdls_setup()
|
2 disable
WifiManager.setTdlsEnabledWithMacAddress()
|WifiService.enableTdlsWithMacAddress()
|WifiStateMachine.enableTdls()
|WifiNative.startTdls()
|doBooleanCommand()//TDLS_TEARDOWN
|wpa_supplicant_ctrl_iface_tdls_teardown()
3 Triggered Implicitly
hdd_wlan_startup()
|wlan_hdd_tdls_init()
hdd_AssociationCompletionHandler()
|wlan_hdd_tdls_connection_callback()
|wlan_hdd_sta_tdls_init()
|wlan_hdd_tdls_timer_restart()//peerUpdateTimer
wlan_hdd_tdls_update_peer_cb()
|wlan_hdd_tdls_init()
hdd_AssociationCompletionHandler()
|wlan_hdd_tdls_connection_callback()
|wlan_hdd_sta_tdls_init()
|wlan_hdd_tdls_timer_restart()//peerUpdateTimer
wlan_hdd_tdls_update_peer_cb()