wpa_supplicant drivers 查看跟踪
/****************************************************************************
* 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 = ; 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:/ #
*
*/
wpa_supplicant drivers 查看跟踪的更多相关文章
- mysql通过查看跟踪日志跟踪执行的sql语句
在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? 其实方法很简单,开启mysql的日志log功能,通过查看跟踪日志即可. 开启mysql的日志log方法: wind ...
- 如何查看跟踪查看LINUX内核中的源码
我的博客:www.while0.com 最近看LINUX书籍时,根据书中代码找相应的函数或者结构定义相当吃力,根据网上资料按以下方法查找速度较快. 1.安装ctags 在源代码目录下运行 ctags ...
- git跟踪远程分支,查看本地分支追踪和远程分支的关系
跟踪远程分支 如果用git push指令时,当前分支没有跟踪远程分支(没有和远程分支建立联系),那么就会git就会报错 There is no tracking information for the ...
- Trace-语句启动Profiler中暂停的跟踪会出现什么状况
2016-09-08 22:09 整理,未发布Profiler创建客户端跟踪.常规页不保存文件.不勾选服务器处理跟踪数据:事件选择RPC:Completed和SQL:BatchCompleted,列筛 ...
- Trace-如何跟踪某个Job的开销
1.背景 下面是从以往Profiler收集的跟踪文件中提取Job有关数据 ;with cte as( Duration_ms ,CPU CPU_ms,Reads,Writes,StartTime,En ...
- SQL Server中关于跟踪(Trace)那点事
前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...
- 使用sql server profilter跟踪sql
最近在研究EF延迟加载和贪婪加载的用法时,想要查看Linq生成的sql.一开始通过VS-->调试-->窗口-->IntelliTrace事件,来查看生成的sql,并不是十分准确.然后 ...
- 【转】SQL Server中关于跟踪(Trace)那点事
前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...
- 【转】mysql如何跟踪执行的sql语句
转自http://blog.csdn.net/testcs_dn/article/details/18791815 在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? ...
随机推荐
- HDU 5487 Difference of Languages
Difference of Languages Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. ...
- 安卓巴士Android开发神贴整理
10个经典的Android开源应用项目 http://www.apkbus.com/android-13519-1-1.html 安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发 ...
- Javascript 检查字符串是否是数字的几种方法
//判断是否是正整数 function IsNum(s) { if(s!=null){ var r,re; re = /\d*/i; //\d表示数字,*表示匹配多个数字 r = s.match(re ...
- 解决Flex4在Module里调用PopUpManager报错问题
项目大了 就需要用到Module, 发现在一个Module里边, 和普通应用里一样popup一个组件的时候, 总是会报错. 这个在Flex3的时候也会出现, 会报样式错误 所以就想到了addPopUp ...
- LightOJ1094 - Farthest Nodes in a Tree(树的直径)
http://lightoj.com/volume_showproblem.php?problem=1094 Given a tree (a connected graph with no cycle ...
- Topcoder 658Div2
补题风向标——>> 假装题意知道 A:暴力合成一遍了 n=s.size(); m=t.size(); ss+=s; tt+=t; if (ss==tt) or not; B:题意是给定 1 ...
- java学习——关于搜索异常处理的总结
根据网上的资料可以知道,异常处理是为了检测到程序运行中发生的非正常情况的检测而设立的一种机制,异常的英文单词是exception,字面翻译就是“意外.例外”的意思,也就是非正常情况.关于平常我们经常遇 ...
- Spring中基于AOP的XML架构
以下内容引用自http://wiki.jikexueyuan.com/project/spring/aop-with-spring-framenwork/xml-schema-based-aop-wi ...
- 转:String数组初始化
近日,笔者在java编程中因为疏忽对String数组的初始化定义错误,导致程序运行出错.现将所理解的String数组在此进行说明,并对String数组初始化进行分析. //一维数组String[] s ...
- mysql innodb插入意向锁
innodb中有插入意向锁.专门针对insert,假设插入前,该间隙已经由gap锁,那么Insert会申请插入意向锁. 那么这个插入意向锁的作用是什么? 1.为了唤起等待.由于该间隙已经有锁,插入时必 ...