Cisco Systems IOS XR Laptop User Manual


 
Implementing Routing Policy on Cisco IOS XR Software
Information About Implementing Routing Policy
RC-222
Cisco IOS XR Routing Configuration Guide
The statements within an if statement may themselves be if statements, as shown in the following
example:
if community matches-any (12:34,56:78) then
if med eq 150 then
drop
endif
set local-preference 100
endif
This policy example sets the value of the local preference attribute to 100 on any route that has a
community value of 12:34 or 56:78 associated with it. However, if any of these routes has a MED value
of 150, then these routes with either the community value of 12:34 or 56:78 and a MED of 150 are
dropped.
Boolean Conditions
In the previous section describing the if statement, all of the examples use simple Boolean conditions
that evaluate to either true or false. RPL also provides a way to build compound conditions from simple
conditions by means of Boolean operators.
Three Boolean operators exist: negation (not), conjunction (and), and disjunction (or). In the policy
language, negation has the highest precedence, followed by conjunction, and then by disjunction.
Parentheses may be used to group compound conditions to override precedence or to improve
readability.
The following simple condition:
med eq 42
is true only if the value of the MED in the route is 42, otherwise it is false.
A simple condition may also be negated using the not operator:
not next-hop in (10.0.2.2)
Any Boolean condition enclosed in parentheses is itself a Boolean condition:
(destination in prefix-list-1)
A compound condition takes either of two forms. It can be a simple expression followed by the and
operator, itself followed by a simple condition:
med eq 42 and next-hop in (10.0.2.2)
A compound condition may also be a simpler expression followed by the or operator and then another
simple condition:
origin is igp or origin is incomplete
An entire compound condition may be enclosed in parentheses:
(med eq 42 and next-hop in (10.0.2.2))
The parentheses may serve to make the grouping of subconditions more readable, or they may force the
evaluation of a subcondition as a unit.
In the following example, the highest-precedence not operator applies only to the destination test, the
and operator combines the result of the not expression with the community test, and the or operator
combines that result with the MED test.
med eq 10 or not destination in (10.1.3.0/24) and community matches-any
([12..34]:[56..78])