ルーティング ポリシー サブルーチンの評価方法
図 1 は、サブルーチンの評価方法を示しています。サブルーチンは、チェーン内の最初のルーティングポリシーの最初の項に含まれています。各ルートは、次のようにサブルーチンに対して評価されます。
ルートは、最初のルーティング ポリシーの最初の項に対して評価されます。ルートがサブルーチンの前に指定されたすべての照合条件と一致しない場合、サブルーチンはスキップされ、ルーティングポリシーの次の項が評価されます(ステップ 2を参照)。ルートがサブルーチンの前に指定されたすべての照合条件と一致する場合、ルートはサブルーチンに対して評価されます。ルートがサブルーチン条件のいずれかで一致条件と一致する場合、2つのレベルの評価は次の順序で行われます。
サブルーチン項のアクションが評価されます。いずれかのアクションが受け入れられると、サブルーチンの終了と真のブール値の評価が呼び出し元のポリシーに返されます。いずれかのアクションが拒否された場合、サブルーチンの評価は終了し、FALSE は呼び出し元のポリシーに返されます。
サブルーチンは 、
reject
または アクションをaccept
指定しない場合、デフォルト ポリシーで指定された orreject
アクションを使用accept
し、前の段落で説明したように TRUE または FALSE の値が呼び出し元のポリシーnext-policy
に返されます。呼び出し元ポリシーのサブルーチン一致条件が評価されます。評価のこの部分では、TRUE は一致と等しく、FALSE は一致しません。サブルーチンが呼び出し元のポリシーに TRUE を返すと、呼び出し元のポリシーの評価は続行されます。サブルーチンが呼び出し元のポリシーに FALSE を返す場合、現在の項の評価は終了し、次の項が評価されます。
ルートは、最初のルーティング ポリシーの 2 番目の項に対して評価されます。
ポリシーチェーンをサブルーチンとして指定すると、チェーン全体が単一のサブルーチンとして機能します。他のチェーンと同様に、デフォルト ポリシーで指定されたアクションは、チェーン全体がルートを受け入れるか拒否しない場合にのみ実行されます。
ある項がサブルーチンを含む複数の一致条件を定義し、かつルートがサブルーチンの前に指定された条件と一致しない場合、項の終了とサブルーチンの評価は呼び出されず、評価されます。この状況では、ルートの特性を操作するサブルーチンで指定されたアクションは実装されません。
