nl80211
및 cfg80211
이 어떻게 작동하는지 자세히 알고 싶습니다. 기능 흐름, wpa_supplicant
, iw
과 같은 네트워크 도구와 상호 작용하는 방법은 nl80211
입니다.nl80211 라이브러리 및 cfg80211 작동 방법은 무엇입니까?
Plz 내게 유용한 링크 나 책을 제안 해주세요.
nl80211
및 cfg80211
이 어떻게 작동하는지 자세히 알고 싶습니다. 기능 흐름, wpa_supplicant
, iw
과 같은 네트워크 도구와 상호 작용하는 방법은 nl80211
입니다.nl80211 라이브러리 및 cfg80211 작동 방법은 무엇입니까?
Plz 내게 유용한 링크 나 책을 제안 해주세요.
사용자 공간에서 무선 드라이버를 제어하려면 커널과 사용자 공간 간의 일부 IPC 통신 프로세스가 사용됩니다.
ioctl
과 벤더 종속 API가 사용되었습니다.무선 확장 (WE)는 에 드라이버가 일반적인 무선 LAN에 특정 사용자 공간 구성 및 통계에 노출 허용하는 일반적인 API입니다. 2006 년
, 존 Linville는 mac80211 만들고 요하네스 버그는 cfg80211 및 nl80211 만듭니다. 함께 무선 확장을 대체하기위한 것입니다.
+-------------+
| |
| Userspace |
| |
+-------------+
^
- - - | - - - -
| nl80211
v
+-------------+
| |
| cfg80211 |
| |
+-------------+
+-------------+
| |
| mac80211 |
| driver |
| |
+-------------+
중요한 점
는 nl80211/cfg80211/mac80211가 더 이상 IOCTL을 사용하지 않는 것을, 그들이 netlink를 사용합니다.그래서, 도구 iw, hostapd 또는 wpa_supplicant 같은 일부 넷 링크 라이브러리 (같은 libnl 또는 libnl-tiny) 물론 nl80211.h의 인 넷 링크 인터페이스 공공 헤더를 사용합니다.
많은 문서가 없지만 libnl documentation과 iw source code (iw은 libnl을 사용하기 때문에)을 읽으라고 조언합니다. 의
고맙습니다. – Rafal
nl80211은 사용자 공간과 커널 공간 간의 인터페이스 역할을합니다 ..... 어떤 점에서 제어 흐름이 사용자 공간에서 커널 공간으로 이동하는지 이해하는 데 어려움이 있습니다. – Rafal
[this] (http : //www.carisma.slowglass .com/~ tgr/libnl/doc/core.html # core_netlink_fundamentals). Netlink는 커널과 사용자 공간 사이의 소켓과 비교 될 수 있습니다. 따라서 사용자는 요청 - 응답 방식 (예 : 'iw dev wlan0 link') 및/또는 이벤트 방식 (예 :'iw dev wlan0 event')에서 사용할 수 있습니다. – jml
약간 더 자세한 사진을 어떻게 nl80211
시스템 (user space
, kernel
및 hardware
)의 다른 부분과 cfg80211
작동합니다.
nl80211
사용자 공간 소프트웨어 (iw
, wpa_supplicant
등) 및 커널 (cfg80211
mac80211
및 커널 모듈, 특정 드라이버) 사이의 인터페이스이다.cfg80211_ops
은 전체 MAC 드라이버 및 mac80211
모듈이 cfg80211
모듈에 등록하는 작업 집합입니다.ieee80211_ops
은 Soft-MAC 드라이버가 mac80211
모듈에 등록하는 작업 집합입니다.lspci -k | grep -A 3 -i "network"는 "Kernel driver in use : iwlwifi"를 반환합니다. 그럼 modinfo iwlwifi | grep depends는 "cfg80211"을 반환합니다. 그러나 nl80211 및 mac80211에 대해 어떻게 확인할 수 있습니까? 또한 드라이버가 AP 모드를 지원하는지 여부를 어떻게 알 수 있습니까? – infoclogged
는 src/drivers/driver_nl80211.c
의 코드를 따를 수, wpa_supplicant
에서 How to learn the structure of Linux wireless drivers (mac80211)?
에 대한 내 대답을 참조하십시오. 이것은 wpa_supplicant 드라이버이며 커널 cfg80211
과 통신하기 위해 libnl
을 사용하는 커널 드라이버가 아니라 wpa_supplicant
코드에서 사용 된 추상화입니다. 예를 들어 wpa_supplicant
에서 스캔을 실행하면 wpa_driver_nl80211_scan
이 호출됩니다. NL80211_CMD_TRIGGER_SCAN
이라는 명령과 검사에 필요한 모든 매개 변수를 사용하여 netlink
메시지를 작성합니다.
이 질문은 주제와 관련이 없습니다. 간략한 개요 [도움/주제에] – sigjuice