Intel Wi-Fi 6 AX201 Architecture ====================================== .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`Architecture ` * :ref:`HW : ` * :ref:`SW : ` * :ref:`Application & Libraries ` * :ref:`Kernel & Driver modules ` * :ref:`List of driver modules ` * :ref:`FAQs ` * :ref:`Reference links ` .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow * Intel Wi-Fi 6 AX201 Architecture .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step2: .. tab-set:: .. tab-item:: Terminology .. csv-table:: :file: ./terminology_info.csv :widths: 20,20,60 .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step3: .. tab-set:: .. tab-item:: Version Info =============================== ======================================= # Version =============================== ======================================= Freebsd 14.1.0 wpa_supplicant 2.10 =============================== ======================================= .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step4: .. tab-set:: .. tab-item:: Architecture .. tab-set:: .. tab-item:: WiFi Architecture .. image:: wifi_architecture.png :alt: Diagram :width: 500 :height: 300 .. csv-table:: :file: ./kernel_modules_info.csv :widths: 20,80 .. csv-table:: :file: ./library_modules_info.csv :widths: 20,80 .. csv-table:: :file: ./binary_info.csv :widths: 20,80 .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step5: .. tab-set:: .. tab-item:: HW * Laptop : Lenevo ThinkBook 14 .. tab-set:: .. tab-item:: Wi-Fi Chipset .. csv-table:: :file: ./wifi_chipset_info.csv :widths: 50,50 .. tab-set:: .. tab-item:: PCI Host Controller .. csv-table:: :file: ./pci_host_controller_info.csv :widths: 50,50 .. tab-set:: .. tab-item:: Chips Interconnect .. image:: chips_interconnect.png :alt: Diagram :width: 600 :height: 200 .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step7: .. tab-set:: .. tab-item:: SW .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step8: .. tab-set:: .. tab-item:: Application & Libraries .. tab-set:: .. tab-item:: wpa_supplicant * The wpa_supplicant utility is designed to be a "daemon" program that runs in the background and acts as the backend component controlling the wireless connection. .. csv-table:: :file: ./wpa_supplicant.csv :widths: 50,50 .. tab-set:: .. tab-item:: wpa_supplicant dependencies .. plantuml:: @startuml (wpa_supplicant) -left-> (libssl.so) (wpa_supplicant) --> (libutil.so.9) (wpa_supplicant) --> (libcrypto.so) (wpa_supplicant) --> (libpcap.so.88) (libssl.so) --> (libcrypto.so) (libcrypto.so) --> (libc.so.7) (libpcap.so.88) --> (libibverbs.so.1) (libthr.so.3) -up-> (libc.so.7) (libmlx5.so.1) -up-> (libibverbs.so.1) (libssl.so) --> (libc.so.7) (wpa_supplicant) --> (libc.so.7) (libpcap.so.88) --> (libc.so.7) (libutil.so.9) --> (libc.so.7) (libibverbs.so.1) --> (libc.so.7) (libssl.so) --> (libthr.so.3) (libcrypto.so) --> (libthr.so.3) (wpa_supplicant) --> (libthr.so.3) (libpcap.so.88) --> (libthr.so.3) (libibverbs.so.1) --> (libthr.so.3) (libmlx5.so.1) -left-> (libthr.so.3) (libpcap.so.88) --> (libmlx5.so.1) (wpa_supplicant) --> (libmlx5.so.1) @enduml .. csv-table:: :file: ./wpa_supplicant_dependency.csv :widths: 80 .. tab-set:: .. tab-item:: wpa_cli * The wpa_cli utility is a text-based frontend program for interacting with wpa_supplicant. .. csv-table:: :file: ./wpa_cli.csv :widths: 50,50 .. tab-set:: .. tab-item:: wpa_cli dependencies .. plantuml:: @startuml (wpa_cli) -left-> (libssl.so) (wpa_cli) -right-> (libutil.so.9) (wpa_cli) --> (libcrypto.so) (wpa_cli) --> (libpcap.so.88) (libssl.so) --> (libcrypto.so) (libcrypto.so) --> (libc.so.7) (libpcap.so.88) --> (libibverbs.so.1) (libthr.so.3) -up-> (libc.so.7) (libssl.so) --> (libthr.so.3) (libssl.so) --> (libc.so.7) (libmlx5.so.1) -up-> (libibverbs.so.1) (wpa_cli) --> (libmlx5.so.1) (libpcap.so.88) --> (libmlx5.so.1) (libutil.so.9) --> (libc.so.7) (wpa_cli) --> (libc.so.7) (wpa_cli) --> (libthr.so.3) (libpcap.so.88) --> (libc.so.7) (libibverbs.so.1) --> (libc.so.7) (libibverbs.so.1) --> (libthr.so.3) (libpcap.so.88) --> (libthr.so.3) (libcrypto.so) --> (libthr.so.3) (libmlx5.so.1) --> (libthr.so.3) @enduml .. csv-table:: :file: ./wpa_cli_dependency.csv :widths: 80 .. tab-set:: .. tab-item:: ifconfig * Configure network interface parameters .. csv-table:: :file: ./ifconfig.csv :widths: 50,50 .. tab-set:: .. tab-item:: ifconfig dependencies .. plantuml:: @startuml (ifconfig) --> (libm.so.5) (ifconfig) --> (libutil.so.9) (ifconfig) --> (lib80211.so.1) (libm.so.5) --> (libbsdxml.so.4) (libutil.so.9) --> (libc.so.7) (libbsdxml.so.4) -right-> (libc.so.7) (libjail.so.1) -up-> (libc.so.7) (libnv.so.1) -up-> (libc.so.7) (lib80211.so.1) --> (libsbuf.so.6) (libsbuf.so.6) -left-> (libc.so.7) (lib80211.so.1) --> (libc.so.7) (lib80211.so.1) --> (libbsdxml.so.4) (ifconfig) --> (libbsdxml.so.4) (ifconfig) --> (libc.so.7) (ifconfig) --> (libsbuf.so.6) (ifconfig) --> (libjail.so.1) (ifconfig) --> (libnv.so.1) @enduml .. csv-table:: :file: ./ifconfig_dependency.csv :widths: 80 .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step9: .. tab-set:: .. tab-item:: Kernel & Driver modules .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step10: .. tab-set:: .. tab-item:: List of driver modules .. tab-set:: .. tab-item:: 1. wlan.ko .. csv-table:: :file: ./wlan_ko.csv :widths: 50, 50 .. tab-set:: .. tab-item:: wlan.ko dependencies .. plantuml:: @startuml (wlan.ko) --> (wlan_wep.ko) (wlan.ko) --> (wlan_tkip.ko) (wlan.ko) --> (wlan_ccmp.ko) (wlan_tkip.ko) --> (kernel) (wlan_wep.ko) --> (kernel) (wlan_ccmp.ko) --> (kernel) (wlan.ko) --> (kernel) @enduml .. tab-set:: .. tab-item:: 2. if_iwlwifi.ko * iwlwifi Intel IEEE 802.11a/b/g/n/ac/ax wireless network driver. * The driver uses the linuxkpi_wlan and linuxkpi compat framework to bridge between the linux and native FreeBSD driver code as well as to the native net80211. .. csv-table:: :file: ./if_iwlwifi_ko.csv :widths: 50, 50 .. tab-set:: .. tab-item:: if_iwlwifi.ko dependencies .. plantuml:: @startuml (iwlwifi.ko) --> (linuxkpi.ko) (iwlwifi.ko) --> (kernel) (iwlwifi.ko) --> (linuxkpi_wlan.ko) (linuxkpi.ko) --> (kernel) (linuxkpi_wlan.ko) --> (kernel) @enduml .. tab-set:: .. tab-item:: 3. linuxkpi.ko * LinuxKPI is a small compatibility layer that allows Linux drivers to run in a FreeBSD environment. .. csv-table:: :file: ./linuxkpi_ko.csv :widths: 50,50 .. tab-set:: .. tab-item:: linuxkpi.ko dependencies .. plantuml:: @startuml (linuxkpi.ko) --> (kernel) @enduml .. tab-set:: .. tab-item:: 4. linuxkpi_wlan.ko * linuxkpi_wlan is part of the LinuxKPI (Linux Kernel Programming Interface), a compatibility layer used in FreeBSD. * The linuxkpi_wlan is used to enable Linux Wi-Fi drivers to work on FreeBSD by providing a compatibility layer that allows FreeBSD to use these Linux drivers. .. csv-table:: :file: ./linuxkpi_wlan_ko.csv :widths: 50,50 .. tab-set:: .. tab-item:: linuxkpi_wlan.ko dependencies .. plantuml:: @startuml (linuxkpi_wlan.ko) --> (kernel) @enduml .. tab-set:: .. tab-item:: 5. wlan_wep.ko * The wlan_wep module handles the WEP cryptographic requirements of the 802.11 protocol .. csv-table:: :file: ./wlan_wep_ko.csv :widths: 50, 50 .. tab-set:: .. tab-item:: wlan_wep.ko dependencies .. plantuml:: @startuml (wlan_wep.ko) --> (kernel) @enduml .. tab-set:: .. tab-item:: 6. wlan_tkip.ko * The wlan_tkip module handles the TKIP and Michael cryptographic re-quirements of the WPA and 802.11i protocols. .. csv-table:: :file: ./wlan_tkip_ko.csv :widths: 50, 50 .. tab-set:: .. tab-item:: wlan_tkip.ko dependencies .. plantuml:: @startuml (wlan_tkip.ko) --> (kernel) @enduml .. tab-set:: .. tab-item:: 7. wlan_ccmp.ko * The wlan_ccmp module handles AES-CCMP cryptographic requirements of the WPA and 802.11i protocols. .. csv-table:: :file: ./wlan_ccmp_ko.csv :widths: 50, 50 .. tab-set:: .. tab-item:: wlan_ccmp.ko dependencies .. plantuml:: @startuml (wlan_ccmp.ko) --> (kernel) @enduml .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step45: .. tab-set:: .. tab-item:: FAQs .. code-block:: c test:~$ .. _FreebsdDeviceDriver_wireless_fdd_wi-fi_chipset_intel_step46: .. tab-set:: .. tab-item:: Reference links * `iwlwifi manual page `_ * `Network `_ * `wpa_supplicant manual page `_ * `Manually connecting to a wireless WPA-protected network. `_