5. Diff-Serv サポートのための RSVP 拡張
MPLS アーキテクチャは、単一のラベル配布プロトコルを仮定しない。[RSVP_MPLS_TE] は、MPLS ネットワークで LSP を確立するための RSVP への拡張を定義する。本節は、MPLS ネットワークで差別化サービスをサポートする LSP を確立するために、[RSVP_MPLS_TE] で定義されたものを超える RSVP への拡張を規定する。
5.1. Diff-Serv 関連 RSVP メッセージ形式
本文書で 1 つの新しい RSVP オブジェクトが定義される。DIFFSERV オブジェクトである。このオブジェクトの詳細な記述は以下で提供する。この新しいオブジェクトは Path メッセージに適用可能である。本仕様は、[RSVP_MPLS_TE] に従って LSP トンネルを確立するために使用され、したがって C-Type が LSP_TUNNEL_IPv4 に等しい Session オブジェクトを含み、LABEL_REQUEST オブジェクトを含む Path メッセージにおける DIFFSERV オブジェクトの使用のみを定義する。
RSVP 経由での LSP トンネルの確立のサポートのために [RSVP_MPLS_TE] で定義された制限は、Diff-Serv をサポートする LSP トンネルの確立にも適用可能である。たとえば、ユニキャスト LSP のみがサポートされ、マルチキャスト LSP は今後の課題である。
この新しい DIFFSERV オブジェクトは RSVP に関してオプションであるため、MPLS LSP セットアップに関係しない一般的な RSVP 実装はこのオブジェクトをサポートする必要はない。
DIFFSERV オブジェクトは、[RSVP_MPLS_TE] で定義された LSP トンネルのサポートに関してオプションである。本仕様に準拠して事前設定 EXP<-->PHB mapping' を使用する E-LSP をサポートする Diff-Serv 対応 LSR は、DIFFSERV オブジェクトをサポートし得る (MAY)。本仕様に準拠してシグナリングされた EXP<-->PHB mapping' を使用する E-LSP をサポートする Diff-Serv 対応 LSR は、DIFFSERV オブジェクトをサポートしなければならない (MUST)。本仕様に準拠して L-LSP をサポートする Diff-Serv 対応 LSR は、DIFFSERV オブジェクトをサポートしなければならない (MUST)。
5.1.1. Path メッセージ形式
Path メッセージの形式は次のとおりである。
<Path Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION> <RSVP_HOP>
<TIME_VALUES>
[ <EXPLICIT_ROUTE> ]
<LABEL_REQUEST>
[ <SESSION_ATTRIBUTE> ]
[ <DIFFSERV> ]
[ <POLICY_DATA> ... ]
[ <sender descriptor> ]
<sender descriptor> ::= <SENDER_TEMPLATE> <SENDER_TSPEC>
[ <ADSPEC> ]
[ <RECORD_ROUTE> ]
5.2. DIFFSERV オブジェクト
DIFFSERV オブジェクトの形式を以下に示す。現在 2 つの可能な C_Type がある。タイプ 1 は E-LSP 用の DIFFSERV オブジェクトである。タイプ 2 は L-LSP 用の DIFFSERV オブジェクトである。
5.2.1. E-LSP 用の DIFFSERV オブジェクト:
class = 65, C_Type = 1
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 | MAPnb |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAP (1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// ... //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAP (MAPnb) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
Reserved (28 bits): このフィールドは予約されている。送信時にゼロに設定しなければならず、受信時には無視しなければならない。
-
MAPnb (4 bits): DIFFSERV オブジェクトに含まれる MAP エントリの数を示す。これは 0 から 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] で規定されているとおりにエンコードされる。
5.2.2. L-LSP 用の DIFFSERV オブジェクト:
class = 65, C_Type = 2
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 | PSC |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
Reserved (16 bits): このフィールドは予約されている。送信時にゼロに設定しなければならず、受信時には無視しなければならない。
-
PSC (16 bits): PSC は、LSP によってサポートされる PHB スケジューリングクラスを示す。PSC は [PHBID] で規定されているとおりにエンコードされる。
5.3. DIFFSERV オブジェクトの処理
RSVP で LSP トンネルを確立するために、送信側は [RSVP_MPLS_TE] に従って、セッションタイプが LSP_Tunnel_IPv4 で、LABEL_REQUEST オブジェクトを持つ Path メッセージを作成する。
事前設定 `EXP<-->PHB mapping' を使用する E-LSP トンネルを RSVP で確立するために、送信側は次の Path メッセージを作成する。
-
セッションタイプが LSP_Tunnel_IPv4 で、
-
LABEL_REQUEST オブジェクトを持ち、
-
DIFFSERV オブジェクトを持たない。
事前設定 `EXP<-->PHB mapping' を使用する E-LSP トンネルを RSVP で確立するために、送信側は代替として次の Path メッセージを作成し得る (MAY)。
-
セッションタイプが LSP_Tunnel_IPv4 で、
-
LABEL_REQUEST オブジェクトを持ち、
-
MAP エントリを含まない E-LSP 用の DIFFSERV オブジェクトを持つ。
シグナリングされた `EXP<-->PHB mapping' を使用する E-LSP トンネルを RSVP で確立するために、送信側は次の Path メッセージを作成する。
-
セッションタイプが LSP_Tunnel_IPv4 で、
-
LABEL_REQUEST オブジェクトを持ち、
-
この E-LSP 上でサポートされる各 EXP 値について 1 つの MAP エントリを含む E-LSP 用の DIFFSERV オブジェクトを持つ。
L-LSP トンネルを RSVP で確立するために、送信側は次の Path メッセージを作成する。
-
セッションタイプが LSP_Tunnel_IPv4 で、
-
LABEL_REQUEST オブジェクトを持ち、
-
この L-LSP 上でサポートされる PHB スケジューリングクラス (PSC) を含む L-LSP 用の DIFFSERV オブジェクトを持つ。
Path メッセージが複数の DIFFSERV オブジェクトを含む場合、最初の 1 つのみ意味があり、後続の DIFFSERV オブジェクトは無視され、転送されてはならない。
パス沿いの各 LSR は、存在するとき、DIFFSERV オブジェクトをその path state block に記録する。
DIFFSERV オブジェクトが Path メッセージに存在しない場合、LSR はこれを事前設定 `EXP<-->PHB mapping' を使用する E-LSP の要求と解釈するべきである (SHOULD)。ただし、後方互換性のために、Integrated Services Controlled Load または Guaranteed Services など [RSVP_MPLS_TE] で許可される他の非 Diff-Serv サービス品質オプションとの互換性のために、LSR は設定可能な「オーバーライドオプション」をサポートし得る (MAY)。この「オーバーライドオプション」が設定されている場合、LSR は Diff-Serv オブジェクトのない Path メッセージを、そのような非 Diff-Serv サービス品質を持つ LSP の要求と解釈する。
MAP エントリを含まない E-LSP 用の DIFFSERV オブジェクトが Path メッセージに存在する場合、LSR はこれを事前設定 EXP<-->PHB mapping' を使用する E-LSP の要求と解釈しなければならない (MUST)。特に、これにより、「オーバーライドオプション」が設定された LSR が、非 Diff-Serv サービス品質を持つ LSP と同時に、事前設定 EXP<-->PHB mapping' を持つ E-LSP をサポートすることを可能にする。
少なくとも 1 つの MAP エントリを含む E-LSP 用の DIFFSERV オブジェクトが Path メッセージに存在する場合、LSR はこれをシグナリングされた `EXP<-->PHB mapping' を持つ E-LSP の要求と解釈しなければならない (MUST)。
L-LSP 用の DIFFSERV オブジェクトが Path メッセージに存在する場合、LSR はこれを L-LSP の要求と解釈しなければならない (MUST)。
E-LSP または L-LSP の宛先 LSR は、LABEL_REQUEST オブジェクトを含む Path メッセージに応答して、次の Resv メッセージを送信する。
-
LABEL オブジェクトを持ち、
-
DIFFSERV オブジェクトを持たない。
ラベル要求が受け入れられ、ラベルが割り当てられたと仮定すると、Diff-Serv LSR(送信側、宛先、中間ノード)は次を行わなければならない。
-
前の節で規定されているとおりに、確立された LSP に関連付けられた Diff-Serv コンテキストを ILM/FTN で更新する(入力および出力ラベル)、
-
この NHLFE(出力ラベル)に対して必要な Diff-Serv 転送処理(スケジューリングおよび廃棄動作)をインストールする。
DIFFSERV オブジェクトを認識し、DIFFSERV オブジェクトを含むが LABEL_REQUEST オブジェクトを含まない、またはセッションタイプが LSP_Tunnel_IPv4 でない Path メッセージを受信する LSR は、エラーコード Diff-Serv Error' およびエラー値 Unexpected DIFFSERV object' を持つ PathErr を送信側に向けて送信する。これらは以下の第 5.5 節で定義する。
E-LSP 用の DIFFSERV オブジェクトを持つ Path メッセージを受信し、DIFFSERV オブジェクトを認識するが、MAP エントリの 1 つまたは複数にエンコードされた特定の PHB をサポートしない LSR は、エラーコード Diff-Serv Error' およびエラー値 Unsupported PHB' を持つ PathErr を送信側に向けて送信する。これらは以下の第 5.5 節で定義する。
E-LSP 用の DIFFSERV オブジェクトを持つ Path メッセージを受信し、DIFFSERV オブジェクトを認識するが、シグナリングされた EXP<-->PHB mapping' が無効であると判断する LSR は、エラーコード Diff-Serv Error' およびエラー値 Invalid EXP<-->PHB mapping' を持つ PathErr を送信側に向けて送信する。これらは以下の第 5.5 節で定義する。E-LSP 用の DIFFSERV オブジェクトでシグナリングされた EXP<-->PHB mapping' は、次の場合に無効である。
-
MAPnb フィールドが 0 から 8 の範囲にない、または
-
所与の EXP 値が複数の MAP エントリに現れる、または
-
PHBID エンコーディングが無効である。
L-LSP 用の DIFFSERV オブジェクトを持つ Path メッセージを受信し、DIFFSERV オブジェクトを認識するが、PSC フィールドにエンコードされた特定の PSC をサポートしない LSR は、エラーコード Diff-Serv Error' およびエラー値 Unsupported PSC' を持つ PathErr を送信側に向けて送信する。これらは以下の第 5.5 節で定義する。
DIFFSERV オブジェクトを持つ Path メッセージを受信し、DIFFSERV オブジェクトを認識するが、必要な LSP ごとの Diff-Serv コンテキストを割り当てることができない LSR は、エラーコード "Diff-Serv Error" およびエラー値 "Per-LSP context allocation failure" を持つ PathErr を送信する。これらは以下の第 5.5 節で定義する。
Diff-Serv LSR は、本節ですでに議論した理由以外の理由でラベル要求が受け入れられない状況を、[RSVP_MPLS_TE] に従って処理しなければならない (MUST)(たとえば、アドミッション制御によって予約が拒否された、ラベルを関連付けられない、など)。
5.4. DIFFSERV オブジェクトの非サポート
DIFFSERV オブジェクトの Class-Num を認識しない LSR は、形式が 0bbbbbbb である未知の Class-Num について [RSVP] で規定された手順に従って動作しなければならない (MUST)。すなわち、エラーコード `Unknown object class' を持つ PathErr を送信側に向けて送信しなければならない。
DIFFSERV オブジェクトの Class-Num を認識するが DIFFSERV オブジェクトの C-Type を認識しない LSR は、未知の C-type について [RSVP] で規定された手順に従って動作しなければならない。すなわち、エラーコード `Unknown object C-Type' を持つ PathErr を送信側に向けて送信しなければならない。
どちらの状況でも、これによりパスセットアップは失敗する。送信側は、L-LSP を確立できないことを管理に通知するべきであり、DIFFSERV オブジェクトなしで LSP 確立を再試行するアクションを取る可能性がある(たとえば、フォールバック戦略として事前設定 `EXP<-->PHB mapping' を持つ E-LSP の使用を試みる)。
5.5. Diff-Serv のためのエラーコード
上記の手順では、特定のエラーは Diff-Serv Error' として報告されなければならない。Diff-Serv Error' エラーコードの値は 27 である。
次は Diff-Serv Error のエラー値を定義する。
Value Error
1 Unexpected DIFFSERV object
2 Unsupported PHB
3 Invalid `EXP<-->PHB mapping'
4 Unsupported PSC
5 Per-LSP context allocation failure
5.6. Intserv サービスタイプ
E-LSP および L-LSP の両方は、帯域予約ありまたはなしで確立できる。
-
[RSVP_MPLS_TE] で規定されているとおり、帯域予約ありで E-LSP または L-LSP を確立するために、Int-Serv の Controlled Load サービス(または場合によっては Guaranteed Service)が使用され、帯域は path(それぞれ Resv)メッセージの SENDER_TSPEC(それぞれ FLOWSPEC)でシグナリングされる。
-
[RSVP_MPLS_TE] で規定されているとおり、帯域予約なしで E-LSP または L-LSP を確立するために、[NULL] で規定された Null Service が使用される。
本仕様は、Diff-Serv サービスのみのサポートのための E-LSP および L-LSP の使用を定義することに留意する。Intserv サービス(Controlled Load、Null Service、Guaranteed Service、...)に関係なく、また予約が帯域予約ありであるかなしであるかに関係なく、E-LSP および L-LSP はここで Diff-Serv サービスのサポートのために定義される。MPLS Diff-Serv バックボーン上での Int-Serv サービスのサポートは本仕様の範囲外である。
また、本仕様は [DCLASS] で定義された DCLASS オブジェクトには関与しないことにも留意する。なぜなら、このオブジェクトは MPLS ネットワーク内では関連のない DSCP 値に関する情報を伝達するからである。