6.7. RPL Control Message Options (RPL コントロールメッセージオプション)
6.7.1. RPL Control Message Option Generic Format (RPL コントロールメッセージオプションの共通フォーマット)
すべての RPL コントロールメッセージオプションは、以下のフォーマットに従います:
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - -
| Option Type | Option Length | Option Data
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - -
図 19:RPL オプションの共通フォーマット
- Option Type (オプションタイプ): 8ビット。オプションのタイプを識別します。
- Option Length (オプション長): 8ビット。Option Type と Option Length フィールド自体を含まない、オプションの長さをオクテット単位で示します。
- Option Data (オプションデータ): 可変長。オプション固有のデータ。
RPL は、現在以下のオプションを定義しています:
- 0x00 Pad1
- 0x01 PadN
- 0x02 DAG Metric Container
- 0x03 Route Information
- 0x04 DODAG Configuration
- 0x05 RPL Target
- 0x06 Transit Information
- 0x07 Solicited Information
- 0x08 Prefix Information
- 0x09 RPL Target Descriptor
6.7.2. Pad1
Pad1 オプションは、オプションの間に1オクテットのパディングを挿入するために使用されます。
+-+-+-+-+-+-+-+-+
| Type = 0x00 |
+-+-+-+-+-+-+-+-+
図 20:Pad1 オプションのフォーマット
注:Pad1 オプションには、Option Length フィールドも Option Data フィールドも存在しません。
6.7.3. PadN
PadN オプションは、オプションの間に2オクテット以上のパディングを挿入するために使用されます。
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - -
| Type = 0x01 | Option Length | Option Data
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - -
図 21:PadN オプションのフォーマット
- n オクテットのパディングに対して、Option Length フィールドには n-2 を設定します。Option Data は n-2 オクテットのゼロで構成されます。
6.7.4. DAG Metric Container (DAG メトリックコンテナ)
DAG Metric Container オプションは、パスのメトリックや制約を転送するために使用されます。
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - -
| Type = 0x02 | Option Length | Metric Data
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - -
図 22:DAG Metric Container オプションのフォーマット
DAG Metric Container オプションのデータ部は、1つ以上の離散的な DAG メトリックオブジェクトの集合で構成されます。DAG メトリックオブジェクトのフォーマットは [RFC6551] で定義されています。
6.7.5. Route Information (ルート情報)
Route Information オプションは、RPL ルーティングドメインを介して到達可能なプレフィックスをアドバタイズするために DIO メッセージで使用されます。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x03 | Option Length | Prefix Length |Res|Prf|Res|Res|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Route Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. Prefix (可変長, 0, 8, または 16 オクテット) .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
図 23:Route Information オプションのフォーマット
- Option Length (オプション長): 可変長。
- Prefix Length (プレフィックス長): 8ビット。プレフィックスのビット数。
- Prf (Route Preference): 3ビット。[RFC4191] で定義されているルート優先度。
- Route Lifetime (ルート生存期間): 32ビット無符号整数。このプレフィックスがルートとして有効な期間(秒単位)。0xFFFFFFFF は無限大を意味します。
- Prefix (プレフィックス): 可変長。プレフィックスのデータ。
6.7.6. DODAG Configuration (DODAG 設定)
DODAG Configuration オプションは、DIO で DODAG 固有の設定情報を配布するために使用されます。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x04 | Option Length |Flags|A| PCS | DIOIntDoubl |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DIOIntMin | DIORedun | MaxRankIncrease |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MinHopRankIncrease | OCP | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Default Lifetime | Lifetime Unit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
図 24:DODAG Configuration オプションのフォーマット
- Flags (フラグ): 4ビット。将来の使用のために予約済み。
- A (Authentication): 1ビット。認証が有効かどうか。
- PCS (Path Control Size): 3ビット。
- DIOIntDoubl: 8ビット。DIO インターバルの最大値。
- DIOIntMin: 8ビット。DIO インターバルの最小値。
- DIORedun: 8ビット。DIO の冗長定数。
- MaxRankIncrease: 16ビット。ランクの最大増加量。
- MinHopRankIncrease: 16ビット。1ホップあたりのランクの最小増加量。
- OCP (Objective Code Point): 16ビット。使用される目的関数の識別子。
- Default Lifetime (デフォルト生存期間): 8ビット。
- Lifetime Unit (生存期間の単位): 16ビット。
6.7.7. RPL Target (RPL ターゲット)
RPL Target オプションは、DAO メッセージでターゲットのプレフィックスをアドバタイズするために使用されます。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x05 | Option Length | Flags | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. Target Prefix (可変長) .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
図 25:RPL Target オプションのフォーマット
- Flags (フラグ): 8ビット。予約済み。
- Prefix Length (プレフィックス長): 8ビット。
- Target Prefix (ターゲットプレフィックス): 可変長。
6.7.8. Transit Information (遷移情報)
Transit Information オプションは、DAO メッセージでパスの属性を伝達するために使用されます。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x06 | Option Length |E| Flags | Path Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Path Sequence | Path Lifetime | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| |
. Parent Address (オプション) .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
図 26:Transit Information オプションのフォーマット
- E (External): 1ビット。
- Flags: 7ビット。
- Path Control: 8ビット。
- Path Sequence: 8ビット。
- Path Lifetime: 8ビット。
- Parent Address: 128ビット (オプション)。
6.7.9. Solicited Information (要請情報)
Solicited Information オプションは、DIS メッセージで特定の DODAG からの DIO を要請するために使用されます。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x07 | Option Length | RPLInstanceID |V|I|D| Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. DODAGID (16 オクテット) .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
図 27:Solicited Information オプションのフォーマット
- V (Version): 1ビット。
- I (Instance): 1ビット。
- D (DODAGID): 1ビット。
6.7.10. Prefix Information (プレフィックス情報)
Prefix Information オプションは、IPv6 Neighbor Discovery [RFC4861] で定義されているものと同じですが、RPL での使用に合わせて一部のフィールドが再定義されています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x08 | Option Length | Prefix Length |L|A|R| Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Valid Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preferred Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. Prefix .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
図 28:Prefix Information オプションのフォーマット
6.7.11. RPL Target Descriptor (RPL ターゲット記述子)
RPL Target Descriptor オプションは、RPL Target オプションを修飾するために使用されます。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x09 | Option Length | Descriptor |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Descriptor (続き) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
図 29:RPL Target Descriptor オプションのフォーマット
- Descriptor: 32ビット無符号整数。不透明なデータ。