CoS WRED ドロッププロファイルの理解
キューに入れられたパケット数が、デバイスが出力キューを空にする能力よりも多い場合、キューには、輻輳を緩和するためにどのパケットをドロップするかを決定する方法が必要です。WRED(Weighted Random Early Detection)ドロッププロファイルは、出力キューがいっぱいになったときの、異なるPLP(パケット損失確率)のパケットのドロップ確率を定義します。輻輳期間中、出力キューがいっぱいになると、デバイスはドロッププロファイルによって決定された受信パケットをドロップし、出力キューの混雑が緩和されます。
ドロップ確率によっては、ドロッププロファイルはバッファがいっぱいになるずっと前に多くのパケットをドロップすることもあれば、バッファがほぼフルになっても数パケットしかドロップしないことがあります。
ドロッププロファイルは、サービスクラス(CoS)設定階層のドロッププロファイルセクションで設定します。ドロッププロファイルは、キュースケジューラ設定のドロッププロファイルマップを使用して適用します。キュースケジューラごとに、 loss-priority 属性(低、中高、高)を使用して、PLPごとに個別のドロッププロファイルを設定できます。これにより、輻輳期間中に異なるPLPのトラフィックをさまざまな方法で処理できます。
ロスレストラフィック( no-loss ドロップ属性を持つ転送クラスに属するトラフィック)にはドロッププロファイルを適用しないでください。ロスレストラフィックは、優先順位に基づくフロー制御(PFC)を使用して輻輳を制御します。
ドロッププロファイルをサポートするデバイス上のマルチデスティネーションキューには、ドロッププロファイルを適用できません。
ドロッププロファイルパラメータ
ドロッププロファイルは、ペアとして機能する2つの値を指定します。
充填レベル—キューのフルネス値。キューに割り当てられたメモリの合計量に対する、パケットの保存に使用されるメモリの割合を表します。
ドロップ確率—個々のパケットがドロップされる可能性に対応するパーセント値。
QFX10000を除くスイッチのドロッププロファイルの定義
各ドロッププロファイルで、2つのキュー充填レベルと2つのドロップ確率を設定します。最初の塗りつぶしレベルと最初の落下確率は 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つのセクションまたはステップからなる線形近似を使用してドロップ確率が導き出されます。塗りつぶしレベルは、最小塗りつぶしレベルから始まり、最大塗りつぶしレベルで終わります。キューがいっぱいになると、パケットがドロップされる割合が増加します。ドロップされたパケットの割合は、最大ドロップレートに基づいています。
例えば、デフォルトのドロッププロファイル(最大ドロップ率を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%のドロッププロファイルを設定した場合、キューが30%いっぱいになるまでパケットはドロップされません。ネットワークトラフィックの状況に適したドロッププロファイルを設定することをお勧めします。
最小ドロップ率(常に0)と最大ドロップ率のギャップが小さいほど、線形ドロップパターンの各セクション(ステップ)における最小ドロップ確率と最大ドロップ確率のギャップは小さくなります。最小ドロップ率(0%)と最大ドロップ率(100%)の間に最大のギャップがあるデフォルトのドロッププロファイルは、各ステップでの最小ドロップ確率と最大ドロップ確率の間の最も高いギャップを持っています。ドロッププロファイルに低い最大ドロップレートを設定すると、最小ドロップ確率と最大ドロップ確率のギャップを縮めることができます。
ドロッププロファイルマップ
ドロッププロファイルマップは、スケジューラ設定の一部です。ドロッププロファイルマップは、ドロッププロファイルをパケット損失の優先度にマッピングします。スケジューラでドロッププロファイルマップを指定すると、スケジューラマップでスケジューラにマッピングする転送クラス(キュー)とドロッププロファイルが関連付けられます。
CoS設定階層の分類子セクションでキューの損失優先度を設定し、損失優先度はingressインターフェイスで転送クラスに割り当てられたトラフィックに適用されます。
各スケジューラは、複数のドロッププロファイルマップを持つことができます。
輻輳防止機能
出力キューにドロッププロファイルを設定することで、輻輳がポート上の他のキューに及ぼす影響を制御できます。ドロッププロファイルを設定して出力キューにマッピングしない場合、デバイスはロス性の高いトラフィックを転送するキューでデフォルトのドロッププロファイルを使用します。
例えば、イングレスポートが複数のエグレスポートにトラフィックを転送し、少なくとも1つのエグレスポートで輻輳が発生した場合、イングレスポートの輻輳が発生する可能性があります。イングレスポートの輻輳(イングレスバッファがリソース割り当てを超えている)により、エグレスポートではなくイングレスポートでフレームがドロップすることがあります。イングレスポートのフレームドロップは、混雑したエグレスポートだけでなく、混雑したイングレスポートがトラフィックを転送するすべてのエグレスポートに影響します。
fcoeおよびno-loss 転送クラスにドロッププロファイルを設定しないでください。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を使用してスケジューラマップをインターフェイスに関連付けます。インターフェイスは、スケジューラマップを使用して、そのインターフェイス上の転送クラスにマッピングされた出力キューにドロッププロファイル(およびその他の属性)を適用します。異なるインターフェイスで異なるスケジューラ マップを使用できるため、異なるインターフェイスで同じキュー番号が異なる方法でトラフィックを処理できます。
Explicit Congestion Notificationが有効なキューにプロファイルをドロップ
ECN(明示的輻輳通知)を有効にするキューにWREDドロッププロファイルを設定する必要があります。ECN対応のキューでは、ドロッププロファイルがパケットに混雑を発生しているとマークする必要があるタイミングのしきい値を設定します( CoS Explicit Congestion Notification(ECN)を参照)。WRED ドロップ プロファイルのパケット ドロップ確率がゼロ(0)より大きいレベルまでキューがいっぱいになると、デバイスはパケット輻輳発生中としてマークすることがあります。デバイスがパケットに混雑を発生しているとマークするかどうかは、そのフィルレベルでキューがドロップする確率と同じ確率です。
ECN 対応キューでは、デバイスは輻輳期間中の ECN 対応ではないパケット(非 ECT とマークされたパケット、ECN コード ビット 00)のドロップを制御するためにドロップ プロファイルを使用しません。代わりに、デバイスはテールドロップアルゴリズムを使用して、輻輳期間中はECN対応ではないパケットをドロップします。キューが最大レベルまでいっぱいになると、テールドロップは、キューにさらにパケットをバッファリングするためのスペースができるまで、その後に到着するすべてのパケットをドロップします。ECN非対応パケットはすべて同じように処理されます。
WRED ドロッププロファイルを非 ECT トラフィックに適用するには、マルチフィールド(MF)分類子を設定して、非 ECT トラフィックを ECN 非対応の別の出力キューに割り当て、そのキューに WRED ドロッププロファイルを適用します。