8 WIFI_TDLS_DISABLED = 1, /* TDLS is not enabled, default status for all STAs */
9 WIFI_TDLS_ENABLED, /* TDLS is enabled, but not yet tried */
10 WIFI_TDLS_ESTABLISHED, /* Direct link is established */
11 WIFI_TDLS_ESTABLISHED_OFF_CHANNEL, /* Direct link is established using MCC */
12 WIFI_TDLS_DROPPED, /* Direct link was established,
13 * but is temporarily dropped now */
14 WIFI_TDLS_FAILED /* TDLS permanent failed. Inform error to upper layer
15 * and go back to WIFI_TDLS_DISABLED */
19 WIFI_TDLS_SUCCESS, /* Success */
20 WIFI_TDLS_UNSPECIFIED = -1, /* Unspecified reason */
21 WIFI_TDLS_NOT_SUPPORTED = -2, /* Remote side doesn't support TDLS */
22 WIFI_TDLS_UNSUPPORTED_BAND = -3, /* Remote side doesn't support this band */
23 WIFI_TDLS_NOT_BENEFICIAL = -4, /* Going to AP is better than going direct */
24 WIFI_TDLS_DROPPED_BY_REMOTE = -5 /* Remote side doesn't want it anymore */
28 int channel; /* channel hint, in channel number (NOT frequency ) */
29 int global_operating_class; /* operating class to use */
30 int max_latency_ms; /* max latency that can be tolerated by apps */
31 int min_bandwidth_kbps; /* bandwidth required by apps, in kilo bits per second */
36 int global_operating_class;
37 wifi_tdls_state state;
38 wifi_tdls_reason reason;
42 int max_concurrent_tdls_session_num; /* Maximum TDLS session number can be supported by the
43 * Firmware and hardware*/
44 int is_global_tdls_supported; /* 1 -- support, 0 -- not support */
45 int is_per_mac_tdls_supported; /* 1 -- support, 0 -- not support */
46 int is_off_channel_tdls_supported; /* 1 -- support, 0 -- not support */
47 } wifi_tdls_capabilities;
50 /* on_tdls_state_changed - reports state of TDLS link to framework
51 * Report this event when the state of TDLS link changes */
52 void (*on_tdls_state_changed)(mac_addr addr, wifi_tdls_status status);
56 /* wifi_enable_tdls - enables TDLS-auto mode for a specific route
58 * params specifies hints, which provide more information about
59 * why TDLS is being sought. The firmware should do its best to
60 * honor the hints before downgrading regular AP link
61 * If upper layer has no specific values, this should be NULL
63 * handler is used to inform the upper layer about the status change and the corresponding reason
65 wifi_error wifi_enable_tdls(wifi_interface_handle iface, mac_addr addr,
66 wifi_tdls_params *params, wifi_tdls_handler handler);
68 /* wifi_disable_tdls - disables TDLS-auto mode for a specific route
70 * This terminates any existing TDLS with addr device, and frees the
71 * device resources to make TDLS connections on new routes.
73 * DON'T fire any more events on 'handler' specified in earlier call to
74 * wifi_enable_tdls after this action.
76 wifi_error wifi_disable_tdls(wifi_interface_handle iface, mac_addr addr);
78 /* wifi_get_tdls_status - allows getting the status of TDLS for a specific route */
79 wifi_error wifi_get_tdls_status(wifi_interface_handle iface, mac_addr addr,
80 wifi_tdls_status *status);
82 /* return the current HW + Firmware combination's TDLS capabilities */
83 wifi_error wifi_get_tdls_capabilities(wifi_interface_handle iface,
84 wifi_tdls_capabilities *capabilities);