Intel Wi-Fi 6 AX201 Architecture

  • In this section, you are going to learn

  • Intel Wi-Fi 6 AX201 Architecture

Term

Expansion

Explanation

Wi-Fi

Wireless Fidelity

wireless networking technology that allows devices such as computers, smartphones, and other smart devices to connect to the internet or communicate with each other wirelessly.

BSSID

Basic Service Set Identifier

The MAC address of a specific access point in a Wi-Fi network.

WPA

Wi-Fi Protected Access

A security protocol developed to secure wireless networks.

WPA2

Wi-Fi Protected Access 2

An enhanced version of WPA that provides stronger data protection and network access control.

WPA3

Wi-Fi Protected Access 3

The latest version of WPA, which includes additional security features, such as SAE for authentication.

AP

Access Point

A device that allows wireless devices to connect to a wired network using Wi-Fi.

SAE

Simultaneous Authentication of Equals

A key exchange method used in WPA3 for secure, password-based authentication.

TKIP

Temporal Key Integrity Protocol

A legacy security protocol used with WPA, replaced by AES in WPA2 for stronger encryption

AES

Advanced Encryption Standard

A symmetric encryption algorithm used in WPA2 and WPA3 for secure communication.

Roaming

The process by which a wireless device moves from one access point to another within the same network without losing connection.

RSSI

Received Signal Strength Indicator

A measurement of the power present in a received Wi-Fi signal.

#

Version

Freebsd

14.1.0

wpa_supplicant

2.10

Diagram

Kernel Modules

Description

Wlan.ko

Generic 802.11 (Wi-Fi) network support module for FreeBSD. It handles the basic functionalities of wireless networking and is essential for Wi-Fi communication.

wlan_wep.ko

Module providing support for Wired Equivalent Privacy (WEP), a deprecated and insecure encryption protocol used in wireless networks.

wlan_tkip.ko

Module for Temporal Key Integrity Protocol (TKIP), which is part of WPA (Wi-Fi Protected Access) for enhancing security by generating unique encryption keys.

Wlan_ccmp.ko

Module that provides support for the Counter Mode Cipher Block Chaining Message Authentication Code Protocol (CCMP), a robust encryption protocol used in WPA2 and WPA3 standards.

Iwlwifi.ko

Intel Wi-Fi driver module used for enabling wireless networking on devices with supported Intel wireless adapters. This includes handling Wi-Fi connections and data transmission.

linuxkpi.ko

Linux Kernel Programming Interface (KPI) compatibility layer for FreeBSD, allowing certain Linux device drivers to function within the FreeBSD kernel.

linuxkpi_wlan.ko

Extension of the Linux KPI that focuses on supporting wireless (WLAN) drivers, allowing the use of Linux Wi-Fi drivers on FreeBSD systems.

Library

Description

libssl.so.30

Provide a secure network communication protocols, including Transport Layer Security (TLS) and Secure Sockets Layer (SSL).

libcrypto.so.30

Supports a variety of cryptographic functions, including: symmetric encryption, certificate handling, public key cryptography

libpcap.so.8

Enables developers to capture and process packets on UNIX operating systems

libutil.so.9

The libutil library is a system utilities library that contains various system-dependent utility routines.

libc.so.7

standard C libraries

libthr.so.3

POSIX threads library

libibverbs.so.1

Allows programs to use RDMA verbs for direct access to RDMA hardware

libmlx5.so.1

Supports Ethernet,

Binary

Description

wpa_supplicant

wpa_supplicant is a daemon that runs in the background to control a wireless connection. It manages the roaming, authentication, and association of the wireless LAN driver.

wpa_cli

wpa_cli is a text-based utility that allows users to interact with wpa_supplicant. It can be used to query status of connection, connected to Access point

  • Laptop : Lenevo ThinkBook 14

Chipset

Intel Wi-Fi 6 AX201

Vendor ID

0x8086

Device ID

0xa0f0

Interface

iwlwifi0

Chipset

Intel 11th Gen Core i5-1135G7 Processor Host Bridge/DRAM Registers

