Bluetooth Mesh 仕様 – 4. Foundation models(その3)

Bluetooth Mesh

はじめに

Bluetooth Meshの仕様について、Bluetooth SIGで公開されている「Mesh Profile Specification 1.0.1」に基づき、学習を兼ねて記載して行こうと思っています。本文章では、4章の「ファンデーションモデル」の次の節について記載いたします。

  • 4.4 モデル定義
  • 4.4.1 構成サーバモデル

記載内容に誤り等がありましたら、ご連絡いただければ幸いです。

4.4 モデル定義

このセクションでは、この仕様全体で使用されるモデルを定義します。
この仕様の一部として必要とされないモデル定義は、メッシュモデル仕様[11]で定義されており、メッシュモデル定義と同じ形式とアーキテクチャに従います。

4.4.1 構成サーバモデル

4.4.1.1 説明

構成サーバは、ルートモデルです(つまり、他のモデルを拡張しません)。

このモデルは、デバイスのメッシュネットワーク構成を表すために使用されます。

モデルは一次要素によってサポートされ、二次要素によってサポートされてはなりません。構成サーバモデルのアプリケーションレイヤーセキュリティは、プロビジョニング中に確立されたデバイスキーを使用する必要があります。

モデルは、以下の表4.109に示すように状態インスタンスを定義します。

構成サーバ状態 バインディング状態の状態
状態 インスタンス モデル 状態 インスタンス
Secure Network Beacon Primary – – –
Composition Data Primary – – –
Default TTL Primary – – –
GATT Proxy Primary 構成サーバ Node Identity Primary
Friend Primary – – –
Relay Primary – – –
Model Publication Primary – – –
Subscription List Primary – – –
NetKey List Primary – – –
AppKey List Primary – – –
Model to AppKey List Primary – – –
Node Identity Primary – – –
Key Refresh Phase Primary – – –
Heartbeat Publish Primary – – –
Heartbeat Subscription Primary – – –
Network Transmit Primary – – –
Relay Retransmit Primary – – –
表4.109:構成サーバ状態とバインディング

このモデルの対象となる要素、状態、およびメッセージの構造は、以下の表4.110で定義されています。

要素SIG
モデルID
状態メッセージRxTx
Primary 0x0000 Secure Network Beacon
(Section 4.2.10を参照)
Config Beacon Get M  
Config Beacon Set M  
Config Beacon Status   M
Composition Data
(Section 4.2.1を参照)
Config Composition Data Get M  
Config Composition Data Status   M
Default TTL
(Section 4.2.7を参照)
Config Default TTL Get M  
Config Default TTL Set M  
Config Default TTL Status   M
GATT Proxy
(Section 4.2.11を参照)
Config GATT Proxy Get M  
Config GATT Proxy Set M  
Config GATT Proxy Status   M
Friend
(Section 4.2.13を参照)
Config Friend Get M  
Config Friend Set M  
Config Friend Status   M
Relay
(Section 4.2.8を参照)
Relay Retransmit
(Section 4.2.20を参照)
Config Relay Get M  
Config Relay Set M  
Config Relay Status   M
Model Publication
(Section 4.2.2を参照)
Config Model Publication Get M  
Config Model Publication Set M  
Config Model Publication Virtual Address Set M  
Config Model Publication Status   M
Subscription List
(Section 4.2.3を参照)
Config Model Subscription Add M  
Config Model Subscription Virtual Address Add M  
Config Model Subscription Delete M  
Config Model Subscription Virtual Address Delete M  
Config Model Subscription Virtual Address Overwrite M  
Config Model Subscription Overwrite M  
Config Model Subscription Delete All M  
Config Model Subscription Status   M
Config SIG Model Subscription Get M  
Config SIG Model Subscription List   M
Config Vendor Model Subscription Get M  
Config Vendor Model Subscription List   M
NetKey List
(Section 4.2.4を参照)
Config NetKey Add M  
Config NetKey Update M  
Config NetKey Delete M  
Config NetKey Status   M
Config NetKey Get M  
Config NetKey List   M
AppKey List
(Section 4.2.5を参照)
Config AppKey Add M  
Config AppKey Update M  
Config AppKey Delete M  
Config AppKey Status   M
Config AppKey Get M  
Config AppKey List   M
Model to AppKey List
(Section 4.2.6を参照)
Config Model App Bind M  
Config Model App Unbind M  
Config Model App Status   M
Config SIG Model App Get M  
Config SIG Model App List   M
Config Vendor Model App Get M  
Config Vendor Model App List   M
Node Identity
(Section 4.2.12を参照)
Config Node Identity Get M  
Config Node Identity Set M  
Config Node Identity Status   M
N/A Config Node Reset M  
Config Node Reset Status   M
Key Refresh Phase
(Section 4.2.14を参照)
Config Key Refresh Phase Get M  
Config Key Refresh Phase Set M  
Config Key Refresh Phase Status   M
Heartbeat Publication
(Section 4.2.17を参照)
Config Heartbeat Publication Get M  
Config Heartbeat Publication Set M  
Config Heartbeat Publication Status   M
Heartbeat Subscription
(Section 4.2.18を参照)
Config Heartbeat Subscription Get M  
Config Heartbeat Subscription Set M  
Config Heartbeat Subscription Status   M
    Network Transmit
(Section 4.2.19を参照)
Config Network Transmit Get M  
Config Network Transmit Set M  
Config Network Transmit Status   M
表4.110:構成サーバのエレメント, 状態, メッセージ
4.4.1.2 Behavior

このセクションでは、このサーバーモデルの状態とメッセージの動作について説明します。

構成サーバのメッセージは、DevKeyを使用して保護する必要があります。

4.4.1.2.1 Secure Network Beacon state

