Add rib-has-route condition to openconfig-routing-policy#1410
Add rib-has-route condition to openconfig-routing-policy#1410niallmasterson wants to merge 3 commits intoopenconfig:masterfrom
Conversation
Add rib-has-route condition
|
Note: At least one implementation has a limitation that the "prefix-set" has exactly one entry. The documentation for one of the other implementations similarly seems to indicate the same restriction. |
In the case where the vendor can only support a prefix-set with one entry, they could potentially create multiple conditions to implement the OC intent. i.e. for each entry in the prefix-set create a condition/term. Juniper for example doesn't actually use a prefix-set for the prefix to track. Instead a single prefix is specified under the condition config. So if you wanted to track multiple prefixes with a "match-any", you could create multiple conditions and terms. e.g. |
|
@niallmasterson Taking the Arista EOS example from the PR description: what would be the value of |
Add rib-has-route condition to openconfig-routing-policy
Change Scope
Platform Implementations
https://www.cisco.com/c/en/us/td/docs/iosxr/cisco8000/routing/cumulative/command/reference/b-routing-cr-cisco8000/m-rpl-commands-1.html#wp4036312080
https://www.arista.com/en/support/toi/eos-4-21-0f/14072-bgp-conditional-route-inject-routing-protocol-mode-rib
https://www.juniper.net/documentation/us/en/software/junos/routing-policy/bgp/topics/example/conditional-prefix-installing-configuring.html
Tree View
module: openconfig-routing-policy +--rw statement* [name] +--rw name -> ../config/name +--rw config | +--rw name? string +--ro state | +--ro name? string +--rw conditions | +--rw config | | +--rw call-policy? -> ../../../../../../../policy-definitions/policy-definition/name | | +--rw install-protocol-eq? identityref | +--ro state | | +--ro call-policy? -> ../../../../../../../policy-definitions/policy-definition/name | | +--ro install-protocol-eq? identityref | +--rw match-interface | | +--rw config | | +--ro state | +--rw match-prefix-set | | +--rw config | | | +--rw prefix-set? -> ../../../../../../../../defined-sets/prefix-sets/prefix-set/config/name | | | +--rw match-set-options? oc-pol-types:match-set-options-restricted-type | | +--ro state | | +--ro prefix-set? -> ../../../../../../../../defined-sets/prefix-sets/prefix-set/config/name | | +--ro match-set-options? oc-pol-types:match-set-options-restricted-type + | +--rw match-rib-has-route + | | +--rw config + | | | +--rw prefix-set? -> ../../../../../../../../defined-sets/prefix-sets/prefix-set/config/name + | | | +--rw match-set-options? oc-pol-types:match-set-options-restricted-type + | | +--ro state + | | +--ro prefix-set? -> ../../../../../../../../defined-sets/prefix-sets/prefix-set/config/name + | | +--ro match-set-options? oc-pol-types:match-set-options-restricted-type | +--rw match-neighbor-set | | +--rw config | | | +--rw neighbor-set? -> ../../../../../../../../defined-sets/neighbor-sets/neighbor-set/name | | | +--rw match-set-options? oc-pol-types:match-set-options-restricted-type | | +--ro state | | +--ro neighbor-set? -> ../../../../../../../../defined-sets/neighbor-sets/neighbor-set/name | | +--ro match-set-options? oc-pol-types:match-set-options-restricted-type | +--rw match-tag-set | +--rw config | | +--rw tag-set? -> ../../../../../../../../defined-sets/tag-sets/tag-set/name | | +--rw match-set-options? oc-pol-types:match-set-options-restricted-type | +--ro state | +--ro tag-set? -> ../../../../../../../../defined-sets/tag-sets/tag-set/name | +--ro match-set-options? oc-pol-types:match-set-options-restricted-type +--rw actions +--rw config | +--rw policy-result? policy-result-type +--ro state | +--ro policy-result? policy-result-type +--rw set-tag +--rw config