Vendor ID

0x8086

Device ID

0x9A14

Interface

hostb0

Diagram
  • 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.

Binary Name :

wpa_supplicant

Version :

wpa_supplicant v2.10

Size :

865K

Source path :

/usr/src/contrib/wpa/wpa_supplicant

Binary path :

/usr/obj/usr/src/amd64.amd64/usr.sbin/wpa/wpa_supplicant/wpa_supplicant

wpa_supplicant build time configuration :

List of c files :

  • bss.c

  • bssid_ignore.c

  • config.c

  • config_file.c

  • ctrl_iface.c

  • ctrl_iface_unix.c

  • driver_bsd.c

  • eap_register.c

  • events.c

  • gas_query.c

  • main.c

  • mbo.c

  • notify.c

  • op_classes.c

  • offchannel.c

  • robust_av.c

  • rrm.c

  • scan.c

  • twt.c

  • wmm_ac.c

  • wnm_sta.c

  • wpa_supplicant.c

  • wpas_glue.c

NM symbol list :

https://www.plantuml.com/plantuml/svg/XP9D3e8m48Ntde8bB20nneWRmqrCYnYR59YqKtzkBnMbKsbXENtVl7apQQMHAJIjtAGFO6Tj0AIeMOTPailcYlafIQNWMij2zra0-W86XIMAum9JgnTWl-m3DGFhKvO3v0O7FRpI4RRzCCh4RT85lpUAQ_ky7IcyALlj1iP0mAMLp_s84s1kCulwiuZUOoKfrTrzF_9Cz-847VxZJLl73ac0s0Q-HsW7dmYdz1bwRV83rqUvndXWmbHDTnd-_Hi=
  • # ldd wpa_supplicant wpa_supplicant:

  • libssl.so.30 => /usr/lib/libssl.so.30 (0x1f4edb521000)

  • libcrypto.so.30 => /lib/libcrypto.so.30 (0x1f4edc24f000)

  • libpcap.so.8 => /lib/libpcap.so.8 (0x1f4edce60000)

  • libutil.so.9 => /lib/libutil.so.9 (0x1f4edde4d000)

  • libc.so.7 => /lib/libc.so.7 (0x1f4edef70000)

  • libthr.so.3 => /lib/libthr.so.3 (0x1f4edea58000)

  • libibverbs.so.1 => /lib/libibverbs.so.1 (0x1f4ee0091000)

  • libmlx5.so.1 => /lib/libmlx5.so.1 (0x1f4ee0a5b000)

  • [vdso] (0x1f4edaa08000)

  • # ldd /usr/lib/libssl.so.30

  • /usr/lib/libssl.so.30:

  • libcrypto.so.30 => /lib/libcrypto.so.30 (0x2f4bd025000)

  • libc.so.7 => /lib/libc.so.7 (0x2f4bac8d000)

  • libthr.so.3 => /lib/libthr.so.3 (0x2f4bb59c000)

  • # ldd /lib/libcrypto.so.30

  • /lib/libcrypto.so.30:

  • libthr.so.3 => /lib/libthr.so.3 (0x1621afbed000)

  • libc.so.7 => /lib/libc.so.7 (0x1621b0e96000)

  • # ldd /lib/libpcap.so.8

  • /lib/libpcap.so.8:

  • libibverbs.so.1 => /lib/libibverbs.so.1 (0x222a5a05f000)

  • libmlx5.so.1 => /lib/libmlx5.so.1 (0x222a5b973000)

  • libc.so.7 => /lib/libc.so.7 (0x222a58b1b000)

  • libthr.so.3 => /lib/libthr.so.3 (0x222a5a92d000)

  • # ldd /lib/libutil.so.9

  • /lib/libutil.so.9:

  • libc.so.7 => /lib/libc.so.7 (0x2f58cfdd4000)

  • # ldd /lib/libc.so.7

  • /lib/libc.so.7:

  • # ldd /lib/libthr.so.3

  • /lib/libthr.so.3:

  • libc.so.7 => /lib/libc.so.7 (0xd098c282000)

  • # ldd /lib/libibverbs.so.1

  • /lib/libibverbs.so.1:

  • libc.so.7 => /lib/libc.so.7 (0x1b866b501000)

  • # ldd /lib/libmlx5.so.1

  • /lib/libmlx5.so.1:

  • libibverbs.so.1 => /lib/libibverbs.so.1 (0x1d825a00e000)

  • libthr.so.3 => /lib/libthr.so.3 (0x1d8259966000)

  • libc.so.7 => /lib/libc.so.7 (0x1d82588fd000)

  • The wpa_cli utility is a text-based frontend program for interacting with wpa_supplicant.