エレメントがConfig Beacon Getメッセージを受信すると、そのエレメントは、Beaconフィールドが現在のSecure Network Beacon状態に設定されたConfig Beacon Statusメッセージで応答する必要があります。

エレメントがConfig Beacon Setメッセージを受信すると、Secure Network Beacon状態をメッセージのBeaconフィールドの値に設定し、Beaconフィールドが現在のSecure Network Beacon状態に設定されたConfig Beacon Statusメッセージで応答します。

4.4.1.2.2 Composition Data state

エレメントは、ノードに含まれる組成データページの値を含むメッセージのPageフィールドを含むConfig Composition Data Getメッセージを受信すると、Pageフィールドがページ番号に設定されたConfig Composition Data Statusメッセージで応答するものとします。 組成データとDataフィールドは、組成データページの値に設定されます。

エレメントは、予約されたページ番号またはノードがサポートしていないページ番号を含むメッセージのPageフィールドを含むConfig Composition Data Getメッセージを受信すると、ノードがサポートする組成データの最大ページ番号に設定されたPageフィールドと、そのページ番号の組成データページの値に設定されたDataフィールドを使用して、Config Composition Data Statusメッセージで応答する必要があります。

注:最初に0xFFを読み取り、次にページ番号が0x00になるまで、返されたページ番号より1つ少ない値を読み取ることにより、サポートされているすべての組成データページを読み取ることができます。

注:この仕様では、ページ0のみが定義されているため、ページ0xFFを読み取ると常にページ0x00が返されますが、将来的には、クライアントがページ0x00を後で読み取れるようになる前に、より大きなページ番号が返されます。

4.4.1.2.3 Default TTL state

エレメントがConfig Default TTL Getメッセージを受信すると、TTLフィールドが現在のデフォルトTTL状態に設定されたConfig Default TTL Statusメッセージで応答します。

エレメントは、Config Default TTL Setメッセージを受信すると、デフォルトTTL状態をメッセージのTTLフィールドの値に設定し、TTLフィールドが現在のデフォルトTTL状態に設定されたConfig Default TTL Statusメッセージで応答します。

4.4.1.2.4 GATT Proxy state

エレメントがConfig GATT Proxy Getメッセージを受信すると、GATT Proxyフィールドが現在のGATT Proxy状態に設定されたConfig GATT Proxy Statusメッセージで応答する必要があります。

エレメントがConfig GATT Proxy Setメッセージを受信し、ノードがメッシュGATTプロキシサービスをサポートする場合、エレメントはGATTプロキシ状態をメッセージのGATT Proxyフィールドの値に設定し、現在のGATTプロキシ状態に設定されたGATT Proxyフィールドを含むConfig GATT Proxy Statusメッセージで応答するものとします。

エレメントがConfig GATT Proxy Setメッセージを受信し、ノードがメッシュGATTプロキシサービスをサポートしていない場合、エレメントはGATT Proxyフィールドが現在のGATTプロキシ状態に設定されたConfig GATT Proxy Statusメッセージで応答する必要があります。

4.4.1.2.5 Friend state

エレメントがConfig Friend Getメッセージを受信すると、Friendフィールドが現在のFriend状態に設定されたConfig Friend Statusメッセージで応答します。

エレメントがConfig Friend Setメッセージを受信し、ノードがFriend機能をサポートしている場合、 フレンド状態をメッセージのFriendフィールドの値に設定し、Friendフィールドを現在のフレンド状態に設定したConfig Friend Statusメッセージで応答します。

エレメントがConfig Friend Setメッセージを受信し、ノードがFriend機能をサポートしていない場合、そのエレメントは、Friendフィールドが現在のFriend状態に設定されたConfig Friend Statusメッセージで応答する必要があります。

4.4.1.2.6 Relay state

エレメントがConfig Relay Getメッセージを受信すると、エレメントはRelayフィールドが現在のRelay状態に設定され、RelayRetransmitCountフィールドが現在のRelayRetransmitCount状態に設定され、RelayRetransmitIntervalStepsフィールドが現在のRelayRetransmitIntervalSteps状態に設定されたConfig Relay Statusメッセージで応答します。

エレメントがConfig Relay Setメッセージを受信し、ノードがリレー機能をサポートしている場合、リレー状態をメッセージのRelayフィールドの値に設定し、リレー再送信カウント状態をメッセージのRelayRetransmitCountフィールドの値に設定します。そして、RelayRetransmitIntervalSteps状態をメッセージのRelayRetransmitIntervalStepsフィールドの値に設定します。そして、Relayフィールドが現在のRelay状態に設定され、RelayRetransmitCountフィールドが現在のRelayRetransmitCount状態に設定され、RelayRetransmitIntervalStepsフィールドを現在のRelay RetransmitIntervalSteps状態に設定されたConfig Relay Statusメッセージで応答します。

エレメントがConfig Relay Setメッセージを受信し、ノードがRelay機能をサポートしていない場合、Relayフィールドを現在のRelay状態に設定し、RelayRetransmitCountフィールドとRelayRetransmitIntervalStepsフィールドを0x00に設定して、Config Relay Statusメッセージで応答する必要があります。

4.4.1.2.7 Model Publication state

エレメントが正常に処理されたConfig Model Publication Getメッセージを受信すると(つまり、表4.111にリストされているエラー状態が発生していない)、識別されたモデル公開状態の現在の値を含み、着信メッセージで定義されているようにElementAddressフィールドとModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfig Model Publication Statusメッセージで応答します。PublishAddressが未割り当てアドレスに設定されている場合、AppKeyIndex、CredentialFlag、PublishTTL、PublishPeriod、PublishRetransmitCount、およびPublishRetransmitIntervalStepsフィールドの値は0x00に設定されます。

