Fuchsia无线网络

Fuchsia无线网络

介绍

Fuchsia系统的无线网络协议栈旨在提供一个符合IEEE Std 802.11规定的非AP(Access Point)客户端网络实现。支持具有"full MAC" 和 "soft MAC"固件的硬件,对应的802.11协议的MLME层(MAC subLayer Management Entity)分别实现在固件和主机的OS中。

High-level architecture

                          +------------------+        +------------------+
 Fuchsia service          | Fuchsia netstack |        | Fuchsia Wireless |
                          |                  |        | Network Service  |
                          +------------------+        +------------------+
                              ^                        ^                ^
                              |                        |                |
 fdio/FIDL              ------|------------------------|----------------|-------------------
                              |                        |                |
                              v                        |                v
                          +------------------+         |               +--------------+
                          | Fuchsia ethernet |<--------|-------------->| Fuchsia WLAN |
                          | driver           |         |               | MLME driver  |
 devmgr                   +------------------+         |               +--------------+
                                         ^             |                    ^
                                         |             |                    |
                                         v             v                    v
                                    +-------------------+              +-------------------+
                                    | Driver            |              | Driver            |
                                    | (Full MAC device) |              | (Soft MAC device) |
                                    +-------------------+              +-------------------+
                                                      ^                    ^
                                                       \                  /
 hardware bus                       --------------------\----------------/------------------
 (USB, PCI, etc)                                         \              /
                                                          v            v
                                                     +---------------------+
                                                     | Wireless networking |
 hardware                                            | hardware            |
                                                     +---------------------+

驱动

"Full MAC"驱动依赖于无线硬件中的固件程序来实现大多数的IEEE 802.11 MLME定义功能。

"Soft MAC"驱动实现了基础的与无线硬件之间通信的功能模块,以便允许Fuchsia系统的MLME驱动实现IEEE 802.11 MLME定义的功能。

Fuchsia系统的MLME驱动是一个硬件无关层,提供处理同步、认证、关联、其它网络状态操作的状态机。其通过与"Soft MAC"驱动交互来管理硬件设备。

WLAN服务

Fuchsia系统的无线网络服务实现了IEEE 802.11 SME(System Management Entity)定义的功能,并且保存有当前环境中所有可用无线网络的状态信息。作为硬件设备(通过驱动实现)接口,可提供给组件使用,比如:系统UI。

与以太网协议栈关系

不管是"Full MAC"驱动或是Fuchsia系统自身的WLAN MLME驱动都在devmgr中呈现一个以太网设备。此设备像其它的以太网设备一样,将为系统的其它部分提供报文数据。TBD: 是否总是使用以太网二层帧,或者支持802.2 SNAP帧(SubNetwork Access Protocol)。

接口

Fuchsia系统的无线网络服务通过ioctl调用获得的到驱动的通道与硬件设备通信(最终,这将被FIDL所取代)。此通道中交互的消息编码为每个动作的请求和应答,通常符合IEEE 802.11 MLME SAP(Service Access Point)中的定义。

对于"Soft MAC"驱动设备,硬件驱动和通用MLME驱动将使用为WLAN设备定义的DDK"protocol"实现进程间的通信。通过此接口实现的原语操作包括send, receive, 以及设置射频频道等.

你可能感兴趣的:(fuchsia)