| < draft-ietf-rtgwg-policy-model-04.txt | draft-ietf-rtgwg-policy-model-05.txt > | |||
|---|---|---|---|---|
| RTGWG Y. Qu | RTGWG Y. Qu | |||
| Internet-Draft Huawei | Internet-Draft Huawei | |||
| Intended status: Informational J. Tantsura | Intended status: Informational J. Tantsura | |||
| Expires: April 22, 2019 Apstra | Expires: July 11, 2019 Apstra | |||
| A. Lindem | A. Lindem | |||
| Cisco | Cisco | |||
| X. Liu | X. Liu | |||
| Volta Networks | Volta Networks | |||
| October 19, 2018 | January 7, 2019 | |||
| A YANG Data Model for Routing Policy Management | A YANG Data Model for Routing Policy Management | |||
| draft-ietf-rtgwg-policy-model-04 | draft-ietf-rtgwg-policy-model-05 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model for configuring and managing | This document defines a YANG data model for configuring and managing | |||
| routing policies in a vendor-neutral way and based on actual | routing policies in a vendor-neutral way and based on actual | |||
| operational practice. The model provides a generic policy framework | operational practice. The model provides a generic policy framework | |||
| which can be augmented with protocol-specific policy configuration. | which can be augmented with protocol-specific policy configuration. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 22, 2019. | This Internet-Draft will expire on July 11, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Goals and approach . . . . . . . . . . . . . . . . . . . 3 | 1.1. Goals and approach . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | 2. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 | 2.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 | |||
| 3. Model overview . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Model overview . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4. Route policy expression . . . . . . . . . . . . . . . . . . . 5 | 4. Route policy expression . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.1. Defined sets for policy matching . . . . . . . . . . . . 6 | 4.1. Defined sets for policy matching . . . . . . . . . . . . 6 | |||
| 4.2. Policy conditions . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Policy conditions . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.3. Policy actions . . . . . . . . . . . . . . . . . . . . . 8 | 4.3. Policy actions . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.4. Policy subroutines . . . . . . . . . . . . . . . . . . . 9 | 4.4. Policy subroutines . . . . . . . . . . . . . . . . . . . 9 | |||
| 5. Policy evaluation . . . . . . . . . . . . . . . . . . . . . . 9 | 5. Policy evaluation . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 6. Applying routing policy . . . . . . . . . . . . . . . . . . . 10 | 6. Applying routing policy . . . . . . . . . . . . . . . . . . . 10 | |||
| 7. Routing protocol-specific policies . . . . . . . . . . . . . 10 | 7. Routing protocol-specific policies . . . . . . . . . . . . . 11 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 10. YANG modules . . . . . . . . . . . . . . . . . . . . . . . . 13 | 10. YANG modules . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 10.1. Routing policy model . . . . . . . . . . . . . . . . . . 13 | 10.1. Routing policy model . . . . . . . . . . . . . . . . . . 14 | |||
| 11. Policy examples . . . . . . . . . . . . . . . . . . . . . . . 30 | 11. Policy examples . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 12.1. Normative references . . . . . . . . . . . . . . . . . . 30 | 12.1. Normative references . . . . . . . . . . . . . . . . . . 31 | |||
| 12.2. Informative references . . . . . . . . . . . . . . . . . 31 | 12.2. Informative references . . . . . . . . . . . . . . . . . 32 | |||
| Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 31 | Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 32 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 1. Introduction | 1. Introduction | |||
| This document describes a YANG [RFC6020] [RFC7950] data model for | This document describes a YANG [RFC6020] [RFC7950] data model for | |||
| routing policy configuration based on operational usage and best | routing policy configuration based on operational usage and best | |||
| practices in a variety of service provider networks. The model is | practices in a variety of service provider networks. The model is | |||
| intended to be vendor-neutral, in order to allow operators to manage | intended to be vendor-neutral, in order to allow operators to manage | |||
| policy configuration in a consistent, intuitive way in heterogeneous | policy configuration in a consistent, intuitive way in heterogeneous | |||
| environments with routers supplied by multiple vendors. | environments with routers supplied by multiple vendors. | |||
| skipping to change at page 9, line 12 ¶ | skipping to change at page 9, line 12 ¶ | |||
| generic actions in addition to the basic route disposition actions. | generic actions in addition to the basic route disposition actions. | |||
| These are shown below. | These are shown below. | |||
| +--rw routing-policy | +--rw routing-policy | |||
| +--rw policy-definitions | +--rw policy-definitions | |||
| +--rw policy-definition* [name] | +--rw policy-definition* [name] | |||
| +--rw statements | +--rw statements | |||
| +--rw statement* [name] | +--rw statement* [name] | |||
| +--rw actions | +--rw actions | |||
| +--rw policy-result? policy-result-type | +--rw policy-result? policy-result-type | |||
| +--rw set-metric? uint32 | +--rw set-metric? union | |||
| +--rw set-preference? uint16 | +--rw set-preference? union | |||
| 4.4. Policy subroutines | 4.4. Policy subroutines | |||
| Policy 'subroutines' (or nested policies) are supported by allowing | Policy 'subroutines' (or nested policies) are supported by allowing | |||
| policy statement conditions to reference other policy definitions | policy statement conditions to reference other policy definitions | |||
| using the call-policy configuration. Called policies apply their | using the call-policy configuration. Called policies apply their | |||
| conditions and actions before returning to the calling policy | conditions and actions before returning to the calling policy | |||
| statement and resuming evaluation. The outcome of the called policy | statement and resuming evaluation. The outcome of the called policy | |||
| affects the evaluation of the calling policy. If the called policy | affects the evaluation of the calling policy. If the called policy | |||
| results in an accept-route (either explicit or by default), then the | results in an accept-route, then the subroutine returns an effective | |||
| subroutine returns an effective boolean true value to the calling | boolean true value to the calling policy. For the calling policy, | |||
| policy. For the calling policy, this is equivalent to a condition | this is equivalent to a condition statement evaluating to a true | |||
| statement evaluating to a true value and evaluation of the policy | value and evaluation of the policy continues (see Section 5). Note | |||
| continues (see Section 5). Note that the called policy may also | that the called policy may also modify attributes of the route in its | |||
| modify attributes of the route in its action statements. Similarly, | action statements. Similarly, a reject-route action returns false | |||
| a reject-route action returns false and the calling policy evaluation | and the calling policy evaluation will be affected accordingly. When | |||
| will be affected accordingly. Consequently, a subroutine cannot | the end of the subroutine policy chain is reached, the default route | |||
| explicitly accept or reject a route. Rather it merely provides an | disposition action is returned (i.e., boolean false for reject-route | |||
| indication that 'call-policy' condition returns boolean true or false | unless an alternate default action is specified for the chain). | |||
| indicating whether or not the condition matches. Route acceptance or | Consequently, a subroutine cannot explicitly accept or reject a | |||
| rejection is solely determined by the top-level policy. | route. Rather it merely provides an indication that 'call-policy' | |||
| condition returns boolean true or false indicating whether or not the | ||||
| condition matches. Route acceptance or rejection is solely | ||||
| determined by the top-level policy. | ||||
| Note that the called policy may itself call other policies (subject | Note that the called policy may itself call other policies (subject | |||
| to implementation limitations). The model does not prescribe a | to implementation limitations). The model does not prescribe a | |||
| nesting depth because this varies among implementations. For | nesting depth because this varies among implementations. For | |||
| example, some major implementation may only support a single level of | example, some major implementation may only support a single level of | |||
| subroutine recursion. As with any routing policy construction, care | subroutine recursion. As with any routing policy construction, care | |||
| must be taken with nested policies to ensure that the effective | must be taken with nested policies to ensure that the effective | |||
| return value results in the intended behavior. Nested policies are a | return value results in the intended behavior. Nested policies are a | |||
| convenience in many routing policy constructions but creating | convenience in many routing policy constructions but creating | |||
| policies nested beyond a small number of levels (e.g., 2-3) should be | policies nested beyond a small number of levels (e.g., 2-3) should be | |||
| discouraged. | discouraged. | |||
| 5. Policy evaluation | 5. Policy evaluation | |||
| Evaluation of each policy definition proceeds by evaluating its | Evaluation of each policy definition proceeds by evaluating its | |||
| corresponding individual policy statements in order. When a | corresponding individual policy statements in order. When all the | |||
| condition statement in a policy statement is satisfied, the | condition statements in a policy statement are satisfied, the | |||
| corresponding action statement is executed. If the action statement | corresponding action statements are executed. If the actions include | |||
| has either accept-route or reject-route actions, evaluation of the | either accept-route or reject-route actions, evaluation of the | |||
| current policy definition stops, and no further policy definitions in | current policy definition stops, and no further policy definitions in | |||
| the chain are evaluated. | the chain are evaluated. | |||
| If the condition is not satisfied, then evaluation proceeds to the | If the conditions are not satisfied, then evaluation proceeds to the | |||
| next policy statement. If none of the policy statement conditions | next policy statement. If none of the policy statement conditions | |||
| are satisfied, then evaluation of the current policy definition | are satisfied, then evaluation of the current policy definition | |||
| stops, and the next policy definition in the chain is evaluated. | stops, and the next policy definition in the chain is evaluated. | |||
| When the end of the policy chain is reached, the default route | When the end of the policy chain is reached, the default route | |||
| disposition action is performed (i.e., reject-route unless an | disposition action is performed (i.e., reject-route unless an | |||
| alternate default action is specified for the chain). | alternate default action is specified for the chain). | |||
| Note that the route's pre-policy attributes are always used for | ||||
| testing policy statement conditions. In other words, if actions | ||||
| modify the policy application specific attributes, those | ||||
| modifications are not used for policy statement conditions. | ||||
| 6. Applying routing policy | 6. Applying routing policy | |||
| Routing policy is applied by defining and attaching policy chains in | Routing policy is applied by defining and attaching policy chains in | |||
| various routing contexts. Policy chains are sequences of policy | various routing contexts. Policy chains are sequences of policy | |||
| definitions (described in Section 4) that have an associated | definitions (described in Section 4) that have an associated | |||
| direction (import or export) with respect to the routing context in | direction (import or export) with respect to the routing context in | |||
| which they are defined. The routing policy model defines an apply- | which they are defined. The routing policy model defines an apply- | |||
| policy grouping that can be imported and used by other models. As | policy grouping that can be imported and used by other models. As | |||
| shown below, it allows definition of import and export policy chains, | shown below, it allows definition of import and export policy chains, | |||
| as well as specifying the default route disposition to be used when | as well as specifying the default route disposition to be used when | |||
| skipping to change at page 12, line 33 ¶ | skipping to change at page 12, line 48 ¶ | |||
| | +--rw bgp-pol:match-ext-community-set | | +--rw bgp-pol:match-ext-community-set | |||
| | | +--rw bgp-pol:ext-community-set? | | | +--rw bgp-pol:ext-community-set? | |||
| | | +--rw bgp-pol:match-set-options? | | | +--rw bgp-pol:match-set-options? | |||
| | | match-set-options-type | | | match-set-options-type | |||
| | +--rw bgp-pol:match-as-path-set | | +--rw bgp-pol:match-as-path-set | |||
| | +--rw bgp-pol:as-path-set? | | +--rw bgp-pol:as-path-set? | |||
| | +--rw bgp-pol:match-set-options? | | +--rw bgp-pol:match-set-options? | |||
| | match-set-options-type | | match-set-options-type | |||
| +--rw actions | +--rw actions | |||
| +--rw policy-result? policy-result-type | +--rw policy-result? policy-result-type | |||
| +--rw set-metric? uint32 | +--rw set-metric? union | |||
| +--rw set-preference? uint16 | +--rw set-preference? union | |||
| +--rw bgp-pol:bgp-actions | +--rw bgp-pol:bgp-actions | |||
| +--rw bgp-pol:set-route-origin? | +--rw bgp-pol:set-route-origin? | |||
| bgp-types:bgp-origin-attr-type | bgp-types:bgp-origin-attr-type | |||
| +--rw bgp-pol:set-local-pref? uint32 | +--rw bgp-pol:set-local-pref? uint32 | |||
| +--rw bgp-pol:set-next-hop? bgp-next-hop-type | +--rw bgp-pol:set-next-hop? bgp-next-hop-type | |||
| +--rw bgp-pol:set-med? bgp-set-med-type | +--rw bgp-pol:set-med? bgp-set-med-type | |||
| +--rw bgp-pol:set-as-path-prepend | +--rw bgp-pol:set-as-path-prepend | |||
| | +--rw bgp-pol:repeat-n? uint8 | | +--rw bgp-pol:repeat-n? uint8 | |||
| +--rw bgp-pol:set-community | +--rw bgp-pol:set-community | |||
| | +--rw bgp-pol:method? enumeration | | +--rw bgp-pol:method? enumeration | |||
| skipping to change at page 13, line 45 ¶ | skipping to change at page 14, line 12 ¶ | |||
| YANG modules will be registered in the "YANG Module Names" registry | YANG modules will be registered in the "YANG Module Names" registry | |||
| [RFC6020]. | [RFC6020]. | |||
| 10. YANG modules | 10. YANG modules | |||
| The routing policy model is described by the YANG modules in the | The routing policy model is described by the YANG modules in the | |||
| sections below. | sections below. | |||
| 10.1. Routing policy model | 10.1. Routing policy model | |||
| <CODE BEGINS> file "ietf-routing-policy@2018-10-19.yang" | <CODE BEGINS> file "ietf-routing-policy@2019-01-07.yang" | |||
| module ietf-routing-policy { | module ietf-routing-policy { | |||
| yang-version "1.1"; | yang-version "1.1"; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-routing-policy"; | namespace "urn:ietf:params:xml:ns:yang:ietf-routing-policy"; | |||
| prefix rt-pol; | prefix rt-pol; | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix "yang"; | prefix "yang"; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix "if"; | |||
| skipping to change at page 15, line 5 ¶ | skipping to change at page 15, line 19 ¶ | |||
| <mailto:xufeng_liu@jabil.com> | <mailto:xufeng_liu@jabil.com> | |||
| Anees Shaikh | Anees Shaikh | |||
| <mailto:aashaikh@google.com>"; | <mailto:aashaikh@google.com>"; | |||
| description | description | |||
| "This module describes a YANG model for routing policy | "This module describes a YANG model for routing policy | |||
| configuration. It is a limited subset of all of the policy | configuration. It is a limited subset of all of the policy | |||
| configuration parameters available in the variety of vendor | configuration parameters available in the variety of vendor | |||
| implementations, but supports widely used constructs for | implementations, but supports widely used constructs for | |||
| managing how routes are imported, exported, and modified across | managing how routes are imported, exported, and modified across | |||
| different routing protocols. This module is intended to be used | different routing protocols. This module is intended to be | |||
| in conjunction with routing protocol configuration modules | used in conjunction with routing protocol configuration modules | |||
| (e.g., BGP) defined in other models. | (e.g., BGP) defined in other models. | |||
| Route policy expression: | Route policy expression: | |||
| Policies are expressed as a set of top-level policy definitions, | Policies are expressed as a set of top-level policy | |||
| each of which consists of a sequence of policy statements. | definitions, each of which consists of a sequence of policy | |||
| Policy statements consist of simple condition-action tuples. | statements. Policy statements consist of simple | |||
| Conditions may include mutiple match or comparison operations, | condition-action tuples. Conditions may include mutiple match | |||
| and similarly actions may be multitude of changes to route | or comparison operations, and similarly actions may be | |||
| attributes or a final disposition of accepting or rejecting the | multitude of changes to route attributes or a final disposition | |||
| route. | of accepting or rejecting the route. | |||
| Route policy evaluation: | Route policy evaluation: | |||
| Policy definitions are referenced in routing protocol | Policy definitions are referenced in routing protocol | |||
| configurations using import and export configuration statements. | configurations using import and export configuration | |||
| The arguments are members of an ordered list of named policy | statements. The arguments are members of an ordered list of | |||
| definitions which comprise a policy chain, and optionally, an | named policy definitions which comprise a policy chain, and | |||
| explicit default policy action (i.e., reject or accept). | optionally, an explicit default policy action (i.e., reject | |||
| or accept). | ||||
| Evaluation of each policy definition proceeds by evaluating its | Evaluation of each policy definition proceeds by evaluating its | |||
| corresponding individual policy statements in order. When a | corresponding individual policy statements in order. When a | |||
| condition statement in a policy statement is satisfied, the | condition statement in a policy statement is satisfied, the | |||
| corresponding action statement is executed. If the action | corresponding action statement is executed. If the action | |||
| statement has either accept-route or reject-route actions, | statement has either accept-route or reject-route actions, | |||
| policy evaluation of the current policy definition stops, and | policy evaluation of the current policy definition stops, and | |||
| no further policy definitions in the chain are evaluated. | no further policy definitions in the chain are evaluated. | |||
| If the condition is not satisfied, then evaluation proceeds to | If the condition is not satisfied, then evaluation proceeds to | |||
| the next policy statement. If none of the policy statement | the next policy statement. If none of the policy statement | |||
| conditions are satisfied, then evaluation of the current policy | conditions are satisfied, then evaluation of the current policy | |||
| definition stops, and the next policy definition in the chain is | definition stops, and the next policy definition in the chain | |||
| evaluated. When the end of the policy chain is reached, the | is evaluated. When the end of the policy chain is reached, the | |||
| default route disposition action is performed (i.e., | default route disposition action is performed (i.e., | |||
| reject-route unless an alternate default action is specified | reject-route unless an alternate default action is specified | |||
| for the chain). | for the chain). | |||
| Policy 'subroutines' (or nested policies) are supported by | Policy 'subroutines' (or nested policies) are supported by | |||
| allowing policy statement conditions to reference another policy | allowing policy statement conditions to reference another | |||
| definition which applies conditions and actions from the | policy definition which applies conditions and actions from | |||
| referenced policy before returning to the calling policy | the referenced policy before returning to the calling policy | |||
| statement and resuming evaluation. If the called policy | statement and resuming evaluation. If the called policy | |||
| results in an accept-route (either explicit or by default), then | results in an accept-route (either explicit or by default), | |||
| the subroutine returns an effective true value to the calling | then the subroutine returns an effective true value to the | |||
| policy. Similarly, a reject-route action returns false. If the | calling policy. Similarly, a reject-route action returns | |||
| subroutine returns true, the calling policy continues to | false. If the subroutine returns true, the calling policy | |||
| evaluate the remaining conditions (using a modified route if the | continues to evaluate the remaining conditions (using a | |||
| subroutine performed any changes to the route)."; | modified route if the subroutine performed any changes to the | |||
| route)."; | ||||
| revision "2018-10-19" { | revision "2019-01-07" { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: Routing Policy Configuration Model for Service | "RFC XXXX: Routing Policy Configuration Model for Service | |||
| Provider Networks"; | Provider Networks"; | |||
| } | } | |||
| // typedef statements | // typedef statements | |||
| typedef default-policy-type { | typedef default-policy-type { | |||
| skipping to change at page 24, line 25 ¶ | skipping to change at page 24, line 43 ¶ | |||
| } | } | |||
| } | } | |||
| grouping tag-set-condition { | grouping tag-set-condition { | |||
| description | description | |||
| "This grouping provides tag-set conditions"; | "This grouping provides tag-set conditions"; | |||
| container match-tag-set { | container match-tag-set { | |||
| leaf tag-set { | leaf tag-set { | |||
| type leafref { | type leafref { | |||
| path "../../../../../../../defined-sets/tag-sets/tag-set" + | path "../../../../../../../defined-sets/tag-sets" + | |||
| "/name"; | "/tag-set/name"; | |||
| require-instance true; | require-instance true; | |||
| } | } | |||
| description "References a defined tag set"; | description "References a defined tag set"; | |||
| } | } | |||
| uses match-set-options-restricted-group; | uses match-set-options-restricted-group; | |||
| description | description | |||
| "Match a referenced tag set according to the logic defined | "Match a referenced tag set according to the logic defined | |||
| in the match-options-set leaf"; | in the match-options-set leaf"; | |||
| } | } | |||
| skipping to change at page 30, line 27 ¶ | skipping to change at page 31, line 4 ¶ | |||
| 11. Policy examples | 11. Policy examples | |||
| Below we show an example of XML-encoded configuration data using the | Below we show an example of XML-encoded configuration data using the | |||
| routing policy and BGP models to illustrate both how policies are | routing policy and BGP models to illustrate both how policies are | |||
| defined, and also how they can be applied. Note that the XML has | defined, and also how they can be applied. Note that the XML has | |||
| been simplified for readability. | been simplified for readability. | |||
| <?yfile include="file:///tmp/routing-policy-example-draft.xml"?> | <?yfile include="file:///tmp/routing-policy-example-draft.xml"?> | |||
| 12. References | 12. References | |||
| 12.1. Normative references | 12.1. Normative references | |||
| [I-D.ietf-netmod-intf-ext-yang] | ||||
| Wilton, R., Ball, D., tsingh@juniper.net, t., and S. | ||||
| Sivaraj, "Common Interface Extension YANG Data Models", | ||||
| draft-ietf-netmod-intf-ext-yang-06 (work in progress), | ||||
| July 2018. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc3688>. | editor.org/info/rfc3688>. | |||
| [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
| Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
| DOI 10.17487/RFC4271, January 2006, | DOI 10.17487/RFC4271, January 2006, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc4271>. | editor.org/info/rfc4271>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc6020>. | editor.org/info/rfc6020>. | |||
| [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
| RFC 6991, DOI 10.17487/RFC6991, July 2013, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
| <https://www.rfc-editor.org/info/rfc6991>. | <https://www.rfc-editor.org/info/rfc6991>. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| skipping to change at page 31, line 37 ¶ | skipping to change at page 32, line 7 ¶ | |||
| and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
| (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
| [RFC8343] Bjorklund, M., "A YANG Data Model for Interface | [RFC8343] Bjorklund, M., "A YANG Data Model for Interface | |||
| Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, | Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8343>. | <https://www.rfc-editor.org/info/rfc8343>. | |||
| [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | |||
| Routing Management (NMDA Version)", RFC 8349, | Routing Management (NMDA Version)", RFC 8349, | |||
| DOI 10.17487/RFC8349, March 2018, | DOI 10.17487/RFC8349, March 2018, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc8349>. | editor.org/info/rfc8349>. | |||
| [I-D.ietf-netmod-intf-ext-yang] | ||||
| Wilton, R., Ball, D., tsingh@juniper.net, t., and S. | ||||
| Sivaraj, "Common Interface Extension YANG Data Models", | ||||
| draft-ietf-netmod-intf-ext-yang-06 (work in progress), | ||||
| July 2018. | ||||
| 12.2. Informative references | 12.2. Informative references | |||
| [I-D.ietf-idr-bgp-model] | [I-D.ietf-idr-bgp-model] | |||
| Patel, K., Jethanandani, M., and S. Hares, "BGP Model for | Patel, K., Jethanandani, M., and S. Hares, "BGP Model for | |||
| Service Provider Networks", draft-ietf-idr-bgp-model-03 | Service Provider Networks", draft-ietf-idr-bgp-model-03 | |||
| (work in progress), May 2018. | (work in progress), May 2018. | |||
| Appendix A. Acknowledgements | Appendix A. Acknowledgements | |||
| The routing policy module defined in this draft is based on the | The routing policy module defined in this draft is based on the | |||
| OpenConfig route policy model. The authors would like to thank to | OpenConfig route policy model. The authors would like to thank to | |||
| OpenConfig for their contributions, especially Anees Shaikh, Rob | OpenConfig for their contributions, especially Anees Shaikh, Rob | |||
| Shakir, Kevin D'Souza, and Chris Chase. | Shakir, Kevin D'Souza, and Chris Chase. | |||
| The authors are grateful for valuable contributions to this document | The authors are grateful for valuable contributions to this document | |||
| and the associated models from: Ebben Aires, Luyuan Fang, Josh | and the associated models from: Ebben Aires, Luyuan Fang, Josh | |||
| George, Stephane Litkowski, Ina Minei, Carl Moberg, Eric Osborne, | George, Stephane Litkowski, Ina Minei, Carl Moberg, Eric Osborne, | |||
| Steve Padgett, Juergen Schoenwaelder, Jim Uttaro, and Russ White. | Steve Padgett, Juergen Schoenwaelder, Jim Uttaro, Russ White, and | |||
| John Heasley. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Yingzhen Qu | Yingzhen Qu | |||
| Huawei | Huawei | |||
| 2330 Central Expressway | 2330 Central Expressway | |||
| Santa Clara CA 95050 | Santa Clara CA 95050 | |||
| USA | USA | |||
| Email: yingzhen.qu@huawei.com | Email: yingzhen.qu@huawei.com | |||
| End of changes. 35 change blocks. | ||||
| 81 lines changed or deleted | 92 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||