エラー条件ステータスコード名
ElementAddressとModelIdentifierで
定義されたモデルは、公開メカニズムを
サポートしていません
無効な公開パラメータ
ElementAddressで提供されたユニキャストアドレスが
ノードに認識されていません
無効なアドレス
SIGモデルIDまたはベンダーモデルIDで
識別されるモデルが
特定の要素に見つかりません
無効なモデル
AppKeyIndexによって識別されたAppKeyは
ノードに認識されていません
無効なAppKeyインデックス
ノードが低電力機能をサポートしていないため、
CredentialFlagを1に設定することはできません。
サポートされていない機能
表4.111:モデル公開状態のエラー条件

エレメントが、正常に処理されないConfig Model Publication Getメッセージ、Config Model Publication Setメッセージ、またはConfig Model Publication Virtual Address Setメッセージを受信すると(つまり、表4.111にリストされているエラー状態が発生している)、そのフィールドを着信メッセージの対応するフィールド(つまり、同じ名前のフィールド)の値に設定し、Statusフィールドをステータスコード(表4.111で定義)に設定し、他のすべてのフィールドを0x00に設定したConfig Model Publication Statusメッセージで応答します。

エレメントが正常に処理されたConfig Model Publication SetメッセージまたはConfig Model Publication Virtual Address Setメッセージを受信すると(つまり、表4.111にリストされているエラー状態が発生しない)、識別されたモデル公開状態を対応するフィールド値(表4.112で定義)に更新し、受信メッセージで定義されているElementAddressフィールドとModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定し、識別されたモデルパブリケーション状態の現在の値を含むConfig Model Publication Statusメッセージで応答します。Config Model Publication SetメッセージのPublishAddressフィールドが未割り当てアドレスに設定されている場合、モデルの公開は無効になり、AppKeyIndex、CredentialFlag、PublishTTL、PublishPeriod、PublishRetransmitCount、およびPublishRetransmitIntervalStepsは無視されます。

状態メッセージフィールド
Publication Publish AppKey IndexAppKeyIndex
Publish Friendship Credentials FlagCredentialFlag
Publication Publish TTLPublishTTL
Publication Publish PeriodPublishPeriod
Publish Retransmit CountPublishRetransmitCount
Publish Retransmit Interval StepsPublishRetransmitIntervalSteps
Publication Publish AddressPublishAddress
表4.112:モデル公開状態からメッセージフィールドへのマッピング

エレメントが正常に処理されないConfig Model Publication SetメッセージまたはConfig Model Publication Virtual Address Setメッセージを受信すると(つまり、表4.108にリストされているエラー状態が発生している)、ElementAddressフィールドとModelIdentifierフィールドを着信メッセージの対応するフィールドに設定し、Statusフィールドをステータスコード(表4.108で定義)に設定し、他のすべてのフィールドを0x00に設定したConfig Model Publication Statusメッセージで応答する必要があります。

4.4.1.2.8 Subscription List state

エレメントが正常に処理され(つまり、表4.113にリストされているエラー状態が発生していない)、識別されたサブスクリプションリストに存在しないアドレスの追加を要求しているConfig Model Subscription AddメッセージまたはConfig Model Subscription Virtual Address Addメッセージを受信したとき、識別されたサブスクリプションリストにAddressフィールドの値を追加し、着信メッセージで定義されたアドレス、ElementAddress、およびModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定するConfig Model Subscription Statusメッセージで応答します。

エラー条件ステータスコード名
ElementAddressとModelIdentifierによって
定義されたモデルは、サブスクリプションメカニズムを
サポートしていません
サブスクライブモデルでは
ありません
デバイスのリソースが不足しているため、
デバイスは新しいアドレスを保存できません
不十分なリソース
ElementAddressで提供されたユニキャストアドレスが
ノードに認識されていません
無効なアドレス
SIGモデルIDまたはベンダーモデルIDで
識別されるモデルが特定の要素に見つかりません
無効なモデル
表4.113:サブスクリプションリスト状態のエラー条件

エレメントが正常に処理され(つまり、表4.113にリストされているエラー状態が発生していない)、識別されたサブスクリプションリストに存在するアドレスの追加を要求しているConfig Model Subscription AddメッセージまたはConfig Model Subscription Virtual Address Addメッセージを受信したとき、着信メッセージで定義されているようにAddress、ElementAddress、およびModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定するConfig Model Subscription Statusメッセージで応答する必要があります。

エレメントが、正常に処理されないConfig Model Subscription AddメッセージまたはConfig Model Subscription Virtual Address Addメッセージを受信すると(つまり、表4.113にリストされているエラー状態が発生している)、そのフィールドを着信メッセージの対応するフィールド(つまり、同じ名前のフィールド)の値に設定し、Statusフィールドをステータスコード(表4.113で定義)に設定し、他のすべてのフィールドを0に設定したConfig Model Subscription Statusメッセージで応答します。

エレメントが正常に処理され(つまり、表4.113にリストされているエラー状態が発生していない)、識別されたサブスクリプションリストに存在するアドレスの削除を要求しているConfig Model Subscription DeleteメッセージまたはConfig Model Subscription Virtual Address Deleteメッセージを受信したとき、識別されたサブスクリプションリストからAddressフィールドの値を削除し、着信メッセージで定義されているようにAddress、ElementAddress、およびModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfig Model Subscription Statusメッセージで応答します。

エレメントが正常に処理され(つまり、表4.113にリストされているエラー状態が発生していない)、識別されたサブスクリプションリストに存在しないアドレスの削除を要求しているConfig Model Subscription DeleteメッセージまたはConfig Model Subscription Virtual Address Deleteメッセージを受信したとき、着信メッセージで定義されているようにAddress、ElementAddress、およびModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfig Model Subscription Statusメッセージで応答します。

