Internet DRAFT - draft-chen-nvo3-yang
draft-chen-nvo3-yang
NVO3 WG Ran. Chen
Internet-Draft Fangwei. Hu
Intended status: Standards Track Yubao. wang
Expires: September 25, 2019 ZTE Corporation
Yufeng. liu
Volta Networks
March 24, 2019
YANG Data Model for NVO3 Protocol
draft-chen-nvo3-yang-02.txt
Abstract
This document defines a YANG data model for NVO3 configuration and
operation. This YANG model covers two types of encapsulations:
Geneve, and VXLAN-GPE
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 https://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 September 25, 2019.
Copyright Notice
Copyright (c) 2019 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
(https://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
include Simplified BSD License text as described in Section 4.e of
Chen, et al. Expires September 25, 2019 [Page 1]
Internet-Draft NVO3 YANG March 2019
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Design of the Data Model . . . . . . . . . . . . . . . . . . 2
3. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Control plane configuration . . . . . . . . . . . . . . . . . 4
5. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
6. NVO3 YANG Data Model . . . . . . . . . . . . . . . . . . . . 4
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
9. Normative references . . . . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction
This document defines a YANG data model for NVO3 configuration and
operation. This YANG model covers two types of encapsulations:
Geneve, and VXLAN-GPE.
2. Design of the Data Model
module: ietf-nvo3
+--rw nvo3
| +--rw vxlan-enable? boolean
| +--rw geneve-enable? boolean
| +--rw nvo3-instance* [vni]
| | +--rw vni vni
| | +--rw protocol-type? enumeration
| | +--rw vtep-ipv4? inet:ipv4-address-no-zone
| | +--rw vtep-ipv6? inet:ipv6-address-no-zone
| | +--rw bridge-interface? if:interface-ref
| | +--rw (control-plane)?
| | | +--:(evpn)
| | | | +--rw evpn-instance? evpn-instance-ref
| | | +--:(static-config)
| | | +--rw ac-name? ac-name
| | | +--rw l2interface-name? if:interface-ref
| | +--rw unicast-tunnel* [unicast-tunnel-name]
| | | +--rw unicast-tunnel-name unicast-tunnel-name
| | +--rw multicast-tunnel* [multicast-tunnel-name]
| | +--rw multicast-tunnel-name multicast-tunnel-name
| +--rw unicast-tunnel* [unicast-tunnel-name]
| | +--rw unicast-tunnel-name unicast-tunnel-name
| | +--rw encaptype? enumeration
| | +--rw tunnel-source-ipv4? inet:ipv4-prefix
Chen, et al. Expires September 25, 2019 [Page 2]
Internet-Draft NVO3 YANG March 2019
| | +--rw tunnel-source-ipv6? inet:ipv6-prefix
| | +--rw tunnel-destination-ipv4? inet:ipv4-prefix
| | +--rw tunnel-destination-ipv6? inet:ipv6-prefix
| +--rw multicast-tunnel* [multicast-tunnel-name]
| +--rw multicast-tunnel-name multicast-tunnel-name
| +--rw encaptype? enumeration
| +--rw tunnel-source-ipv4? inet:ipv4-prefix
| +--rw tunnel-source-ipv6? inet:ipv6-prefix
| +--rw tunnel-destination-ipv4* [destination-ipv4]
| | +--rw destination-ipv4 inet:ipv4-prefix
| +--rw tunnel-destination-ipv6* [destination-ipv6]
| +--rw destination-ipv6 inet:ipv6-prefix
+--ro nvo3-state
+--ro nvo3-instance* [vni]
| +--ro vni vni
| +--ro protocol-type? enumeration
| +--ro vtep-ipv4? inet:ipv4-address-no-zone
| +--ro vtep-ipv6? inet:ipv6-address-no-zone
| +--ro bridge-interface? if:interface-ref
| +--ro (control-plane)?
| | +--:(evpn)
| | | +--ro evpn-instance? evpn-instance-ref
| | +--:(static-config)
| | +--ro ac-name? ac-name
| | +--ro l2interface-name? if:interface-ref
| +--ro unicast-tunnel* [unicast-tunnel-name]
| | +--ro unicast-tunnel-name unicast-tunnel-name
| +--ro multicast-tunnel* [multicast-tunnel-name]
| +--ro multicast-tunnel-name multicast-tunnel-name
+--ro unicast-tunnel* [unicast-tunnel-name]
| +--ro unicast-tunnel-name unicast-tunnel-name
| +--ro encaptype? enumeration
| +--ro tunnel-source-ipv4? inet:ipv4-prefix
| +--ro tunnel-source-ipv6? inet:ipv6-prefix
| +--ro tunnel-destination-ipv4? inet:ipv4-prefix
| +--ro tunnel-destination-ipv6? inet:ipv6-prefix
+--ro multicast-tunnel* [multicast-tunnel-name]
+--ro multicast-tunnel-name multicast-tunnel-name
+--ro encaptype? enumeration
+--ro tunnel-source-ipv4? inet:ipv4-prefix
+--ro tunnel-source-ipv6? inet:ipv6-prefix
+--ro tunnel-destination-ipv4* [destination-ipv4]
| +--ro destination-ipv4 inet:ipv4-prefix
+--ro tunnel-destination-ipv6* [destination-ipv6]
+--ro destination-ipv6 inet:ipv6-prefix
Chen, et al. Expires September 25, 2019 [Page 3]
Internet-Draft NVO3 YANG March 2019
3. Configuration
This Container defines the configuration parameters related to NVO3.
The configuration includes vxlan enable,geneve enable, parameters
associated with nvo3-instance, parameters associated with unicast-
tunnel and multicast-tunnel.
In this document, we contains two types of encapsulation:
GENEVE[I-D.ietf-nvo3-geneve]and VXLAN-GPE[I-D.ietf-nvo3-vxlan-gpe].
4. Control plane configuration
This Module will be defined in the next version.
5. States
The operational states contains basic parameters associated with
nvo3, such as parameters associated with nvo3-instance ,unicast-
tunnel and multicast-tunnel.
6. NVO3 YANG Data Model
<CODE BEGINS> file "ietf-NVO3@2019-03-11.yang"
module ietf-nvo3{
namespace "urn:ietf:params:xml:ns:yang:ietf-nvo3";
prefix "nvo3";
import ietf-inet-types {
prefix "inet";
}
import ietf-interfaces {
prefix "if";
}
organization
"IETF Nvo3( Network Virtualization Overlays) Working Group";
contact
"WG List: <mailto:nvo3@ietf.org>
WG Chair: Matthew Bocci
<mailto:matthew.bocci@nokia.com>
WG Chair: Sam Aldrin
<mailto:aldrin.ietf@gmail.com>
Editor: Ran Chen
Chen, et al. Expires September 25, 2019 [Page 4]
Internet-Draft NVO3 YANG March 2019
<mailto:chen.ran@zte.com.cn>
Editor: Fangwei Hu
<mailto:hu.fangwei@zte.com.cn>
Editor: yubao wang
<mailto:wang.yubao@zte.com.cn>
Editor: xufeng liu
<mailto:xufeng.liu.ietf@gmail.com>
";
description
"The YANG module defines a generic configuration model for nvo3 yang module.";
revision 2019-03-20{
description
"02 version";
reference "draft-chen-nvo3-yang-02";
}
revision 2019-03-11{
description
"01 version";
reference "draft-chen-nvo3-yang-01";
}
revision 2018-10-31{
description
"Initial version";
reference "draft-chen-nvo3-yang-00";
}
/*Typedefs*/
typedef vni{
type uint32;
description
"Virtual Network Identifier";
}
typedef unicast-tunnel-name{
type string;
description
"the name for unicast tunnel";
}
typedef multicast-tunnel-name{
type string;
description
"the name for multicast tunnel";
}
Chen, et al. Expires September 25, 2019 [Page 5]
Internet-Draft NVO3 YANG March 2019
typedef evpn-instance-ref {
type leafref {
path "/evpn/evpn-instances/evpn-instance/name";
}
description "A leafref type to an EVPN instance";
}
typedef ac-name{
type string;
description
"the name for ac";
}
typedef interface-name{
type string;
description
"the name for interface";
}
grouping unicast-tunnel-cfg{
leaf encaptype{
type enumeration{
enum "vxlan"{
description
"vxlan type";
}
enum "geneve"{
description
"geneve type";
}
}
description "the type for encapsulation.";
}
leaf tunnel-source-ipv4{
type inet:ipv4-prefix;
description
"tunnel source ipv4 prefix.";
}
leaf tunnel-source-ipv6{
type inet:ipv6-prefix;
description
"tunnel source ipv6 prefix.";
}
leaf tunnel-destination-ipv4{
type inet:ipv4-prefix;
description
"tunnel destination ipv4 prefix.";
Chen, et al. Expires September 25, 2019 [Page 6]
Internet-Draft NVO3 YANG March 2019
}
leaf tunnel-destination-ipv6{
type inet:ipv6-prefix;
description
"tunnel destination ipv6 prefix.";
}
description
"defines the unicast tunnel configuration.";
}
grouping multicast-tunnel-cfg{
leaf encaptype{
type enumeration{
enum "vxlan"{
description
"vxlan type";
}
enum "geneve"{
description
"geneve type";
}
}
description "the type for encapsulation.";
}
leaf tunnel-source-ipv4{
type inet:ipv4-prefix;
description
"tunnel source ipv4 prefix.";
}
leaf tunnel-source-ipv6{
type inet:ipv6-prefix;
description
"tunnel source ipv6 prefix.";
}
list tunnel-destination-ipv4{
key "destination-ipv4";
description
"the list of destination ipv4 prefix.";
leaf destination-ipv4{
type inet:ipv4-prefix;
description
"tunnel destination ipv4 prefix.";
}
}
list tunnel-destination-ipv6{
key "destination-ipv6";
description
"the list of destination ipv6 prefix.";
leaf destination-ipv6{
Chen, et al. Expires September 25, 2019 [Page 7]
Internet-Draft NVO3 YANG March 2019
type inet:ipv6-prefix;
description
"tunnel destination ipv6 prefix.";
}
}
description
"defines the multicast tunnel configuration.";
}
container nvo3{
leaf vxlan-enable{
type boolean;
default false;
description
"Enables vxlan protocol.";
}
leaf geneve-enable{
type boolean;
default false;
description
"Enables geneve protocol.";
}
list nvo3-instance {
key "vni";
leaf vni {
type vni;
description "Virtual Network Identifier.";
}
leaf protocol-type{
type enumeration{
enum "ipv4"{
description
"ipv4 protocol";
}
enum "ipv6"{
description
"ipv6 protocol";
}
enum "ethernet"{
description
"ethernet protocol";
}
enum "mpls"{
description
"mpls protocol";
}
enum "GBP"{
description
Chen, et al. Expires September 25, 2019 [Page 8]
Internet-Draft NVO3 YANG March 2019
"gbp";
}
enum "vBNG"{
description
"vbng";
}
}
description "the next protocol type";
}
leaf vtep-ipv4 {
type inet:ipv4-address-no-zone;
description
"NVO3 tunnel source address";
}
leaf vtep-ipv6 {
type inet:ipv6-address-no-zone;
description
"ipv6 NVO3 tunnel source address";
}
leaf bridge-interface {
type if:interface-ref;
description "bridge interface.";
}
choice control-plane {
case evpn{
leaf evpn-instance{
type evpn-instance-ref;
description "Reference to an EVPN instance";
}
}
case static-config{
leaf ac-name {
type ac-name;
description "the name for ac.";
}
leaf l2interface-name{
type if:interface-ref;
description "L2 interface.";
}
description
"static-config.";
}
description "the control-plane.";
}
list unicast-tunnel{
key "unicast-tunnel-name";
Chen, et al. Expires September 25, 2019 [Page 9]
Internet-Draft NVO3 YANG March 2019
leaf unicast-tunnel-name {
type unicast-tunnel-name;
description "the name for unicast tunnel.";
}
description
"the information for the unicast tunnel configuration.";
}
list multicast-tunnel{
key "multicast-tunnel-name";
leaf multicast-tunnel-name {
type multicast-tunnel-name;
description "the name for multicast tunnel.";
}
description
"the information for the multicast tunnel.";
}
description
"defines the nvo3 instance configuration.";
}
list unicast-tunnel{
key "unicast-tunnel-name";
leaf unicast-tunnel-name {
type unicast-tunnel-name;
description "the name for unicast tunnel.";
}
uses nvo3:unicast-tunnel-cfg;
description
"defines the unicast tunnel configuration.";
}
list multicast-tunnel{
key "multicast-tunnel-name";
leaf multicast-tunnel-name {
type multicast-tunnel-name;
description "the name for multicast tunnel.";
}
uses nvo3:multicast-tunnel-cfg;
description
"defines the multicast tunnel configuration.";
}
description
"defines the nvo3 configuration.";
}
container nvo3-state{
Chen, et al. Expires September 25, 2019 [Page 10]
Internet-Draft NVO3 YANG March 2019
config false;
description
"nvo3 operational state.";
list nvo3-instance {
key "vni";
leaf vni {
type vni;
description "Virtual Network Identifier.";
}
leaf protocol-type{
type enumeration{
enum "ipv4"{
description
"ipv4 protocol";
}
enum "ipv6"{
description
"ipv6 protocol";
}
enum "ethernet"{
description
"ethernet protocol";
}
enum "mpls"{
description
"mpls protocol";
}
enum "GBP"{
description
"gbp";
}
enum "vBNG"{
description
"vbng";
}
}
description "the next protocol type";
}
leaf vtep-ipv4 {
type inet:ipv4-address-no-zone;
description
"NVO3 tunnel source address";
}
leaf vtep-ipv6 {
type inet:ipv6-address-no-zone;
description
"ipv6 NVO3 tunnel source address";
}
Chen, et al. Expires September 25, 2019 [Page 11]
Internet-Draft NVO3 YANG March 2019
leaf bridge-interface {
type if:interface-ref;
description "bridge interface.";
}
choice control-plane {
case evpn{
leaf evpn-instance{
type evpn-instance-ref;
description "Reference to an EVPN instance";
}
}
case static-config{
leaf ac-name {
type ac-name;
description "the name for ac.";
}
leaf l2interface-name{
type if:interface-ref;
description "L2 interface.";
}
description
"static-config.";
}
description "the control-plane.";
}
list unicast-tunnel{
key "unicast-tunnel-name";
leaf unicast-tunnel-name {
type unicast-tunnel-name;
description "the name for unicast tunnel.";
}
description
"the information for the unicast tunnel.";
}
list multicast-tunnel{
key "multicast-tunnel-name";
leaf multicast-tunnel-name {
type multicast-tunnel-name;
description "the name for multicast tunnel.";
}
description
"the state for multicast tunnel.";
}
description
"the state for nvo3 instance.";
}
Chen, et al. Expires September 25, 2019 [Page 12]
Internet-Draft NVO3 YANG March 2019
list unicast-tunnel{
key "unicast-tunnel-name";
leaf unicast-tunnel-name {
type unicast-tunnel-name;
description "the name for unicast tunnel.";
}
uses nvo3:unicast-tunnel-cfg;
description
"the state for the unicast tunnel.";
}
list multicast-tunnel{
key "multicast-tunnel-name";
leaf multicast-tunnel-name {
type multicast-tunnel-name;
description "the name for multicast tunnel.";
}
uses nvo3:multicast-tunnel-cfg;
description
"the state for the multicast tunnel.";
}
}
}
<CODE ENDS>
7. Security Considerations
TBD.
8. IANA Considerations
This document requires no IANA Actions. Please remove this section
before RFC publication.
9. Normative references
[I-D.ietf-nvo3-encap]
Boutros, S., "NVO3 Encapsulation Considerations", draft-
ietf-nvo3-encap-02 (work in progress), September 2018.
[I-D.ietf-nvo3-geneve]
Gross, J., Ganga, I., and T. Sridhar, "Geneve: Generic
Network Virtualization Encapsulation", draft-ietf-
nvo3-geneve-12 (work in progress), March 2019.
Chen, et al. Expires September 25, 2019 [Page 13]
Internet-Draft NVO3 YANG March 2019
[I-D.ietf-nvo3-vxlan-gpe]
Maino, F., Kreeger, L., and U. Elzur, "Generic Protocol
Extension for VXLAN", draft-ietf-nvo3-vxlan-gpe-06 (work
in progress), April 2018.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010,
<https://www.rfc-editor.org/info/rfc6020>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/info/rfc6991>.
[RFC7223] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 7223, DOI 10.17487/RFC7223, May 2014,
<https://www.rfc-editor.org/info/rfc7223>.
[RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger,
L., Sridhar, T., Bursell, M., and C. Wright, "Virtual
eXtensible Local Area Network (VXLAN): A Framework for
Overlaying Virtualized Layer 2 Networks over Layer 3
Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014,
<https://www.rfc-editor.org/info/rfc7348>.
Authors' Addresses
Ran Chen
ZTE Corporation
Email: chen.ran@zte.com.cn
Fangwei Hu
ZTE Corporation
Email: hu.fangwei@zte.com.cn
Yubao wang
ZTE Corporation
Email: wang.yubao@zte.com.cn
Chen, et al. Expires September 25, 2019 [Page 14]
Internet-Draft NVO3 YANG March 2019
Yufeng liu
Volta Networks
Email: xufeng.liu.ietf@gmail.com
Chen, et al. Expires September 25, 2019 [Page 15]