Binary Name :

wpa_cli

Version :

wpa_cli v2.10

Size :

129K

Source path :

/usr/src/contrib/wpa/wpa_supplicant

Binary path :

/usr/obj/usr/src/amd64.amd64/usr.sbin/wpa/wpa_supplicant/wpa_supplicant

List of c files :

  • wpa_cli.c

NM Output :

https://www.plantuml.com/plantuml/svg/bPBB3i8W44NtVaMNxQ9DZ37MZUcV6AXeIQWbF7pylH1g6HwDSGdtt9ax0vrKI2WziatvvEZSCreLDIDNLP-Aab4i9MlaL45LqDlmbRMYLc-E0J6BlNXpDSNsMUGzujRPjaRrZRBcuEW9Qpyu6LHRT8eVH61fhxUEKeEmfvrXDCzKYJCiV3uXS8xijNUDGEaeGB82RrgT8KBykjCKwVfNbN2kN5yuMp367yJlBY6HUU8GW4jEW8xSB-ORVm0=
  • $ ldd wpa_cli

  • libssl.so.30 => /usr/lib/libssl.so.30 (0x2556697d9000)

  • libcrypto.so.30 => /lib/libcrypto.so.30 (0x255669938000)

  • libpcap.so.8 => /lib/libpcap.so.8 (0x25566a4cb000)

  • libutil.so.9 => /lib/libutil.so.9 (0x25566afc1000)

  • libc.so.7 => /lib/libc.so.7 (0x25566c25e000)

  • libthr.so.3 => /lib/libthr.so.3 (0x25566b436000)

  • libibverbs.so.1 => /lib/libibverbs.so.1 (0x25566e011000)

  • libmlx5.so.1 => /lib/libmlx5.so.1 (0x25566cf8c000)

  • [vdso] (0x255668388000)

  • $ ldd /usr/lib/libssl.so.30

  • /usr/lib/libssl.so.30:

  • libcrypto.so.30 => /lib/libcrypto.so.30 (0x2f4bd025000)

  • libc.so.7 => /lib/libc.so.7 (0x2f4bac8d000)

  • libthr.so.3 => /lib/libthr.so.3 (0x2f4bb59c000)

  • $ ldd /lib/libcrypto.so.30

  • /lib/libcrypto.so.30:

  • libthr.so.3 => /lib/libthr.so.3 (0x1621afbed000)

  • libc.so.7 => /lib/libc.so.7 (0x1621b0e96000)

  • $ ldd /lib/libpcap.so.8

  • /lib/libpcap.so.8:

  • libibverbs.so.1 => /lib/libibverbs.so.1 (0x222a5a05f000)

  • libmlx5.so.1 => /lib/libmlx5.so.1 (0x222a5b973000)

  • libc.so.7 => /lib/libc.so.7 (0x222a58b1b000)

  • libthr.so.3 => /lib/libthr.so.3 (0x222a5a92d000)

  • $ ldd /lib/libutil.so.9

  • /lib/libutil.so.9:

  • libc.so.7 => /lib/libc.so.7 (0x2f58cfdd4000)

  • $ ldd /lib/libc.so.7

  • /lib/libc.so.7:

  • $ ldd /lib/libthr.so.3

  • /lib/libthr.so.3:

  • libc.so.7 => /lib/libc.so.7 (0xd098c282000)

  • $ ldd /lib/libibverbs.so.1

  • /lib/libibverbs.so.1:

  • libc.so.7 => /lib/libc.so.7 (0x1b866b501000)

  • $ ldd /lib/libmlx5.so.1

  • /lib/libmlx5.so.1:

  • libibverbs.so.1 => /lib/libibverbs.so.1 (0x1d825a00e000)

  • libthr.so.3 => /lib/libthr.so.3 (0x1d8259966000)

  • libc.so.7 => /lib/libc.so.7 (0x1d82588fd000)

  • Configure network interface parameters

