6. Diff-Serv サポートのための LDP 拡張
MPLS アーキテクチャは、単一のラベル配布プロトコルを仮定しない。[LDP] は、ラベル配布プロトコルおよび MPLS ネットワークにおけるラベルスイッチパス (LSP) の確立のためのその使用を定義する。本節は、MPLS ネットワークで差別化サービスをサポートする LSP を確立するための LDP への拡張を規定する。
本文書で 1 つの新しい LDP TLV が定義される。
- Diff-Serv TLV
この TLV の詳細な記述は以下で提供する。
新しい Diff-Serv TLV は LDP に関してオプションである。本仕様に準拠して事前設定 EXP<-->PHB mapping' を使用する E-LSP をサポートする Diff-Serv 対応 LSR は、Diff-Serv TLV をサポートし得る (MAY)。本仕様に準拠してシグナリングされた EXP<-->PHB mapping' を使用する E-LSP をサポートする Diff-Serv 対応 LSR は、Diff-Serv TLV をサポートしなければならない (MUST)。本仕様に準拠して L-LSP をサポートする Diff-Serv 対応 LSR は、Diff-Serv TLV をサポートしなければならない (MUST)。
6.1. Diff-Serv TLV
Diff-Serv TLV は次の形式を持つ。
E-LSP 用の Diff-Serv TLV:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F| Diff-Serv (0x0901) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|T| Reserved | MAPnb |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAP (1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAP (MAPnb) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
T (1 bit): LSP タイプ。これは E-LSP に対して 0 に設定される
-
Reserved (27 bits): このフィールドは予約されている。送信時にゼロに設定しなければならず、受信時には無視しなければならない。
-
MAPnb (4 bits): DIFFSERV オブジェクトに含まれる MAP エントリの数を示す。これは 1 から 8 までの任意の値に設定できる。
-
MAP (32 bits): 各 MAP エントリは、1 つの EXP フィールド値と 1 つの PHB の間のマッピングを定義する。MAP エントリは次の形式を持つ。
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | EXP | PHBID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
Reserved (13 bits): このフィールドは予約されている。送信時にゼロに設定しなければならず、受信時には無視しなければならない。
-
EXP (3 bits): このフィールドは、この MAP エントリで定義される `EXP<-->PHB mapping' のための EXP フィールドの値を含む。
-
PHBID (16 bits): このフィールドは、この MAP エントリで定義される `EXP<-->PHB mapping' のための PHB の PHBID を含む。PHBID は [PHBID] で規定されているとおりにエンコードされる。
L-LSP 用の Diff-Serv TLV:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F| Type = PSC (0x0901) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|T| Reserved | PSC |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
T (1 bit): LSP タイプ。これは L-LSP に対して 1 に設定される
-
Reserved (15 bits): このフィールドは予約されている。送信時にゼロに設定しなければならず、受信時には無視しなければならない。
-
PSC (16 bits): PSC は、LSP によってサポートされる PHB スケジューリングクラスを示す。PSC は [PHBID] で規定されているとおりにエンコードされる。
6.2. Diff-Serv ステータスコード値
Status TLV の Status Code フィールドに対して次の値が定義される。
Status Code E Status Data
Unexpected Diff-Serv TLV 0 0x01000001
Unsupported PHB 0 0x01000002
Invalid `EXP<-->PHB mapping' 0 0x01000003
Unsupported PSC 0 0x01000004
Per-LSP context allocation failure 0 0x01000005
6.3. Diff-Serv 関連 LDP メッセージ
6.3.1. Label Request メッセージ
Label Request メッセージの形式は、Diff-Serv TLV をオプションで含むように次のとおり拡張される。
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Label Request (0x0401) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FEC TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Diff-Serv TLV (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6.3.2. Label Mapping メッセージ
Label Mapping メッセージの形式は、Diff-Serv TLV をオプションで含むように次のとおり拡張される。
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Label Mapping (0x0400) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FEC TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Diff-Serv TLV (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6.3.3. Label Release メッセージ
Label Release メッセージの形式は、Status TLV をオプションで含むように次のとおり拡張される。
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Label Release (0x0403) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FEC TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label TLV (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Status TLV (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6.3.4. Notification メッセージ
Notification メッセージの形式は、Diff-Serv TLV をオプションで含むように次のとおり拡張される。
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Notification (0x0001) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Status TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Optional Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Diff-Serv TLV (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6.4. Diff-Serv TLV の処理
6.4.1. Downstream Unsolicited モードでの Diff-Serv TLV の処理
本節は、Downstream Unsolicited モードが使用される場合の運用を記述する。
事前設定 `EXP<-->PHB mapping' を使用する E-LSP のためにラベルを割り当てる場合、下流の Diff-Serv LSR は Diff-Serv TLV なしの Label Mapping メッセージを発行する。
シグナリングされた `EXP<-->PHB mapping' を使用する E-LSP のためにラベルを割り当てる場合、下流の Diff-Serv LSR は、この E-LSP 上でサポートされる各 EXP 値について 1 つの MAP エントリを含む E-LSP 用の Diff-Serv TLV を持つ Label Mapping メッセージを発行する。
L-LSP のためにラベルを割り当てる場合、下流の Diff-Serv LSR は、この L-LSP 上でサポートされる PHB スケジューリングクラス (PSC) を含む L-LSP 用の Diff-Serv TLV を持つ Label Mapping メッセージを発行する。
ラベルセットアップが成功したと仮定すると、下流および上流の LSR は次を行わなければならない。
-
前の節で規定されているとおりに、確立された LSP に関連付けられた Diff-Serv コンテキストを ILM/FTN で更新する(入力および出力ラベル)、
-
この NHLFE(出力ラベル)に対して必要な Diff-Serv 転送処理(スケジューリングおよび廃棄動作)をインストールする。
複数の Diff-Serv TLV を持つ Label Mapping メッセージを受信する上流の Diff-Serv LSR は、最初の 1 つのみ意味があるものと見なす。LSR は後続の Diff-Serv TLV を無視し、転送してはならない。
E-LSP 用の Diff-Serv TLV を持つ Label Mapping メッセージを受信し、MAP エントリの 1 つまたは複数にエンコードされた特定の PHB をサポートしない上流の Diff-Serv LSR は、Label TLV および Status Code が `Unsupported PHB' の Status TLV を含む Label Release メッセージを送信することにより、マッピングを拒否しなければならない。
E-LSP 用の Diff-Serv TLV を持つ Label Mapping メッセージを受信し、シグナリングされた EXP<-->PHB mapping' が無効であると判断する上流の Diff-Serv LSR は、Label TLV および Status Code が Invalid EXP<-->PHB mapping' の Status TLV を含む Label Release メッセージを送信することにより、マッピングを拒否しなければならない。E-LSP 用の DIFFSERV オブジェクトでシグナリングされた `EXP<-->PHB mapping' は、次の場合に無効である。
-
MAPnb フィールドが 1 から 8 の範囲にない、または
-
所与の EXP 値が複数の MAP エントリに現れる、または
-
PHBID エンコーディングが無効である
サポートされない PSC 値を含む L-LSP 用の Diff-Serv TLV を持つ Label Mapping メッセージを受信する上流の Diff-Serv LSR は、Label TLV および Status Code が `Unsupported PSC' の Status TLV を含む Label Release メッセージを送信することにより、マッピングを拒否しなければならない。
6.4.2. Downstream on Demand モードでの Diff-Serv TLV の処理
本節は、Downstream on Demand モードが使用される場合の運用を記述する。
事前設定 `EXP<-->PHB mapping' を使用する E-LSP のためにラベルを要求する場合、上流の Diff-Serv LSR は Diff-Serv TLV なしの Label Request メッセージを送信する。
シグナリングされた `EXP<-->PHB mapping' を使用する E-LSP のためにラベルを要求する場合、上流の Diff-Serv LSR は、この E-LSP 上でサポートされる各 EXP 値について 1 つの MAP エントリを含む E-LSP 用の Diff-Serv TLV を持つ Label Request メッセージを送信する。
L-LSP のためにラベルを要求する場合、上流の Diff-Serv LSR は、この L-LSP 上でサポートされる PSC を含む L-LSP 用の Diff-Serv TLV を持つ Label Request メッセージを送信する。
E-LSP または L-LSP のための Label Request メッセージに応答して Label Mapping メッセージを送信する下流の Diff-Serv LSR は、この Label Mapping メッセージに Diff-Serv TLV を含めてはならない。ラベルセットアップが成功したと仮定すると、下流および上流の LSR は次を行わなければならない。
-
前の節で規定されているとおりに、確立された LSP に関連付けられた Diff-Serv コンテキストを ILM/FTN で更新する(入力および出力ラベル)、
-
この NHLFE(出力ラベル)に対して必要な Diff-Serv 転送処理(スケジューリングおよび廃棄動作)をインストールする。
その Label Request メッセージに応答して Diff-Serv TLV を含む Label Mapping メッセージを受信する上流の Diff-Serv LSR は、Label TLV および Status Code が `Unexpected Diff-Serv TLV' の Status TLV を含む Label Release メッセージを送信することにより、ラベルマッピングを拒否しなければならない。
複数の Diff-Serv TLV を持つ Label Request メッセージを受信する下流の Diff-Serv LSR は、最初の 1 つのみ意味があるものと見なす。LSR は後続の Diff-Serv TLV を無視し、転送してはならない。
E-LSP 用の Diff-Serv TLV を持つ Label Request メッセージを受信し、MAP エントリの 1 つ(または複数)にエンコードされた特定の PHB をサポートしない下流の Diff-Serv LSR は、Status Code が `Unsupported PHB' の Status TLV を含む Notification メッセージを送信することにより、要求を拒否しなければならない。
E-LSP 用の Diff-Serv TLV を持つ Label Request メッセージを受信し、シグナリングされた EXP<-->PHB mapping' が無効であると判断する下流の Diff-Serv LSR は、Status Code が Invalid EXP<-->PHB mapping' の Status TLV を含む Notification メッセージを送信することにより、要求を拒否しなければならない。E-LSP 用の DIFFSERV TLV でシグナリングされた `EXP<-->PHB mapping' は、次の場合に無効である。
-
MAPnb フィールドが 1 から 8 の範囲にない、または
-
所与の EXP 値が複数の MAP エントリに現れる、または
-
PHBID エンコーディングが無効である
サポートされない PSC 値を含む L-LSP 用の Diff-Serv TLV を持つ Label Request メッセージを受信する下流の Diff-Serv LSR は、Status Code が `Unsupported PSC' の Status TLV を含む Notification メッセージを送信することにより、要求を拒否しなければならない。
Label Request メッセージ内の Diff-Serv TLV タイプを認識するが、必要な LSP ごとのコンテキスト情報を割り当てることができない下流の Diff-Serv LSR は、Status Code が `Per-LSP context allocation failure' の Status TLV を含む Notification メッセージを送信することにより、要求を拒否しなければならない。
Label Request メッセージ内の Diff-Serv TLV タイプを認識し、要求された PSC をサポートするが、他の理由で(たとえば利用可能なラベルがない)ラベル要求を満たせない下流の Diff-Serv LSR は、既存の LDP 手順 [LDP] に従って Notification メッセージを送信しなければならない(たとえば `No Label Resource' Status Code を持つ)。この Notification メッセージは、要求された Diff-Serv TLV を含まなければならない。
6.5. Diff-Serv TLV の非処理
Diff-Serv TLV タイプを認識しない LSR は、Diff-Serv TLV を含む Label Request メッセージまたは Label Mapping メッセージの受信時に、U ビットおよび F ビットが 0 に設定された未知の TLV について [LDP] で規定された手順に従って動作しなければならない。すなわち、メッセージを無視し、`Unknown TLV' Status を持つ Notification メッセージを返さなければならない。
6.6. 帯域情報
帯域情報はまた、たとえばトラフィックエンジニアリングの目的で、E-LSP および L-LSP の確立時に、[MPLS CR LDP] で記述されている Traffic Parameters TLV を使用してシグナリングされ得る。