エレメントが正常に処理されていない(つまり、表4.113にリストされているエラー状態が発生している)Config Model Subscription DeleteメッセージまたはConfig Model Subscription Virtual Address Deleteメッセージを受信したとき、フィールドを着信メッセージの対応するフィールドの値に設定し、Statusフィールドをステータスコード(表4.113で定義)に設定し、他のすべてのフィールドを0に設定したConfig Model Subscription Statusメッセージで応答します。

エレメントが正常に処理された(つまり、表4.113にリストされているエラー状態が発生していない)Config Model Subscription OverwriteメッセージまたはConfig Model Subscription Virtual Addressメッセージを受信したとき、識別されたサブスクリプションリストをクリアし、Addressフィールドの値を識別されたサブスクリプションリストに追加し、着信メッセージで定義されたアドレス、ElementAddress、およびModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfig Model Subscription Statusメッセージで応答します。

エレメントが正常に処理されていない(つまり、表4.113にリストされているエラー状態が発生している)Config Model Subscription OverwriteメッセージまたはConfig Model Subscription Virtual Address Overwriteメッセージを受信したとき、そのフィールドを着信メッセージの対応するフィールドの値に設定し、StatusフィールドをStatusコード(表4.113で定義)に設定したConfig Model Subscription Statusメッセージで応答します。

エレメントが正常に処理された(つまり、表4.113にリストされているエラー状態が発生していない)Config Model Subscription Delete All メッセージを受信したとき、識別されたサブスクリプションリストをクリアし、着信メッセージで定義されているElementAddressフィールドとModelIdentifierフィールドを設定し、Addressフィールドを未割り当てのアドレスの値に設定し、StatusフィールドをSuccessに設定したConfig Model Subscription Statusメッセージで応答します。

エレメントが正常に処理されていない(つまり、表4.113にリストされているエラー状態が発生している)Config Model Subscription Delete Allメッセージを受信したとき、そのフィールドを着信メッセージの対応するフィールドの値に設定し、Addressフィールドを未割り当てのアドレス値に設定し、StatusフィールドをStatusスコードに設定し(表4.113で定義)、他のすべてのフィールドを0に設定したConfig Model Subscription Statusメッセージで応答します。

エレメントが正常に処理されたConfigSIG Model Subscription Getメッセージを受信したとき(つまり、表4.113にリストされているエラー状態が発生していない)、識別されたサブスクリプションリスト状態の現在の値を含む、着信メッセージで定義されているElementAddressフィールドとModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfig SIG Model Subscription Listメッセージで応答します。

エレメントが正常に処理されたConfig Vendor Model Subscription Getメッセージを受信したとき (つまり、表4.113にリストされているエラー状態が発生していない)、識別されたサブスクリプションリストの状態の現在の値を含む、着信メッセージで定義されているElementAddressフィールドとModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfigVendor Model Subscription Listメッセージで応答します。

エレメントが正常に処理されていないConfig SIG Model Subscription Getメッセージを受信したとき(つまり、表4.113にリストされているエラー状態が発生している)、そのフィールドを着信メッセージの対応するフィールドの値に設定し、Statusフィールドをステータスコード(表4.113で定義)に設定し、Addressesフィールドをゼロ-レングス(空)に設定したConfig SIG Model Subscription Listメッセージで応答します。

エレメントが正常に処理されていないConfig Vendor Model Subscription Getメッセージを受信したとき(つまり、表4.113にリストされているエラー状態が発生している)、そのフィールドを着信メッセージの対応するフィールドの値に設定し、Statusフィールドをステータスコード(表4.113で定義)に設定し、Addressesフィールドをゼロ-レングス(空)に設定したConfig Vendor Model Subscription Listメッセージで応答します。

4.4.1.2.9 NetKey List state

エレメントが正常に処理されたConfig NetKey Addメッセージを受信したとき(つまり、表4.114にリストされているエラー状態が発生していない)、NetKeyIndexフィールドで識別される新しいNetKeyをNetKeyリストに追加し、着信メッセージで定義されているようにNetKeyIndexフィールドを設定し、StatusフィールドをSuccessに設定したConfig NetKey Statusメッセージで応答します。

注:エレメントは、NetKeyリストにすでに追加されているNetKeyを識別するConfig NetKey Addメッセージを受信すると、Successで応答します。同じNetKeyIndexを使用して、同じNetKeyの値を再度追加した結果は、最初にキーを追加した結果と同じになるためです。

エラー条件ステータスコード名
NetKeyIndexによって識別されるNetKeyは
すでにノードに格納されており、
新しいNetKey値は異なります
キーインデックスはすでに
保存されています
NetKeyIndexで識別されるキーは、
このデバイスのConfig NetKey Updateメッセージでは
無効です。
無効なNetKeyインデックス
リソースが不足しているため、
ノードは新しいキーを保存できません
不十分なリソース
一般的な制約により要求された削除操作を
実行できません
削除できません
一般的な制約により要求された更新操作を
実行できません
更新できません
表4.114:NetKeyリスト状態のエラー条件

エレメントが正常に処理されていない(つまり、表4.114にリストされているエラー状態が発生している)Config NetKey Addメッセージを受信したとき、着信メッセージで定義されているようにNetKeyIndexフィールドを設定し、Statusフィールドをステータスコード(表4.114で定義)に設定したConfig NetKey Statusメッセージで応答します。

エレメントが正常に処理された(つまり、表4.114にリストされているエラー状態が発生しない)Config NetKey Updateメッセージを受信したとき、NetKeyIndexフィールドで識別されるNetKeyの値を更新し、着信メッセージで定義されているようにNetKeyIndexフィールドを設定し、StatusフィールドをSuccessに設定したConfig NetKey Statusメッセージで応答します。

