はじめに
Bluetooth Meshの仕様について、Bluetooth SIGで公開されている「Mesh Profile Specification 1.0.1」に基づき、学習を兼ねて記載して行こうと思っています。本文章では、1章の「はじめに」について記載いたします。
記載内容に誤り等がありましたら、ご連絡いただければ幸いです。
1 はじめに
Bluetoothメッシュプロファイル仕様は、Bluetooth Low Energyワイヤレステクノロジーの相互運用可能なメッシュネットワーキングソリューションを実現するための基本的な要件を定義しています。
1.1 適合性
この仕様への適合が主張される場合、この仕様に必須として示されているすべての機能は、指定された方法でサポートされるものとします(プロセス必須)。 これは、サポートが示されているすべてのオプションおよび条件付き機能にも適用されます。
1.2 Bluetooth仕様リリースの互換性
この仕様は、次のものとともに使用する必要があります。
- 許可されたBluetoothコア仕様と組み合わせたコア仕様補遺6 [3]([3]第1巻、パートD、セクション1.2、表1.3を参照)、または
- v5.0以降のBluetoothコア仕様のすべてのバージョン
セクション5.2.2で定義されているGATTプロビジョニングベアラがサポートされている場合、またはセクション3.3.2で定義されているGATTベアラがサポートされている場合は、汎用属性プロファイル(GATT)が必要です。
1.3 言語
1.3.1 言語の慣習
Bluetooth SIGは、仕様の開発において、shall、must、will、should、may、can、is、およびnoteという単語を使用するための次の規則を確立しています。
| shall | 必須 – 要件の定義に使用 |
| must | 表現するために使用されます: 前述の必須要件の自然な結果。 または、議論の余地のない事実の陳述 (状況に関係なく常に真実であるもの) |
| will | 確かに – 事実の陳述でのみ使用 |
| should | 推奨される – いくつかの可能性の中で、 特に適切であると推奨されるが必須ではないことを 示すために使用されます |
| may | 許可される – オプションを許可するために使用 |
| can | できる – 因果的な方法でステートメントを関連付けるために使用 |
| is | として定義されます – 以前に必要または許可された要素を さらに説明するために使用されます |
| note | 情報提供のみを目的として含まれ、 仕様を実装するために必要とされないテキストを 示すために使用されます。 各メモは「メモ」として明確に指定されており、 別々の段落で説明されています。 |
これらの用語の定義を明確にするために、コア仕様ボリューム1、パートE、セクション1を参照してください。
1.3.2 将来の使用のための予約
パケット、プロトコルデータユニット(PDU)、またはその他のデータ構造のフィールドが「将来の使用のために予約済み」と記述されている場合(大文字か小文字かに関係なく)、構造を作成するデバイスは、特に指定がない限り、その値をゼロに設定する必要があります。構造を受信または解釈するデバイスは、そのフィールドを無視するものとします。 特に、フィールドの値のために構造を拒否してはなりません。
フィールド、パラメータ、またはその他の変数オブジェクトが値の範囲をとることができ、一部の値が「将来の使用のために予約済み」と記述されている場合、オブジェクトを送信するデバイスはオブジェクトをそれらの値に設定してはなりません。このような値を持つオブジェクトを受信するデバイスは、そのオブジェクトとそれを含むデータ構造をエラーとして拒否する必要があります。ただし、これは、オブジェクトが無視されると記述されている場合、または認識されない値を無視するように指定されている場合には適用されません。
フィールド値がビットフィールドの場合、割り当てられていないビットは将来使用のために予約済みとしてマークでき、0に設定されます。1に設定された将来使用のために予約済みビットを含むメッセージを受信する実装は、特に指定のない限り、そのビットが0に設定されているかのようにメッセージを処理します。
頭字語RFUは、「将来の使用のために予約済み」に相当します。
1.3.3 禁止
フィールド値が列挙型の場合、割り当てられていない値を「禁止」としてマークできます。 これらの値は実装によって使用されることはなく、禁止値を含む受信されたメッセージは無視され、処理されず、応答されないものとします。
フィールド、パラメータ、またはその他の変数オブジェクトが値の範囲をとることができ、一部の値が「禁止」と記述されている場合、デバイスはオブジェクトをそれらの禁止値のいずれにも設定してはなりません。 このような値を持つオブジェクトを受信するデバイスは、そのオブジェクトとそれを含むデータ構造をエラーとして拒否する必要があります。
”禁止”は決して省略されません。
1.3.4 頭字語と略語
| 略語または頭字語 | 意味 |
|---|---|
| ACK | Acknowledgment |
| AD | Advertising Data |
| AES | Advanced Encryption Standard |
| AID | Application Key Identifier |
| AKF | Application Key Flag |
| ASCII | American Standard Code for Information Interchange |
| ATT | Attribute Protocol |
| ATT_MTU | Attribute Protocol Maximum Transmission Unit |
| BR/EDR | Basic Rate / Enhanced Data Rate |
| CCM | Counter with CBC-MAC |
| CID | Company Identifier |
| CMAC | Cipher-based Message Authentication Code |
| CTL | Network control message indication |
| DST | Destination |
| ECB | Electronic CodeBook |
| ECDH | Elliptic Curve Diffie-Hellman |
| FCS | Frame Check Sequence |
| FIPS | Federal Information Processing Standards |
| FSN | Friend Sequence Number |
| GAP | Generic Access Profile |
| GATT | Generic Attribute Profile |
| ID | Identifier |
| IEEE | Institute of Electrical and Electronics Engineers |
| IKM | Input Key Material |
| IVI | Initialization Vector Index |
| JSON | JavaScript Object Notation |
| LED | Light Emitting Diode |
| LSO | Least Significant Octet |
| MAC | Message Authentication Code |
| MD | More Data |
| MIC | Message Integrity Check |
| MSO | Most Significant Octet |
| MTU | Maximum Transmission Unit |
| NID | Network Identifier |
| OBO | On Behalf Of (another element) |
| OKM | Output Key Material |
| OOB | Out of Band |
| PDU | Protocol Data Unit |
| PID | Product Identifier |
| RFU | Reserved for Future Use |
| RPL | Replay Protection List |
| RSSI | Received Signal Strength Indicator |
| SAR | Segmentation And Reassembly |
| SEG | Segmentation indication bit |
| SEQ | Sequence Number |
| SIG | Special Interest Group |
| SRC | Source |
| SZMIC | Size of Message Integrity Check |
| TTL | Time To Live |
| URI | Uniform Resource Indicator |
| UUID | Universally Unique Identifier |
| VID | Version Identifier |
| WG | Working Group |
1.3.5 用語
| 用語 | 定義 |
|---|---|
| Address | 1つ以上のノード内の1つ以上の要素のID。 |
| Configuration Client | 構成クライアントモデルを実装するノード。 |
| Destination | メッセージの送信先のアドレス。 |
| Device | メッシュネットワークにプロビジョニングできる エンティティ。 |
| Element | デバイス内のアドレスを持ったエンティティ。 デバイスには、少なくとも1つのエレメントが必要です。 |
| Message | ソースから宛先に送信されるオクテットのシーケンス。 |
| Neighbors | 無線範囲内の直接通信できるノード (シングルホップ)。 |
| Network | 共通のアドレス空間を共有するノードのグループ。 |
| Node | プロビジョニングされたデバイス。 |
| Provision | 基本情報(ユニキャストアドレスとネットワークキーを含む)を 認証してデバイスに提供するプロセス。 ノードになるには、デバイスはプロビジョニングされなけばならい。 プロビジョニングされると、ノードはメッシュネットワークで メッセージを送受信できます。 |
| Provisioner | メッシュネットワークにデバイスを 追加できるノード。 |
| Relay | メッセージを受信して再送信するノード。 |
| Source | メッセージの送信元のアドレス。 |
| State | ノードのエレメントによって公開される エレメントの状態を表す値。 |
| Subnet | 相互に通信できるノードのグループ。 |


