Wi-Fi変調モードのはなし
Wi-Fi(IEEE802.11無線LAN)は1997年以来何度もの仕様追加を重ねてきました。1997年当時は最大2Mbpsだったものが最新のIEEE802.11be-2024(Wi-Fi 7)では1ストリームでも2.9Gbps、4x4 MIMOなら11.5Gbps出るはずの仕様になっています。性能向上のため変調スキームも何度も追加されて、その通知仕様は複雑怪奇なことになりました。今回はそのへんのおはなしです。
元祖IEEE802.11と802.11a/b
IEEE802.11無線LAN規格は1997年に制定され、当初は周波数ホッピング(FHSS)・周波数拡散(DSSS)・赤外線(IR)という互換性のない3方式が併存していました。1997年版の仕様書は手元に無いのですが、1999年版では下記のように定義されています。
FHSS-PHY (14.8.2)
1Mbps 2-GFSK (Mandatory)
2Mbps 4-GFSK (Optional)
DSSS-PHY (15.2.3.3)
1Mbps DBPSK (Mandatory)
2Mbps DQPSK (Mandatory)
IR-PHY (16.2.3)
1Mbps 16-PPM (Mandatory)
2Mbps 4-PPM (Optional)
FHSSとIRでは1Mbpsが必須・2Mbpsがオプションとなっている一方、DSSSでは1Mbps・2Mbpsともに必須となっています。
実質まだ「1または2Mbps」しか無かったIEEE802.11-1999ですが、9.6章には既に"Multirate support"についての記述があります。
9.6 Multirate support
All Control frames shall be transmitted at one of the rates in the BSSBasicRateSet (see 10.3.10.1), or at one of the rates in the PHY mandatory rate set so they will be understood by all STAs.
All frames with multicast and broadcast RA shall be transmitted at one of the rates included in the BSSBasicRateSet, regardless of their type.
ここで"BSSBasicRateSet"という用語が登場しますが、これはAPがビーコンやProbe-Responseで通知する「このAPに接続するSTAはすべからくこのデータレートをサポートすべし」という一覧で定義され、それはSupported Rates IE(tag=1)によって通知されます(Section 7.3.2.2)。
図1 IEEE802.11-1999のSupported Rates IE仕様
Supported Rates IEは「500Kbit/sを単位とした7bitでデータレートを表記」「最上位ビットはBSSBasicRateSetに含まれることを意味する」と定義されています。APは接続する(BSSに参加する)STAがAssociation Requestに含めたSupported Ratesと自らのBasic Rate Setを比較し、STAがBasic Rates全てに対応している場合のみ接続すること(そうでない場合はステータスコード18で接続拒否する)、とされています。なお、このときデータ長を「1 to 8 octets」と定義してしまったことが禍根を残すのですが、それはまた後の話です。
1999年には2.4GHz帯で高速化を図ったIEEE802.11b-1999(HR-PHY)と、当時の新天地・5GHz帯でOFDM変調を使うIEEE802.11a-1999(OFDM-PHY)も新たに定義されました。802.11bはDSSS-PHYの上位互換として定義された一方、802.11aのOFDM-PHYは後方互換性を考慮しないものとなっています。
HR-PHY (IEEE802.11b-1999 18.2.3.3)
1Mbps DBPSK (Mandatory)
2Mbps DQPSK (Mandatory)
5.5Mbps CCK (Mandatory)
11Mbps CCK (Mandatory)
OFDM-PHY (IEEE802.11a-1999 17.1)
6Mbps BPSK+1/2FEC (Mandatory)
9Mbps BPSK+3/4FEC (Optional)
12Mbps QPSK+1/2FEC (Mandatory)
18Mbps QPSK+3/4FEC (Optional)
24Mbps 16QAM+1/2FEC (Mandatory)
36Mbps 16QAM+3/4FEC (Optional)
48Mbps 64QAM+1/2FEC (Optional)
54Mbps 64QAM+3/4FEC (Optional)
802.11bでは結局全てのデータレートが必須になっていますが、OFDMでは変調密度と誤り訂正符号の組み合わせで定義された全8種類のうち3種類(6,12,24Mbps)が必須とされています。いまどきの無線LAN機器は全てのデータレートをサポートするのが当たり前になっているので、5GHzで動作するWi-Fi機器のビーコンやAssociation-Requestに入るSupported Rates IEのフィールドはほぼ全てデフォルトで下記の8byteが入っています。
0x8c 6Mbps(B)
0x12 9Mbps
0x98 12Mbps(B)
0x24 18Mbps
0xb0 24Mbps(B)
0x48 36Mbps
0x60 48Mbps
0x6c 54Mbps
なお、IEEE802.11b-1999 9.6章(Multirate support)では"BSSBasicRateSet"という用語を消して"BSS basic rate set"に置き換えていますが、その意図はよくわかりません。またIEEE802.11a-1999仕様にはPHYのMandatory rateが定義されているだけで、basic rate setに相当する記述は存在しません。そして"BSS basic rate set"はIEEE802.11g-2003で再びBSSBasicRateSetに戻されます。どうしてこんな紆余曲折を経ているのかはわかりません。
IEEE802.11g制定と混乱の始まり
IEEE802.11委員会とWi-Fi Allianceは「汚れた(BluetoothやZigbeeと共用する)」2.4GHz帯は11bで打ち止めにして「きれいな新天地」5GHz帯に進みたかったようですが、2000年代はじめの半導体技術では5GHz対応が高価についたこと・各国毎の法整備に時間が掛かったこと・11bがあまりに普及しすぎて上位互換の高速化が求められたことなどから、11aのOFDM仕様を2.4GHzに移植したIEEE802.11g-2003仕様が定義されることになりました。
HR/DSSS-PHY (IEEE802.11g-2003 19)
1Mbps DBPSK (Mandatory)
2Mbps DQPSK (Mandatory)
5.5Mbps CCK (Mandatory)
11Mbps CCK (Mandatory)
6Mbps BPSK+1/2FEC (Mandatory)
9Mbps BPSK+3/4FEC (Optional)
12Mbps QPSK+1/2FEC (Mandatory)
18Mbps QPSK+3/4FEC (Optional)
24Mbps 16QAM+1/2FEC (Mandatory)
36Mbps 16QAM+3/4FEC (Optional)
48Mbps 64QAM+1/2FEC (Optional)
54Mbps 64QAM+3/4FEC (Optional)
なおIEEE802.11g-2003にはDSSS-OFDMやERP-PBCCという変調方式も定義されていたのですが、これらは結局殆ど実装されることがなく、IEEE802.11-2016で正式に撤廃されたので割愛します。
ここで問題になったのは、11bの4種類と11aの8種類を足すとデータレートが12種類になってしまい、Supported Rates IEの規定「1-8バイト」をはみ出してしまうことです。「最大8バイト」の定義を変えても良かったはずですが、おそらく「unsigned char supported_rates[8];みたいな固定配列で領域定義され最大長チェックなしでmemcpyしているような実装があれば、8を超える長さに再定義するとスタッククラッシュを引き起こす」という懸念から、「はみ出し分」を収めるため(だけ)にExtended Supported Rates IE(tag=50)が新たに追加されました。12種類を8+4に振り分けるルールは規定されておらず、実装によって幾つかの「流儀」があります。
(A) 下から順番にSupported Rates入れ、はみ出した分をExtendに入れるパターン
Supported Rates:1,2,5.5,11,6,9,12,18
Extended Supported Rates:24,36,48,54
(B) OFDMレートがSupportedとExtendに交互に入るパターン
Supported Rates:1,2,5.5,11,9,18,36,54
Extended Supported Rates:6,12,24,48
(C) Supported RatesにDSSS-CCKを、ExtendにOFDMを入れるパターン
Supported Rates:1,2,5.5,11
Extended Supported Rates:6,9,12,18,24,36,48,54
他にもあるかも知れません、なんせ規定がないのでいい加減です。
11g APのBasic Rate Setはデフォルトでは11b互換の1,2,5.5,11Mbpsになっていますが、その根拠もよくわかりません。IEEE802.11g-2003で7.3.2.2への追加としている中の
However, if any of those rates are indicated as basic, then the basic rate designation shall be interpreted by receiving and transmitting STA to apply only for the CCK modulation and rate. That is, if the rate is indicated as basic, the basic designation does not apply to DSSS-OFDM, PBCC, or ERP-PBCC.
が根拠のような気もするのですが、誰も実装しないまま死に絶えたDSSS-OFDMやPBCCはともかく、11a互換のERP-OFDMをデフォルトでBasic Rateに含めない根拠にはなっていません。
制御/マルチキャストフレームとBasic Rates
さて、Wi-Fi機器には一般的に「制御フレームとマルチキャストフレームはその帯域の最低データレートの変調モードで送信する」という慣習があります。要するに「2.4GHz帯なら1Mbps DSS-BPSKで・5GHz帯なら6Mbps BPSK+1/2FEC OFDMで送信する」わけですが、実はこの慣習には根拠文書がありません。Multirate Supportの章はIEEE802.11仕様が追加されるたびに記述が増えて複雑怪奇になっていますが、IEEE802.11-2020仕様では10.6.5.3において
If the BSSBasicRateSet parameter is not empty, a Data or Management frame (excluding the frames listed above) with a group address in the Address 1 field shall be transmitted in a non-HT PPDU using one of the rates included in the BSSBasicRateSet parameter or the rate chosen by the AP, described in 11.21.8, if the Data frames are part of an FMS stream.
となっており、あくまで規定上は「BSSBasicRateSet parameterの1つ」であって「最低データレートの変調モード」ではありません。理屈としてはBasic Rate SetはBSS内の全ての接続機器が送受信できるはずなので、どれを使っても受信はされるはずなのです(ただし変調モードによって受信限界SNRが違うので、低いレートのほうがより遠くまで・確実に届くはず)。
オープンソースのhostapdでは、hostapd.confに以下の構文を書くことでSupported RatesとBasic rate setをデフォルトから変更できることになっています。例えばhw_mode=gの24.GHz帯でも
supproted_rates=60 90 120 180 240 360 480 540
basic_rates=60 120 240
とすれば11b互換のDSSS-CCK変調サポートが無くなり、ビーコンには11aと同じ「Supported Rates IEに8つのデータレート」「そのうち6,12,24MbpsがBasic Rate set」というAPを作ることができる建前になります。
「なっています」「建前になります」という微妙な言い回しなのは、この構文が実際のAP動作に与える影響はドライバの実装によって異なり、また非標準のBasic Ratesを設定したAPにSTAが接続したときの動作もまた実装によって異なるからです。実際にやってみると「それっぽい動作」はするのですが、STA->APのARP Requestが(Basic Ratesから外されているはずの)1Mbps DSSSで送信されたり、RTSやBlockAckが1Mbpsで送信されたり、細部の動作は怪しいところが見受けられます。
IEEE802.11nとMCSの制定
以前にも何度か言及していますが、IEEE802.11nの標準策定は複数の標準化団体が泥仕合をやって大いに揉めました。結局IEEE802.11n-2009として公開されましたが、泥仕合の痕跡のようなものが其処此処に残っています。
IEEE802.11nにおいてはMCS(Modulation and Coding Scheme)という用語が定義されました。これはShort Guard Interval (SGI)と40MHz/chが追加されたことにより、同じ変調密度でも額面上のデータレートが変わる(BPSK+1/2FECでも6.5/7.2/13.5/15Mbpsになり得る)からです。11nでは複数のアンテナを同時に使うMIMOも定義されましたが,11nにおいてはMIMOストリーム数もMCSのうちに数えました。なので11nでは8種類の変調モードx1~4ストリームに対応する32種類のMCS
MCS0~7:1x1
MCS8~15:2x2
MCS16~23:3x3
MCS24~31:4x4
が定義されています。これに後述するMCS32とMCS33~MCS76の「非対称モード」を加えた77種類が予約されていますが、これらは実際には殆ど使われていません。
IEEE802.11nでは"Supported Rates"に相当する概念として"Supported MCS Set"、"Basic Rate set"に相当する概念として"Basic MCS Set"という概念が加えられました。
まず"Supported MCS Set"の通知のため、HT Capabilites IE (tag=45)の中にSupported MCS Setというフィールドが定義されました(IEEE802.11n-2009 7.3.2.56.4)。これは8byte=128bitのビットフィールドで、bit0-bit76の77bitがMCS0~MCS76に対応する"Rx MCS Bitmask"となっています。上記のように11n仕様ではストリーム数がMCSに含まれるので、4x4対応の機器ではほぼ同じ情報が4回繰り返されて表記されることになります。
図5 IEEE802.11n-2009におけるHT Capabilities IEの定義
図6 HT Capabilites IE/Supported MCS Setの例、4x4 MIMO
残り51bitにもゴチャゴチャいろんなフィールドが定義されていますが、正直言ってほとんど使われていません。今のAPでは変調モードは8種類全て1 x ストリーム数の繰り返し、後半のフィールドは全部0というのが普通です。bit96のTx MCS Set Definedは0だったり1だったりしますが、特に意味があるものでもありません。
"Basic MCS Set"はHT Operation IE (tag=61)の末尾に16byteの"Basic MCS Set"フィールドとして実装されました(IEEE802.11-2016以後では"Basic HT-MCS Set"に改名します)。フォーマットはSupported MCS Set fieldと全く同じです。このフィールドには何か因縁があるようで、定義されているものの実際のAPではほとんどオール0が送信されています。hostapd.confにも"Basic HT-MCS Set"を設定する項目は見受けられません。
図7 HT Operation IE/Basic MCS Setの例、とにかくほとんど0
名前が紛らわしいのですが、11n仕様における"Basic MCS Set"は"BSSBasicRateSet"の一部ではなく、別のパラメータとして扱われています。IEEE802.11n-2009 10.3.10.1.2 MLME-START.requestの引数にはBSSBasicRateSetと別にBSSBasicMCSSetが定義されています。これはIEEE802.11ac-2013でもまだ残っていましたが、IEEE802.11-2016でHT Operationの中に移されてBSSBasicMCSSetという引数は削除されました。
図8 IEEE802.11n-2009におけるBSSBasicRateSetとBSSBasicMCSSetの定義
BSSMembershipSelectorSetはもっとめんどくさくて、これはIEEE802.11以来のSupported Rates IEおよび11bのExtended Supported Rates IEを再利用する試みです。Supported Ratesは「bit7がBasic Rate Setか否か」「bit6-0が500Kbps単位のデータレート(0~63.5Mbps)」を示す配列でしたが、この値の上のほう(127~下向き)に別の意味を割り当てるのがBSSMembershipSelectorSetです。bit7=1でbit6-0が特定の値の場合、それはBasic Rateのデータレータではなく「そのBSSに参加するために必要とされる追加条件」を示す、となっています。
127 HT-PHY対応であること(IEEE802.11n)
126 VH-PHY対応であること(IEEE802.11ac)
125 GLK対応であること(IEEE802.11ak)
124 EPD対応であること(IEEE802.11p)
123 SAE Hash to Element Only対応であること(WPA3-SAE H2E)
122 HE-PHY対応であること(IEEE802.11ax)
こんな機能拡張がなされたのに何故か名前はしばらく据え置きのままでしたが、IEEE802.11-2016で"Supported Rates and BSS Membership Selectors element"と改名されました。オープンソースのhostapdではhostapd.confに下記の定義を加えることでBSSMembershipSelectorSetが追加されます。
require_ht=1
require_vht=1
require_he=1
またsae_pwe=1を設定することでSAE_H2E_ONLYも追加されます。GLK・EPDについては#define定義だけが存在して設定はありません。
図9 BSS Membership Selectorsを設定した例
これもオープンソースのmac80211ドライバでは対応していますが、Full MACのメーカー純正ドライバが対応しているかどうかはやってみなければわかりません。
IEEE802.11nのMCS32とSTBCについて
MCS32はMCS0/20MHzとほぼ同じBPSK+1/2FEC 6Mbpsですが40MHz/チャンネルのみで動作し、40MHzを20+20MHzに分けて、上下チャンネルに同じ情報を冗長化して送信する特殊なモードです。高ノイズ環境あるいは長距離通信用として定義された仕様のようですが、実際には殆ど使われていません。それでもビーコンを観察していると、たまにサポートビットが1になったIEを目撃することがあります。
図10 HT Capabilities IE/Supported MCS Setの例、4x4 MIMO+MCS32
MCS33~MCS76の「非対称モード」はMIMOのストリーム間で異なる変調モードを適用することを考えて定義されたようです。一体どういうシチュエーションで何がどう便利になる機能なのかわかりません。非対称モードをサポートするノードはSupported MCS Set fieldのBit100 "Tx Unequal Modulation Supported"を1にして通知することになっていますが、これが1になった機器は見たことがありません。
MCS32と似たような存在にSTBC(Space Time Block Coding)があります。これは要するに2x2以上のMIMOで複数本のアンテナから同じ情報を冗長化して送信する特殊なモードで、高ノイズ環境あるいは長距離通信用として定義された仕様のようですが、やっぱり実際には殆ど使われていません。IEEE802.11n-2009では9.6.0c Basic STBC MCSにSTBCの発動条件が書かれてますが、
・HT Operation IEのDual BeaconまたはDual CTS Protection bitが1であること
・Basic MCS Setが設定されており、その最低MCSレートが2ストリーム以上であること
とされています。個人的にはどちらも見たことがありません。hostapdにも対応する設定項目が存在していないようです。
図11 HT Capabilities IE/HE Capabilities InformationにおけるSTBC Bitの例
IEEE802.11acとMCSマップ仕様の変更
IEEE802.11ac-2013(VHT)は11nより高速な上位互換仕様として作られました。
11nでMCSが77種類も定義されてしまった反省からか、11acでは変調モードと空間ストリームを切り離しました。誰も使わなかったMCS32冗長変調や非対称変調も定義されていません。ただしSTBCはVHT Capabilities IE(tag=191)のBit7-Bit10に再定義されています。
11acでも"Supported MCS Set"と"Basic MCS Set"の概念は引き継がれ、ただし巨大なビットマップの代わりに、16bitの短いフィールドで示されるようになりました(IEEE802.11ac-2013 8.4.2.160.3)。16bitは2bitごとにストリーム数1x1~8x8に対応し、それぞれ
00:MCS0-7
01:MCS0-8
10:MCS0-9
11:Not supported
を示します(IEEE802.11ac-2013 Figure 8-401bs)。MCS0-7までは11aとほぼ同じ(BPSK~64QAM)なので「今更MCS0-7に対応していないチップなどあるはずがない」前提で、11acで拡張されたMCS8(256QAM+3/4FEC)とMCS9(256QAM+5/6FEC)のみをオプション扱いにするという現実主義的な仕様になっています。
図12 IEEE802.11ac-2013におけるVHT Capabilities IEの定義
図13 IEEE802.11ac-2013におけるSupported MCS/NSSフィールドの定義
図14 VHT Capabilities IE/Supported MCS and NSSの例(4x4 MIMO)
Basic MCS SetはVHT Operation IE(tag=192)のBasic VHT-MCS and NSS Setフィールドに含まれます(IEEE802.11ac-2013 8.4.2.161)。フォーマットはRx VHT-MCS Mapと同じ2bit x 8ストリームです。11nのBasic HT-MCS Setはガン無視されてオール0でしたが、Basic VHT-MCSにはちゃんと値が入っていて、MCS0-7 1x1を必須とする実装(0xfffc)が多いようです。
図15 VHT Operation IE/Basic MCS and NSSの例。4x4 MCS9に対応しているAPだけど要求事項は1x1 MCS7。
IEEE802.11ax
IEEE802.11ax-2021(HE)は多台数接続時の効率向上を目指した仕様ですが、1024QAM変調(MCS10/11)の導入によって11acからの高速化も図られています。
0-255のElement IDを使い切ったので、HE Capabilities IEは拡張tag=35に設けられました。Supported HE-MCS And NSS Setフィールド(IEEE802.11ax-2021 9.4.2.248.4)のフォーマットは11acを踏襲した2bit x 8セットで1x1~8x8までの対応MCSを示します。MCS11が増えたので、ビットパターンとMCS上限の対応法則も変わりました。
00:MCS0-7
01:MCS0-9
10:MCS0-11
11:Not supported
11acのSupported VHT-MCS and NSS Setにくっついていた"Highest Supported Long GI Data Rate"や"Maximum NSTS,total"などの付随情報はバッサリ無くなり、対応MCSビットパターンだけになりました。通常は<=80MHz/chのバンドについて受信・送信のMCSセットが16bitづつ付きますが、チップが160MHz/chや80+80MHz/chをサポートする場合、それらのバンドに対応する受信・送信のMCSセットが付きます。なのでSupported HE-MCS And NSS Setフィールドは4,8,12バイトの可変長になります。
図16 IEEE802.11ax-2021 HE Capabilities IEの定義
11acでは"MAC Capabilities Information"と"PHY Capabilities Information"が分離され、STBC CapabilitiesはHE PHY Capabilities Informationのbit62・63に残りました。
HE Operation IE(拡張tag=36)には"Basic HE-MCS And NSS Set"が付加されます。フォーマットはSupported HE-MCS And NSS Setフィールドと同じですが、80/160/80+80のようなバンド幅や受信・送信の区別はなく、1パターン16bitのみ提供されます。
IEEE802.11beとMCSマップの再変更
IEEE802.11be-2024は再び高速化を目指して制定されました。"Wi-Fi7"の呼称でも知られています。高速化のための新要素は「新天地」6GHz帯における広帯域チャンネル(320MHz)と4096QAM変調(MCS12/13)の導入でした。
例によって11n以来定着したパターンで、変調方式が変わるたびに「なんとかCapabilities」にサポートするMCS一覧・「なんとかOperation」にBSSが要求するBasic MCS一覧が入ります。11beではEHT Capabilities IE(拡張tag=100)にSupported EHT-MCS And NSS Setが・EHT Operation IE(拡張tag=106)にBasic EHT-MCS And Nss Setが入りますが、またしてもフォーマットが変わりました(いい加減にしろと思いますか?私は思っています)。11ac/11axでは2bit x 8セットで1x1~8x8までのMIMO NSSに対するMCS上限が示されていましたが11beでは関係が逆になり、MCSセット毎に対応するMIMO NSS数が4bitで示されるフォーマットになっています。
図17 EHT Capabilities/EHT Supported MCS and NSS setの例(2x2 MIMO)
11ax同様、Supported EHT-MCS And NSS Setに入るマップの数はチップがサポートするバンド幅によってMCS and NSS Set数は変わり、実装仕様に応じて
20MHz-Only : 4byte
<=80MHz : 3byte
160MHz : 3byte
320MHz : 3byte
が連なります。20MHz-onlyだけ4byteで他が3byteなのは、MCS Setの種別が異なるためフォーマットも違っているからです。
20MHz-onlyの場合(4バイトフォーマット):
bit0-3:RX NSS MCS0-7
bit4-7:TX NSS MCS0-7
bit8-11:RX NSS MCS8-9
bit12-15:TX NSS MCS8-9
bit16-19:RX NSS MCS10-11
bit20-23:TX NSS MCS10-11
bit24-27:RX NSS MCS12-13
bit28-31:TX NSS MCS12-13
図18 IEEE802.11be Draft4.0における20MHz-only MCS and NSS setの定義
20MHz-Only以外の場合(3バイトフォーマット):
bit0-3:RX NSS MCS8-9
bit4-7:TX NSS MCS8-9
bit8-11:RX NSS MCS10-11
bit12-15:TX NSS MCS10-11
bit16-19:RX NSS MCS12-13
bit20-23:TX NSS MCS12-13
図19 IEEE802.11be Draft4.0におけるMCS and NSS setの定義
一方、EHT Operation IEに入るBasic EHT-MCS And Nss Setはチャンネル/バンド幅に関わりなく常に4バイト固定です。だったらSupported EHT-MCS And NSS Setも共通の4バイト仕様にして「20MHz-Only以外ではMCS0-7は常に対応として扱う」でも良かった気がするのですが、なんでこんな細かいところでバイト数を節約しようと思ったのか理解しかねます。
図20 IEEE802.11beにおけるEHT Supported MCS and NSS setの例(2x2)
11beでは、11nではほぼガン無視されていたMCS32冗長変調に相当する仕様がMCS14 "EHT DUP mode"として復活しました(IEEE802.11be-Draft 4.0 36.3.5)。MCS14はバンド冗長化にとどまらずシンボルも2つのサブキャリア間に冗長化されていて(DCM:Dual Carrier Modulation)、同じBPSK+1/2FECのMCS0に対して有効データレートは半分になります。バンド冗長化を用いずDCMだけを用いるMCS15というモードも追加されています。
11nでは77種全てのMCS対応状況がSupported MCS Setにベタのビットマップで示されていましたが、11ac以後でフォーマットが変わって対応MCS上限だけを示すように変わったので、こういう変則MCS仕様の対応状況はSupported EHT-MCS And NSS Setでは示せません。なのでEHT PHY Capabilities Informationフィールドのbit55にMCS14(6GHz帯)・bit51-54にMCS15(20&40/80/160/320MHz ch毎)の対応ビットが含められています。
図19 EHT Capabilities/EHT PHY CapabilitiesにおけるMCS14,MCS15対応ビットの例。
MCS14 in 6GHzは非対応、MCS15は20&40MHz chのみ対応。
MCS14/15の冗長化モードが復活した一方で、IEEE802.1111be-2024においてはSTBC機能が"An EHT PHY does not support STBC"と明記されて正式に撤廃されました。なのでEHT Capabilities IEにはSTBCの対応状況ビットがありません。
まとめ
・Wi-Fiでは変調仕様が追加されるたびに「サポートしている変調モード一覧」の通知仕様も拡張・追加されてきた。
・Wi-Fiは1:多台接続なので「Supported Rates(MCS)」と「Basic Rates(MCS)」という2つの一覧があり、前者は「その端末が対応している仕様」後者は「そのAP/BBSに参加する全員が対応すべき仕様」を意味する。
・制御フレームとマルチキャストフレームは「その帯域での最低データレート」を使って送信する慣習があるけれど、仕様上では「Basic Ratesのどれか」を使うとだけ定義されていて、最低データレートでなければならない規定はない。
・DSSS-OFDM/ERP-PBCC(802.11g)、MCS32(802.11n)、STBC(802.11n/ac/ax)など「良かれと思って定義されたけれどあんまり使われなかった変調仕様」も散在して、仕様が断片的に残っている。
普段何気なく使っている仕様でも、仕様書を掘り下げてみると「そんな機能があったんだ」と驚くのはよくあることです。今回も「BSS Membership Selector」「MCS32」「STBC」などは仕様書で単語を見かけても無意識にスルーしていて、改めて調べて「そういう機能だったんだ!」「でも使った経験は無いな…」「というか誰か本当に使ってるんあろうか?」と思いました。