CoS WRED ドロップ プロファイルについて
キューに入っているパケットの数が、デバイスが出力キューを空にする能力よりも大きい場合、キューには、輻輳を緩和するためにドロップするパケットを決定する方法が必要です。WRED(Weighted Random Early Detection)ドロップ プロファイルは、出力キューがいっぱいになると、異なるパケット 損失確率(PLP)のパケットドロップ確率を定義します。輻輳が発生している間、出力キューがいっぱいになると、デバイスはドロップ プロファイルによって決定された受信パケットを、出力キューの輻輳が減るまで破棄します。
ドロップの確率に応じて、ドロップ プロファイルはバッファーがいっぱいになる前に多くのパケットをドロップするか、バッファーがほぼ満杯であっても、わずか数パケットしかドロップできません。
サービス クラス(CoS)設定階層のドロップ プロファイル セクションでドロップ プロファイルを設定します。ドロップ プロファイルは、キュー スケジューラ設定でドロップ プロファイル マップを使用して適用します。キュー スケジューラごとに、属性(低、中高、高)を使用して loss-priority
、PLP ごとに個別のドロップ プロファイルを設定できます。これにより、混雑時に異なるPLPのトラフィックをさまざまな方法で処理できます。
損失のないトラフィック(drop 属性を持つ転送クラスに属するトラフィック)にドロップ プロファイルを no-loss
適用しないでください。ロスレス トラフィックは、プライオリティベースのフロー制御(PFC)を使用して輻輳を制御します。
ドロップ プロファイルをサポートするデバイス上のマルチデスティンネーション キューにドロップ プロファイルを適用することはできません。
ドロップ プロファイル パラメータ
ドロップ プロファイルでは、ペアとして機能する 2 つの値を指定します。
塗りつぶしレベル — キューのフルネス値は、キューに割り当てられたメモリの合計量に関連してパケットを格納するために使用されるメモリの割合を表します。
ドロップ確率 — 個々のパケットが破棄される可能性に対応する割合値。
QFX10000 を除くスイッチでのドロップ プロファイルの定義
各ドロップ プロファイルで 2 つのキューの塗りつぶしレベルと 2 つのドロップ確率を設定します。第1の塗りつぶしレベルと最初のドロップ確率は、1つの値ペアと2番目の塗りつぶしレベルと2番目のドロップ確率を作成し、2番目の値ペアを作成します。
最初の塗りつぶしレベルの値は、ドロップ開始点として知られるパケットのドロップを開始するキューのフルネスの割合を指定します。キューがこのフルネス レベルに達するまで、パケットは破棄されません。2 番目の塗りつぶしレベルの値は、すべてのパケットが破棄されるキューのフルネスの割合を指定します。これは、ドロップエンドポイントと呼ばれます。
最初のドロップ確率値は常に 0
(ゼロ)です。これはドロップの開始点とペアになり、キューのフルネス レベルが最初の塗りつぶしレベルに達するまで、パケットがドロップすることを指定します。キューのフルネスがドロップ開始点を超えると、すべてのパケットがドロップすると、キューが 2 番目のフィル レベルを超えるまでパケットがドロップし始めます。2 番目のドロップ確率値(最大ドロップ レート)は、キューのフルネスがドロップ エンドポイントに達したときにパケットを破棄する可能性を指定します。ドロップ開始点からドロップエンドポイントまでキューが満たされると、 図1に示すように、パケットはスムーズなリニアパターン(補間されたグラフと呼ばれる)にドロップします。ドロップエンドポイントが終了すると、すべてのパケットがドロップします。

