< draft-ietf-rtgwg-policy-model-13.txt   draft-ietf-rtgwg-policy-model-14.txt >
RTGWG Y. Qu RTGWG Y. Qu
Internet-Draft Futurewei Internet-Draft Futurewei
Intended status: Standards Track J. Tantsura Intended status: Standards Track J. Tantsura
Expires: December 1, 2020 Apstra Expires: December 3, 2020 Apstra
A. Lindem A. Lindem
Cisco Cisco
X. Liu X. Liu
Volta Networks Volta Networks
May 30, 2020 June 1, 2020
A YANG Data Model for Routing Policy Management A YANG Data Model for Routing Policy Management
draft-ietf-rtgwg-policy-model-13 draft-ietf-rtgwg-policy-model-14
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
skipping to change at page 1, line 38 skipping to change at page 1, line 38
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 https://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 December 1, 2020. This Internet-Draft will expire on December 3, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 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 (https://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
skipping to change at page 2, line 27 skipping to change at page 2, line 27
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 . . . . . . . . . . . . . . . . . . . . . . 10 5. Policy evaluation . . . . . . . . . . . . . . . . . . . . . . 10
6. Applying routing policy . . . . . . . . . . . . . . . . . . . 10 6. Applying routing policy . . . . . . . . . . . . . . . . . . . 10
7. Routing protocol-specific policies . . . . . . . . . . . . . 11 7. Routing protocol-specific policies . . . . . . . . . . . . . 11
8. Security Considerations . . . . . . . . . . . . . . . . . . . 13 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
10. YANG modules . . . . . . . . . . . . . . . . . . . . . . . . 14 10. YANG module . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.1. Routing policy model . . . . . . . . . . . . . . . . . . 15 10.1. Routing policy model . . . . . . . . . . . . . . . . . . 15
11. Policy examples . . . . . . . . . . . . . . . . . . . . . . . 35 11. Policy examples . . . . . . . . . . . . . . . . . . . . . . . 36
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 36 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 37
12.1. Normative references . . . . . . . . . . . . . . . . . . 36 12.1. Normative references . . . . . . . . . . . . . . . . . . 37
12.2. Informative references . . . . . . . . . . . . . . . . . 38 12.2. Informative references . . . . . . . . . . . . . . . . . 39
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 38 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 39
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 38 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 40
1. Introduction 1. Introduction
This document describes a YANG [RFC7950] data model for routing This document describes a YANG [RFC7950] data model for routing
policy configuration based on operational usage and best practices in policy configuration based on operational usage and best practices in
a variety of service provider networks. The model is intended to be a variety of service provider networks. The model is intended to be
vendor-neutral, in order to allow operators to manage policy vendor-neutral, in order to allow operators to manage policy
configuration in a consistent, intuitive way in heterogeneous 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 6, line 28 skipping to change at page 6, line 28
4.1. Defined sets for policy matching 4.1. Defined sets for policy matching
The models provides a set of generic sets that can be used for The models provides a set of generic sets that can be used for
matching in policy conditions. These sets are applicable for route matching in policy conditions. These sets are applicable for route
selection across multiple routing protocols. They may be further selection across multiple routing protocols. They may be further
augmented by protocol-specific models which have their own defined augmented by protocol-specific models which have their own defined
sets. The supported defined sets include: sets. The supported defined sets include:
o prefix sets - define a set of IP prefixes, each with an associated o prefix sets - define a set of IP prefixes, each with an associated
CIDR netmask range (or exact length) IP prefix and netmask range (or exact length)
o neighbor sets - define a set of neighboring nodes by their IP o neighbor sets - define a set of neighboring nodes by their IP
addresses. These sets are used for selecting routes based on the addresses. These sets are used for selecting routes based on the
neighbors advertising the routes. neighbors advertising the routes.
o tag set - define a set of generic tag values that can be used in o tag set - define a set of generic tag values that can be used in
matches for filtering routes matches for filtering routes
The model structure for defined sets is shown below. The model structure for defined sets is shown below.
skipping to change at page 8, line 35 skipping to change at page 8, line 35
| | +--rw interface? | | +--rw interface?
| | +--rw subinterface? | | +--rw subinterface?
| +--rw match-prefix-set | +--rw match-prefix-set
| | +--rw prefix-set? | | +--rw prefix-set?
| | +--rw match-set-options? | | +--rw match-set-options?
| +--rw match-neighbor-set | +--rw match-neighbor-set
| | +--rw neighbor-set? | | +--rw neighbor-set?
| +--rw match-tag-set | +--rw match-tag-set
| | +--rw tag-set? | | +--rw tag-set?
| | +--rw match-set-options? | | +--rw match-set-options?
| +--rw match-proto-route-type* identityref | +--rw match-route-type* identityref
4.3. Policy actions 4.3. Policy actions
When policy conditions are satisfied, policy actions are used to set When policy conditions are satisfied, policy actions are used to set
various attributes of the route being processed, or to indicate the various attributes of the route being processed, or to indicate the
final disposition of the route, i.e., accept or reject. final disposition of the route, i.e., accept or reject.
Similar to policy conditions, the routing policy model includes Similar to policy conditions, the routing policy model includes
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.
skipping to change at page 12, line 27 skipping to change at page 12, line 27
| | +--rw interface? | | +--rw interface?
| | +--rw subinterface? | | +--rw subinterface?
| +--rw match-prefix-set | +--rw match-prefix-set
| | +--rw prefix-set? prefix-set/name | | +--rw prefix-set? prefix-set/name
| | +--rw match-set-options? match-set-options-type | | +--rw match-set-options? match-set-options-type
| +--rw match-neighbor-set | +--rw match-neighbor-set
| | +--rw neighbor-set? | | +--rw neighbor-set?
| +--rw match-tag-set | +--rw match-tag-set
| | +--rw tag-set? | | +--rw tag-set?
| | +--rw match-set-options? match-set-options-type | | +--rw match-set-options? match-set-options-type
| +--rw match-proto-route-type* identityref | +--rw match-route-type* identityref
| +--rw bp:bgp-conditions | +--rw bp:bgp-conditions
| +--rw bp:med-eq? uint32 | +--rw bp:med-eq? uint32
| +--rw bp:origin-eq? bt:bgp-origin-attr-type | +--rw bp:origin-eq? bt:bgp-origin-attr-type
| +--rw bp:next-hop-in* inet:ip-address-no-zone | +--rw bp:next-hop-in* inet:ip-address-no-zone
| +--rw bp:afi-safi-in* identityref | +--rw bp:afi-safi-in* identityref
| +--rw bp:local-pref-eq? uint32 | +--rw bp:local-pref-eq? uint32
| +--rw bp:route-type? enumeration | +--rw bp:route-type? enumeration
| +--rw bp:community-count | +--rw bp:community-count
| +--rw bp:as-path-length | +--rw bp:as-path-length
| +--rw bp:match-community-set | +--rw bp:match-community-set
skipping to change at page 14, line 43 skipping to change at page 14, line 43
XML: N/A, the requested URI is an XML namespace. XML: N/A, the requested URI is an XML namespace.
This document registers a YANG module in the YANG Module Names This document registers a YANG module in the YANG Module Names
registry [RFC6020]. registry [RFC6020].
name: ietf-routing-policy name: ietf-routing-policy
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
reference: RFC XXXX reference: RFC XXXX
10. YANG modules 10. YANG module
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. [RFC2328], [RFC3101], [RFC5130], and [RFC5302] are
referenced here since they are referenced in the YANG model but not
elsewhere in the draft.
10.1. Routing policy model 10.1. Routing policy model
<CODE BEGINS> file "ietf-routing-policy@2020-05-26.yang" <CODE BEGINS> file "ietf-routing-policy@2020-06-01.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";
reference "RFC 6991: Common YANG Data Types"; reference "RFC 6991: Common YANG Data Types";
skipping to change at page 15, line 47 skipping to change at page 15, line 47
import ietf-if-extensions { import ietf-if-extensions {
prefix "if-ext"; prefix "if-ext";
reference "RFC YYYY: Common Interface Extension YANG reference "RFC YYYY: Common Interface Extension YANG
Data Models. Please replace YYYY with Data Models. Please replace YYYY with
published RFC number for published RFC number for
draft-ietf-netmod-intf-ext-yang."; draft-ietf-netmod-intf-ext-yang.";
} }
import ietf-if-l3-vlan { import ietf-if-l3-vlan {
prefix "if-l3-vlan"; prefix "if-l3-vlan";
reference "RFC XXXX: Sub-interface VLAN YANG Data Models. reference "RFC ZZZZ: Sub-interface VLAN YANG Data Models.
Please replace XXXX with published RFC number Please replace ZZZZ with published RFC number
for draft-ietf-netmod-sub-intf-vlan-model."; for draft-ietf-netmod-sub-intf-vlan-model.";
} }
organization organization
"IETF RTGWG - Routing Area Working Group"; "IETF RTGWG - Routing Area Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/rtgwg/> "WG Web: <http://tools.ietf.org/wg/rtgwg/>
WG List: <Email: rtgwg@ietf.org> WG List: <Email: rtgwg@ietf.org>
Editor: Yingzhen Qu Editor: Yingzhen Qu
skipping to change at page 18, line 5 skipping to change at page 18, line 5
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT
RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be
interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when,
and only when, they appear in all capitals, as shown here. and only when, they appear in all capitals, as shown here.
This version of this YANG module is part of RFC XXXX; This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices."; see the RFC itself for full legal notices.";
revision "2020-05-26" { revision "2020-06-01" {
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";
} }
/* Identities */ /* Identities */
identity metric-type { identity metric-type {
description description
"Base identity for route metric types."; "Base identity for route metric types.";
} }
identity ospf-type-1-metric { identity ospf-type-1-metric {
base metric-type; base metric-type;
description description
"Identity for the OSPF type 1 external metric types. It "Identity for the OSPF type 1 external metric types. It
is only applicable to OSPF routes."; is only applicable to OSPF routes.";
reference
"RFC 2328 - OSPF Version 2";
} }
identity ospf-type-2-metric { identity ospf-type-2-metric {
base metric-type; base metric-type;
description description
"Identity for the OSPF type 2 external metric types. It "Identity for the OSPF type 2 external metric types. It
is only applicable to OSPF routes."; is only applicable to OSPF routes.";
reference
"RFC 2328 - OSPF Version 2";
} }
identity isis-internal-metric { identity isis-internal-metric {
base metric-type; base metric-type;
description description
"Identity for the IS-IS internal metric types. It is only "Identity for the IS-IS internal metric types. It is only
applicable to IS-IS routes."; applicable to IS-IS routes.";
reference
"RFC 5302 - Domain-Wide Prefix Distributino with
Two-Level IS-IS";
} }
identity isis-external-metric { identity isis-external-metric {
base metric-type; base metric-type;
description description
"Identity for the IS-IS external metric types. It is only "Identity for the IS-IS external metric types. It is only
applicable to IS-IS routes."; applicable to IS-IS routes.";
reference
"RFC 5302 - Domain-Wide Prefix Distributino with
Two-Level IS-IS";
} }
identity import-level { identity import-level {
description description
"Base identity for route import level."; "Base identity for route import level.";
} }
identity ospf-normal { identity ospf-normal {
base import-level; base import-level;
description description
"Identity for OSPF importation into normal areas "Identity for OSPF importation into normal areas
It is only applicable to routes imported It is only applicable to routes imported
into the OSPF protocol."; into the OSPF protocol.";
reference
"RFC 2328 - OSPF Version 2";
} }
identity ospf-nssa-only { identity ospf-nssa-only {
base import-level; base import-level;
description description
"Identity for the OSPF NSSA area importation. It is only "Identity for the OSPF Not-So-Stubby Area (NSSA) area
applicable to routes imported into the OSPF protocol."; importation. It is only applicable to routes imported
into the OSPF protocol.";
reference
"RFC 3101: The OSPF Not-So-Stubby Area (NSSA) Option";
} }
identity ospf-normal-nssa { identity ospf-normal-nssa {
base import-level; base import-level;
description description
"Identity for OSPF importation into both normal and NSSA "Identity for OSPF importation into both normal and NSSA
areas, it is only applicable to routes imported into areas, it is only applicable to routes imported into
the OSPF protocol."; the OSPF protocol.";
reference
"RFC 3101: The OSPF Not-So-Stubby Area (NSSA) Option";
} }
identity isis-level-1 { identity isis-level-1 {
base import-level; base import-level;
description description
"Identity for IS-IS Level 1 area importation. It is only "Identity for IS-IS Level 1 area importation. It is only
applicable to routes imported into the IS-IS protocol."; applicable to routes imported into the IS-IS protocol.";
reference
"RFC 5302 - Domain-Wide Prefix Distributino with
Two-Level IS-IS";
} }
identity isis-level-2 { identity isis-level-2 {
base import-level; base import-level;
description description
"Identity for IS-IS Level 2 area importation. It is only "Identity for IS-IS Level 2 area importation. It is only
applicable to routes imported into the IS-IS protocol."; applicable to routes imported into the IS-IS protocol.";
reference
"RFC 5302 - Domain-Wide Prefix Distributino with
Two-Level IS-IS";
} }
identity isis-level-1-2 { identity isis-level-1-2 {
base import-level; base import-level;
description description
"Identity for IS-IS Level 1 and Level 2 area importation. It "Identity for IS-IS Level 1 and Level 2 area importation. It
is only applicable to routes imported into the IS-IS is only applicable to routes imported into the IS-IS
protocol."; protocol.";
reference
"RFC 5302 - Domain-Wide Prefix Distributino with
Two-Level IS-IS";
} }
identity proto-route-type { identity proto-route-type {
description description
"Base identity for route type within a protocol."; "Base identity for route type within a protocol.";
} }
identity isis-level-1-type { identity isis-level-1-type {
base proto-route-type; base proto-route-type;
description description
"Identity for IS-IS Level 1 route type. It is only "Identity for IS-IS Level 1 route type. It is only
applicable to IS-IS routes."; applicable to IS-IS routes.";
reference
"RFC 5302 - Domain-Wide Prefix Distributino with
Two-Level IS-IS";
} }
identity isis-level-2-type { identity isis-level-2-type {
base proto-route-type; base proto-route-type;
description description
"Identity for IS-IS Level 2 route type. It is only "Identity for IS-IS Level 2 route type. It is only
applicable to IS-IS routes."; applicable to IS-IS routes.";
reference
"RFC 5302 - Domain-Wide Prefix Distributino with
Two-Level IS-IS";
} }
identity ospf-internal-type { identity ospf-internal-type {
base proto-route-type; base proto-route-type;
description description
"Identity for OSPF intra-area or inter-area route type. "Identity for OSPF intra-area or inter-area route type.
It is only applicable to OSPF routes."; It is only applicable to OSPF routes.";
reference
"RFC 2328 - OSPF Version 2";
} }
identity ospf-external-type { identity ospf-external-type {
base proto-route-type; base proto-route-type;
description description
"Identity for OSPF external type 1/2 route type. "Identity for OSPF external type 1/2 route type.
It is only applicable to OSPF routes."; It is only applicable to OSPF routes.";
reference
"RFC 2328 - OSPF Version 2";
} }
identity ospf-external-t1 { identity ospf-external-t1 {
base ospf-external-type; base ospf-external-type;
description description
"Identity for OSPF external type 1 route type. "Identity for OSPF external type 1 route type.
It is only applicable to OSPF routes."; It is only applicable to OSPF routes.";
reference
"RFC 2328 - OSPF Version 2";
} }
identity ospf-external-t2-type { identity ospf-external-t2-type {
base ospf-external-type; base ospf-external-type;
description description
"Identity for OSPF external type 2 route type. "Identity for OSPF external type 2 route type.
It is only applicable to OSPF routes."; It is only applicable to OSPF routes.";
reference
"RFC 2328 - OSPF Version 2";
} }
identity ospf-nssa-type { identity ospf-nssa-type {
base proto-route-type; base proto-route-type;
description description
"Identity for OSPF NSSA type 1/2 route type. "Identity for OSPF NSSA type 1/2 route type.
It is only applicable to OSPF routes."; It is only applicable to OSPF routes.";
reference
"RFC 3101: The OSPF Not-So-Stubby Area (NSSA) Option";
} }
identity ospf-nssa-t1 { identity ospf-nssa-t1 {
base ospf-nssa-type; base ospf-nssa-type;
description description
"Identity for OSPF NSSA type 1 route type. "Identity for OSPF NSSA type 1 route type.
It is only applicable to OSPF routes."; It is only applicable to OSPF routes.";
reference
"RFC 3101: The OSPF Not-So-Stubby Area (NSSA) Option";
} }
identity ospf-nssa-t2 { identity ospf-nssa-t2 {
base ospf-nssa-type; base ospf-nssa-type;
description description
"Identity for OSPF NSSA type 2 route type. "Identity for OSPF NSSA type 2 route type.
It is only applicable to OSPF routes."; It is only applicable to OSPF routes.";
reference
"RFC 3101: The OSPF Not-So-Stubby Area (NSSA) Option";
} }
identity bgp-local { identity bgp-local {
base proto-route-type; base proto-route-type;
description description
"Identity for BGP local route type. "Identity for BGP local route type.
It is only applicable to BGP routes."; It is only applicable to BGP routes.";
reference
"RFC 4271: A Border Gateway Protocol 4 (BGP-4)";
} }
identity bgp-external { identity bgp-external {
base proto-route-type; base proto-route-type;
description description
"Identity for BGP external route type. "Identity for BGP external route type.
It is only applicable to BGP routes."; It is only applicable to BGP routes.";
reference
"RFC 4271: A Border Gateway Protocol 4 (BGP-4)";
} }
/* Type Definitions */ /* Type Definitions */
typedef default-policy-type { typedef default-policy-type {
type enumeration { type enumeration {
enum accept-route { enum accept-route {
description description
"Default policy to accept the route."; "Default policy to accept the route.";
} }
skipping to change at page 22, line 33 skipping to change at page 23, line 35
typedef tag-type { typedef tag-type {
type union { type union {
type uint32; type uint32;
type yang:hex-string; type yang:hex-string;
} }
description description
"Type for expressing route tags on a local system, "Type for expressing route tags on a local system,
including IS-IS and OSPF; may be expressed as either decimal including IS-IS and OSPF; may be expressed as either decimal
or hexadecimal integer."; or hexadecimal integer.";
reference reference
"RFC 2178 - OSPF Version 2 "RFC 2328 - OSPF Version 2
RFC 5130 - A Policy Control Mechanism in IS-IS Using RFC 5130 - A Policy Control Mechanism in IS-IS Using
Administrative Tags"; Administrative Tags";
} }
typedef match-set-options-type { typedef match-set-options-type {
type enumeration { type enumeration {
enum any { enum any {
description description
"Match is true if given value matches any member "Match is true if given value matches any member
of the defined set."; of the defined set.";
skipping to change at page 23, line 24 skipping to change at page 24, line 26
typedef metric-modification-type { typedef metric-modification-type {
type enumeration { type enumeration {
enum set-metric { enum set-metric {
description description
"Set the metric to the specified value."; "Set the metric to the specified value.";
} }
enum add-metric { enum add-metric {
description description
"Add the specified value to the existing metric. "Add the specified value to the existing metric.
If the result would exceed the maximum metric If the result would overflow the maximum metric
(0xffffffff), set the metric to the maximum."; (0xffffffff), set the metric to the maximum.";
} }
enum subtract-metric { enum subtract-metric {
description description
"Subtract the specified value to the existing metric. If "Subtract the specified value to the existing metric. If
the result would be less than 0, set the metric to 0."; the result would be less than 0, set the metric to 0.";
} }
} }
description description
"Type used to specify how to set the metric given the "Type used to specify how to set the metric given the
skipping to change at page 23, line 48 skipping to change at page 24, line 50
/* Groupings */ /* Groupings */
grouping prefix { grouping prefix {
description description
"Configuration data for a prefix definition."; "Configuration data for a prefix definition.";
leaf ip-prefix { leaf ip-prefix {
type inet:ip-prefix; type inet:ip-prefix;
mandatory true; mandatory true;
description description
"The prefix member in CIDR notation -- while the "The IP prefix represented as an IPv6 or IPv4 network
prefix may be either IPv4 or IPv6, most number followed prefix length with an intervening slash
implementations require all members of the prefix set character a delimiter -- while the prefix may be either
to be the same address family. Mixing address types in IPv4 or IPv6, most implementations require all members
the same prefix set is likely to cause an error."; of the prefix set to be the same address family. Mixing
address types in the same prefix set is likely to cause
an error.";
} }
leaf mask-length-lower { leaf mask-length-lower {
type uint8; type uint8;
description description
"Mask length range lower bound."; "Mask length range lower bound.";
} }
leaf mask-length-upper { leaf mask-length-upper {
type uint8 { type uint8 {
range "1..128"; range "1..128";
skipping to change at page 26, line 14 skipping to change at page 27, line 19
interface to be specified using the interface leaf in interface to be specified using the interface leaf in
this container. If only a reference to a base interface this container. If only a reference to a base interface
is required, this leaf should not be set."; is required, this leaf should not be set.";
} }
description description
"Container for interface match conditions"; "Container for interface match conditions";
} }
} }
grouping match-proto-route-type-condition { grouping match-route-type-condition {
description description
"This grouping provides route-type match condition"; "This grouping provides route-type match condition";
leaf-list match-proto-route-type { leaf-list match-route-type {
type identityref { type identityref {
base proto-route-type; base proto-route-type;
} }
description description
"Condition to check the protocol specific type "Condition to check the protocol specific type
of route. This is normally used during route of route. This is normally used during route
importation to select routes or to set protocol importation to select routes or to set protocol
specific attributes based on the route type."; specific attributes based on the route type.";
} }
} }
skipping to change at page 33, line 27 skipping to change at page 34, line 34
} }
description description
"Condition to check the protocol / method used to "Condition to check the protocol / method used to
install the route into the local routing table."; install the route into the local routing table.";
} }
uses match-interface-condition; uses match-interface-condition;
uses prefix-set-condition; uses prefix-set-condition;
uses neighbor-set-condition; uses neighbor-set-condition;
uses tag-set-condition; uses tag-set-condition;
uses match-proto-route-type-condition; uses match-route-type-condition;
} }
container actions { container actions {
description description
"Top-level container for policy action "Top-level container for policy action
statements."; statements.";
leaf policy-result { leaf policy-result {
type policy-result-type; type policy-result-type;
description description
"Select the final disposition for the route, "Select the final disposition for the route,
skipping to change at page 36, line 30 skipping to change at page 37, line 39
Wilton, R., Ball, D., tapsingh@cisco.com, t., and S. Wilton, R., Ball, D., tapsingh@cisco.com, t., and S.
Sivaraj,, "Common Interface Extension YANG Data Models", Sivaraj,, "Common Interface Extension YANG Data Models",
2019, <https://datatracker.ietf.org/doc/ 2019, <https://datatracker.ietf.org/doc/
draft-ietf-netmod-intf-ext-yang/>. draft-ietf-netmod-intf-ext-yang/>.
[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-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328,
DOI 10.17487/RFC2328, April 1998,
<https://www.rfc-editor.org/info/rfc2328>.
[RFC3101] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option",
RFC 3101, DOI 10.17487/RFC3101, January 2003,
<https://www.rfc-editor.org/info/rfc3101>.
[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-editor.org/info/rfc3688>. <https://www.rfc-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-editor.org/info/rfc4271>. <https://www.rfc-editor.org/info/rfc4271>.
[RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy
Control Mechanism in IS-IS Using Administrative Tags",
RFC 5130, DOI 10.17487/RFC5130, February 2008,
<https://www.rfc-editor.org/info/rfc5130>.
[RFC5302] Li, T., Smit, H., and T. Przygienda, "Domain-Wide Prefix
Distribution with Two-Level IS-IS", RFC 5302,
DOI 10.17487/RFC5302, October 2008,
<https://www.rfc-editor.org/info/rfc5302>.
[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-editor.org/info/rfc6020>. <https://www.rfc-editor.org/info/rfc6020>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
skipping to change at page 38, line 31 skipping to change at page 40, line 5
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, Russ White, and Steve Padgett, Juergen Schoenwaelder, Jim Uttaro, Russ White, and
John Heasley. John Heasley.
Thanks to Mahesh Jethanandani for valuable comments. Thanks to Mahesh Jethanandani and Tom Petch for their review and
comments.
Authors' Addresses Authors' Addresses
Yingzhen Qu Yingzhen Qu
Futurewei Futurewei
2330 Central Expressway 2330 Central Expressway
Santa Clara CA 95050 Santa Clara CA 95050
USA USA
Email: yingzhen.qu@futurewei.com Email: yingzhen.qu@futurewei.com
 End of changes. 48 change blocks. 
36 lines changed or deleted 109 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/