< draft-ietf-rtgwg-policy-model-07.txt   draft-ietf-rtgwg-policy-model-08.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: March 13, 2020 Apstra Expires: July 5, 2020 Apstra
A. Lindem A. Lindem
Cisco Cisco
X. Liu X. Liu
Volta Networks Volta Networks
September 10, 2019 January 2, 2020
A YANG Data Model for Routing Policy Management A YANG Data Model for Routing Policy Management
draft-ietf-rtgwg-policy-model-07 draft-ietf-rtgwg-policy-model-08
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 March 13, 2020. This Internet-Draft will expire on July 5, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 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
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
skipping to change at page 2, line 29 skipping to change at page 2, line 29
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 . . . . . . . . . . . . . . . . . . . . . 13 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
10. YANG modules . . . . . . . . . . . . . . . . . . . . . . . . 14 10. YANG modules . . . . . . . . . . . . . . . . . . . . . . . . 14
10.1. Routing policy model . . . . . . . . . . . . . . . . . . 14 10.1. Routing policy model . . . . . . . . . . . . . . . . . . 14
11. Policy examples . . . . . . . . . . . . . . . . . . . . . . . 30 11. Policy examples . . . . . . . . . . . . . . . . . . . . . . . 31
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 31
12.1. Normative references . . . . . . . . . . . . . . . . . . 31 12.1. Normative references . . . . . . . . . . . . . . . . . . 31
12.2. Informative references . . . . . . . . . . . . . . . . . 32 12.2. Informative references . . . . . . . . . . . . . . . . . 32
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 32 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 32
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33
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 5, line 5 skipping to change at page 5, line 5
[RFC8340]. [RFC8340].
2.2. Prefixes in Data Node Names 2.2. Prefixes in Data Node Names
In this document, names of data nodes, actions, and other data model In this document, names of data nodes, actions, and other data model
objects are often used without a prefix, as long as it is clear from objects are often used without a prefix, as long as it is clear from
the context in which YANG module each name is defined. Otherwise, the context in which YANG module each name is defined. Otherwise,
names are prefixed using the standard prefix associated with the names are prefixed using the standard prefix associated with the
corresponding YANG module, as shown in Table 1. corresponding YANG module, as shown in Table 1.
+--------+------------------------+---------------------------------+ +-----------+------------------+------------------------------------+
| Prefix | YANG module | Reference | | Prefix | YANG module | Reference |
+--------+------------------------+---------------------------------+ +-----------+------------------+------------------------------------+
| if | ietf-interfaces | [RFC8343] | | if | ietf-interfaces | [RFC8343] |
| | | | | | | |
| rt | ietf-routing | [RFC8349] | | rt | ietf-routing | [RFC8349] |
| | | | | | | |
| yang | ietf-yang-types | [RFC6991] | | yang | ietf-yang-types | [RFC6991] |
| | | | | | | |
| inet | ietf-inet-types | [RFC6991] | | inet | ietf-inet-types | [RFC6991] |
| | | | | | | |
| if-cmn | ietf-interfaces-common | [I-D.ietf-netmod-intf-ext-yang] | | if-ext | ietf-if- | [I-D.ietf-netmod-intf-ext-yang] |
+--------+------------------------+---------------------------------+ | | extensions | |
| | | |
| if-l3-vla | ietf-if-l3-vlan | [I-D.ietf-netmod-sub-intf-vlan-mod |
| n | | el] |
+-----------+------------------+------------------------------------+
Table 1: Prefixes and Corresponding YANG Modules Table 1: Prefixes and Corresponding YANG Modules
3. Model overview 3. Model overview
The routing policy module has three main parts: The routing policy module has three main parts:
o A generic framework to express policies as sets of related o A generic framework to express policies as sets of related
conditions and actions. This includes match sets and actions that conditions and actions. This includes match sets and actions that
are useful across many routing protocols. are useful across many routing protocols.
skipping to change at page 14, line 12 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@2019-03-06.yang" <CODE BEGINS> file "ietf-routing-policy@2020-01-02.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";
} }
skipping to change at page 14, line 35 skipping to change at page 14, line 35
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
} }
import ietf-interfaces-common { import ietf-if-extensions {
prefix if-cmn; prefix if-ext;
} }
import ietf-if-l3-vlan { import ietf-if-l3-vlan {
prefix "if-l3-vlan"; prefix "if-l3-vlan";
} }
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: <mailto:rtgwg@ietf.org> WG List: <mailto:rtgwg@ietf.org>
Editor: Yingzhen Qu Editor: Yingzhen Qu
<mailto:yingzhen.qu@huawei.com> <mailto:yingzhen.qu@futurewei.com>
Jeff Tantsura Jeff Tantsura
<mailto:jefftant.ietf@gmail.com> <mailto:jefftant.ietf@gmail.com>
Acee Lindem Acee Lindem
<mailto:acee@cisco.com> <mailto:acee@cisco.com>
Xufeng Liu Xufeng Liu
<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 different routing protocols. This module is intended to be
used 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.
Copyright (c) 2020 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
for full legal notices.
Route policy expression: Route policy expression:
Policies are expressed as a set of top-level policy Policies are expressed as a set of top-level policy
definitions, each of which consists of a sequence of policy definitions, each of which consists of a sequence of policy
statements. Policy statements consist of simple statements. Policy statements consist of simple
condition-action tuples. Conditions may include mutiple match condition-action tuples. Conditions may include mutiple match
or comparison operations, and similarly actions may be or comparison operations, and similarly actions may be
multitude of changes to route attributes or a final disposition multitude of changes to route attributes or a final disposition
of accepting or rejecting the route. of accepting or rejecting the route.
skipping to change at page 16, line 24 skipping to change at page 16, line 38
the 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), results in an accept-route (either explicit or by default),
then the subroutine returns an effective true value to the then the subroutine returns an effective true value to the
calling policy. Similarly, a reject-route action returns calling policy. Similarly, a reject-route action returns
false. If the subroutine returns true, the calling policy false. If the subroutine returns true, the calling policy
continues to evaluate the remaining conditions (using a continues to evaluate the remaining conditions (using a
modified route if the subroutine performed any changes to the modified route if the subroutine performed any changes to the
route)."; route).";
revision "2019-03-06" { revision "2020-01-02" {
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 23, line 26 skipping to change at page 23, line 40
type leafref { type leafref {
path "/if:interfaces/if:interface/if:name"; path "/if:interfaces/if:interface/if:name";
} }
description description
"Reference to a base interface. If a reference to a "Reference to a base interface. If a reference to a
subinterface is required, this leaf must be specified subinterface is required, this leaf must be specified
to indicate the base interface."; to indicate the base interface.";
} }
leaf subinterface { leaf subinterface {
type leafref { type leafref {
path "/if:interfaces/if:interface/if-cmn:encapsulation" path "/if:interfaces/if:interface/if-ext:encapsulation"
+ "/if-l3-vlan:dot1q-vlan" + "/if-l3-vlan:dot1q-vlan"
+ "/if-l3-vlan:outer-tag/if-l3-vlan:vlan-id"; + "/if-l3-vlan:outer-tag/if-l3-vlan:vlan-id";
} }
description description
"Reference to a subinterface -- this requires the base "Reference to a subinterface -- this requires the base
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 requuired, this leaf should not be set."; is requuired, this leaf should not be set.";
} }
description description
"Container for interface match conditions"; "Container for interface match conditions";
} }
} }
grouping prefix-set-condition { grouping prefix-set-condition {
description description
"This grouping provides prefix-set conditions"; "This grouping provides prefix-set conditions";
container match-prefix-set { container match-prefix-set {
skipping to change at page 31, line 4 skipping to change at page 31, line 15
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] [I-D.ietf-netmod-intf-ext-yang]
Wilton, R., Ball, D., tsingh@juniper.net, 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",
draft-ietf-netmod-intf-ext-yang-07 (work in progress), draft-ietf-netmod-intf-ext-yang-08 (work in progress),
March 2019. November 2019.
[I-D.ietf-netmod-sub-intf-vlan-model] [I-D.ietf-netmod-sub-intf-vlan-model]
Wilton, R., Ball, D., tapsingh@cisco.com, t., and S. Wilton, R., Ball, D., tapsingh@cisco.com, t., and S.
Sivaraj, "Sub-interface VLAN YANG Data Models", draft- Sivaraj, "Sub-interface VLAN YANG Data Models", draft-
ietf-netmod-sub-intf-vlan-model-05 (work in progress), ietf-netmod-sub-intf-vlan-model-06 (work in progress),
March 2019. November 2019.
[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>.
[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>.
skipping to change at page 32, line 22 skipping to change at page 32, line 34
<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-editor.org/info/rfc8349>. <https://www.rfc-editor.org/info/rfc8349>.
12.2. Informative references 12.2. Informative references
[I-D.ietf-idr-bgp-model] [I-D.ietf-idr-bgp-model]
Jethanandani, M., Patel, K., and S. Hares, "BGP YANG Model Jethanandani, M., Patel, K., Hares, S., and J. Haas, "BGP
for Service Provider Networks", draft-ietf-idr-bgp- YANG Model for Service Provider Networks", draft-ietf-idr-
model-06 (work in progress), June 2019. bgp-model-07 (work in progress), October 2019.
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
 End of changes. 20 change blocks. 
36 lines changed or deleted 54 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/