図 1 の太い線は、サンプル WRED プロファイルのパケット ドロップ特性を示しています。ドロップの開始点では、キューは 30% の塗りつぶしレベルに達します。ドロップエンドポイントでは、キューの塗りつぶしレベルは50%に達し、最大ドロップレートは80パーセントです。
キューの塗りつぶしレベルがドロップ開始点の 30% に達するまで、パケットはドロップしません。キューが 30% の充填レベルに達すると、パケットがドロップし始めます。キューがいっぱいになると、パケットのドロップ率は直線的に増加します。キューがドロップ エンドポイントの 50% に入ると、パケット ドロップ率は最大ドロップ レート 80% まで増加しました。キューの塗りつぶしレベルがドロップ エンドポイントの 50% を超えると、キューの塗りつぶしレベルが 50% を下回るまで、すべてのパケットがドロップします。
QFX10000 スイッチでのドロップ プロファイルの定義
各キューの塗りつぶしレベルは、ドロップ確率とペアになります。キューが異なるレベルに塗り潰されると、ドロップ プロファイルで設定された塗りつぶしレベルに達するたびに、キューは、その塗りつぶしレベルと組み合わせたドロップ確率を、塗りつぶしレベルを超えるキュー内のトラフィックに適用されます。最大 32 組のフィル レベルとドロップ確率を設定して、最大 32 個の差別化ポイントを備えたカスタマイズされたパケット ドロップ確率曲線を作成できます。
パケットは、最初に設定されたキューの充填レベルに達するまで破棄されません。キューが最初の塗りつぶしレベルに達すると、パケットは最初の塗りつぶしレベルと組み合わせて設定されたドロップ確率レートでドロップし始めます。キューが 2 番目の塗りつぶしレベルに達すると、パケットは設定されたドロップ確率レートで 2 番目のフィル レベルと組み合わせてドロップし始めます。このプロセスは、ドロップ プロファイルで設定した塗り潰しレベル/ドロップ確率ペアの数に対して続行されます。
ドロップ プロファイルは、セグメント化されずに補間されます。補間されたドロップ プロファイルは、設定された各フィル レベル間の曲線に沿ってドロップ確率を徐々に高めます。キューが次の塗りつぶしレベルに達すると、ドロップ確率は、その塗りつぶしレベルと組み合わせたドロップ確率に達します。セグメント化されたドロッププロファイルは、あるフィルレベルから「ジャンプ」し、ドロップ確率の設定を段階的に別のレベルに設定します。次の塗りつぶしレベルに達するまで、キューがいっぱいになると、トラフィックのドロップ確率は変わることはありません。
補間の例は、3 つの塗りつぶしレベル/ドロップ確率ペアを持つドロップ プロファイルです。
25%のキュー充填レベルと30%のドロップ確率を組み合わせた
50%のキュー充填レベルと60%のドロップ確率を組み合わせた
75% のキュー・フィル・レベルと 100 パーセントのドロップ確率を組み合わせたもの(75 パーセントのキュー・フィル・レベルを超えるパケットはすべてドロップされます)
キューは、フィル レベルが 25% に達するまでパケットを破棄しません。輻輳が発生している間、キューが 25% を超えて満杯になると、キューは約定レベルを超えるパケットの 30% のレートでパケットをドロップし始めます。
ただし、キューが満杯になるにつれて、30% のドロップ確率でパケットがドロップされるわけではありません。代わりに、キューが 50% のフルネス レベルに満たされるにつれて、ドロップ確率が徐々に増加します。キューが 50% の塗りつぶしレベルに達すると、ドロップ確率は、塗りつぶしレベルの設定済みドロップ確率ペア(60 パーセント)に増加しました。
キューがいっぱいになるにつれて、ドロップ確率は 60% のままではなく、キューがいっぱいになると上昇し続けます。キューが 75% フルの最終塗りつぶしレベルに達すると、ドロップ確率は 100% に上昇し、75% の塗りつぶしレベルを超えるパケットはすべて破棄されます。
デフォルトドロッププロファイル
ドロップ プロファイルを設定してキュー スケジューラに適用しない場合、デバイスは損失のあるトラフィック クラスにデフォルトのドロップ プロファイルを使用します。既定のドロップ プロファイルでは、塗りつぶしレベルが 0% の場合、ドロップ確率は 0% です。塗りつぶしレベルが 100 パーセントの場合、ドロップ確率は 100% です。輻輳が発生している間、パケットがキューに到着するとすぐに、デフォルト プロファイルがパケットのドロップを開始することがあります。
パケット ドロップ方法
パケットがキューの先頭に達すると、デバイスは 0~100 の乱数を計算します。デバイスは、キューの現在の塗りつぶしレベルを使用してドロップ プロファイルに対して乱数をプロットします。乱数がグラフ線を上回ると、キューはパケットをエグレス インターフェイスから送信します。数値がグラフの行を下回ると、デバイスはパケットを破棄します。
QFX10000 を除くスイッチのパケット ドロップの例
ドロップ開始点からドロップ終了点までの直線的なドロップ パターンを作成するには、最小キュー の塗りつぶしレベルから最大キュー の塗りつぶしレベルまでの 8 つのセクション(ステップ)を使用した直線近似を使用して、ドロップ確率が導出されます。塗りつぶしレベルは、最小塗りつぶしレベルから始まり、最大塗りつぶしレベルで終わる 8 つのセクションに均等に分割されます。キューがいっぱいになると、パケットのドロップ率が増加します。パケットドロップの割合は、最大ドロップレートに基づいています。
たとえば、デフォルトのドロップ プロファイル(最大ドロップ レート 100 パーセントを指定)には、8 セクションの直線ドロップ パターンで、各セクションまたはステップで次のドロップ確率があります。
最初のセクション — 最小ドロップ確率は、最大ドロップ レートの 6.25% です。最大ドロップ確率は最大ドロップレートの12.5パーセントです。
2 番目のセクション — 最小ドロップ確率は、最大ドロップ レートの 18.75% です。最大ドロップ確率は、最大ドロップ レートの 25% です。
3 番目のセクション — 最小ドロップ確率は、最大ドロップ レートの 30.25% です。最大ドロップ確率は最大ドロップレートの37.5%です。
第 4 セクション — 最小ドロップ確率は、最大ドロップ レートの 43.75% です。最大ドロップ確率は、最大ドロップ レートの 50% です。
第 5 セクション — 最小ドロップ確率は、最大ドロップ レートの 56.25% です。最大ドロップ確率は、最大ドロップ レートの 62% です。
第 6 セクション — 最小ドロップ確率は、最大ドロップ レートの 68.75% です。最大ドロップ確率は最大ドロップレートの75.5パーセントです。
第 7 セクション — 最小ドロップ確率は最大ドロップ レートの 81.25% です。最大ドロップ確率は最大ドロップレートの87.5%です。
8 番目のセクション — 最小ドロップ確率は最大ドロップ レートの 92.75% です。最大ドロップ確率は、最大ドロップ レートの 100% です。
パケットは、輻輳がない場合でもドロップします。パケットドロップはポートに輻輳が存在するかどうかに関係なく、ドロップの開始点から開始するためです。ドロップ開始点の塗りつぶしレベルが 0% であるため、デフォルトのドロップ プロファイルの例は、最悪の場合のシナリオを表します。パケット ドロップは、キューがパケットの受信を開始したときに開始されます。
ドロップ開始ポイントを 0% を超えるフィル レベルで設定することで、パケットのドロップを開始するタイミングを指定できます。たとえば、ドロップ開始点が 30% のドロップ プロファイルを設定した場合、キューがいっぱいになるまでパケットはドロップされません。ネットワーク トラフィックの状態に適したドロップ プロファイルを設定することをお勧めします。
最小ドロップ レート(常に 0)と最大ドロップ レートの間のギャップが小さい方が、線形ドロップ パターンの各セクションにおける最小ドロップ確率と最大ドロップ確率の間のギャップが小さくなります。デフォルトのドロップ プロファイルは、最小ドロップ レート(0 パーセント)と最大ドロップ レート(100 パーセント)の間の最大ギャップを持ち、各ステップにおける最小ドロップ確率と最大ドロップ確率の間で最も高いギャップを持っています。ドロップ プロファイルの最大ドロップ レートを低く設定すると、最小ドロップ確率と最大ドロップ確率とのギャップが減少します。
プロファイル マップのドロップ
ドロップ プロファイル マップは、スケジューラ設定の一部です。ドロップ プロファイル マップは、ドロップ プロファイルをパケット 損失の優先度にマッピングします。スケジューラーでドロップ・プロファイル・マップを指定すると、ドロップ・プロファイルは、スケジューラ・マップ内のスケジューラーにマップする転送クラス (キュー) に関連付けられます。
キューの損失優先度は CoS 設定階層の分類子セクションで設定し、イングレス インターフェイスの転送クラスに割り当てられたトラフィックに損失優先度が適用されます。
各スケジューラには、複数のドロップ プロファイル マップを使用できます。
輻輳防止
出力キューにドロップ プロファイルを設定すると、輻輳がポート上の他のキューに与える影響を制御できます。ドロップ プロファイルを設定して出力キューにマッピングしない場合、デバイスは損失のあるトラフィックを転送するキューでデフォルトのドロップ プロファイルを使用します。
たとえば、イングレス ポートがトラフィックを複数のエグレス ポートに転送し、少なくとも 1 つのエグレス ポートで輻輳が発生すると、イングレス ポートの輻輳が発生する可能性があります。イングレス ポートの輻輳(イングレス バッファがリソース割り当てを超える)により、エグレス ポートではなくイングレス ポートでフレームがドロップする可能性があります。イングレス ポート フレーム ドロップは、輻輳したエグレス ポートだけでなく、混雑したイングレス ポートがトラフィックを転送するすべてのエグレス ポートに影響を与えます。
転送クラスとno-loss
転送クラスのドロップ プロファイルはfcoe
設定しないでください。FCoE やその他のロスレス トラフィック キューには、ロスレス動作(パケット ドロップ属性でno-loss
設定されたトラフィック キュー)が必要です。プライオリティベースのフロー制御(PFC)を使用して、ロスレス優先度のフレーム 損失を防ぎます。
WRED ドロップ プロファイルの設定と出力キューへの適用
WRED パケット ドロップ プロファイルを設定し、出力キューに適用するには、次の手順に基います。
ドロップ プロファイルを設定します。
QFX10000 以外のスイッチでは、ステートメントを使用します
set class-of-service drop-profiles profile-name interpolate fill-level drop-start-point fill-level drop-end-point drop-probability 0 drop-probability percentage
。QFX10000 スイッチでは、ステートメントを使用します
set class-of-service drop-profiles profile-name interpolate fill-level level1 level2 ... level32 drop-probability probability1 probability2 ... probability32
。塗りつぶしのレベル/ドロップ確率ペアは 2 つ、または 32 ペアを指定できます。
ステートメントを使用して、ドロップ・プロファイルをキュー・スケジューラーにマップします
set class-of-service schedulers scheduler-name drop-profile-map loss-priority (low | medium-high | high) protocol any drop-profile profile-name
。ドロップ プロファイルの名前は、ステップ 1 で設定された WRED プロファイルの名前です。ステップ 2 でドロップ プロファイルに関連付けるスケジューラを、ステートメントを使用して出力キューにマッピングします
set class-of-service scheduler-maps map-name forwarding-class forwarding-class-name scheduler scheduler-name
。転送クラスは、出力キューを識別します。転送クラスはデフォルトで出力キューにマッピングされ、明示的なユーザー設定によって異なるキューに再マッピングできます。スケジューラ名は、ステップ 2 で設定されたスケジューラです。QFX10000 を除くスイッチで、ステートメントを使用してスケジューラ マップをトラフィック制御プロファイルに関連付けます
set class-of-service traffic-control-profiles tcp-name scheduler-map map-name
。スケジューラ マップ名は、ステップ 3 で設定された名前です。QFX10000 を除くスイッチで、ステートメントを使用してトラフィック制御プロファイルをインターフェイスに関連付けます
set class-of-service interfaces interface-name forwarding-class-set forwarding-class-set-name output-traffic-control-profile tcp-name
。出力トラフィック制御プロファイル名は、ステップ 4 で設定されたトラフィック制御プロファイルの名前です。インターフェイスは、トラフィック制御プロファイルのスケジューラ マップを使用して、そのインターフェイスの出力キュー(転送クラス)にドロップ プロファイル(およびその他の属性)を適用します。異なるトラフィック制御プロファイルを使用して異なるスケジューラを異なるインターフェイスにマッピングできるため、異なるインターフェイス上の同じキュー番号でさまざまな方法でトラフィックを処理できます。
QFX10000 スイッチでは、ステートメントを使用してスケジューラ マップをインターフェイスに関連付けます
set class-of-service interfaces interface-name scheduler-map scheduler-map-name
。インターフェイスはスケジューラ マップを使用して、ドロップ プロファイル(およびその他の属性)を、そのインターフェイス上の転送クラスにマッピングされた出力キューに適用します。異なるインターフェイスで異なるスケジューラ マップを使用できるため、インターフェイスごとに同じキュー番号でさまざまな方法でトラフィックを処理できます。
明示的な輻輳通知が有効なキューにプロファイルをドロップする
明示的輻輳通知(ECN)を有効にするキューに WRED ドロップ プロファイルを設定する必要があります。ECN 対応キューでは、ドロップ プロファイルによって、キューでパケットに輻輳が発生しているとマークするタイミングのしきい値が設定されます( 「CoS 明示的輻輳通知について」を参照)。キューが WRED ドロップ プロファイルのパケット ドロップ確率がゼロ(0)を超えるレベルに満たされると、デバイスはパケットに輻輳が発生しているとマークする可能性があります。デバイスがパケットに輻輳の有無を示すかどうかは、その充填レベルでのキューのドロップ確率と同じ確率です。
ECN 対応キューでは、輻輳が発生している間、デバイスはドロップ プロファイルを使用して ECN 対応パケットではないパケット(非 ECT、ECN コード ビット 00 とマークされたパケット)を制御しません。代わりに、デバイスはテールドロップ アルゴリズムを使用して、輻輳が発生している間に非 ECN 対応パケットをドロップします。キューが最大レベルのフルネスに満たされると、テールドロップは、キュー内により多くのパケットをバッファリングするスペースが存在するまで、後続の到着パケットをすべて破棄するだけです。ECN 対応以外のすべてのパケットは、同じ方法で処理されます。
WRED ドロップ プロファイルを非 ECT トラフィックに適用するには、非 ECT トラフィックを ECN 対応でない別の出力キューに割り当てるマルチフィールド(MF)分類子を設定し、そのキューに WRED ドロップ プロファイルを適用します。