• 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
    
    %s
    "
               "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:
    ",
               wpa_supplicant_version, wpa_supplicant_license);
    
        for (i = 0; wpa_drivers[i]; i++) {          ------------------------------+
            printf("  %s = %s
    ",                                                 |
                   wpa_drivers[i]->name,                                          |
                   wpa_drivers[i]->desc);                                         |
        }                                                                         |
                                                                                  |
    #ifndef CONFIG_NO_STDOUT_DEBUG                                                |
        printf("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
    ");                                          |
    #ifdef CONFIG_DEBUG_FILE                                                      |
        printf("  -f = log output to debug file instead of stdout
    ");            |
    #endif /* CONFIG_DEBUG_FILE */                                                |
        printf("  -g = global ctrl_interface
    "                                   |
               "  -K = include keys (passwords, etc.) in debug output
    ");        |
    #ifdef CONFIG_DEBUG_SYSLOG                                                    |
        printf("  -s = log output to syslog instead of stdout
    ");                |
    #endif /* CONFIG_DEBUG_SYSLOG */                                              |
    #ifdef CONFIG_DEBUG_LINUX_TRACING                                             |
        printf("  -T = record to Linux tracing in addition to logging
    ");        |
        printf("       (records all messages regardless of debug verbosity)
    ");  |
    #endif /* CONFIG_DEBUG_LINUX_TRACING */                                       |
        printf("  -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)
    ");          |
    #ifdef CONFIG_DBUS                                                            |
        printf("  -u = enable DBus control interface
    ");                         |
    #endif /* CONFIG_DBUS */                                                      |
        printf("  -v = show version
    "                                            |
               "  -W = wait for a control interface monitor before starting
    "    |
               "  -N = start describing new interface
    ");                        |
                                                                                  |
        printf("example:
    "                                                       |
               "  wpa_supplicant -D%s -iwlan0 -c/etc/wpa_supplicant.conf
    ",      |
               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:/ # 
     *
     */
  • 相关阅读:
    leetcode回溯总结
    排序算法详解
    Java核心基础知识泛型
    leetcode贪心算法
    Linux虚拟机配置及安装Redis
    HJ6质数因子
    冒泡排序(升序)
    动态规划 背包问题
    配置mycatschema.xml
    HJ106字符逆序
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/5626321.html
Copyright © 2020-2023  润新知