エレメントが正常に処理されていない(つまり、表4.114にリストされているエラー状態が発生している)Config NetKey Updateメッセージを受信したとき、着信メッセージで定義されているようにNetKeyIndexフィールドを設定し、Statusフィールドをステータスコード(表4.114で定義)に設定したConfig NetKey Statusメッセージで応答します。

エレメントが正常に処理された(つまり、表4.114にリストされているエラー状態が発生しない)Config NetKey Deleteメッセージを受信したとき、NetKeyIndexフィールドで識別されるNetKeyをNetKeyリストから削除し、削除されたNetKeyにバインドされているすべてのAppKeyを削除します。 そして、着信メッセージで定義されているようにNetKeyIndexフィールドを設定し、StatusフィールドをSuccessに設定したConfig NetKey Statusメッセージで応答します。Config NetKey Deleteメッセージの処理の結果として、モデルPublicationで使用されているAppKeyが削除された場合、適切なモデル公開は無効にする必要があります。 ハートビートパブリケーションで使用されているNetKeyが、Config NetKey Deleteメッセージの処理の結果として削除された場合、適切なNetKeyのパブリケーションは無効になります。メッシュプロキシサービスが公開され、ノードIDを使用したアドバタイズで使用されるサブネットのNetKeyが削除されると、削除されたNetKeyのサブネットのノードID状態は0x00に設定されます。

注:エレメントは、NetKeyリストにないNetKeyを識別するConfig NetKey Deleteメッセージを受信すると、Successで応答します。なぜなら、NetKeyリストに存在しないキーを削除した結果は、そのキーがNetKeyリストから削除された場合と同じになるからです。

エレメントが正常に処理されていない(つまり、表4.114にリストされているエラー状態が発生している)Config NetKey Deleteメッセージを受信したとき、着信メッセージで定義されているようにNetKeyIndexフィールドを設定し、Statusフィールドをステータスコード(表4.114で定義)に設定したConfig NetKey Statusメッセージで応答します。

エレメントがConfig NetKey Getメッセージを受信すると、そのエレメントはNetKeyIndexesフィールドをノードが認識しているNetKeyのすべてのインデックスのリストに設定したConfig NetKey Listメッセージで応答します。

このNetKeyで保護されたメッセージを使用して、NetKeyをNetKeyリストから削除してはなりません。

4.4.1.2.10 AppKey List state

エレメントが正常に処理された(つまり、表4.115にリストされているエラー状態が発生しない)Config AppKey Addメッセージを受信したとき、AppKeyIndexフィールドで識別される新しいAppKeyをAppKeyリストに追加し、新しいAppKeyをNetKeyIndexによって参照されるNetKeyにバインドします。そして、着信メッセージで定義されているようにNetKeyIndexAndAppKeyIndexフィールドを設定し、StatusフィールドをSuccessに設定したConfig AppKey Statusメッセージで応答します。

注:エレメントは、AppKeyリストにすでに追加されているAppKeyを識別するConfig AppKey Addメッセージを受信すると、Successで応答します。同じAppKey値を使用して同じAppKeyIndexを使用してキーを再度追加した結果は、最初にキーを追加した結果と同じになるためです。

エラー条件ステータスコード名
AppKeyIndexで識別されるAppKeyは
すでにノードに保存されており、
新しいAppKeyは異なります
キーインデックスは
すでに保存されています
リソースが不足しているため、
ノードは新しいキーを保存できません
不十分なリソース
AppKeyIndexで識別されるキーは、
このデバイスでは無効です
無効なAppKeyインデックス
NetKeyIndexで識別されるキーは、
このデバイスでは無効です
無効なNetKeyインデックス
一般的な制約により、
要求された更新操作を実行できません
更新できません
NetKeyIndexAndAppKeyIndexの組み合わせは、
Config AppKey Updateメッセージでは無効です。
無効なバインディング
表4.115:AppKeyリスト状態のエラー条件

エレメントが正常に処理されていない(つまり、表4.115にリストされているエラー状態が発生している)Config AppKey Addメッセージを受信したとき、着信メッセージで定義されているようにNetKeyIndexAndAppKeyIndexフィールドを設定し、Statusフィールドをステータスコード(表4.115で定義)に設定したConfig AppKeyステータスメッセージで応答します。

エレメントが正常に処理された(つまり、表4.115にリストされているエラー状態が発生しない)Config AppKey Updateメッセージを受信したとき、AppKeyIndexフィールドで識別されるAppKeyの値をAppKeyリストに更新し、着信メッセージで定義されているようにNetKeyIndexAndAppKeyIndexフィールドを設定し、StatusフィールドをSuccessに設定したConfig AppKey Statusメッセージで応答します。

エレメントが正常に処理されていない(つまり、表4.115にリストされているエラー状態が発生している)Config AppKey Updateメッセージを受信したとき、着信メッセージで定義されているようにNetKeyIndexAndAppKeyIndexフィールドを設定し、Statusフィールドをステータスコード(表4.115で定義)に設定したConfig AppKey Statusメッセージで応答します。

エレメントが正常に処理された(つまり、表4.115にリストされているエラー状態が発生していない)Config AppKey Deleteメッセージを受信したとき、AppKeyIndexフィールドで識別されるAppKeyをAppKeyリストから削除し、着信メッセージで定義されているようにNetKeyIndexAndAppKeyIndexフィールドを設定し、StatusフィールドをSuccessに設定したConfig AppKey Statusメッセージで応答します。Config AppKey Deleteメッセージの処理の結果、モデル公開で使用されているAppKeyが削除された場合、適切なモデルの公開は無効になります。

