Table 3: Subattributes of infilter and outfilter
Attribute Description
clause A part of a policy rule which (1) defines a predicate for matching routes and (2) defines an action which permits or denies a route and optionally performs attribute manipulation. A single clause itself acts as a filter, though multiple clauses can be combined to define more complex filters. Any number of this attribute may be present within an infilter or outfilter attribute, including zero. If there are no instances of this attribute present, no routes can possibly be matched and thus all routes will be denied. Each clause attribute must have exactly one of each of the precedence, predicate, and action subattributes.
clause.precedence The precedence of this clause with respect to all other clauses in the same filter. If there are multiple instances of clause, they must have precedence values which begin with 1 and increase incrementally by one. When a route is examined for filtering, the predicate of each clause is applied to it, in order of precedence, to see if it matches. If a match is found, all further clauses are ignored. If all clauses are checked and no matches are found, the route is denied. (Thus it follows that if there are no clauses, the route is denied.) Exactly one of this attribute must be present within the clause attribute. The actual clause attributes need not appear in any particular order in the DML code itself.
clause.predicate A predicate which can be applied to a route. The predicate may be composed of any number of smaller "atomic" predicates which apply to individual attributes of the route. The route must satisfy every atom in order to satisfy the full predicate. If there are no atoms, then all routes satisfy the predicate. Exactly one of this attribute must be present within the clause attribute.
clause.predicate.atom A predicate which can be applied to an attribute of a route. The predicate indicates which attribute it applies to, and includes a regular expression for matching a canonical string form of that attribute. Any number of this attribute may be present within the clause.predicate attribute. Refer to Table 4 for usage notes.
clause.predicate.atom.attribute A route attribute (which is its destination address or a path attribute) to which the atomic predicate applies. Exactly one of this attribute must be present within the clause.predicate.atom attribute. The most common values for this attribute are nhi_path (which is like AS path except that it uses the NHI equivalents of AS numbers) and nlri_nhi (the NHI equivalent of the destination IP prefix). Refer to Table 4 for usage notes.
clause.predicate.atom.matcher An expression for matching a canonical string form of an attribute. It is often, though not always, a regular expression. Exactly one of this attribute must be present within the clause.predicate.atom attribute. Refer to Table 4 for usage notes.
clause.action An action to be applied to a route. The action must contain a primary action, which is to either permit or deny a route. If the primary action is to permit, then it may also define any number of additional atomic actions for performing attribute manipulation on the route. Exactly one of this attribute must be present within the clause attribute.
clause.action.primary The primary action to apply to a route (whether to permit or deny it). It's value must be either permit or deny. Exactly one of this attribute must be present within the clause.action attribute.
clause.action.atom An action which can be applied to the path attribute of a route. The action indicates which path attribute it applies to, the type of action that is to be taken, and any number of values which are to be used during the application of the action. The meaning of each value depends upon the type of the action. Any number of this attribute may be present within the clause.action attribute, unless the value of clause.action.primary is deny, in which case this attribute must be omitted.
clause.action.atom.attribute A path attribute to which the atomic action applies. Exactly one of this attribute must be present within the clause.action.atom attribute. The most common values of this attribute are nhi_path and local_pref.
clause.action.atom.type A type of action to be taken when modifying the path attribute of a route. Exactly one of this attribute must be present within the clause.action.atom attribute. Typical values of this attribute are set (for setting the LocalPref, for example) and prepend (for prepending an NHI address to the NHI path, for example).
clause.action.atom.value A value to be used when applying an action to a path attribute. The meaning of the value depends upon the type of the action specified in clause.action.atom.type. For example, when prepending to the NHI path, there should be exactly one value attribute, and its value should be an NHI address. When setting the LocalPref, there should be exactly one value attribute, and its value should be a positive integer. Any number of this attribute, including zero, may be present within the clause.action.atom attribute.