(14)高通AP10.4开发者指南——WLAN(3.3 分层)

3.3 分层(Layers)

host驱动架构包含OS 适配层、802.11协议层、device层、HAL层。下面是详细说明:

3.3.1 OS 适配层(OS Shim Layer)

OS 适配层提供下面功能:

  • 驱动初始化和加载
  • 中断申请和关联
  • 接口适配和调用
    每种操作系统都会有一个OS适配层。比如Native Wifi、NetBSD、Darwin、Linux、eCos、VxWorks等。OS适配层是系统函数和本代码之间的桥梁,同时还包含下面内容:
  • 系统相关的初始化(如中断、buffer分配)
  • 通用函数库(如locking/malloc)
  • 传输和中断(包括接收)的OS层入口
3.3.1.1 OS 适配层函数(OS Shim Functions)

OS适配层函数参看文件osdep.h (wlan/os/darwin/include)和文件ath_osdep.c(wlan/os/darwin/src),同时还有一些系统接口:

  • OS_SLEEP
  • OS_GET_TIMESTAMP
  • OS_TIMER
  • spin_lock_init
  • spin_lock
  • spin_unlock
  • Struct ath_reg_params ath_params = {};
  • ath_driver_command – ioctl interface
  • ath_dev_start
  • ath_dev_stop

3.3.2 802.11协议层(802.11 Protocol Layer (net, UMAC))

802.11协议层(又叫做网络或UMAC层)包含了完整的链接控制。它是由分层状态机(比如connectionSM->AssocSM)实现的。UMAC提供了包的封装/解封装功能(dot3<->dot11)。UMAC层负责多个VAP共享一个channel和HW情况下的资源管理。同时UMAC层还提供下面的功能:

  • 电源管理(Power Management)
  • MLME
  • Scanning
  • Encryption
3.3.2.1 UMAC到LMAC接口函数(UMAC-to-LMAC interface)

UMAC到LMAC通过一个转换表来完成调用。这个表通过ath_attach()函数传递给UMAC。代码路径:lmac/ath_dev/ath_main.c
struct ath_ops {} ath_ar_ops = {};

Sample calls:
ath_vap_attach
ath_vap_detach
ath_tx_init
ath_rx_init
ath_tx_start_dma
ath_set_channel
ath_get_channel
ath_intr
ath_handle_intr

3.3.3 设备层(Device Layer (ath, LMAC))

设备层提供下面功能:

  • Transmit
  • Receive
  • Interface between network and HAL (“pass-through” interface
    functions)
  • Tx aggregation
  • Rx reordering
  • DMA
  • Interrupt handling
3.3.3.1 LMAC到UMAC接口函数(LMAC-to-UMAC interface)

LMAC到UMAC也通过一个转换表来完成调用。这个表通过ath_attach()函数中的ath_dev_attach()传递给UMAC。代码路径:
struct ieee80211_ops net80211_ops = {};

Sample calls:
ath_net80211_tx_complete
ath_net80211_rx
ath_net80211_input
ath_net80211_set_countrycode

3.3.3.2 LMAC到HAL接口函数(LMAC-to-HAL interface)

LMAC到HAL的接口调用通过ath_hal_attach()函数中的ath_dev_attach()。代码路径:wlan/hal/ah.c
ath_hal_attach()通过传递device id来attach到相应的设备。
例如:ar9300Attach()是针对AR93xx芯片组的。代码路径在wlan/hal/ar9300/ar9300_attach.c
这个函数会返回一个AR93xx的函数表,包括:
ar9300EnableReceive
ar9300StartTxDma
ar9300SetTxDP
ar9300FillTxDesc
ar9300ProcRxDesc

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值