Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

如何评估路由策略子例程

图 1 显示了如何评估子例程。子例程包含在链中第一个路由策略的第一个术语中。每个路由都根据子例程进行评估,如下所示:

  1. 将根据第一个路由策略中的第一个术语评估路由。如果路由与子例程之前指定的所有匹配条件不匹配,则会跳过子例程并评估路由策略中的下一个术语(请参阅步骤 2)。如果路由与子例程之前指定的所有匹配条件匹配,则根据子例程评估路由。如果路由与任何子例程术语中的匹配条件匹配,则按以下顺序进行两个级别的评估:

    1. 将评估子例程术语中的操作。如果其中一个操作被接受,则子例程的评估结束,并将布尔值 TRUE 返回到调用策略。如果其中一个操作被拒绝,则子例程的评估结束,并将 FALSE 返回到调用策略。

      如果子例程未指定 accept或 操作 rejectnext-policy ,则使用 accept 默认策略指定的 or reject 操作,并将 TRUE 或 FALSE 的值返回到调用策略,如上一段所述。

    2. 将评估调用策略的子例程匹配条件。在评估的这一部分,TRUE 等于匹配项,FALSE 表示不匹配项。如果子例程向调用策略返回 TRUE,则将继续评估调用策略。如果子例程向调用策略返回 FALSE,则结束对当前术语的评估,并评估下一个术语。

  2. 将根据第一个路由策略中的第二个术语评估路由。

如果将策略链指定为子例程,那么整个策略链充当单个子例程。与其他链一样,仅当整个链不接受或拒绝路由时,才会执行默认策略指定的操作。

如果术语定义了多个匹配条件(包括一个子例程),并且路由与子例程之前指定的条件不匹配,则术语的评估结束,并且不会调用和评估子例程。在这种情况下,不会实现在子例程中指定的操作路由的特征。

图 1: 路由策略子例程评估路由策略子例程评估