注:エレメントは、AppKeyリストにないAppKeyを識別するConfig AppKey Deleteメッセージを受信すると、Successで応答します。AppKeyリストに存在しないキーを削除した結果は、そのキーがAppKeyリストから削除された場合と同じになるためです。

エレメントが正常に処理されていない(つまり、表4.115にリストされているエラー状態が発生している)Config AppKey Deleteメッセージを受信したとき、着信メッセージで定義されているようにNetKeyIndexAndAppKeyIndexフィールドを設定し、Statusフィールドをステータスコード(表4.115で定義)に設定したConfig AppKey Statusメッセージで応答します。

エレメントが正常に処理された(つまり、表4.115にリストされているエラー状態が発生していない)Config AppKey Getメッセージを受信したとき、AppKeyIndexesフィールドをNetKeyIndexフィールドで識別されるNetKeyにバインドされたAppKeyのすべてのインデックスのリストに設定し、受信メッセージで定義されたNetKeyIndexフィールドを設定し、StatusフィールドをSuccessに設定したConfig AppKey Listメッセージで応答します。

エレメントが正常に処理されていない(つまり、表4.115にリストされているエラー状態が発生している)Config AppKey Getメッセージを受信したとき、着信メッセージで定義されているNetKeyIndexフィールドを設定し、Statusフィールドをステータスコード(表4.115で定義)に設定し、AppKeyIndexesフィールドを長さゼロ(空)のリストに設定したConfig AppKey Listメッセージで応答します。

4.4.1.2.11 Model to AppKey List state

エレメントが正常に処理された(つまり、表4.116にリストされているエラー状態が発生していない)Config Model App Bindメッセージを受信したとき、AppKeyIndexによって参照されるAppKeyを識別されたモデルにバインドし、着信メッセージで定義されているElementAddress、AppKeyIndex、およびModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfig Model App Statusメッセージで応答します。

エレメントが正常に処理されていない(つまり、表4.116にリストされているエラー状態が発生している)Config Model App Bindメッセージを受信したとき、そのフィールドを着信メッセージの対応するフィールド(つまり、同じ名前のフィールド)の値に設定し、Statusフィールドをステータスコード(表4.116で定義)に設定したConfig Model App Statusメッセージで応答します。

エラー条件ステータスコード名
(表4.108を参照)
SIGモデルIDまたはベンダーモデルIDで
識別されるモデルが、
特定の要素で見つかりません
無効なモデル
ElementAddressで提供される
ユニキャストアドレスは
ノードによって使用されません
無効なアドレス
AppKeyIndexで識別されるキーは
ノードに保存されません
無効なAppKeyインデックス
リソースが不足しているため、
ノードは新しいバインディングを
保存できません
不十分なリソース
一般的な制約により、
要求された更新操作を実行できません
更新できません
表4.116:モデルからAppKeyリストへの状態のエラー条件

エレメントが正常に処理された(つまり、表4.116にリストされているエラー状態が発生していない)Config Model App Unbindメッセージを受信したとき、AppKeyIndexによって参照されるAppKeyを識別されたモデルからバインド解除し、着信メッセージで定義されているElementAddress、AppKeyIndex、およびModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfig Model App Statusメッセージで応答します。指定されたAppKeyIndexが、識別されたモデルによってPublish AppKeyIndex the Model Publicationとして使用される場合、モデルのパブリケーションは無効になります。

エレメントが正常に処理された(つまり、表4.116にリストされているエラー状態が発生していない)Config Model App Unbindメッセージを受信したとき、AppKeyIndexによって参照されるAppKeyを識別されたモデルからバインド解除し、着信メッセージで定義されているElementAddress、AppKeyIndex、およびModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfig Model App Statusメッセージで応答します。

エレメントが正常に処理された(つまり、表4.116にリストされているエラー状態が発生していない)Config SIG Model App Getメッセージを受信したとき、識別されたモデルの現在の値をAppKey Listに設定し、着信メッセージで定義されているElementAddressフィールドとModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfig SIG Model App Listメッセージで応答します。

エレメントが正常に処理されていない(つまり、表4.116にリストされているエラー状態が発生している)Config SIG Model App Getメッセージを受信したとき、フィールドを着信メッセージのElementAddressおよびModelIdentifierの値に設定し、Statusフィールドをステータスコード(表4.116で定義)に設定し、AppKeyIndexesフィールドを長さがゼロ(空)のリストに設定したConfig SIG Model App Listメッセージで応答します。

エレメントが正常に処理された(つまり、表4.116にリストされているエラー状態が発生していない)Config Vendor Model App Getメッセージを受信したとき、識別されたモデルの現在の値をAppKeyListに設定し、受信メッセージで定義されているElementAddressフィールドとModelIdentifierフィールドを設定し、StatusフィールドをSuccessに設定したConfig Vendor Model App Listメッセージで応答します。

エレメントが正常に処理されていない(つまり、表4.116にリストされているエラー状態が発生している)Config Vendor Model App Getメッセージを受信したとき、フィールドを着信メッセージのElementAddressとModelIdentifierの値に設定し、Statusフィールドをステータスコード(表4.116で定義)に設定し、AppKeyIndexesフィールドを長さゼロ(空)のリストに設定したConfig Vendor Model App Listメッセージで応答します。

4.4.1.2.12 Node Identity state

エレメントが正常に処理された(つまり、表4.117にリストされているエラー状態が発生していない)Config Node Identity Getメッセージを受信したとき、 IDフィールドをNetKeyIndexフィールドで識別される現在のノードID状態に設定し、受信メッセージで定義されたNetKeyIndexフィールドを設定し、ステータスフィールドをSuccessに設定したConfig Node Identity Statusメッセージで応答します。

