メインコンテンツまでスキップ

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)。