draft-ietf-bess-l3vpn-yang-00.txt   draft-ietf-bess-l3vpn-yang-01.txt 
BESS Working Group D. Jain BESS Working Group D. Jain
Internet-Draft K. Patel Internet-Draft K. Patel
Intended status: Standards Track P. Brissette Intended status: Standards Track P. Brissette
Expires: March 17, 2017 Cisco Expires: October 27, 2017 Cisco
Z. Li Z. Li
S. Zhuang S. Zhuang
Huawei Technologies Huawei Technologies
X. Liu X. Liu
Ericsson Jabil
J. Haas J. Haas
S. Esale S. Esale
Juniper Networks Juniper Networks
B. Wen B. Wen
Comcast Comcast
September 13, 2016 April 25, 2017
Yang Data Model for BGP/MPLS L3 VPNs Yang Data Model for BGP/MPLS L3 VPNs
draft-ietf-bess-l3vpn-yang-00.txt draft-ietf-bess-l3vpn-yang-01.txt
Abstract Abstract
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage BGP Layer 3 VPNs. and manage BGP Layer 3 VPNs.
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.
skipping to change at page 1, line 42 skipping to change at page 1, line 42
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 http://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 March 17, 2017. This Internet-Draft will expire on October 27, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2017 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
(http://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
skipping to change at page 2, line 50 skipping to change at page 2, line 50
3.2.6. Yang tree . . . . . . . . . . . . . . . . . . . . . . 5 3.2.6. Yang tree . . . . . . . . . . . . . . . . . . . . . . 5
3.3. BGP Specific Configuration . . . . . . . . . . . . . . . 7 3.3. BGP Specific Configuration . . . . . . . . . . . . . . . 7
3.3.1. VPN peering . . . . . . . . . . . . . . . . . . . . . 7 3.3.1. VPN peering . . . . . . . . . . . . . . . . . . . . . 7
3.3.2. VPN prefix limits . . . . . . . . . . . . . . . . . . 7 3.3.2. VPN prefix limits . . . . . . . . . . . . . . . . . . 7
3.3.3. Label Mode . . . . . . . . . . . . . . . . . . . . . 8 3.3.3. Label Mode . . . . . . . . . . . . . . . . . . . . . 8
3.3.4. ASBR options . . . . . . . . . . . . . . . . . . . . 8 3.3.4. ASBR options . . . . . . . . . . . . . . . . . . . . 8
3.3.5. Yang tree . . . . . . . . . . . . . . . . . . . . . . 8 3.3.5. Yang tree . . . . . . . . . . . . . . . . . . . . . . 8
4. BGP Yang Module . . . . . . . . . . . . . . . . . . . . . . . 10 4. BGP Yang Module . . . . . . . . . . . . . . . . . . . . . . . 10
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
6. Security Considerations . . . . . . . . . . . . . . . . . . . 25 6. Security Considerations . . . . . . . . . . . . . . . . . . . 25
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 25 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.1. Normative References . . . . . . . . . . . . . . . . . . 26 8.1. Normative References . . . . . . . . . . . . . . . . . . 26
8.2. Informative References . . . . . . . . . . . . . . . . . 26 8.2. Informative References . . . . . . . . . . . . . . . . . 27
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27
1. Introduction 1. Introduction
YANG [RFC6020] is a data definition language that was introduced to YANG [RFC6020] is a data definition language that was introduced to
define the contents of a conceptual data store that allows networked define the contents of a conceptual data store that allows networked
devices to be managed using NETCONF [RFC6241]. YANG is proving devices to be managed using NETCONF [RFC6241]. YANG is proving
relevant beyond its initial confines, as bindings to other interfaces relevant beyond its initial confines, as bindings to other interfaces
(e.g. ReST) and encodings other than XML (e.g. JSON) are being (e.g. ReST) and encodings other than XML (e.g. JSON) are being
defined. Furthermore, YANG data models can be used as the basis of defined. Furthermore, YANG data models can be used as the basis of
skipping to change at page 5, line 47 skipping to change at page 5, line 47
incoming packets. Ietf-interface container is augmented to add this incoming packets. Ietf-interface container is augmented to add this
config. config.
3.2.6. Yang tree 3.2.6. Yang tree
module: ietf-bgp-l3vpn module: ietf-bgp-l3vpn
augment /ni:network-instances/ni:network-instance: augment /ni:network-instances/ni:network-instance:
+--rw l3vpn +--rw l3vpn
+--rw route-distinguisher +--rw route-distinguisher
| +--rw config | +--rw config
| | +--rw rd? string | | +--rw rd? rt-types:route-distinguisher
| +--ro state | +--ro state
| +--ro rd? string | +--ro rd? rt-types:route-distinguisher
+--rw ipv4 +--rw ipv4
| +--rw unicast | +--rw unicast
| +--rw route-targets | +--rw route-targets
| | +--rw config | | +--rw config
| | | +--rw rts* [rt] | | | +--rw rts* [rt]
| | | | +--rw rt string | | | | +--rw rt rt-types:route-target
| | | | +--rw rt-type? enumeration | | | | +--rw rt-type? enumeration
| | | +--rw route-policy? string | | | +--rw route-policy? string
| | +--ro state | | +--ro state
| | +--ro rts* [rt] | | +--ro rts* [rt]
| | | +--ro rt string | | | +--ro rt rt-types:route-target
| | | +--ro rt-type? enumeration | | | +--ro rt-type? enumeration
| | +--ro route-policy? string | | +--ro route-policy? string
| +--rw import-from-global | +--rw import-from-global
| | +--rw config | | +--rw config
| | | +--rw enable? boolean | | | +--rw enable? boolean
| | | +--rw advertise-as-vpn? boolean | | | +--rw advertise-as-vpn? boolean
| | | +--rw route-policy? string | | | +--rw route-policy? string
| | | +--rw bgp-valid-route? boolean | | | +--rw bgp-valid-route? boolean
| | | +--rw protocol? enumeration | | | +--rw protocol? enumeration
| | | +--rw instance? string | | | +--rw instance? string
skipping to change at page 10, line 22 skipping to change at page 10, line 22
+--rw nexthop-options +--rw nexthop-options
+--rw config +--rw config
| +--rw next-hop-self? boolean | +--rw next-hop-self? boolean
| +--rw next-hop-unchanged? boolean | +--rw next-hop-unchanged? boolean
+--rw state +--rw state
+--rw next-hop-self? boolean +--rw next-hop-self? boolean
+--rw next-hop-unchanged? boolean +--rw next-hop-unchanged? boolean
4. BGP Yang Module 4. BGP Yang Module
<CODE BEGINS> file "ietf-bgp-l3vpn@2016-09-09.yang" <CODE BEGINS> file "ietf-bgp-l3vpn@2017-04-25.yang"
module ietf-bgp-l3vpn { module ietf-bgp-l3vpn {
namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-l3vpn"; namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-l3vpn";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix l3vpn ; prefix l3vpn ;
import ietf-network-instance { import ietf-network-instance {
prefix ni; prefix ni;
revision-date 2016-06-23; //revision-date 2016-06-23;
}
import ietf-routing-types {
prefix rt-types;
//revision-date 2017-02-27;
} }
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
} }
import ietf-bgp { import ietf-bgp {
prefix bgp; prefix bgp;
revision-date 2016-06-21; //revision-date 2016-06-21;
} }
organization organization
"IETF BGP Enabled Services WG"; "IETF BGP Enabled Services WG";
contact contact
"BESS working group - bess@ietf.org"; "BESS working group - bess@ietf.org";
description description
"This YANG module defines a YANG data model to configure and "This YANG module defines a YANG data model to configure and
skipping to change at page 11, line 43 skipping to change at page 11, line 47
RT : Route Target RT : Route Target
RD : Route Distinguisher RD : Route Distinguisher
VPN : Virtual Private Network VPN : Virtual Private Network
VRF : Virtual Routing and Forwarding VRF : Virtual Routing and Forwarding
"; ";
revision 2017-04-25 {
description
"Reused ietf-roting-types.yang for vpn route-targets" +
" and route distinguisher types";
reference "";
}
revision 2016-09-09 { revision 2016-09-09 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for BGP L3VPN config management"; "RFC XXXX: A YANG Data Model for BGP L3VPN config management";
} }
//RD //RD
grouping route-distinguisher-params { grouping route-distinguisher-params {
description "BGP route distinguisher"; description "BGP route distinguisher";
container route-distinguisher { container route-distinguisher {
description "Route distinguisher value as per RFC4364"; description "Route distinguisher value as per RFC4364";
container config { container config {
description description
"Configuration parameters for route distinguisher"; "Configuration parameters for route distinguisher";
leaf rd { leaf rd {
type string; type rt-types:route-distinguisher;
description "Route distinguisher value as per RFC4364"; description "Route distinguisher value as per RFC4364";
} }
} }
container state { container state {
config "false" ; config "false" ;
description description
"State information for route distinguisher"; "State information for route distinguisher";
leaf rd { leaf rd {
type string; type rt-types:route-distinguisher;
description "Route distinguisher value"; description "Route distinguisher value";
} }
} }
} }
} }
//Label mode //Label mode
typedef bgp-label-mode { typedef bgp-label-mode {
type enumeration { type enumeration {
enum per-ce { enum per-ce {
skipping to change at page 15, line 37 skipping to change at page 15, line 50
} }
grouping route-target-set { grouping route-target-set {
description description
"Extended community route-target set "; "Extended community route-target set ";
list rts { list rts {
key "rt" ; key "rt" ;
description description
"List of route-targets" ; "List of route-targets" ;
leaf rt { leaf rt {
type string { type rt-types:route-target;
pattern '([0-9]+:[0-9]+)';
}
description "Route target extended community as per RFC4360"; description "Route target extended community as per RFC4360";
} }
leaf rt-type { leaf rt-type {
type enumeration { type enumeration {
enum import { enum import {
description "Route target is for import routes"; description "Route target is for import routes";
} }
enum export { enum export {
description "Route target is for export routes"; description "Route target is for export routes";
} }
enum both { enum both {
skipping to change at page 20, line 41 skipping to change at page 20, line 51
// Tunnel policy parameters // Tunnel policy parameters
grouping tunnel-params { grouping tunnel-params {
description "Tunnel parameters"; description "Tunnel parameters";
container tunnel-params { container tunnel-params {
description "Tunnel config parameters"; description "Tunnel config parameters";
container config { container config {
description "configuration parameters"; description "configuration parameters";
leaf tunnel-policy { leaf tunnel-policy {
type string; type string;
description description
"Tunnel policy name."; "Tunnel policy to steer the VPN traffic into specific tunnel";
} }
} }
container state { container state {
config "false"; config "false";
description "state parameters"; description "state parameters";
leaf tunnel-policy { leaf tunnel-policy {
type string; type string;
description description
"Tunnel policy name."; "Tunnel policy to steer the VPN traffic into specific tunnel";
} }
} }
} }
} }
// Grouping for the L3vpn specific parameters under VRF // Grouping for the L3vpn specific parameters under VRF
// (network-instance) // (network-instance)
grouping l3vpn-vrf-params { grouping l3vpn-vrf-params {
description "Specify route filtering rules for import/export"; description "Specify route filtering rules for import/export";
container ipv4 { container ipv4 {
description description
"Specify route filtering rules for import/export"; "Specify route filtering rules for import/export";
skipping to change at page 26, line 20 skipping to change at page 26, line 28
Shaikh, A., Shakir, R., Patel, K., Hares, S., D'Souza, K., Shaikh, A., Shakir, R., Patel, K., Hares, S., D'Souza, K.,
Bansal, D., Clemm, A., Zhdankin, A., Jethanandani, M., and Bansal, D., Clemm, A., Zhdankin, A., Jethanandani, M., and
X. Liu, "BGP Model for Service Provider Networks", draft- X. Liu, "BGP Model for Service Provider Networks", draft-
ietf-idr-bgp-model-02 (work in progress), July 2016. ietf-idr-bgp-model-02 (work in progress), July 2016.
[I-D.ietf-rtgwg-ni-model] [I-D.ietf-rtgwg-ni-model]
Berger, L., Hopps, C., Lindem, A., and D. Bogdanovic, Berger, L., Hopps, C., Lindem, A., and D. Bogdanovic,
"Network Instance Model", draft-ietf-rtgwg-ni-model-00 "Network Instance Model", draft-ietf-rtgwg-ni-model-00
(work in progress), June 2016. (work in progress), June 2016.
[I-D.ietf-rtgwg-routing-types]
Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger,
"Routing Area Common YANG Data Types", draft-ietf-rtgwg-
routing-types-02 (work in progress), March 2017.
[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,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
2006, <http://www.rfc-editor.org/info/rfc4364>. 2006, <http://www.rfc-editor.org/info/rfc4364>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
skipping to change at page 27, line 35 skipping to change at page 28, line 4
Email: keyur@arrcus.com Email: keyur@arrcus.com
Patrice Brissette Patrice Brissette
Cisco Cisco
170 W. Tasman Drive 170 W. Tasman Drive
San Jose, CA 95134 San Jose, CA 95134
USA USA
Email: pbrisset@cisco.com Email: pbrisset@cisco.com
Zhenbin Li Zhenbin Li
Huawei Technologies Huawei Technologies
Huawei Bld., No.156 Beiqing Rd. Huawei Bld., No.156 Beiqing Rd.
Beijing 100095 Beijing 100095
China China
Email: lizhenbin@huawei.com Email: lizhenbin@huawei.com
Shunwan Zhuang Shunwan Zhuang
Huawei Technologies Huawei Technologies
Huawei Bld., No.156 Beiqing Rd. Huawei Bld., No.156 Beiqing Rd.
Beijing 100095 Beijing 100095
China China
Email: zhuangshunwan@huawei.com Email: zhuangshunwan@huawei.com
Xufeng Liu Xufeng Liu
Ericsson Jabil
1595 Spring Hill Road, Suite 500 8281 Greensboro Drive, Suite 200
Vienna, VA 22182 McLean, VA 22102
USA USA
Email: xliu@kuatrotech.com Email: Xufeng_Liu@jabil.com
Jeffrey Haas Jeffrey Haas
Juniper Networks Juniper Networks
Email: jhaas@juniper.net Email: jhaas@juniper.net
Santosh Esale Santosh Esale
Juniper Networks Juniper Networks
1194 N. Mathilda Ave. 1194 N. Mathilda Ave.
Sunnyvale, CA 94089 Sunnyvale, CA 94089
 End of changes. 28 change blocks. 
28 lines changed or deleted 44 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/