Binary Name :

ifconfig

Size :

225K

Source path :

/usr/src/sbin/ifconfig

Binary path :

/sbin

List of c files :

  • ifconfig.c

  • af_link.c

  • af_inet.c

  • af_inet6.c

  • af_nd6.c

  • ifstf.c

  • ifclone.c

  • ifmac.c

  • ifmedia.c

  • iffib.c

  • ifvlan.c

  • ifvxlan.c

  • ifgre.c

  • ifgif.c

  • ifipsec.c

  • sfp.c

  • ifieee80211.c

  • carp.c

  • ifgroup.c

  • ifpfsync.c

  • ifbridge.c

  • iflagg.c

  • ifconfig_netlink.c

https://www.plantuml.com/plantuml/svg/XPBB3eCW44NtVWLBNM1Aq-UcyLT4nTA06e6cdryeAT0mgSlX76w66ngbsrKRAOgIiswU61yhXF4DbO9JMQkvFbOGCfeBHwyWlUpsX3XCB8v1WLFLl-Jd_i4BCIuudPlF7gS-mYiVxngm7gqF8TOn2o1CpxyusJfieQXXxkZabJWYB0O6RG6bRF7VFl8-jtZ8pr7wW9p6oY3wxQjeXgctV-GD
  • ldd /sbin/ifconfig

  • ifconfig:

  • libm.so.5 => /lib/libm.so.5 (0x33b301e91000)

  • libutil.so.9 => /lib/libutil.so.9 (0x33b302bbd000)

  • lib80211.so.1 => /lib/lib80211.so.1 (0x33b3031d1000)

  • libjail.so.1 => /lib/libjail.so.1 (0x33b303f39000)

  • libnv.so.1 => /lib/libnv.so.1 (0x33b3043ab000)

  • libc.so.7 => /lib/libc.so.7 (0x33b30504a000)

  • libsbuf.so.6 => /lib/libsbuf.so.6 (0x33b306545000)

  • libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x33b305aa7000)

  • [vdso] (0x33b30137c000)

  • ldd /lib/libm.so.5

  • /lib/libm.so.5:

  • libc.so.7 => /lib/libc.so.7 (0x339c4b8a4000)

  • ldd /lib/libutil.so.9

  • /lib/libutil.so.9:

  • libc.so.7 => /lib/libc.so.7 (0x1c352ea4e000)

  • ldd /lib/lib80211.so.1

  • /lib/lib80211.so.1:

  • libsbuf.so.6 => /lib/libsbuf.so.6 (0x1e5cd9c22000)

  • libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x1e5cdb8e0000)

  • libc.so.7 => /lib/libc.so.7 (0x1e5cd9118000)

  • ldd /lib/libjail.so.1

  • /lib/libjail.so.1:

  • libc.so.7 => /lib/libc.so.7 (0x3fae661c8000)

  • ldd /lib/libnv.so.1

  • /lib/libnv.so.1:

  • libc.so.7 => /lib/libc.so.7 (0x30d995d02000)

  • ldd /lib/libc.so.7

  • /lib/libc.so.7:

  • ldd /lib/libsbuf.so.6

  • /lib/libsbuf.so.6:

  • libc.so.7 => /lib/libc.so.7 (0xeb7a4589000)

  • ldd /lib/ libbsdxml.so.4

  • libbsdxml.so.4:

  • libc.so.7 => /lib/libc.so.7 (0xeb7a4589000)

Module name :

wlan.ko

Size :

353K

Source path :

/usr/src/sys/net80211/

Module path :

