所属方向:L7 Upper MAC 与安全。Wi‑Fi 的 MAC 功能分布在硬件、固件、驱动和用户态守护进程之间。理解这一分工,是读懂芯片方案和开源生态的前提。

SoftMAC 与 FullMAC

  • SoftMAC:芯片只做 PHY 和实时性要求高的 Lower MAC(ACK、定时、重传),Upper MAC(管理帧、状态机、速率控制、加密管理)由主机上的驱动完成。代表是 Linux 的 mac80211 驱动,如 ath9k、mt76。优点是灵活、开源可控。
  • FullMAC:Upper MAC 也在芯片固件里完成,主机只看到一个“以太网接口加管理命令”。手机和 IoT 芯片常用这种方式,主机负载低、功耗低,但行为由固件决定,开放性差。
  • 趋势:实际产品多为混合方式,大量功能“卸载”(offload)到固件或硬件,例如聚合、加密、漫游扫描。

cfg80211 / mac80211 / nl80211

  • cfg80211:Linux 内核中所有 Wi‑Fi 驱动(Soft 与 Full)共用的配置 API 层,负责监管域、扫描结果管理等。
  • mac80211:实现 SoftMAC Upper MAC 的内核框架,包括速率控制(Minstrel‑HT)、聚合、FQ‑CoDel / AQL、MLO 支持等。
  • nl80211:用户态程序(iw、hostapd、wpa_supplicant)与内核 cfg80211 通信的 Netlink 接口。

hostapd 与 wpa_supplicant

  • hostapd:用户态的 AP 守护进程,负责认证(含 SAE / 802.1X)、密钥管理、信标内容、802.11k/v/r 等。几乎所有 Linux / OpenWrt 路由都在用。
  • wpa_supplicant:终端侧对应程序,负责扫描选网、认证、漫游。Android 与大多数 Linux 终端使用它(或其派生)。

固件 Firmware 与卸载 Offload

  • 原理:Wi‑Fi 芯片内部的 CPU / MCU 运行固件,处理实时调度、校准、功耗管理,以及 FullMAC 功能。芯片商的 SDK 通常包含驱动、固件和配置工具,是整机厂商开发的起点。

OpenWrt、prplOS 与 RDK‑B

  • OpenWrt:开源路由操作系统,事实上的社区标准,也是许多商用固件的基础。
  • prplOS(prpl 基金会)/ RDK‑B(Comcast 主导):面向运营商网关的开源软件栈,标准化 Wi‑Fi 管理与数据模型(TR‑181 / USP),让运营商摆脱单一芯片或 OEM 的锁定。

Wi‑Fi 数据模型与远程管理(TR‑069 / TR‑369 USP / Data Elements)

  • 原理:运营商通过 Broadband Forum 定义的数据模型和协议(TR‑069 CWMP,新一代是 TR‑369 USP),远程读取和配置网关的 Wi‑Fi 状态;Wi‑Fi Alliance 的 Data Elements 统一 Wi‑Fi 诊断数据格式,是 Wi‑Fi 质量运维的基础。