目录
概述
QoS管理帧(quality-of-service management frame, QMF)是服务于802.11管理帧传输的功能。
启用Qos管理帧服务可以使用AC_VO以外的访问类别传输一些管理帧。对应的机制为QMF策略。
QMF策略定义了不同管理帧发送时使用的接入类别。
MIB参数
MIB参数 | 对应字段 | 说明 | ||
dot11QosOptionImplemented | QoS Capability element | 指示是否支持QoS | ||
dot11QMFActivated | Extended Capabilities element -> QMF Activated | 指示QMF功能地启用和禁用。 | ||
dot11QMFActivated | Extended Capabilities element-> QMF Activated字段设置 | |||
false | 0 | |||
true | 1 | |||
dot11QMFReconfigurationActivated | Extended Capabilities element -> QMFReconfigurationActivated | 指示是否允许接受来自另一个STA的QMF策略更改请求,并使用QMF Policy帧进行响应。 | ||
dot11QMFReconfigurationActivated | Extended Capabilities element->QMFReconfigurationActivated 字段设置 | |||
false | 0 | |||
true | 1 | |||
dot11QMFPolicyChangeTimeout | N/A | 指示当STA发送QMF策略更改请求、等待响应的最小TU数; 同时也是当STA在接收到对端对QMF策略更改请求的拒绝之后,在向同一目标发出重复QMF策略更改请求之前需要等待的TU数 |
QMF STA应设置dot11QMFActivated = true、dot11QosOptionImplemented = true。
QMF mesh STA或QMF AP可设置dot11QMFReconfigurationActivated = true或false。
基础BSS中的non-AP QMF STA应设置dot11QMFReconfigurationActivated = true。
QMF能力指示
![](https://i-blog.csdnimg.cn/blog_migrate/e689569d75b907c4ef92cf6fe799498d.png)
帧格式
QMF sequence number字段格式
Sequence Number字段在Data帧指示MSDU/A-MSDU的序列号,而在QMF帧中则可分为QMF Sequence Number、ACI字段来指示QMF帧序列号和接入类别。
![](https://i-blog.csdnimg.cn/blog_migrate/af36d461898b03e8363c4d9a2523b262.png)
字段 | 大小 | 说明 | ||||||||||
QMF Sequence Number | 10bits | 指示管理帧的序列号。 | ||||||||||
ACI | 2 BITS | 指示该帧的接入类别索引。
|
注1:控制帧没有序列号,因为没有Sequence Control字段。
注2:如果是非QMF的管理帧则Sequence Number字段与数据帧一致,指示帧的序列号。
QMF Policy Change帧格式
QMF Policy Change帧由QMF STA发送,以请求对QMF策略的更改。
![](https://i-blog.csdnimg.cn/blog_migrate/2541dc981667060ce6dd5026614e6013.png)
字段 | Octets | 说明 |
Category | 1 | 指示了Action帧的类别,QMF Policy帧属于Public Action帧,因此该字段为4。 |
Public Action | 1 | 指示Public Action帧的子类别,QMF Policy帧的Public Action = 18 |
Dialog Token | 1 | 指示会话令牌,由发送端选择合适的非0值,用以标识该会话。 接收端也会在对应的帧(比如QMF Policy 帧)的Dialog Token设置相同的值,以表示是对该对话的帧的响应。 |
QMF Policy element | 3~257 | 指示管理帧的接入类别。 |
QMF Policy帧格式
通过发送QMF帧,来指示QMF策略。
AP应通过发送QMF Policy帧来响应关联STA的QMF Policy Change帧。
在BSS内工作的non-AP QMF STA不应传输QMF Policy帧给AP。
该帧可以用于响应QMF Policy Change帧,也可以(未经请求)主动发送。
![](https://i-blog.csdnimg.cn/blog_migrate/dcd09fa73a3b4d217139d4c3e5b47f10.png)
字段 | Octets | 说明 |
Category | 1 | 指示了Action帧的类别,QMF Policy帧属于Public Action帧,因此该字段为4。 |
Public Action | 1 | 指示Public Action帧的子类别,QMF Policy帧的Public Action = 18 |
Dialog Token | 1 | 指示会话令牌,设置为与QMF Policy Change帧中的会话令牌相同的值来标识该QMF Policy帧是针对相同会话令牌的QMF Policy Change帧的响应。 如果QMF Policy帧并非响应某个QMF Policy Change帧,则该字段为0。 |
Status Code | 2 | 指示响应状态。 |
QMF Policy element | 0或者3~257 | 指示管理帧的接入类别。 如果Status Code = SUCCESS且此QMF Policy帧并非响应QMF Policy Change帧而传输,则包含QMF Policy element字段; 如果Status Code = REQUEST_DECLINED,则此字段可选。 |
QMF Policy element字段格式
QMF Policy element指示QMF策略。
![](https://i-blog.csdnimg.cn/blog_migrate/ac2517258331a2047213f6951eecd173.png)
字段 | 大小 | 说明 | ||||||||||||||||
Element ID | 1 Octet | 指示管理帧的元素ID。QMF Policy元素ID为181。 | ||||||||||||||||
Length | 1 Octet | 指示该帧除了Element ID 和Length字段以外的剩余字节数。 如果Length = 1,则表示使用默认QMF策略。 | ||||||||||||||||
QACM Field Type | 2 bits | 指示QACM字段的结构,当前其值为0,值1~3为预留。 | ||||||||||||||||
QACM Field Length | 6 bits | 指示在该QACM#N字段内,除QACM Header外剩余字段的字节长度(即Action Frame Category + Action Value Bitmap长度)。 | ||||||||||||||||
I | 1 bit | 指示该QACM#N是否应用于单播帧。I即Individually Addressed字段。
| ||||||||||||||||
G | 1 bit | 指示该QACM#N是否应用于组播帧。G即Group Addressed字段。
不允许I=0且G=0的组合,即I和G至少有一个为1。 | ||||||||||||||||
ACI | 2 bits | 指示在该QACM中列出的每个管理帧要使用的接入类别。
| ||||||||||||||||
Management Frame Subtype | 4 bits | 指示使用ACI指示的接入类别发送的管理帧类型。 | ||||||||||||||||
Action Frame Category | 0~1 Octet | 指示Action帧类别。 | ||||||||||||||||
Action Value Bitmap | 可变的 | 指示使用ACI指示的接入类别发送的1~多个Action帧。 仅当Management Frame Subtype = Action或Action No Ack、且QACM Field Length >= 2时存在Action Value Bitmap字段。 该字段长度可变。当包含Action Value Bitmap时,其大小为QACM Field Length - 1字节(即QACM Field Length - Action Frame Category)。 该子字段将会用0填充以使其称为完整的1个字节。 QACM中的有效组合如下:
|
QMF类型
QMF帧按照RA地址可分为IQMF(individually addressed QoS Management frame)和GQMF(group addressed QoS Management frame)。
不同管理帧类型的发送条件不同。
IQMF发送条件
当满足以下所有5个条件时,管理帧应作为IQMF传输:
- 管理帧的RA为独立的MAC地址。
- 该帧由QMF STA发送。
- 发送端STA先前已经从RA对应的STA对端接收到Extended Capabilities元素。
- 最新接收到的该Extended Capabilities元素指示STA为QoS STA,且QMFActivated = 1。
- 该帧不是时间优先级管理帧。
GQMF发送条件
当满足以下所有3个条件时,QMF AP应将管理帧作为GQMF传输:
- 管理帧的RA为组MAC地址。
- 发射端STA已从与管理帧的BSSID字段对应的BSS中的每个成员接收到Extended Capabilities element->QMF Activated = 1。
- 该帧不是时间优先级管理帧。
当满足以下所有3个条件时,non-AP QMF STA应将管理帧作为GQMF传输:
- 管理帧的RA为组MAC地址。
- 发射端STA已从其关联的AP接收到Extended Capabilities element->QMF Activated = 1。
- 该帧不是时间优先级管理帧。
时间优先级管理帧说明
时间优先级管理帧是指使用特定帧类型信道访问规则传输的一种管理帧。
这种帧会使用常规MAC队列以外的流程,在协议中描述了其单独的传输规则。
以下标注了Time priority = Yes为时间优先级管理帧,除此之外无其他时间优先级管理帧。
![](https://i-blog.csdnimg.cn/blog_migrate/53369603c23c53f8018d976b778e58d1.png)
其他注意事项
如果从接收端指示Extended Capabilities element->QMF Activated = 0、或未收到接收端的Extended Capabilities element,则发送端用使用AC_VO发送独立寻址的管理帧。
当时间优先级管理帧未作为即时响应发送时,应使用AC_VO发送。
处于非关联状态的QMF STA应将所有组地址管理帧作为非QMF传输。已关联的QMF STA应遵循其关联的AP规定的QMF策略传输GQMF。
当执行了帧的初始传输后,不应修改IQMF或GQMF帧的接入类别,无论后续对STA运行的QMF策略进行任何修改。
发送端QMF STA应在序列号字段的ACI子字段中指示用于传输GQMF的接入类别。
QMF策略
QMF策略分类
QMF策略可分为默认QMF策略、协商QMF策略。
默认QMF策略
默认的QMF策略根据管理帧子类型、Action帧的Category值和Action字段定义管理帧的接入类别。
Description | Management Frame Subtype value | Category value | Action field | QMF AC |
(Re)Association Request/Response | 0000–0011 | N/A | N/A | AC_VO |
Probe Request(individually addressed) | 100 | N/A | N/A | AC_VO |
Probe Request (group addressed) | 100 | N/A | N/A | AC_BE |
Probe esponse | 101 | N/A | N/A | AC_BE |
Timing Advertisement | 110 | N/A | N/A | AC_BE |
Beacon, ATIM, Disassociation, Authentication, Deauthentication | 1000–1100 | N/A | N/A | AC_VO |
Spectrum management | 1101 | 0 | 0–3 | AC_BE |
Spectrum management— channel switch announcement | 1101 | 0 | 4 | AC_VO |
QoS | 1101 | 1 | 0–3 | AC_VO |
Block Ack | 1101 | 3 | 0–2 | AC_VO |
Public | 1101 | 4 | 0, 1, 3, 5–6, 8–9 | AC_BE |
Public—DSE deenablement, extended channel switch announcement | 1101 | 4 | 2, 4 | AC_VO |
Public—measurement pilot | 1101 | 4 | 7 | AC_VO |
Public—TDLS Discovery Response | 1101 | 4 | 14 | AC_VO |
Public—Fine Timing Measurement Request | 1101 | 4 | 32 | AC_VO |
Public—Fine Timing Measurement | 1101 | 4 | 33 | AC_VO |
Public—FILS | 1101 | 4 | 34 | AC_VO |
Public—CDMG | 1101 | 4 | 35–42 | AC_BE |
Public—Interworking | 1101 | 4 | 43, 44 | AC_VI |
Public—FST | 1101 | 4 | 45 | AC_VO |
Radio measurement | 1101 | 5 | 0–5 | AC_BE |
Fast BSS Transition | 1101 | 6 | 0–4 | AC_VO |
HT | 1101 | 7 | 0–3 | AC_VO |
HT | 1101, 1110 | 7 | 4–7 | AC_VO |
SA Query | 1101 | 8 | 0–1 | AC_VO |
Protected Dual of Public Action | 1101 | 9 | 1–2, 5–6, 8–9 | AC_BE |
Protected Dual of Public Action—extended channel switch announcement | 1101 | 9 | 4 | AC_VO |
WNM | 1101 | 10 | 0–24 | AC_BE |
Unprotected WNM | 1101 | 11 | 0–1 | AC_BE |
Mesh Action—HWMP Mesh Path Selection | 1101 | 13 | 1 | AC_VO |
Mesh Action—Congestion Control | 1011 | 13 | 3 | AC_VO |
Mesh Action | 1101 | 13 | 0, 2, 4–10 | AC_BE |
Multihop Action | 1101 | 14 | 0–1 | AC_BE |
Self Protected | 1101 | 15 | 0–5 | AC_VI |
DMG | 1101 | 16 | 0–22 | AC_BE |
Reserved (used by the Wi-Fi Alliance a) | 1101 | 17 | All | AC_BE |
Fast Session Transfer | 1101 | 18 | 0–5 | AC_VO |
Robust AV Streaming | 1101 | 19 | 0–3 | AC_BE |
Unprotected DMG | 1101 | 20 | 0–1 | AC_VO |
VHT | 1101, 1110 | 21 | 0–2 | AC_VO |
Unprotected S1G | 1101 | 22 | 0, 1, 2, 4–9 | AC_BE |
Unprotected S1G | 1101 | 22 | 3, 11 | AC_VI |
S1G | 1101 | 23 | 0, 3 | AC_VO |
S1G | 1101 | 23 | 1, 2 | AC_BE |
Flow Control | 1101 | 24 | 0, 1 | AC_VO |
Control Response MCS Negotiation | 1101 | 25 | 0, 1 | AC_BE |
FILS | 1101 | 26 | 0 | AC_VO |
CDMG | 1101 | 27 | 0–5 | AC_BE |
CMMG | 1101 | 28 | 0 | AC_BE |
CMMG | 1101 | 28 | 1 | AC_VO |
GLK | 1101 | 29 | 0 | AC_BE |
Vendor-specific Protected | 1101 | 126 | N/A | AC_BE |
Vendor-specific | 1101 | 127 | N/A | AC_BE |
其他QMF | N/A | N/A | N/A | AC_BE |
注:表中未包含的QMF应分配AC_BE。
协商QMF策略
协商的QMF策略中不同管理帧的特定接入类别的分配不在协议的规定范围。
在BSS或MBSS中,可以重新配置任何管理帧的接入类别。例如,可以重新配置供应商专用和供应商指定的受保护管理帧,以满足供应商应用程序的需求。
QMF策略选择
发送QMF时的策略选择,基于发射端设备类型、关联状态、是否收到QMF策略来决定。
发送端 | 是否从对端收到QMF策略? | 发送QMF的接入类别选择 |
未关联的QMF STA | N | 基于默认QMF策略 |
Y(从Beacon/Probe resp.) | 基于AP公告的QMF策略 | |
已关联的non-AP QMF STA | N | 基于默认的QMF策略 |
Y | 基于对端的QMF策略 | |
AP | N/A | 基于AP自身配置的QMF策略 |
注1:AP传输QMF到关联STA所用的QMF策略并不需要和其公告的QMF策略相同。
注2:QMF STA应使用接入类别AC_VO将单独寻址的所有管理帧发送给non-QMF STA。
QMF交互
QMF AP应设置QMF策略,并应在其传输的Beacon帧中包含QMF Policy元素。
AP应通过发送QMF Policy帧来响应关联STA的QMF Policy Change帧。
QMF AP也可以将设置了Status Code = SUCCESS的QMF Policy帧发送到关联的QMF STA,而无需先从该STA接收到QMF Policy Change帧。
Non-AP QMF STA从Beacon、Association Response、Reassociation Response、Probe Response和QMF Policy帧中接收的QMF Policy元素获取QMF策略配置信息。
dot11QMFReconfigurationActivated = true的non-AP QMF STA应接受从其关联AP接收到的任何QMF Policy帧。
在BSS内工作的non-AP QMF STA不应传输QMF Policy帧给AP。可以使用QMF Policy Change帧来请求对其现有QMF策略进行更改。
QMF策略更改场景
如果QMF STA接收到Extended Capabilities element->QMFReconfigurationActivated = 0(即dot11QMFReconfigurationActivated = false),或未从目标QMF STA接收到Extended Capabilities element,则QMF STA不应向目标QMF STA发送QMF Policy Change帧。
仅当从AP接收的Extended Capabilities element->QMFReconfigurationActivated = 1时,non-QMF STA才可以将QMF策略的更改发送到其BSS中的QMF AP。
如果Beacon帧中Extended Capabilities element->QMFReconfigurationActivated = 0,从关联STA接收到QMF Policy Change帧的AP应使用QMF Policy帧、其中设置Status Code = REQUEST_DECLINED进行响应。
如果Beacon帧中Extended Capabilities element->QMFReconfigurationActivated = 1,从关联STA接收到QMF Policy Change帧的AP评估其QMF策略,如果接受该策略更改,则应使用QMF Policy帧(相同的对话令牌)、其中设置Status Code = SUCCESS进行响应。
STA应根据QMF Policy Change帧中指示的对QMF策略的更改,将任何随后队列中的管理帧发送给对端QMF STA。
如果Beacon帧中Extended Capabilities element->QMFReconfigurationActivated = 1,从关联STA接收到QMF Policy Change帧的AP评估其QMF策略,如果拒绝该策略更改,则应使用QMF Policy帧、其中设置Status Code = REQUEST_DECLINED进行响应。
如果请求端STA在dot11QMFPolicyChangeTimeout内没有收到响应QMF Policy Change帧的QMF Policy帧,则请求端STA应根据先前配置的QMF策略继续发送帧。
请求端QMF STA不应在从请求端接收到拒绝帧起算的dot11QMFPolicyChangeTimeout时间内,向对端QMF STA发送具有先前被拒绝的QMF策略的QMF Policy Change帧。