/usr/obj/usr/src/amd64.amd64/sys/modules/wlan/wlan.ko

List of C files :

NM Output :

https://www.plantuml.com/plantuml/svg/SoWkIImgAStDuT8epqdCqylErrJGrRLJK01puyjJ2q12Q98GkPBiJDoIoScvI99mjH0LsQb5UQavC3ce7TYaOAPWaSCKTaZDIm5w100=
  • 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.

Module name :

if_iwlwifi.ko

Size :

609K

Source path :

/usr/src/sys/contrib/dev/iwlwifi/

Module path :

/usr/obj/usr/src/amd64.amd64/sys/modules/iwlwifi/if_iwlwifi.ko

List of C files :

NM Output :

https://www.plantuml.com/plantuml/svg/SoWkIImgAStDuTB8BCyfpqpBrClErrJGrRLJqCZ9p2kjo2u0Ys2HpaujoalDmIO3qnXVdfEO1z6DR1QQTWpLgF8EgNafGFS100==
  • LinuxKPI is a small compatibility layer that allows Linux drivers to run in a FreeBSD environment.

Module name :

linuxkpi.ko

Size :

241K

Source path :

/usr/src/sys/compat/linuxkpi

Module path :

/usr/obj/usr/src/amd64.amd64/sys/GENERIC/modules/usr/src/sys/modules/linuxkpi/linuxkpi.ko

List of C files :

NM Output :

https://www.plantuml.com/plantuml/svg/SoWkIImgAStDuTB8oSmhhSWkoDJBpjTKqDMrKz38JYtAIytHv798pKi1AW40
  • 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.

Module name :

linuxkpi_wlan.ko

Size :

145K

Source path :

/usr/src/sys/compat/linuxkpi

Module path :

/usr/obj/usr/src/amd64.amd64/sys/GENERIC/modules/usr/src/sys/modules/linuxkpi_wlan/linuxkpi_wlan.ko

List of C files :

  • linux_80211.c

  • linux_80211_macops.c

  • linux_mhi.c

NM Output :

https://www.plantuml.com/plantuml/svg/SoWkIImgAStDuTB8oSmhhSWko8mlpqdCqylErrJGrRLJqCXEBSfBpT7aSaZDIm6g0m0=
  • The wlan_wep module handles the WEP cryptographic requirements of the 802.11 protocol

Module name :

wlan_wep.ko

Size :

17K

Source path :

/usr/src/sys/net80211/

Module path :

/usr/obj/usr/src/amd64.amd64/sys/modules/wlan_wep/wlan_wep.ko

List of C files :

  • ieee80211_crypto_wep.ko

NM Output :

https://www.plantuml.com/plantuml/svg/SoWkIImgAStDuT8epqdCYozFBT3BpjTKqDMrKz38JYtAIytHv798pKi1AW40
  • The wlan_tkip module handles the TKIP and Michael cryptographic re-quirements of the WPA and 802.11i protocols.

Module name :

wlan_tkip.ko

Size :

17K

Source path :

/usr/src/sys/net80211/

Module path :

/usr/obj/usr/src/amd64.amd64/sys/modules/wlan_tkip/wlan_tkip.ko

List of C files :

  • ieee80211_crypto_tkip.c

NM Output :

https://www.plantuml.com/plantuml/svg/SoWkIImgAStDuT8epqdCYo_9pYpGoyxNLD3LjLFGo4ujoalDqUHoICrB0Qe100==
  • The wlan_ccmp module handles AES-CCMP cryptographic requirements of the WPA and 802.11i protocols.

Module name :

wlan_ccmp.ko

Size :

33K

Source path :

/usr/src/sys/net80211/

Module path :

/usr/obj/usr/src/amd64.amd64/sys/modules/wlan_ccmp.ko

List of C files :

  • ieee80211_crypto_tkip.c

NM Output :

https://www.plantuml.com/plantuml/svg/SoWkIImgAStDuT8epqdCYqzEpYtGoyxNLD3LjLFGo4ujoalDqUHoICrB0Qe100==
test:~$