An if-match clause defines matching rules related to route filters and attributes in a routing policy.
If no if-match clause is configured for a node in a routing policy, routes match the routing policy in this node. If one or more if-match clauses are configured in a node, the relationship between the clauses is "AND". This means that a route matches this node only when they match all the if-match clauses in this node. This rule does not apply to if-match as-path-filter, if-match community-filter, if-match extcommunity-filter, if-match interface, or if-match route-type clauses. The relationship between these clauses is "OR", and the relationship between these clauses and other if-match clauses is "AND". For example, if multiple if-match as-path-filter clauses are configured in a node, the relationship between these clauses is "OR", and the relationship between these clauses and other if-match clauses is "AND".
If an if-match clause defines a filter that is not configured, all routes match this if-match clause by default.
The if-match acl and if-match ip-prefix commands cannot be used together in the same node. When both the commands are used in a node, the most recently configured one overrides the previous one.
When modifying the configurations of cooperative routing policies with multiple if-match clauses, it is recommended that you also perform the configuration task of Controlling the Valid Time of Routing Policies. Otherwise, an incomplete routing policy will cause route flapping.
The system view is displayed.
The routing policy view is displayed.
Run if-match acl { acl-number | acl-name }
An if-match clause is configured to match the basic ACL.
Run if-match as-path-filter { as-path-filter-number &<1-16> | as-path-filter-name }
An if-match clause is configured to match AS_Path filters.
Run if-match extcommunity-filter { { basic-extcomm-filter-num | adv-extcomm-filter-num } &<1-16> | extcomm-filter-name }
An if-match clause is configured to match extended community filters.
Run if-match cost { cost | greater-equal greater-equal-value [ less-equal less-equal-value ] | less-equal less-equal-value }
An if-match clause is configured to match the route cost of routes.
Run if-match interface { interface-type interface-number } &<1-16>
An if-match clause is configured to match the outbound interface of routes.
Run if-match ip { next-hop | route-source | group-address } { acl { acl-number | acl-name } | ip-prefix ip-prefix-name }
An if-match clause is configured to match the next hop or source address of IPv4 routes.
Run if-match ipv6 { address | next-hop | route-source } prefix-list ipv6-prefix-name
An if-match clause is configured to match the destination address, next hop, or source address of IPv6 routes.
Run if-match ip-prefix ip-prefix-name
An if-match clause is configured to match the IP prefix list.
Run if-match rd-filter rd-filter-number
An if-match clause is configured to match the RD filter.
Run if-match route-type { external-type1 | external-type1or2 | external-type2 | internal | nssa-external-type1 | nssa-external-type1or2 | nssa-external-type2 }
An if-match clause is configured to match a specified type of OSPF routes.
Run if-match route-type { is-is-level-1 | is-is-level-2 }
An if-match clause is configured to match a specified type of IS-IS routes.
Run if-match tag tag
An if-match clause is configured to match the tag of routes.