Internet DRAFT - draft-zhuang-bess-evpn-yang
draft-zhuang-bess-evpn-yang
Network Working Group S. Zhuang
Internet-Draft Z. Li
Intended status: Informational Huawei Technologies
Expires: June 25, 2015 December 22, 2014
Yang Model for Ethernet VPN
draft-zhuang-bess-evpn-yang-00
Abstract
This document defines a YANG data model that can be used to configure
and manage Ethernet VPN.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 25, 2015.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
Zhuang & Li Expires June 25, 2015 [Page 1]
Internet-Draft Yang Model for EVPN December 2014
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Design of Data Model . . . . . . . . . . . . . . . . . . . . 2
3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. EVPN Interface Configuration . . . . . . . . . . . . . . 3
3.3. EVPN Global Configuration . . . . . . . . . . . . . . . . 3
3.4. MP-BGP Configuration for EVPN . . . . . . . . . . . . . . 4
3.5. EVPN Instance Configuration . . . . . . . . . . . . . . . 5
4. EVPN Yang Module . . . . . . . . . . . . . . . . . . . . . . 6
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
6. Security Considerations . . . . . . . . . . . . . . . . . . . 15
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction
YANG [RFC6020] is a data definition language that was introduced to
define the contents of a conceptual data store that allows networked
devices to be managed using NETCONF[RFC6241]. YANG is proving
relevant beyond its intial confines, as bindings to other
interfaces(e.g. ReST) and encoding other than XML (e.g. JSON) are
being defined. Furthermore, YANG data models can be used as the
basis of implementation for other interface, such as CLI and
programatic APIs.
This document defines a YANG data model that can be used to configure
and manage Ethernet VPN defined in [I-D.ietf-l2vpn-evpn].
2. Terminology
EVN: Ethernet Virtual Network
EVPN: Ethernet VPN
ESI: Ethernet Segment Identifier
3. Design of Data Model
Zhuang & Li Expires June 25, 2015 [Page 2]
Internet-Draft Yang Model for EVPN December 2014
3.1. Overview
The EVPN Yang module is divided in following containers :
o interfaces : that contains writable configuration objects of
interface binded with EVPN.
o evpn : that contains global writable configuration objects of EVPN.
o evn-bgp: that contains writable configuration objects of MP-BGP
used for EVPN.
o evn-instances : that contains writable configuration objects of
EVPN instance.
The figure below describe the overall structure of the EVPN Yang
module :
module: evn
+--rw interfaces
| ...
+--rw evn
| ...
+--rw evn-bgp
| ...
+--rw evn-instances
...
3.2. EVPN Interface Configuration
EVPN interface configuration includes the interface name and Ethernet
Segment Identifier(ESI).
+--rw interfaces
| +--rw interface* [name]
| +--rw name leafref
| +--rw esi? string
3.3. EVPN Global Configuration
EVPN global configuration includes the global parameters for ARP
cache.
+--rw evn
| +--rw arp-cache-disable? boolean
| +--rw arp-cache-timeout? uint32
Zhuang & Li Expires June 25, 2015 [Page 3]
Internet-Draft Yang Model for EVPN December 2014
3.4. MP-BGP Configuration for EVPN
The traditional configuration model of BGP is defined in
[I-D.zhdankin-netmod-bgp-cfg]. In order to satifsy the requirment of
reducing operation cost, this document proposes a new model of MP-BGP
configuration for EVPN. A independent evn-bgp container is defined
in EVPN Yang model to contains writable configuration objects of MP-
BGP used for EVPN. It can directly configure MP-BGP peers for EVPN
using the bgpPeers container. In addition, BGP router reflector can
be introduced to reduced the configuration work for EVPN since when
BGP router reflector is introduced each EVPN BGP client only needs to
set up BGP peer with the router reflector. For BGP router reflector
used for EVPN, it can enable the dynamic BGP peer setup mode to set
up BGP peer with EVPN BGP client through the auto-discovery
mechanism. Or it can adopt the traditional method to statically
designate the list of EVPN BGP clients. The set-route-reflect-
function container contains the writable configuration objects of BGP
route reflector used for EVPN.
Besides above configuration, EVPN BGP configuation also includes the
parameters of BFD and MAC limit.
Zhuang & Li Expires June 25, 2015 [Page 4]
Internet-Draft Yang Model for EVPN December 2014
+--rw evn-bgp
| +--rw bfd
| | +--rw isBfdEnable? boolean
| | +--rw txInterval? uint32
| | +--rw rxInterval? uint32
| | +--rw multiplier? uint8
| +--rw mac-limit-per-peer
| | +--rw mac-limit-value? uint32
| | +--rw mac-limit-alert-percent? uint8
| | +--rw (mac-limit-action)?
| | +--:(enable-alert-only)
| | | +--rw alert-only? boolean
| | +--:(enable-idle-forever)
| | | +--rw idle-forever? boolean
| | +--:(enable-idle-timeout)
| | +--rw idle-timeout? uint16
| +--rw source-address? inet:ip-address
| +--rw bgpPeers
| | +--rw bgpPeer* [peerAddr]
| | +--rw peerAddr inet:ip-address
| +--rw set-route-reflect-function
| +--rw (set-type)?
| | +--:(static)
| | | +--rw bgp-clients
| | | +--rw bgp-client* [clientAddr]
| | | +--rw clientAddr inet:ip-address
| | +--:(dynamic)
| | +--rw server-enable? boolean
| +--rw redundancy-mode? enumeration
| +--rw df-delay-timer? uint16
| +--rw timer
| +--rw keepaliveTime? uint16
| +--rw holdTime? uint16
3.5. EVPN Instance Configuration
EVPN instance configuration includes EVPN instance name, EVPN ID, and
VLAN IDs in the VPN instance.
+--rw evn-instances
+--rw evn-instance* [evn-instance-name]
+--rw evn-instance-name string
+--rw evn-id? uint16
+--rw vlan-ids
+--rw vlan-id* [vlan-id-number]
+--rw vlan-id-number uint16
Zhuang & Li Expires June 25, 2015 [Page 5]
Internet-Draft Yang Model for EVPN December 2014
4. EVPN Yang Module
EVN YANG MODEL
<CODE BEGINS> file "evn@2014-08-17.yang"
module evn {
namespace "urn:huawei:params:xml:ns:yang:evn";
// replace with IANA namespace when assigned
prefix "evn";
import ietf-interfaces {
prefix if;
//rfc7223-YANG Interface Management
}
import ietf-inet-types {
prefix inet;
//RFC6991
}
description
"This YANG module defines the generic configuration data for
EVN service.
Terms and Acronyms
EVN: Ethernet Virtual Network
EVPN: Ethernet VPN
ESI: Ethernet Segment Identifier
";
revision 2014-08-17 {
description
"Initial revision.";
}
/*
* ethernet segment ID config.
*/
container interfaces {
list interface {
key "name";
leaf name {
type leafref {
path "/if:interfaces/if:interface/if:name";
}
}
leaf esi {
Zhuang & Li Expires June 25, 2015 [Page 6]
Internet-Draft Yang Model for EVPN December 2014
description
"Specify the ethernet segment ID.";
config "true";
type string {
length "24";
pattern "(^00([0-9a-fA-F]){2}\.(([0-9a-fA-F]){4}\.){3}
(([0-9a-fA-F]){4})$)";
}
}
}
}
/*
* Enable Ethernet Virtual Network.
*/
container evnGlobal {
leaf evnEnable {
config "true";
type "boolean";
default "false";
}
leaf arp-cache-disable {
config "true";
type boolean;
default "false";
}
leaf arp-cache-timeout {
config "true";
type uint32 {
range "0..100000";
}
default "240";
}
}
/*
* Configuring BFD for EVN BGP.
*/
container evn-bgp {
container bfd {
leaf isBfdEnable {
description "Enable BFD";
Zhuang & Li Expires June 25, 2015 [Page 7]
Internet-Draft Yang Model for EVPN December 2014
config "true";
type boolean;
default "false";
}
leaf txInterval {
description "Specify the minimum transmit interval";
config "true";
type uint32 {
range "0..4294967295";
}
}
leaf rxInterval {
description "Specify the minimum receive interval";
config "true";
type uint32 {
range "0..4294967295";
}
}
leaf multiplier {
description "Specify the detect multiplier";
config "true";
default "3";
type uint8 {
range "3..50";
}
}
}
container mac-limit-per-peer {
leaf mac-limit-value {
description
"Specify Mac route limit value.";
config "true";
type uint32 {
range "1..4294967295";
}
}
leaf mac-limit-alert-percent {
description
"Specify maximum percentage value. Start to generate
warning messages if it reaches maximum percentage
Zhuang & Li Expires June 25, 2015 [Page 8]
Internet-Draft Yang Model for EVPN December 2014
value";
config "true";
type uint8 {
range "1..100";
}
default "75";
}
choice mac-limit-type {
case enable-alert-only {
leaf alert-only {
description
"Allows the router to generate log message without
terminating session when the maximum is exceeded.";
config "true";
type boolean;
default "false";
}
}
case enable-idle-forever {
leaf idle-forever {
description
"Do not auto-connect-retry until reset bgp when the
maximum is exceeded and then terminating session.";
config "true";
type boolean;
default "false";
}
}
case enable-idle-timeout {
leaf idle-timeout {
description
"Specify Value of idle-timeout timer(minutes).
Auto-connect-retry after timeout when the maximum is
exceeded and then terminating session.";
config "true";
type uint16 {
range "1..1200";
}
}
}
}
}
Zhuang & Li Expires June 25, 2015 [Page 9]
Internet-Draft Yang Model for EVPN December 2014
leaf source-address {
config "true";
type inet:ip-address;
}
/*
* Configuring an Authentication Mode for EVN BGP.
*/
container authentication {
description
"To improve network security, you can configure MD5 or
Keychain authentication for EVN BGP peers when they
set up a TCP connection.
";
leaf cipherPassword {
config "true";
type "string";
}
leaf keychainName {
config "true";
type "string";
}
}
container bgpPeers {
list bgpPeer {
key "peerAddr";
max-elements "unbounded";
min-elements "0";
description
"BGP Peer configure class.";
leaf peerAddr {
description
"The nerighbor address.";
config "true";
type inet:ip-address;
mandatory true;
}
}
}
container set-route-reflect-function {
description
"Configure an EVN BGP RR to reduce the number of EVN BGP
Zhuang & Li Expires June 25, 2015 [Page 10]
Internet-Draft Yang Model for EVPN December 2014
peer connections, saving network resources.";
choice set-type {
description
"An EVN BGP RR can be manually specified or dynamically
configured.
Static RR:
After a static RR is configured, you need to manually
establish peer relationships between the RR and other
PE devices and specify the PE devices as the RR clients.
Dynamic RR:
Only a non-PE device can be configured as a dynamic RR.
After a device is configured as a dynamic RR, it can
automatically set up peer relationships with devices
specified by the peer ip-address command (ip-address is
the source address of the dynamic RR).
";
case static {
container bgp-clients {
list bgp-client {
key "clientAddr";
max-elements "unbounded";
min-elements "0";
description
"Configure some peers as route reflector clients.";
leaf clientAddr {
description
"The client address. A static RR is configured. Only
the specified peers can become the RR clients.";
config "true";
type inet:ip-address;
}
}
}
}
case dynamic {
leaf server-enable {
description
"Enable Server function for dynamic peer. A dynamic RR is
configured. After a dynamic RR is configured, all PE
devices that have established peer relationships with the
RR can become the RR clients.";
Zhuang & Li Expires June 25, 2015 [Page 11]
Internet-Draft Yang Model for EVPN December 2014
type boolean;
default "false";
}
}
}
leaf redundancy-mode {
description
"Specify redundancy-mode.";
config "true";
type enumeration {
enum "single-active";
enum "all-active";
}
default "single-active";
}
leaf df-delay-timer{
description
"Specify designated forwarder election delay-timer
value(seconds).";
config "true";
type uint32 {
range "1..1200";
}
default "60";
}
container timer {
leaf keepaliveTime {
description "Specifies the Keepalive interval";
config "true";
default "60";
type uint16 {
range "0..21845";
}
}
leaf holdTime {
description "Specifies the Holdtime interval";
config "true";
default "180";
type uint16 {
range "0..65535";
Zhuang & Li Expires June 25, 2015 [Page 12]
Internet-Draft Yang Model for EVPN December 2014
}
}
}
}
}
container evnInstances {
description
"EVN instance configuration parameters.";
list evnInstance {
max-elements "unbounded";
min-elements "0";
key "evnName";
leaf evnName {
description
"EVN Instance Name";
config "true";
type string {
length "1..31";
}
}
leaf evnId {
description
"Specify the EVN instance id. Each EVN instance has a unique
ID.";
config "true";
type uint32 {
range "1..65535";
}
}
container vlanList {
description
"Specify a vlan list.";
list vlan-id {
key "vlan-id-number";
Zhuang & Li Expires June 25, 2015 [Page 13]
Internet-Draft Yang Model for EVPN December 2014
leaf vlan-id-number {
type uint16 {
range "1..4094";
}
}
}
}
container exportAclNameOrId {
description
"Filter outgoing routing updates. To accurately control EVN
routes, configure an export routing policy. The export
routing policy filters routes before they are advertised to
other PE devices.";
choice aclNumOrName {
case Specify-aclNum {
leaf aclNum {
config "true";
type uint16 {
range "2000..2999";
}
}
}
case Specify-aclName {
leaf aclName {
config "true";
type string;
}
}
}
}
container importAclNameOrId {
description
"Set route filtering policy. To accurately control EVN routes,
configure an import routing policy. The import routing policy
filters routes received from other PE devices.";
choice aclNumOrName {
case Specify-aclNum {
leaf aclNum {
config "true";
type uint16 {
range "2000..2999";
}
}
}
Zhuang & Li Expires June 25, 2015 [Page 14]
Internet-Draft Yang Model for EVPN December 2014
case Specify-aclName {
leaf aclName {
config "true";
type string;
}
}
}
}
container evnInstanceInfo {
description
"Display the information of the evn instance.
It is intended that this container may be augmented by
vendors to reflect the vendor-specific operational state
parameters.";
leaf exportRT {
config "false";
type "string";
}
leaf importRT {
config "false";
type "string";
}
leaf evnRd {
config "false";
type "string";
}
}
}
}
}
</CODE ENDS>
5. IANA Considerations
This document makes no request of IANA.
6. Security Considerations
This document does not introduce any new security risk.
Zhuang & Li Expires June 25, 2015 [Page 15]
Internet-Draft Yang Model for EVPN December 2014
7. Acknowledgements
The authors would like to thank Guangying Zheng, Gang Yan for their
contributions to this work.
8. References
[I-D.ietf-l2vpn-evpn]
Sajassi, A., Aggarwal, R., Bitar, N., Isaac, A., and J.
Uttaro, "BGP MPLS Based Ethernet VPN", draft-ietf-l2vpn-
evpn-11 (work in progress), October 2014.
[I-D.zhdankin-netmod-bgp-cfg]
Alex, A., Patel, K., and A. Clemm, "Yang Data Model for
BGP Protocol", draft-zhdankin-netmod-bgp-cfg-01 (work in
progress), October 2014.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the
Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010.
[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A.
Bierman, "Network Configuration Protocol (NETCONF)", RFC
6241, June 2011.
Authors' Addresses
Shunwan Zhuang
Huawei Technologies
Huawei Bld., No.156 Beiqing Rd.
Beijing 100095
China
Email: zhuangshunwan@huawei.com
Zhenbin Li
Huawei Technologies
Huawei Bld., No.156 Beiqing Rd.
Beijing 100095
China
Email: lizhenbin@huawei.com
Zhuang & Li Expires June 25, 2015 [Page 16]