您的位置:首页 > 其它

wpa_supplicant drivers 查看跟踪

2016-06-29 11:44 239 查看
/****************************************************************************
*                   wpa_supplicant drivers 查看跟踪
* 说明:
*     最近调试wifi的时候由于wpa_supplicant仅仅支持wext,但是芯片移植手册上
* 却要使用nl80211模式,总是找不到查询方法,于是今天跟wpa_supplicant代码的
* 时候发现通过-h参数就可以查看到。
*
*                                          2016-6-29 深圳 南山平山村 曾剑锋
****************************************************************************/

static void usage(void)
{
int i;
printf("%s\n\n%s\n"
"usage:\n"
"  wpa_supplicant [-BddhKLqqstuvW] [-P<pid file>] "
"[-g<global ctrl>] \\\n"
"        -i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] "
"[-p<driver_param>] \\\n"
"        [-b<br_ifname>] [-f<debug file>] [-e<entropy file>] "
"\\\n"
"        [-o<override driver>] [-O<override ctrl>] \\\n"
"        [-N -i<ifname> -c<conf> [-C<ctrl>] "
"[-D<driver>] \\\n"
"        [-p<driver_param>] [-b<br_ifname>] ...]\n"
"\n"
"drivers:\n",
wpa_supplicant_version, wpa_supplicant_license);

for (i = 0; wpa_drivers[i]; i++) {          ------------------------------+
printf("  %s = %s\n",                                                 |
wpa_drivers[i]->name,                                          |
wpa_drivers[i]->desc);                                         |
}                                                                         |
|
#ifndef CONFIG_NO_STDOUT_DEBUG                                                |
printf("options:\n"                                                       |
"  -b = optional bridge interface name\n"                          |
"  -B = run daemon in the background\n"                            |
"  -c = Configuration file\n"                                      |
"  -C = ctrl_interface parameter (only used if -c is not)\n"       |
"  -i = interface name\n"                                          |
"  -d = increase debugging verbosity (-dd even more)\n"            |
"  -D = driver name (can be multiple drivers: nl80211,wext)\n"     |
"  -e = entropy file\n");                                          |
#ifdef CONFIG_DEBUG_FILE                                                      |
printf("  -f = log output to debug file instead of stdout\n");            |
#endif /* CONFIG_DEBUG_FILE */                                                |
printf("  -g = global ctrl_interface\n"                                   |
"  -K = include keys (passwords, etc.) in debug output\n");        |
#ifdef CONFIG_DEBUG_SYSLOG                                                    |
printf("  -s = log output to syslog instead of stdout\n");                |
#endif /* CONFIG_DEBUG_SYSLOG */                                              |
#ifdef CONFIG_DEBUG_LINUX_TRACING                                             |
printf("  -T = record to Linux tracing in addition to logging\n");        |
printf("       (records all messages regardless of debug verbosity)\n");  |
#endif /* CONFIG_DEBUG_LINUX_TRACING */                                       |
printf("  -t = include timestamp in debug messages\n"                     |
"  -h = show this help text\n"                                     |
"  -L = show license (BSD)\n"                                      |
"  -o = override driver parameter for new interfaces\n"            |
"  -O = override ctrl_interface parameter for new interfaces\n"    |
"  -p = driver parameters\n"                                       |
"  -P = PID file\n"                                                |
"  -q = decrease debugging verbosity (-qq even less)\n");          |
#ifdef CONFIG_DBUS                                                            |
printf("  -u = enable DBus control interface\n");                         |
#endif /* CONFIG_DBUS */                                                      |
printf("  -v = show version\n"                                            |
"  -W = wait for a control interface monitor before starting\n"    |
"  -N = start describing new interface\n");                        |
|
printf("example:\n"                                                       |
"  wpa_supplicant -D%s -iwlan0 -c/etc/wpa_supplicant.conf\n",      |
wpa_drivers[i] ? wpa_drivers[i]->name : "wext");                   |
#endif /* CONFIG_NO_STDOUT_DEBUG */                                           |
}                                                                             |
|
|
struct wpa_driver_ops *wpa_drivers[] =         <------------------------------+
{
#ifdef CONFIG_DRIVER_WEXT
&wpa_driver_wext_ops,          ------+
#endif /* CONFIG_DRIVER_WEXT */          |
#ifdef CONFIG_DRIVER_NL80211             |
&wpa_driver_nl80211_ops,       ------*-------------------------------------+
#endif /* CONFIG_DRIVER_NL80211 */       |                                     |
......                               |                                     |
NULL                                 |                                     |
};                                       |                                     |
|                                     |
#ifdef CONFIG_DRIVER_WEXT                V                                     |
extern struct wpa_driver_ops wpa_driver_wext_ops; /* driver_wext.c */    ----+ |
#endif /* CONFIG_DRIVER_WEXT */                                              | |
#ifdef CONFIG_DRIVER_NL80211             v-----------------------------------*-+
extern struct wpa_driver_ops wpa_driver_nl80211_ops; /* driver_nl80211.c */  | |
#endif /* CONFIG_DRIVER_NL80211 */                                           | |
| |
const struct wpa_driver_ops wpa_driver_wext_ops = {           <--------------+ |
.name = "wext",                                                            |
.desc = "Linux wireless extensions (generic)",                             |
.get_bssid = wpa_driver_wext_get_bssid,                                    |
.get_ssid = wpa_driver_wext_get_ssid,                                      |
.set_key = wpa_driver_wext_set_key,                                        |
.set_countermeasures = wpa_driver_wext_set_countermeasures,                |
.scan2 = wpa_driver_wext_scan,                                             |
.get_scan_results2 = wpa_driver_wext_get_scan_results,                     |
.deauthenticate = wpa_driver_wext_deauthenticate,                          |
.disassociate = wpa_driver_wext_disassociate,                              |
.associate = wpa_driver_wext_associate,                                    |
.init = wpa_driver_wext_init,                                              |
.deinit = wpa_driver_wext_deinit,                                          |
.add_pmkid = wpa_driver_wext_add_pmkid,                                    |
.remove_pmkid = wpa_driver_wext_remove_pmkid,                              |
.flush_pmkid = wpa_driver_wext_flush_pmkid,                                |
.get_capa = wpa_driver_wext_get_capa,                                      |
.set_operstate = wpa_driver_wext_set_operstate,                            |
.get_radio_name = wext_get_radio_name,                                     |
#ifdef ANDROID                                                                 |
.sched_scan = wext_sched_scan,                                             |
.stop_sched_scan = wext_stop_sched_scan,                                   |
#endif /* ANDROID */                                                           |
};                                                                             |
|
const struct wpa_driver_ops wpa_driver_nl80211_ops = {         <---------------+
.name = "nl80211",
.desc = "Linux nl80211/cfg80211",
.get_bssid = wpa_driver_nl80211_get_bssid,
.get_ssid = wpa_driver_nl80211_get_ssid,
.set_key = wpa_driver_nl80211_set_key,
.scan2 = wpa_driver_nl80211_scan,
.sched_scan = wpa_driver_nl80211_sched_scan,
.stop_sched_scan = wpa_driver_nl80211_stop_sched_scan,
.get_scan_results2 = wpa_driver_nl80211_get_scan_results,
.deauthenticate = wpa_driver_nl80211_deauthenticate,
.disassociate = wpa_driver_nl80211_disassociate,
.authenticate = wpa_driver_nl80211_authenticate,
.associate = wpa_driver_nl80211_associate,
.global_init = nl80211_global_init,
.global_deinit = nl80211_global_deinit,
.init2 = wpa_driver_nl80211_init,
.deinit = wpa_driver_nl80211_deinit,
.get_capa = wpa_driver_nl80211_get_capa,
.set_operstate = wpa_driver_nl80211_set_operstate,
.set_supp_port = wpa_driver_nl80211_set_supp_port,
.set_country = wpa_driver_nl80211_set_country,
.set_ap = wpa_driver_nl80211_set_ap,
.if_add = wpa_driver_nl80211_if_add,
.if_remove = wpa_driver_nl80211_if_remove,
.send_mlme = wpa_driver_nl80211_send_mlme,
.get_hw_feature_data = wpa_driver_nl80211_get_hw_feature_data,
.sta_add = wpa_driver_nl80211_sta_add,
.sta_remove = wpa_driver_nl80211_sta_remove,
.hapd_send_eapol = wpa_driver_nl80211_hapd_send_eapol,
.sta_set_flags = wpa_driver_nl80211_sta_set_flags,
#ifdef HOSTAPD
.hapd_init = i802_init,
.hapd_deinit = i802_deinit,
.set_wds_sta = i802_set_wds_sta,
#endif /* HOSTAPD */
#if defined(HOSTAPD) || defined(CONFIG_AP)
.get_seqnum = i802_get_seqnum,
.flush = i802_flush,
.get_inact_sec = i802_get_inact_sec,
.sta_clear_stats = i802_sta_clear_stats,
.set_rts = i802_set_rts,
.set_frag = i802_set_frag,
.set_tx_queue_params = i802_set_tx_queue_params,
.set_sta_vlan = i802_set_sta_vlan,
.sta_deauth = i802_sta_deauth,
.sta_disassoc = i802_sta_disassoc,
#endif /* HOSTAPD || CONFIG_AP */
.read_sta_data = i802_read_sta_data,
.set_freq = i802_set_freq,
.send_action = wpa_driver_nl80211_send_action,
.send_action_cancel_wait = wpa_driver_nl80211_send_action_cancel_wait,
.remain_on_channel = wpa_driver_nl80211_remain_on_channel,
.cancel_remain_on_channel =
wpa_driver_nl80211_cancel_remain_on_channel,
.probe_req_report = wpa_driver_nl80211_probe_req_report,
.deinit_ap = wpa_driver_nl80211_deinit_ap,
.deinit_p2p_cli = wpa_driver_nl80211_deinit_p2p_cli,
.resume = wpa_driver_nl80211_resume,
.send_ft_action = nl80211_send_ft_action,
.signal_monitor = nl80211_signal_monitor,
.signal_poll = nl80211_signal_poll,
.send_frame = nl80211_send_frame,
.shared_freq = wpa_driver_nl80211_shared_freq,
.set_param = nl80211_set_param,
.get_radio_name = nl80211_get_radio_name,
.add_pmkid = nl80211_add_pmkid,
.remove_pmkid = nl80211_remove_pmkid,
.flush_pmkid = nl80211_flush_pmkid,
.set_rekey_info = nl80211_set_rekey_info,
.poll_client = nl80211_poll_client,
.set_p2p_powersave = nl80211_set_p2p_powersave,
#ifdef CONFIG_TDLS
.send_tdls_mgmt = nl80211_send_tdls_mgmt,
.tdls_oper = nl80211_tdls_oper,
#endif /* CONFIG_TDLS */
#ifdef ANDROID_P2P
.set_noa = wpa_driver_set_p2p_noa,
.get_noa = wpa_driver_get_p2p_noa,
.set_ap_wps_ie = wpa_driver_set_ap_wps_p2p_ie,
#endif
#ifdef ANDROID
.driver_cmd = wpa_driver_nl80211_driver_cmd,
#endif
};

