draft-ietf-bess-evpn-yang-04.txt   draft-ietf-bess-evpn-yang-05.txt 
BESS Working Group P. Brissette BESS Working Group P. Brissette Ed.
Internet Draft Cisco System Internet Draft Cisco System
Intended Status: Proposed Standard H. Shah Intended Status: Proposed Standard H. Shah Ed.
Expires: August 24, 2018 Ciena Corporation Expires: August 25, 2018 Ciena Corporation
I. Chen I. Chen Ed.
Jabil Jabil
K. Tiruveedhula I. Hussain Ed.
Infinera Corporation
K. Tiruveedhula Ed.
Juniper Networks Juniper Networks
J. Rabadan J. Rabadan Ed.
Nokia Nokia
February 20, 2018 February 21, 2018
Yang Data Model for EVPN Yang Data Model for EVPN
draft-ietf-bess-evpn-yang-04 draft-ietf-bess-evpn-yang-05
Abstract Abstract
This document describes a YANG data model for Ethernet VPN services. This document describes a YANG data model for Ethernet VPN services.
The model is agnostic of the underlay. It apply to MPLS as well as to The model is agnostic of the underlay. It apply to MPLS as well as to
VxLAN encapsulation. The model is also agnostic of the services VxLAN encapsulation. The model is also agnostic of the services
including E-LAN, E-LINE and E-TREE services. This document mainly including E-LAN, E-LINE and E-TREE services. This document mainly
focuses on EVPN and Ethernet-Segment instance framework. focuses on EVPN and Ethernet-Segment instance framework.
Status of this Memo Status of this Memo
skipping to change at page 2, line 31 skipping to change at page 2, line 34
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Specification of Requirements . . . . . . . . . . . . . . . . . 3 2. Specification of Requirements . . . . . . . . . . . . . . . . . 3
3. EVPN YANG Model . . . . . . . . . . . . . . . . . . . . . . . . 4 3. EVPN YANG Model . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Ethernet-Segment Model . . . . . . . . . . . . . . . . . . . 4 3.2 Ethernet-Segment Model . . . . . . . . . . . . . . . . . . . 4
3.3 EVPN Model . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3 EVPN Model . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1 Ethernet Segment Yang Module . . . . . . . . . . . . . . . . 9 4.1 Ethernet Segment Yang Module . . . . . . . . . . . . . . . . 9
4.2 EVPN Yang Module . . . . . . . . . . . . . . . . . . . . . . 14 4.2 EVPN Yang Module . . . . . . . . . . . . . . . . . . . . . . 14
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 25 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 25
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 26 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 26
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.1. Normative Reference . . . . . . . . . . . . . . . . . . . . 26 7.1. Normative Reference . . . . . . . . . . . . . . . . . . . . 26
7.2. Informative References . . . . . . . . . . . . . . . . . . 26 7.2. Informative References . . . . . . . . . . . . . . . . . . 26
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 27 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 27
1. Introduction 1. Introduction
skipping to change at page 5, line 25 skipping to change at page 5, line 28
+--rw (active-mode) +--rw (active-mode)
| +--:(single-active) | +--:(single-active)
| | +--rw single-active-mode? empty | | +--rw single-active-mode? empty
| +--:(all-active) | +--:(all-active)
| +--rw all-active-mode? empty | +--rw all-active-mode? empty
+--rw pbb-parameters {ethernet-segment-pbb-params}? +--rw pbb-parameters {ethernet-segment-pbb-params}?
| +--rw backbone-src-mac? yang:mac-address | +--rw backbone-src-mac? yang:mac-address
+--rw bgp-parameters +--rw bgp-parameters
| +--rw common | +--rw common
| +--rw rd-rt* [route-distinguisher] | +--rw rd-rt* [route-distinguisher]
{ethernet-segment-bgp-params}? | {ethernet-segment-bgp-params}?
| +--rw route-distinguisher | +--rw route-distinguisher
rt-types:route-distinguisher | rt-types:route-distinguisher
| +--rw vpn-target* [route-target] | +--rw vpn-target* [route-target]
| +--rw route-target | +--rw route-target
rt-types:route-target | rt-types:route-target
| +--rw route-target-type | +--rw route-target-type
rt-types:route-target-type | rt-types:route-target-type
+--rw df-election +--rw df-election
| +--rw df-election-method? df-election-method-type | +--rw df-election-method? df-election-method-type
| +--rw preference? uint16 | +--rw preference? uint16
| +--rw revertive? boolean | +--rw revertive? boolean
| +--rw election-wait-time? uint32 | +--rw election-wait-time? uint32
+--rw ead-evi-route? boolean +--rw ead-evi-route? boolean
+--ro esi-label? string +--ro esi-label? string
+--ro member* +--ro member*
| +--ro ip-address? inet:ip-address | +--ro ip-address? inet:ip-address
+--ro df* +--ro df*
skipping to change at page 6, line 23 skipping to change at page 6, line 25
| +--rw p2mp-replication? boolean | +--rw p2mp-replication? boolean
+--rw evpn-instances +--rw evpn-instances
+--rw evpn-instance* [name] +--rw evpn-instance* [name]
+--rw name string +--rw name string
+--rw evi? uint32 +--rw evi? uint32
+--rw pbb-parameters {evpn-pbb-params}? +--rw pbb-parameters {evpn-pbb-params}?
| +--rw source-bmac? yang:hex-string | +--rw source-bmac? yang:hex-string
+--rw bgp-parameters +--rw bgp-parameters
| +--rw common | +--rw common
| +--rw rd-rt* [route-distinguisher] | +--rw rd-rt* [route-distinguisher]
{evpn-bgp-params}? | {evpn-bgp-params}?
| +--rw route-distinguisher | +--rw route-distinguisher
| | rt-types:route-distinguisher | | rt-types:route-distinguisher
| +--rw vpn-target* [route-target] | +--rw vpn-target* [route-target]
| +--rw route-target | +--rw route-target
rt-types:route-target | rt-types:route-target
| +--rw route-target-type | +--rw route-target-type
rt-types:route-target-type rt-types:route-target-type
+--rw arp-proxy? boolean +--rw arp-proxy? boolean
+--rw arp-suppression? boolean +--rw arp-suppression? boolean
+--rw nd-proxy? boolean +--rw nd-proxy? boolean
+--rw nd-suppression? boolean +--rw nd-suppression? boolean
+--rw underlay-multicast? boolean +--rw underlay-multicast? boolean
+--rw flood-unknown-unicast-supression? boolean +--rw flood-unknown-unicast-supression? boolean
+--rw vpws-vlan-aware? boolean +--rw vpws-vlan-aware? boolean
+--ro routes +--ro routes
| +--ro ethernet-auto-discovery-route* | +--ro ethernet-auto-discovery-route*
| | +--ro rd-rt* [route-distinguisher] | | +--ro rd-rt* [route-distinguisher]
| | | +--ro route-distinguisher | | | +--ro route-distinguisher
rt-types:route-distinguisher | | | rt-types:route-distinguisher
| | | +--ro vpn-target* [route-target] | | | +--ro vpn-target* [route-target]
| | | +--ro route-target rt-types:route-target | | | +--ro route-target rt-types:route-target
| | +--ro ethernet-segment-identifier? uint32 | | +--ro ethernet-segment-identifier? uint32
| | +--ro ethernet-tag? uint32 | | +--ro ethernet-tag? uint32
| | +--ro path* | | +--ro path*
| | +--ro next-hop? inet:ip-address | | +--ro next-hop? inet:ip-address
| | +--ro label? rt-types:mpls-label | | +--ro label? rt-types:mpls-label
| | +--ro detail | | +--ro detail
| | +--ro attributes | | +--ro attributes
| | | +--ro extended-community* string | | | +--ro extended-community* string
| | +--ro bestpath? empty | | +--ro bestpath? empty
| +--ro mac-ip-advertisement-route* | +--ro mac-ip-advertisement-route*
| | +--ro rd-rt* [route-distinguisher] | | +--ro rd-rt* [route-distinguisher]
| | | +--ro route-distinguisher | | | +--ro route-distinguisher
rt-types:route-distinguisher | | | rt-types:route-distinguisher
| | | +--ro vpn-target* [route-target] | | | +--ro vpn-target* [route-target]
| | | +--ro route-target | | | +--ro route-target
rt-types:route-target | | | rt-types:route-target
| | +--ro ethernet-segment-identifier? uint32 | | +--ro ethernet-segment-identifier? uint32
| | +--ro ethernet-tag? uint32 | | +--ro ethernet-tag? uint32
| | +--ro mac-address? yang:hex-string | | +--ro mac-address? yang:hex-string
| | +--ro mac-address-length? uint8 | | +--ro mac-address-length? uint8
| | +--ro ip-prefix? inet:ip-prefix | | +--ro ip-prefix? inet:ip-prefix
| | +--ro path* | | +--ro path*
| | +--ro next-hop? inet:ip-address | | +--ro next-hop? inet:ip-address
| | +--ro label? rt-types:mpls-label | | +--ro label? rt-types:mpls-label
| | +--ro label2? rt-types:mpls-label | | +--ro label2? rt-types:mpls-label
| | +--ro detail | | +--ro detail
| | +--ro attributes | | +--ro attributes
| | | +--ro extended-community* string | | | +--ro extended-community* string
| | +--ro bestpath? empty | | +--ro bestpath? empty
| +--ro inclusive-multicast-ethernet-tag-route* | +--ro inclusive-multicast-ethernet-tag-route*
| | +--ro rd-rt* [route-distinguisher] | | +--ro rd-rt* [route-distinguisher]
| | | +--ro route-distinguisher | | | +--ro route-distinguisher
rt-types:route-distinguisher | | | rt-types:route-distinguisher
| | | +--ro vpn-target* [route-target] | | | +--ro vpn-target* [route-target]
| | | +--ro route-target | | | +--ro route-target
rt-types:route-target | | | rt-types:route-target
| | +--ro ethernet-segment-identifier? uint32 | | +--ro ethernet-segment-identifier? uint32
| | +--ro originator-ip-prefix? inet:ip-prefix | | +--ro originator-ip-prefix? inet:ip-prefix
| | +--ro path* | | +--ro path*
| | +--ro next-hop? inet:ip-address | | +--ro next-hop? inet:ip-address
| | +--ro label? rt-types:mpls-label | | +--ro label? rt-types:mpls-label
| | +--ro detail | | +--ro detail
| | +--ro attributes | | +--ro attributes
| | | +--ro extended-community* string | | | +--ro extended-community* string
| | +--ro bestpath? empty | | +--ro bestpath? empty
| +--ro ethernet-segment-route* | +--ro ethernet-segment-route*
| | +--ro rd-rt* [route-distinguisher] | | +--ro rd-rt* [route-distinguisher]
| | | +--ro route-distinguisher | | | +--ro route-distinguisher
rt-types:route-distinguisher | | | rt-types:route-distinguisher
| | | +--ro vpn-target* [route-target] | | | +--ro vpn-target* [route-target]
| | | +--ro route-target | | | +--ro route-target
rt-types:route-target | | | rt-types:route-target
| | +--ro ethernet-segment-identifier? uint32 | | +--ro ethernet-segment-identifier? uint32
| | +--ro originator-ip-prefix? inet:ip-prefix | | +--ro originator-ip-prefix? inet:ip-prefix
| | +--ro path* | | +--ro path*
| | +--ro next-hop? inet:ip-address | | +--ro next-hop? inet:ip-address
| | +--ro detail | | +--ro detail
| | +--ro attributes | | +--ro attributes
| | | +--ro extended-community* string | | | +--ro extended-community* string
| | +--ro bestpath? empty | | +--ro bestpath? empty
| +--ro ip-prefix-route* | +--ro ip-prefix-route*
| +--ro rd-rt* [route-distinguisher] | +--ro rd-rt* [route-distinguisher]
| | +--ro route-distinguisher | | +--ro route-distinguisher
rt-types:route-distinguisher | | rt-types:route-distinguisher
| | +--ro vpn-target* [route-target] | | +--ro vpn-target* [route-target]
| | +--ro route-target rt-types:route-target | | +--ro route-target rt-types:route-target
| +--ro ethernet-segment-identifier? uint32 | +--ro ethernet-segment-identifier? uint32
| +--ro ip-prefix? inet:ip-prefix | +--ro ip-prefix? inet:ip-prefix
| +--ro path* | +--ro path*
| +--ro next-hop? inet:ip-address | +--ro next-hop? inet:ip-address
| +--ro label? rt-types:mpls-label | +--ro label? rt-types:mpls-label
| +--ro detail | +--ro detail
| +--ro attributes | +--ro attributes
| | +--ro extended-community* string | | +--ro extended-community* string
skipping to change at page 15, line 51 skipping to change at page 16, line 4
} }
revision "2017-10-21" { revision "2017-10-21" {
description " - Modified the operational state augment " + description " - Modified the operational state augment " +
" - Renamed evpn-instances-state to evpn-instances" + " - Renamed evpn-instances-state to evpn-instances" +
" - Added vpws-vlan-aware to an EVPN instance " + " - Added vpws-vlan-aware to an EVPN instance " +
" - Added a new augment to L2VPN to add EPVN " + " - Added a new augment to L2VPN to add EPVN " +
" - pseudowire for the case of EVPN VPWS " + " - pseudowire for the case of EVPN VPWS " +
" - Added state change notification " + " - Added state change notification " +
""; "";
reference "";
reference "";
} }
revision "2017-03-13" { revision "2017-03-13" {
description " - Added an augment to base L2VPN model to " + description " - Added an augment to base L2VPN model to " +
" reference an EVPN instance " + " reference an EVPN instance " +
" - Reused ietf-routing-types.yang " + " - Reused ietf-routing-types.yang " +
" vpn-route-targets grouping instead of " + " vpn-route-targets grouping instead of " +
" defining it in this module " + " defining it in this module " +
""; "";
reference ""; reference "";
skipping to change at page 26, line 44 skipping to change at page 26, line 46
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<http://www.rfc-editor.org/info/rfc6242>. <http://www.rfc-editor.org/info/rfc6242>.
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
Protocol (NETCONF) Access Control Model", RFC 6536, DOI Protocol (NETCONF) Access Control Model", RFC 6536, DOI
10.17487/RFC6536, March 2012, <http://www.rfc- 10.17487/RFC6536, March 2012, <http://www.rfc-
editor.org/info/rfc6536>. editor.org/info/rfc6536>.
[RFC7209] Sajassi, A., Aggarwal, R., Uttaro, J., Bitar, N.,
Henderickx, W., and A. Isaac, "Requirements for Ethernet
VPN (EVPN)", RFC 7209, DOI 10.17487/RFC7209, May 2014,
<http://www.rfc-editor.org/info/rfc7209>.
[RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A.,
Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based
Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February
2015, <http://www.rfc-editor.org/info/rfc7432>. 2015, <http://www.rfc-editor.org/info/rfc7432>.
[RFC7623] Sajassi, A., Ed., Salam, S., Bitar, N., Isaac, A., and W. [RFC7623] Sajassi, A., Ed., Salam, S., Bitar, N., Isaac, A., and W.
Henderickx, "Provider Backbone Bridging Combined with Henderickx, "Provider Backbone Bridging Combined with
Ethernet VPN (PBB-EVPN)", RFC 7623, DOI 10.17487/RFC7623, Ethernet VPN (PBB-EVPN)", RFC 7623, DOI 10.17487/RFC7623,
September 2015, <http://www.rfc-editor.org/info/rfc7623>. September 2015, <http://www.rfc-editor.org/info/rfc7623>.
skipping to change at page 27, line 20 skipping to change at page 27, line 29
EMail: pbrisset@cisco.com EMail: pbrisset@cisco.com
Himanshu Shah Himanshu Shah
Ciena Corporation Ciena Corporation
EMail: hshah@ciena.com EMail: hshah@ciena.com
Helen Chen Helen Chen
Jabil Jabil
EMail: Ing-Wher_Chen@jabil.com EMail: Ing-Wher_Chen@jabil.com
Iftekar Hussain
Infinera Corporation
EMail: ihussain@infinera.com
Kishore Tiruveedhula Kishore Tiruveedhula
Juniper Networks Juniper Networks
EMail: kishoret@juniper.net EMail: kishoret@juniper.net
Jorge Rabadan Jorge Rabadan
Nokia Nokia
EMail: jorge.rabadan@nokia.com EMail: jorge.rabadan@nokia.com
Ali Sajassi Ali Sajassi
Cisco Systems, Inc. Cisco Systems, Inc.
EMail: sajassi@cisco.com EMail: sajassi@cisco.com
Zhenbin Li Zhenbin Li
Huawei Technologies Huawei Technologies
EMail: lizhenbin@huawei.com EMail: lizhenbin@huawei.com
Iftekar Hussain
Infinera Corporation
EMail: ihussain@infinera.com
 End of changes. 26 change blocks. 
24 lines changed or deleted 35 lines changed or added

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