国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

WPA_Supplicant連接方式簡析

系統 OpenHarmony
TCP/IP Socket 和 Unix Socket最大的區別就是unix-socket沒有port,使用文件handle作為傳輸對象,但是只能在同物理主機內運行,相對ip-socket速度也更快,有人驗證過unix-socket要比ip-socket快31%。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

WPA_Supplicant連接方式簡析

#創作者激勵# #跟著小白一起學鴻蒙# WPA_Supplicant連接方式簡析-開源基礎軟件社區

/third_party/wpa_supplicant
|-- CONTRIBUTIONS # 貢獻說明
|-- COPYING # 版權說明
|-- wpa_supplicant-2.9 # 輕量級系統的wpa_supplicant
| |-- hostapd # Wi-Fi熱點相關功能(Access Point)
| |-- hs20 # 熱點2.0(Hotspot2.0)相關功能
| |-- src # Wi-Fi熱點與Wi-Fi接入點共用的代碼
| |-- wpa_supplicant # Wi-Fi接入相關功能(Station)
| `-- wpa_supplicant_lib # OpenHarmony對Wi-Fi新開發的業務代碼
`-- wpa_supplicant-2.9_standard # 標準系統的wpa_supplicant
| |-- hostapd # Wi-Fi熱點相關功能(Access Point)
| |-- hs20 # 熱點2.0(Hotspot2.0)相關功能
| |-- src # Wi-Fi熱點與Wi-Fi接入點共用的代碼
| |-- wpa_supplicant # Wi-Fi接入相關功能(Station)
| `-- wpa_supplicant_lib # OpenHarmony對Wi-Fi新開發的業務代碼
  1. WPA_Supplicant支持的連接方式。
struct wpa_ctrl {
#ifdef CONFIG_CTRL_IFACE_UDP
int s;
#ifdef CONFIG_CTRL_IFACE_UDP_IPV6
struct sockaddr_in6 local;
struct sockaddr_in6 dest;
#else /* CONFIG_CTRL_IFACE_UDP_IPV6 */
struct sockaddr_in local;
struct sockaddr_in dest;
#endif /* CONFIG_CTRL_IFACE_UDP_IPV6 */
char *cookie;
char *remote_ifname;
char *remote_ip;
#endif /* CONFIG_CTRL_IFACE_UDP */
#ifdef CONFIG_CTRL_IFACE_UNIX
int s;
struct sockaddr_un local;
struct sockaddr_un dest;
#endif /* CONFIG_CTRL_IFACE_UNIX */
#ifdef CONFIG_CTRL_IFACE_NAMED_PIPE
HANDLE pipe;
#endif /* CONFIG_CTRL_IFACE_NAMED_PIPE */
};

在以上的結構體定義里我們可以看到一共定義了4個宏定義標明4中wpa_supplicant

  • CONFIG_CTRL_IFACE_UDP
  • 使用ipv4 socket接口與client進行連接和通訊,默認使用localhost(127.0.0.1)
  • CONFIG_CTRL_IFACE_UDP_IPV6
  • 使用ipv6 socket接口與client進行連接和通訊,默認使用localhost(::1)
  • CONFIG_CTRL_IFACE_UNIX
  • 使用unix socket接口與client進行連接和通訊,是Linux和*BSD的默認配置,默認在linux系統使用/var/run/wpa_supplicant,在android系統使用/data/misc/wifi/sockets
  • CONFIG_CTRL_IFACE_NAMED_PIPE
  • 使用Windows Named Pipe模式與client進行連接和通訊,是windows的默認配置

TCP/IP Socket 和 Unix Socket最大的區別就是unix-socket沒有port,使用文件handle作為傳輸對象,但是只能在同物理主機內運行,相對ip-socket速度也更快,有人驗證過unix-socket要比ip-socket快31%。

WPA_Supplicant的控制接口。

  • 關wifi時:
# ps -A | grep wifi
497 ? 00:00:04 wifi_hal_servic
543 ? 00:00:00 wifi_host
629 ? 00:01:58 wifi_manager_se

# netstat -axp | grep wifi
unix 2 [ ACC ] STREAM LISTENING 2951369 25629/ohos.sample.w@25629ohos.sample.wifitest
unix 2 [ ACC ] STREAM LISTENING 18673 497/wifi_hal_servic/data/service/el1/public/wifi/unix_sock.sock
unix 2 [ ] DGRAM 18851 543/wifi_host
unix 2 [ ] DGRAM 18672 497/wifi_hal_servic
unix 2 [ ] DGRAM 19185 629/wifi_manager_se
  • 開wifi時:
# ps -A | grep wifi
497 ? 00:00:04 wifi_hal_servic
543 ? 00:00:00 wifi_host
629 ? 00:01:58 wifi_manager_se
779 ? 00:00:01 wifi_hal_servic

# netstat -axp | grep wifi
unix 2 [ ACC ] STREAM LISTENING 2951369 25629/ohos.sample.w@25629ohos.sample.wifitest
unix 2 [ ACC ] STREAM LISTENING 18673 497/wifi_hal_servic/data/service/el1/public/wifi/unix_sock.sock
unix 3 [ ] STREAM CONNECTED 3165678 497/wifi_hal_servic/data/service/el1/public/wifi/unix_sock.sock
unix 3 [ ] STREAM CONNECTED 3167635 629/wifi_manager_se
unix 2 [ ] DGRAM 18851 543/wifi_host
unix 2 [ ] DGRAM 18672 497/wifi_hal_servic
unix 3 [ ] STREAM CONNECTED 3167636 629/wifi_manager_se
unix 2 [ ] DGRAM 19185 629/wifi_manager_se
unix 3 [ ] STREAM CONNECTED 3167634 629/wifi_manager_se
unix 3 [ ] STREAM CONNECTED 3165679 497/wifi_hal_servic/data/service/el1/public/wifi/unix_sock.sock
unix 3 [ ] STREAM CONNECTED 3165020 629/wifi_manager_se
unix 3 [ ] STREAM CONNECTED 3167645 497/wifi_hal_servic/data/service/el1/public/wifi/unix_sock.sock
unix 3 [ ] STREAM CONNECTED 3165700 497/wifi_hal_servic/data/service/el1/public/wifi/unix_sock.sock

《簡析OpenHarmony的WiFi能力》大概介紹過OpenHarmony里的WiFi架構,對應上面的命令行可以看出,wifi在后臺啟動了3個服務

  • wifi_manager_service:wifi服務層,為wifi框架層服務,對下通過wpa_hal與wpa_hal_service通信。
  • wifi_host:wlan啟動的設備服務,對應vendor/hihope/rk3568/hdf_config/uhdf/device_info.hcs。
  • wifi_hal_service:wifi 硬件抽象服務,對應加載wpa_supplicant,與hdf進行交互,對上提供wpa_client.so
  1. 客戶端wpa_supplicant提供兩種客戶端:
  2. wpa_cli:用于和wpa_supplicant交互;使用wpa_cli可以實現wifi的具體功能。
# wpa_cli -i wlan0 scan
wpa_ctrl_request cmd: GET_COOKIE
wpa_ctrl_request cmd: IFNAME
wpa_ctrl_request cmd: SCAN
OK

# wpa_cli -i wlan0 scan_result
wpa_ctrl_request cmd: GET_COOKIE
wpa_ctrl_request cmd: IFNAME
wpa_ctrl_request cmd: SCAN_RESULTS
bssid / frequency / signal level / flags / ssid / informationElements
6e:b1:58:65:63:67 5805 -39 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] [7 434e2024042395052300][61 a1070000000000000000000000000000000000000000][192 019b00faff]
6c:b1:58:75:63:67 5805 -39 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_6365 [7 434e2024042395052300][61 a1070000000000000000000000000000000000000000][192 019b00faff]
f4:84:8d:01:69:ac 5785 -51 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] Graphic [7 434e2024042395052300][61 9d050400000000000000000000000000000000000000][192 019b00faff]
f6:84:8d:21:69:ac 5785 -52 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] [7 434e2024042395052300][61 9d050400000000000000000000000000000000000000][192 019b00faff]
f2:45:21:15:5e:75 5745 -60 [WPA2-PSK+SAE-CCMP][SAE-H2E][ESS] iPhone 13 Pro Max [7 434e202401172801172c01173001173401173801173c011740011795011b99011b9d011ba1011ba5011b][61 95050400000000000000000000000000000000000000][192 019b000000]
f8:af:05:87:7a:40 5180 -74 [WPA2-PSK-CCMP][WPS][ESS] dist [61 240d0400000000000000000000000000000000000000][192 012a00faff]
f8:af:05:f7:7a:40 5180 -74 [WPA2-PSK-CCMP][WPS][ESS] [61 240d0000000000000000000000000000000000000000][192 012a00faff]
f8:af:05:87:7a:42 5180 -71 [WPA2-PSK-CCMP][WPS][ESS] [61 240d0000000000000000000000000000000000000000][192 012a00faff]
6c:b1:58:75:63:65 2462 -40 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_6365 [7 434e20010d1b][61 0b070000000000000000000000000000000000000000]
6e:b1:58:65:63:65 2462 -40 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] [7 434e20010d1b][61 0b070000000000000000000000000000000000000000]
f4:84:8d:01:69:aa 2437 -47 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] Graphic [7 434e20010d14][61 06070000000000000000000000000000000000000000]
f6:84:8d:01:69:aa 2437 -46 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] [7 434e20010d14][61 06070000000000000000000000000000000000000000]

對應的主要功能:

  • wpa_ctrl_open() : 連接WPAS的控制接口, 可以是WPAS的全局控制接口,也可以是為每一個無線網絡接口指定的控制接口。
  • wpa_ctrl_close() : 關閉wpa_ctrl_open()打開的連接。
  • wpa_ctrl_request() : 通過建立的連接向WPAS發送消息。
  • wpa_ctrl_attach() : 使用wpa_ctrl_open()建立的連接, WPAS默認不會向這些連接的client端發送event, 必須顯示調用wpa_ctrl_attach(),才能接收到消息。
  • wpa_ctrl_detach() : 取消wpa_ctrl_attach()。
  • wpa_ctrl_recv() : 接收WPAS端發來的event, 必須要先在打開的連接上調用wpa_ctrl_attach()才能接收到event, 當無event可讀時, 此調用會被block住。
  • wpa_ctrl_pending() : 檢查是否有pending的event, 若有則可以調用wpa_ctrl_recv()來接收。
  • wpa_ctrl_get_fd() : 獲取同WPAS的連接中, client端的fd, 獲取的fd可以用于select, epoll等, 但是不能直接用于收發消息, 必須使用wpa_ctrl_request()和wpa_ctrl_recv()。
  • wpa_ctrl_cleanup() : 當使用unix socekt 進行連接時,會建立socket文件, 若其carsh, 則會遺留這些文件, wpa_ctrl_cleanup()用于清理這些文件。
  1. hostapd_cli:用于和hostapd交互;(當設置wlan為ap模式時候可以使用此功能)
  2. 服務端
  • wpa_supplicant提供兩種服務端:
  1. wpa_supplicant:Wi-Fi接入相關功能,對應wifi_hal_sta_interface.c啟動或停止,此文件在wifi的services層,對應之前的wifi_hal_service;這也解釋了為啥開wifi后會多出一個wifi_hal_service。
  2. hostapd:Wi-Fi熱點相關功能,對應wifi_hal_ap_interface.c啟動或停止,此文件在wifi的services層,對應之前的wifi_hal_service。
  • 對應配置文件:
# ls ./system/etc/wifi/
hostapd.conf p2p_supplicant.conf wpa_supplicant.conf

//熱點配置
# cat ./system/etc/wifi/hostapd.conf
# Copyright (C) 2022 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

interface=wlan0
ctrl_interface=udp
ssid=testap
hw_mode=g
channel=1

//點對點傳輸模式
# cat ./system/etc/wifi/p2p_supplicant.conf
# Copyright (C) 2022 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

ctrl_interface=udp
device_name=p2p_ohos
manufacturer=ohos
device_type=10-0050F204-5
config_methods=virtual_push_button physical_display keypad
p2p_listen_reg_class=81
p2p_listen_channel=1
p2p_oper_reg_class=81
p2p_oper_channel=1
p2p_go_intent=0
persistent_reconnect=1
serial_number=0123456789ABCDEF
p2p_ssid_postfix=-ohos
p2p_go_ht40=1
p2p_go_vht=1
update_config=1

//默認的接入點模式
# cat ./system/etc/wifi/wpa_supplicant.conf
# Copyright (C) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

country=GB
ctrl_interface=udp
network={
}

此處多了個p2p的配置,其實就是wpa_supplicat啟動時候使用的不同配置,也就是說wpa_supplicant可以作為接入點模式啟動也可以作為p2p模式啟動。

小結

以上就是對OpenHarmony里的wap_supplicant的大概分析,具體代碼分析可以自己搜索wap_supplicant的相關文章。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2010-01-20 14:25:56

函數調用

2011-07-12 14:04:58

2010-09-13 16:58:13

2009-06-08 21:25:29

Java聲音技術

2010-09-08 16:25:39

SIP協議棧

2010-09-10 09:52:44

開源協議棧

2013-12-05 10:13:25

iOS圖標

2010-04-12 15:39:37

無線接入技術應用

2010-04-19 12:28:57

2009-08-13 15:48:57

C#指針

2010-05-07 12:39:05

SQL Server負載均衡

2010-06-21 14:05:08

Linux APM

2011-07-22 11:05:15

光纖通信

2011-07-20 10:20:04

2023-03-17 16:26:25

開源鴻蒙藍牙能力

2022-06-04 16:11:14

勒索軟件加密Nokoyawa

2010-05-06 12:02:43

路由負載均衡

2010-04-20 20:46:01

負載均衡

2012-08-27 09:52:46

云計算產業發展

2009-11-24 13:08:52

SuSE Linux 390
點贊
收藏

51CTO技術棧公眾號

噜噜噜久久亚洲精品国产品小说| 欧美日韩精品免费观看视频| 免费精品视频一区二区三区| 老汉色老汉首页av亚洲| 亚洲电影在线看| 福利视频在线看| 亚洲国产综合91精品麻豆| 成 年 人 黄 色 大 片大 全| 美国一区二区三区在线播放 | 91网页版在线登录入口| 国产欧美日韩不卡免费| 黄色网页免费在线观看| 国产麻豆精品在线| 看全色黄大色大片| 激情深爱一区二区| 在线观看污视频| 国产福利一区二区| 青春草在线视频免费观看| 国产在线一区观看| www.国产二区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 4438全国成人免费| 第四色在线一区二区| 精品国产欧美一区二区五十路| 免费成人动漫| 最近2019好看的中文字幕免费| 国产成人精品亚洲日本在线观看| 亚洲精品成人av| 婷婷六月国产精品久久不卡| 在线播放亚洲激情| 2023国产精华国产精品| 欧美亚洲在线视频| 亚洲激情五月| 欧美污视频久久久| 国产iv一区二区三区| 丁香婷婷激情网| 亚洲精品美国一| 国产系列电影在线播放网址| 91精品国产高清一区二区三区| bl在线肉h视频大尺度| 国产一区二区黑人欧美xxxx| 欧美电影院免费观看| 清纯唯美亚洲激情| 亚洲成人原创| 中文字幕在线中文| 1区2区3区精品视频| 番号在线播放| 亚洲欧美另类在线观看| 中文字幕一区二区三区日韩精品| 国产精品18久久久久久麻辣| 亚洲精品乱码久久久久久蜜桃麻豆| 午夜精品电影在线观看| 91视视频在线观看入口直接观看www | 日韩女优制服丝袜电影| 日本精品不卡| 国产99久久精品一区二区 夜夜躁日日躁| 日韩大片在线| 一区二区冒白浆视频| 国产精品欧美综合在线| 亚洲高清成人影院| 亚洲精品美女免费| 亚洲人和日本人hd| 欧美三级电影在线播放| 久久久久久久久久久久久久久99 | 久久久蜜桃精品| 伊人色综合网| 日韩av在线网址| 亚洲自拍电影| 综合操久久久| 亚洲午夜一区二区| 久久精品女人天堂av免费观看| 国产999在线| 国产美女精品在线| 精品处破学生在线二十三| 成人性生交大片免费看中文视频 | 99九九热只有国产精品| 欧美日韩一区二区三区电影| 亚洲日本在线天堂| 爱情岛亚洲播放路线| 国产成人精品亚洲精品| 国产河南妇女毛片精品久久久| 亚洲高清国产精品| 久久精品久久久久| 午夜影院日韩| 在线观看国产视频一二三| 日韩av在线免费看| 91欧美大片| 久久亚洲精品无码va白人极品| 日韩欧美国产一区二区| 欧美欧美在线| 中文字幕日韩精品久久| 在线观看亚洲专区| 免费电影一区二区三区| 无码人妻精品一区二区蜜桃网站| 欧美在线|欧美| 小嫩嫩12欧美| 久久久久久久久久久久久国产精品 | 国产无限制自拍| 欧美三区在线视频| 日韩欧美天堂| 日本不卡在线观看视频| 亚洲成人黄色在线观看| 一区二区三区在线观看免费| 在线观看免费污视频| 国产视频精品在线| 性欧美长视频| 性xxxx丰满孕妇xxxx另类| 欧美高清一级大片| 国产精品影视在线观看| 1stkiss在线漫画| 懂色av一区二区三区在线播放| 国产精品不卡在线观看| 成人51免费| jizzjizz国产精品喷水| 夜夜嗨av一区二区三区四区| 久久黄色级2电影| 欧美中文字幕在线播放| 日韩视频永久免费| 国内精品在线播放| 精品国产白色丝袜高跟鞋| 国产在线久久久| 国产欧美精品在线播放| 国产日韩精品一区二区三区在线| 久久中文字幕一区| 国产一区二区三区在线观看精品| 18视频在线观看| 欧美精品人人做人人爱视频| 欧美日韩一区二区三区高清| 黄色av日韩| 幼a在线观看| 欧美性天天影院| 精品福利二区三区| 精品一区精品二区高清| 欧美野外wwwxxx| 水蜜桃亚洲精品| 日韩国产激情在线| 国产高清不卡一区| 成人在线免费电影网站| 成人羞羞国产免费网站| 欧美黑人又粗大| 亚洲三级理论片| 欧美亚洲国产激情| 九色在线视频| 欧美日韩亚洲一区二区三区在线观看| 欧美一区二区美女| 激情综合五月天| yy6080久久伦理一区二区| 手机看片福利日韩| 国内揄拍国内精品少妇国语| 亚洲激情校园春色| 综合精品久久| 欧美色图天堂| a在线视频观看| 国产精国产精品| 91成人在线观看喷潮| 六月丁香婷婷久久| 精品视频在线一区| 午夜激情影院| 成人羞羞视频免费| 亚洲国产精品小视频| 99麻豆久久久国产精品免费 | 国产成人短视频在线观看| 青青青手机在线视频观看| 久久99久久精品国产| 亚洲欧美资源在线| 中文字幕在线观看一区二区| 久久中文字幕二区| 在线观看操人| 欧美色图另类小说| 91精品视频专区| 亚洲韩国青草视频| 中文字幕制服丝袜成人av| 伊人久久久大香线蕉综合直播| 日韩精品极品| 污视频网站免费看| 国产系列第一页| 欧美中文在线观看国产| 欧美日韩一区二区在线观看视频| 国产精品中文字幕日韩精品 | 中文字幕欧美日韩精品| 亚洲丝袜一区| 日韩久久一级片| 成人在线资源网址| 色偷偷噜噜噜亚洲男人| 天涯成人国产亚洲精品一区av| 乱一区二区av| 日韩欧美自拍| 超薄肉色丝袜脚交一区二区| 日韩av资源站| 女人扒开屁股爽桶30分钟| 精品视频一区在线| 性色av一区二区三区红粉影视| 欧美一区二区成人| 亚洲女人的天堂| 国产一区二区三区四区五区美女| 欧美人与牛zoz0性行为| 国产成人精品亚洲日本在线观看| 久久久久国产精品嫩草影院| 任你操这里只有精品| 杨幂一区欧美专区|