wifi acq - access category queue

https://blog.csdn.net/walker0411/article/details/73089184?fbclid=IwAR05Cle31zCgEbt5je5GKePtrnxTEYL25jzoBanEnHCOKz90vDw8YiFsIHI


2.4 队列管理(Queue Management)

2.4.1 硬件队列(Hardware Queues)

WLAN硬件,根据frame的不同类型,提供了一些传输queue,来优化frame的传输。HAL模块提供了一些API,供LAMC层去修改这些queue的属性,比如AIFS、CWMin、CWMax、TXOPLimit等。本设计最多支持HAL_NUM_TX_QUEUES个队列(HAL设置此宏为10)。其队列的优先级是降序的,也就是说,queue9是最高优先级的,queue0是最低优先级的。

2.4.2 LMAC队列的支持(LMAC Queuing Support)

2.4.2.1 ath_txq

ath_txq是LMAC层的数据结构,它跟hardware queue是一一对应的关系。ath_txq作为结构体ath_softc的成员变量,定义成这样:sc_txq[HAL_NUM_TX_QUEUES],所以共有HAL_NUM_TX_QUEUES (10)个ath_txq(在LMAC中,缩写成“txq”)。
在这10个txq中,前4个,即queue0-3被称为DATA queue,他们分别与4个WMM access类型相对应:background、best effort、video、voice。
txq-9叫做beacon queue (bcnq) ,beacon frame会在这个queue中管理。
txq-8叫做content-after-beacon (CAB) queue (cabq)。这个queue主要用于,在beacon传输后,分发从每个VAP得到的组播frame。
剩下的txq 4-7,用于其他类型。其中一些会用于满足一些featrue的需求,详细说明请参看对应的feature章节。

2.4.2.2 软件队列(Software Queues)

LMAC还提供software queue,分离于hardware queue。driver提供的transmit descriptor是有限资源,因此software queue主要用于流控(flow control)。
LMAC提供两种software queue:
2.4.2.2.1 TID队列(Traffic Identifier (TID) Queues)
IEEE 802.11标准为每个流量(traffic classification)节点提供最多16个TID。因此LMAC也提供16个TID queue,与LMAC自己创建的ath_node一一对应,用于数据流。这些TID queue用数据结构ath_atx_tid来表示。
UMAC的data frame,根据其packet类型,会选择一个TID queue使用。而对于management frame,结构体ath_node中增加了一个额外的TID queue (TID-17),用于处理除beacon以外的所有management frame。
17个TID queue中所有的frame都通过hardware data queues 0-3来传输。那这17个TID queue(与 ath_node对应)是如何分配到这4个hardware data queue的,主要是通过一个叫做access category queue的媒介来进行的。缩写为“acq”,由结构体ath_atx_ac来代表。
  • Tid queue 0和1,与acq0 list对应(Background access category queue,txq0)。
  • Tid queue 2和3,与acq1 list对应(Best effort access category queue,txq1)。
  • Tid queue 4和5,与acq2 list对应(Video access category queue,txq2)。
  • Tid queue 6和17,与acq3 list对应(Voice access category queue,txq3)。
2.4.2.2.2 组播帧队列(Multicast Frame Queues)
对于每个VAP实例(avp),LMAC都提供一个software queue用于multicast frame。这些queue在结构体ath_vap中定义为“av_mcastq”。从VAP得到的multicast frame会放到av_mcastq队列中,并通过CAB queue(txq8)来传输出去。
图 2-3 说明了TID queue、mcast queue与hardware queue的对应关系。
这里写图片描述
图 2-3 Transmit Queue关系图

留言

熱門文章