/**
*
* root@android:/ # wpa_supplicant
* wpa_supplicant v2.0-devel-4.2.2_rtw_r8680.20130821
* Copyright (c) 2003-2012, Jouni Malinen <j@w1.fi> and contributors
*
* This software may be distributed under the terms of the BSD license.
* See README for more details.
*
* This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)
*
* usage:
*   wpa_supplicant [-BddhKLqqstuvW] [-P<pid file>] [-g<global ctrl>] \
*         -i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] [-p<driver_param>] \
*         [-b<br_ifname>] [-f<debug file>] [-e<entropy file>] \
*         [-o<override driver>] [-O<override ctrl>] \
*         [-N -i<ifname> -c<conf> [-C<ctrl>] [-D<driver>] \
*         [-p<driver_param>] [-b<br_ifname>] ...]
*
* drivers:
*   wext = Linux wireless extensions (generic)        <-------------------
*   nl80211 = Linux nl80211/cfg80211                  <-------------------
* options:
*   -b = optional bridge interface name
*   -B = run daemon in the background
*   -c = Configuration file
*   -C = ctrl_interface parameter (only used if -c is not)
*   -i = interface name
*   -d = increase debugging verbosity (-dd even more)
*   -D = driver name (can be multiple drivers: nl80211,wext)
*   -e = entropy file
*   -g = global ctrl_interface
*   -K = include keys (passwords, etc.) in debug output
*   -t = include timestamp in debug messages
*   -h = show this help text
*   -L = show license (BSD)
*   -o = override driver parameter for new interfaces
*   -O = override ctrl_interface parameter for new interfaces
*   -p = driver parameters
*   -P = PID file
*   -q = decrease debugging verbosity (-qq even less)
*   -v = show version
*   -W = wait for a control interface monitor before starting
*   -N = start describing new interface
* example:
*   wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
* 255|root@android:/ #
*
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: