Cisco Systems IOS XR Laptop User Manual


 
Implementing Routing Policy on Cisco IOS XR Software
Information About Implementing Routing Policy
RC-219
Cisco IOS XR Routing Configuration Guide
Attached Policy Modification
Policies that are in use do, on occasion, need to be modified. Traditionally, configuration changes are
done by completely removing the relevant configuration and then re-entering it. However, this allows for
a window of time in which no policy is attached and the default action takes place. RPL provides a
mechanism for an atomic change so that if a policy is redeclared, or edited using the emacs editor, the
new configuration is applied immediately, which allows for policies that are in use to be changed without
having a window of time in which no policy is applied at the given attach point.
Verification of Attribute Comparisons and Actions
The policy repository knows which attributes, actions, and comparisons are valid at each attach point.
When a policy is attached, these actions and comparisons are verified against the capabilities of that
particular attach point. Take, for example, the following policy definition:
route-policy bad
set med 100
set level level-1-2
set cost 200
end-policy
This policy attempts to perform actions to set the BGP attribute med, IS-IS attribute level, and OSPF
attribute cost. The system allows you to define such a policy, but it does not allow you to attach such a
policy. If you had defined the policy bad and then attempted to attach it as an inbound BGP policy using
the BGP configuration statement neighbor 1.2.3.4 address-family ipv4 unicast route-policy bad in the
system would reject this configuration attempt. This rejection results from the verification process
checking the policy and realizing that while BGP could set the MED, it has no way of setting the level
or cost as the level and cost are attributes of IS-IS and OSPF, respectively. Instead of silently omitting
the actions that cannot be done, the system generates an error to the user. Likewise, a valid policy in use
at an attach point cannot be modified in such a way as to introduce an attempt to modify a nonexistent
attribute or to compare against a nonexistent attribute. The verifiers test for nonexistent attributes and
reject such a configuration attempt.
Policy Statements
Four types of policy statements exist: remark, disposition (drop and pass), action (set), and if
(comparator).
Remark
A remark is text attached to policy configuration but otherwise ignored by the policy language parser.
Remarks are useful for documenting parts of a policy. The syntax for a remark is text that has each line
prepended with a pound sign (#):
# This is a simple one-line remark.
# This
# is a remark
# comprising multiple
# lines.
In general, remarks are used between complete statements or elements of a set. Remarks are not
supported in the middle of statements or within an inline set definition.