Appendix A. Formatting Guidelines for Options (オプションの書式設定ガイドライン)
このセクションでは、ホップバイホップオプションヘッダー (Hop-by-Hop Options Header) および宛先オプションヘッダー (Destination Options Header) 内で使用されるオプションの推奨書式設定を再確認し、拡張します。これらのガイドラインは、一般的な実装技術に基づいており、すべてのオプションが同じコードで処理できるようにすることを目的としています。
A.1 オプションの配置
オプションは、次のように配置されるべきです (SHOULD):
- オプションタイプ (Option Type) フィールドの後に、オプションデータ長 (Option Data Length) フィールドが続きます。
- オプションデータ (Option Data) は、オプションデータ長フィールドによって指定された長さです。
- オプション全体の長さは、8の倍数 (8オクテット境界) になるように、必要に応じてパディングオプション (Pad1 または PadN) を使用します。
A.2 オプションの順序
オプションは任意の順序で表示できます。ただし、次の例外があります:
- ルーターアラートオプション (Router Alert Option) [RFC2711] が存在する場合は、最初に表示されるべきです (SHOULD)。
- Pad1 および PadN オプションは、アライメント目的でのみ使用されるべきです (SHOULD)。
A.3 オプションのアライメント要件
IPv6オプションは、次のアライメント要件を満たすべきです (SHOULD):
xn + y
ここで:
xは、アライメント境界 (バイト単位)。通常、1、2、4、または8です。nは、0以上の整数です。yは、0から x-1 の範囲のオフセット (バイト単位) です。
アライメント要件は、オプションデータの最初のオクテットの位置に適用されます (オプションタイプおよびオプションデータ長フィールドの後)。
例:
2nは、2バイト境界にアライメントされることを意味します (偶数オフセット)。4n + 2は、4バイト境界 + 2バイトオフセットにアライメントされることを意味します。8nは、8バイト境界にアライメントされることを意味します。
実装者は、オプションデータがこれらのアライメント要件を満たすように、適切な量の Pad1 または PadN オプションを挿入すべきです (SHOULD)。