エラー条件ステータスコード名
(表4.108を参照)
NetKeyIndexで識別されるキーは、
このデバイスでは無効です
無効なNetKeyインデックス
並列アドバタイズの最大数に達したため、
ノードはノードIDでアドバタイズを
開始できません
一時的に状態を変更できません
表4.117:ノードID状態のエラー条件

エレメントが正常に処理されていない(つまり、表4.117にリストされているエラー状態が発生している)Config Node Identity Getメッセージを受信したとき、 着信メッセージで定義されているようにNetKeyIndexフィールドを設定し、Identityフィールドを0x00に設定し、Statusフィールドをステータスコード(表4.117で定義)に設定したConfig Node Identity Statusメッセージで応答します。

エレメントが正常に処理された(つまり、表4.117にリストされているエラー状態が発生していない)Config Node Identity Setメッセージを受信したとき、NetKeyIndexフィールドで識別されるノードID状態をメッセージのIdentityフィールドの値に設定し、IdentityフィールドをNetKeyの現在のNodeIdentity状態に設定し、着信メッセージで定義されているようにNetKeyIndexフィールドを設定し、StatusフィールドをSuccessに設定したConfig Node Identity Statusメッセージで応答します。

エレメントが正常に処理されていない(つまり、表4.117にリストされているエラー状態が発生している)Config Node Identity Setメッセージを受信したとき、 着信メッセージで定義されているようにNetKeyIndexフィールドとIdentityフィールドを設定し、Statusフィールドを(表4.117)で定義されているステータスコードに設定したConfig Node Identity Statusメッセージで応答します。

4.4.1.2.13 Reset

エレメントがConfig Node Resetメッセージを受信すると、ノード削除手順(セクション3.10.7を参照)を実行し、Config Node Reset Statusメッセージで応答します。

4.4.1.2.14 Key Refresh Phase state

エレメントが正常に処理された(つまり、表4.118にリストされているエラー状態が発生していない)Config Key Refresh Phase Getメッセージを受信したとき、 Phaseフィールドを現在のキー更新フェーズ状態に設定し、着信メッセージで定義されているようにNetKeyIndexフィールドを設定し、StatusフィールドをSuccessに設定したConfig Key Refresh Phase Statusメッセージで応答します。

エラー条件ステータスコード名
(表4.108を参照)
NetKeyIndexで識別されるキーは、
このデバイスでは無効です
無効なNetKeyインデックス
表4.118:キー更新フェーズ状態のエラー条件

エレメントが正常に処理されない(つまり、表4.118にリストされているエラー状態のいずれかが発生している)Config Key Refresh Phase Getメッセージを受信したとき、 Phaseフィールドを0x00に設定し、受信メッセージで定義されているようにNetKeyIndexフィールドを設定し、Statusフィールドをステータスコード(表4.118で定義)に設定したConfig Key Refresh Phase Statusメッセージで応答します。

エレメントが正常に処理された(つまり、表4.118にリストされているエラー状態が発生していない)Config Key Refresh Phase Setメッセージを受信したとき、表4.18に従って、キー更新フェーズの状態を設定し、Phaseフィールドを現在のKeyRefresh Phase状態に設定し、受信メッセージで定義されているようにNetKeyIndexフィールドを設定し、StatusフィールドをSuccessに設定したConfig Key Refresh Phase Statusメッセージで応答します。

エレメントが正常に処理されない(つまり、表4.118にリストされているエラー状態のいずれかが発生している)Config Key Refresh Phase Setメッセージを受信したとき、 Phaseフィールドを0x00に設定し、受信メッセージで定義されているようにNetKeyIndexフィールドを設定し、ステータスフィールドをステータスコード(表4.118で定義)に設定したConfig Key Refresh Phase Statusメッセージで応答します。

4.4.1.2.15 Heartbeat Publication state

エレメントがConfig Heartbeat Publication Getメッセージを受信すると、識別されたハートビートパブリケーション状態の現在の値を含む、StatusフィールドをSuccessに設定し、DestinationフィールドをHeartbeat Publication Destination状態の値に設定し、CountLogフィールドをHeartbeat PublicationCount状態のHearbeat Publication CountLog表現に設定し、PeriodLogフィールドをハートビート発行期間ログ状態の値に設定し、TTLフィールドをHeartbeatPublicationTTL状態の値に設定し、Featureフィールドをハートビートパブリケーション機能の状態の値に設定し、NetKeyインデックスをハートビートパブリケーションのNetKeyインデックス状態の値に設定したConfig Heartbeat Publication Statusメッセージで応答します。宛先が未割り当てアドレスに設定されている場合、CountLog、PeriodLog、およびTTLフィールドの値は0x00に設定されます。

エラー条件ステータスコード名
(表4.108を参照)
NetKeyIndexで識別されるキーは、
このデバイスでは無効です
無効なNetKeyインデックス
表4.119:ハートビートパブリケーション状態のエラー条件

エレメントが正常に処理されない(つまり、表4.119にリストされているエラー状態のいずれかが発生している)Config Heartbeat Publication Setメッセージを受信したとき、 Destination、CountLog、PeriodLog、およびTTLフィールドを着信メッセージの対応するフィールドの値に設定し、Statusフィールドをステータスコード(表4.119で定義)に設定したConfig Heartbeat Publication Statusメッセージで応答します。

エレメントが正常に処理された(つまり、表4.119にリストされているエラー状態が発生していない)Config Heartbeat Publication Setメッセージを受信したとき、識別されたハートビートパブリケーション状態を対応するフィールド値(表4.120で定義)に更新し、ハートビートパブリケーションカウント状態を対応する値(表4.121で定義)に更新し、StatusフィールドをSuccessに設定し、Destination、CountLog、PeriodLog、TTL、Features、およびNetKeyIndexフィールドに、HeartbeatPublication状態の対応するフィールドの現在の値を設定したConfig Heartbeat Publication Status message,メッセージで応答します。

状態メッセージ
フィールド
Heartbeat Publication DestinationDestination
Heartbeat Publication Period LogPeriodLog
Heartbeat Publication TTLTTL
Heartbeat Publication FeaturesFeatures
Heartbeat Publication NetKey IndexNetKeyIndex
表4.120:ハートビートパブリケーションの状態からメッセージフィールドへのマッピング
CountLog
フィールド値
Heartbeat Publication
Count State
0x000x0000
0x01 – 0x112(CountLog-1)
0x12 – 0xFE禁止
0xFF0xFFFF
表4.121:CountLogフィールド値からハートビートパブリケーションカウント状態へのマッピング
4.4.1.2.16 Heartbeat Subscription state

エレメントがConfig Heartbeat Subscription Getメッセージを受信すると、StatusフィールドをSuccessに設定し、Source、Destination、PeriodLog、CountLog、MinHops、およびMaxHopsフィールドに、識別されたハートビートサブスクリプションの状態の対応するフィールド(表4.122で定義)の現在の値を設定したConfig Heartbeat Subscription Statusメッセージで応答します。ハートビートサブスクリプションの送信元状態またはハートビートサブスクリプションの宛先状態が未割り当てアドレスに設定されている場合、Config Heartbeat Subscription Statusメッセージの送信元フィールドと宛先フィールドの値は、未割り当てアドレスに設定され、CountLog、PeriodLog、 MinHopsフィールドとMaxHopsフィールドは0x00に設定する必要があります。

エレメントがConfig Heartbeat Subscription Setメッセージを受信すると、識別されたハートビートサブスクリプションの状態を対応するフィールド値(表4.122で定義)に更新し、StatusフィールドをSuccessに設定し、Source、Destination、PeriodLog、MinHops、およびMaxHopsフィールドを次のように設定したConfig Heartbeat Subscription Statusメッセージで応答します。ハートビートサブスクリプション状態の対応するフィールドの現在の値およびCountLogフィールドをハートビートサブスクリプションカウントログ状態のハートビートサブスクリプションカウントログ表現に設定します。SourceまたはDestinationフィールドが割り当てられていないアドレスに設定されている場合、またはPeriodLogフィールドが0x00に設定されている場合、受信したハートビートメッセージの処理を無効にし、ハートビートサブスクリプションの送信元の状態を未割り当てアドレスに設定し、ハートビートのサブスクリプションの宛先の状態を未割り当てアドレスに設定します。 ハートビートサブスクリプションのMinHops状態は変更されず、ハートビートサブスクリプションのMaxHops状態は変更されず、 ハートビートサブスクリプションカウントの状態は変更されません。Sourceフィールドがユニキャストアドレスに設定され、Destinationフィールドがユニキャストアドレスまたはグループアドレスに設定され、PeriodLogフィールドがゼロ以外の値に設定されている場合、受信したハートビートメッセージの処理を有効にし、ハートビートサブスクリプションのMinHops状態を0x7Fに設定し、ハートビートサブスクリプションのMaxHops状態を0x00に設定し、ハートビートサブスクリプションカウントの状態を0x0000に設定します。

状態メッセージ
フィールド
Heartbeat Subscription SourceSource
Heartbeat Subscription DestinationDestination
Heartbeat Subscription Period LogPeriodLog
Heartbeat Subscription Min HopsMinHops
Heartbeat Subscription Max HopsMaxHops
表4.122:ハートビートサブスクリプションの状態からメッセージフィールドへのマッピング

注:LPNノードを宛先としてハートビートを使用すると、フレンドキューがオーバーフローする可能性があるためお勧めしません。 ただし、サブスクライブエレメントが低電力ノード内にある場合は、フレンドサブスクリプションリストを更新する必要があります(セクション3.6.6.4.3を参照)。

4.4.1.2.17 PollTimeout List state

エレメントがConfig Low Power Node PollTimeout Getメッセージを受信すると、LPNAddressフィールドの値で識別される現在のPollTimeoutList状態要素に設定されたPollTimeoutフィールドを含むConfig Low Power Node PollTimeout Statusメッセージで応答します。

4.4.1.2.18 Network Transmit state

エレメントがConfig Network Transmit Getメッセージを受信すると、NetworkTransmitCountフィールドが現在のネットワーク送信カウント状態に設定され、NetworkTransmitIntervalStepsフィールドが現在のネットワーク送信間隔ステップ状態に設定されたConfig Network Transmit Statusメッセージで応答する必要があります。

エレメントがConfig Network Transmit Setメッセージを受信すると、ネットワーク送信カウント状態をNetworkTransmitCountフィールドの値に設定し、ネットワーク送信間隔ステップ状態をメッセージのNetworkTransmitIntervalStepsフィールドの値に設定し、NetworkTransmitCountフィールドが現在のネットワーク送信カウント状態に設定し、NetworkTransmitIntervalStepsフィールドが現在のネットワーク送信間隔ステップ状態に設定したConfig Network Transmit Statusメッセージで応答します。

4.4.1.3 Error handling behavior

ノードがノードの永続的なメモリやストレージに情報を保存することを要求するメッセージを受信し成功しなかった場合、ノードはステータスコードの値としてストレージ障害を使用する必要があります。これは、永続的な状況または一時的な状況のいずれかである可能性があります。

特定の状態に対して定義されたエラー条件に対応しないエラーが発生した場合、ノードはステータスコードの値として未指定エラーを使用する必要があります(表4.108を参照)。

タイトルとURLをコピーしました