NVO3 WG Fangwei. Hu Internet-Draft Ran. Chen Intended status: Standards Track ZTE Corporation Expires: April 14, 2016 Mallik. Mahalingam Springpath Qiang. Zu Ericsson October 12, 2015 YANG Data Model for VxLAN Protocol draft-chen-nvo3-vxlan-yang-01.txt Abstract This document defines a YANG data model for VxLAN protocol. 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 April 14, 2016. Copyright Notice Copyright (c) 2015 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 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. Hu, et al. Expires April 14, 2016 [Page 1] Internet-Draft VxLAN YANG October 2015 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 3. YANG Data Model for VxLAN Configuration . . . . . . . . . . . 2 3.1. VxLAN Multicast IP Address . . . . . . . . . . . . . . . 2 3.2. VxLAN Mapping Type . . . . . . . . . . . . . . . . . . . 2 3.3. VTEP Mode . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Design Tree of Configuration Data Model . . . . . . . . . . . 3 5. VxLAN YANG Configuration Data Model . . . . . . . . . . . . . 4 6. Design Tree of Operational State Model . . . . . . . . . . . 9 7. VxLAN YANG Operational State Model . . . . . . . . . . . . . 10 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 11. Normative References . . . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 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]. This document defines a YANG data model for the configuration of VxLAN protocol [RFC7348]. 2. Terminology 3. YANG Data Model for VxLAN Configuration 3.1. VxLAN Multicast IP Address The vxlan-multicast-ip is used to configure the IP multicast group, which the VxLAN VNI of the VTEP is mapping to. 3.2. VxLAN Mapping Type The VxLAN-mapping-type is used to configure the VxLAN mapping type for the interface. The value is as following: o vlan-1:1: the vxlan mapping type is VLAN, and each VxLAN is only mapping to one VLAN. o vlan- n:1: the vxlan mapping type is VLAN, and each VxLAN could be mapped to several VLANs. o L3-interface: the VxLAN mapping type is layer 3 interface. o mac: the VxLAN mapping type is MAC address. Hu, et al. Expires April 14, 2016 [Page 2] Internet-Draft VxLAN YANG October 2015 o vlan-l2-interface: the VxLAN mapping type is vlan + Layer 2 interface. 3.3. VTEP Mode The VTEP-mode is used to configure the mode for the VTEP interface. There are two modes: discard-inner-vlan and no-discard-inner-vlan. If the VTEP interface works in the discard-inner-vlan mode, the VxLAN is only mapping to one VLAN. The inner VLAN tag will be stripped when encapsulating the VxLAN frame. On the decapsulation side, if VTEP receives the VxLAN frame with inner VLAN tag, it will discard the frame in this work mode. If the VTEP receives the VxLAN frame without VLAN tag, it will fill in the VLAN tag based on the VxLAN and VLAN mapping. If the VTEP interface works in the no-discard-inner-vlan mode, the VxLAN could be mapped to several VLANs. The inner VLAN tag will not stripped when encapsulating the VxLAN frame in the VxLAN encapsulation side. On the decapsulation side, if VTEP receives the VxLAN frame, it will strip the VxLAN header, and keep the VLAN frame. 4. Design Tree of Configuration Data Model Hu, et al. Expires April 14, 2016 [Page 3] Internet-Draft VxLAN YANG October 2015 module: ietf-vxlan +--rw vxlan +--rw vxlan-instance* [vxlan-id] | +--rw vxlan-id uint32 | +--rw multicast-ip inet:ipv4-address | +--rw (vxlan-map-types)? | +--:(vxlan-map-vlan) | | +--rw map-type-vlan? enumeration | | +--rw map-vlan* [vlan-id] | | +--rw vlan-id uint16 | +--:(vxlan-map-mac) | | +--rw map-type-mac? empty | | +--rw mac yang:mac-address | +--:(vxlan-map-l2interface) | | +--rw map-type-l2interface? empty | | +--rw vlan-id uint16 | | +--rw interface-name if:interface-ref | +--:(vxlan-map-l3interface) | +--rw map-type-l3interface? empty | +--rw map-l3interface* [interface-name] | +--rw interface-name if:interface-ref +--rw interfaces +--rw interface* [name] +--rw name if:interface-ref +--rw vtep-instances* [vtep-id] +--rw vtep-id uint32 +--rw vtep-name? string +--rw source-interface? if:interface-ref +--rw vtep-mode? enumeration +--rw bind-vxlan-id* [vxlan-id] +--rw vxlan-id uint32 5. VxLAN YANG Configuration Data Model module ietf-vxlan { namespace "urn:ietf:params:xml:ns:yang:ietf-vxlan"; prefix "vxlan"; import ietf-interfaces { prefix "if"; } import ietf-inet-types { prefix "inet"; } Hu, et al. Expires April 14, 2016 [Page 4] Internet-Draft VxLAN YANG October 2015 import ietf-yang-types { prefix yang; } organization "IETF NVO3(Network Virtualization Overlays) Working Group"; contact " WG List: WG Chair: Matthew Bocci WG Chair: Benson Schliesser Editor: Ran Chen Editor: Fangwei Hu Editor: Mallik Mahalingam Editor: Zu Qiang "; description "The YANG module defines a generic configuration model for VxLAN protocol"; revision 2015-10-12 { description "01 revision."; reference "draft-chen-nvo3-vxlan-yang-01"; } revision 2015-05-05 { description "Initial revision"; reference "draft-chen-nvo3-vxlan-yang-00"; } /* Configuration Data */ container vxlan{ Hu, et al. Expires April 14, 2016 [Page 5] Internet-Draft VxLAN YANG October 2015 list vxlan-instance { key vxlan-id ; leaf vxlan-id { type uint32 { range 1..16777215 { description 'The value of VXLAN,it must between 1 to 16777215.' ; } } description 'VXLAN ID.' ; } leaf multicast-ip { type inet:ipv4-address ; mandatory true ; description 'VXLAN multicast IP address.' ; } choice vxlan-map-types { case vxlan-map-vlan { leaf map-type-vlan { type enumeration { enum map-type-vlan1to1 { value 1 ; description 'Map type VLAN1:1.' ; } enum map-type-vlan1ton { value 2 ; description 'Map type VLAN1:n.' ; } } default map-type-vlan1to1 ; description 'VXLAN map VLAN.'; } list map-vlan { key vlan-id ; leaf vlan-id { type uint16 { range 1..4094 { description 'The value of VLAN,it must between 1 to 4094.'; } } Hu, et al. Expires April 14, 2016 [Page 6] Internet-Draft VxLAN YANG October 2015 description 'VLAN ID.' ; } description 'VXLAN map VLAN.' ; } description 'VXLAN map VLAN.' ; } case vxlan-map-mac { leaf map-type-mac { type empty ; description 'VXLAN map MAC.' ; } leaf mac { type yang:mac-address ; mandatory true ; description 'MAC address.' ; } description 'VXLAN map MAC.' ; } case vxlan-map-l2interface { leaf map-type-l2interface { type empty ; description 'VXLAN map L2 interface.' ; } leaf vlan-id { type uint16 { range 1..4094 { description 'The value of VLAN,it must between 1 to 4094.'; } } mandatory true ; description 'VLAN ID.' ; } leaf interface-name { type if:interface-ref; mandatory true ; description 'L2 interface name.' ; } description 'VXLAN map L2 interface.' ; } case vxlan-map-l3interface { leaf map-type-l3interface { type empty ; Hu, et al. Expires April 14, 2016 [Page 7] Internet-Draft VxLAN YANG October 2015 description 'VXLAN map L3 interface.' ; } list map-l3interface { key interface-name ; leaf interface-name { type if:interface-ref; description 'L3 interface name.' ; } description 'VXLAN map L3 interface.' ; } description 'VXLAN map L3 interface.' ; } description 'VXLAN map type choice.' ; } description 'VXLAN instance.' ; } container interfaces { list interface{ key "name"; leaf name { type if:interface-ref; description 'vtep interface name'; } list vtep-instances { key vtep-id ; leaf vtep-id { type uint32; description 'VTEP id.' ; } leaf vtep-name{ type string; description 'VTEP instance name.' ; } leaf source-interface { type if:interface-ref; description 'Source interface name.' ; } leaf vtep-mode { type enumeration { enum discard-inner-vlan { value 1 ; description 'Discard inner-VLAN.' ; } Hu, et al. Expires April 14, 2016 [Page 8] Internet-Draft VxLAN YANG October 2015 enum no-discard-inner-vlan { value 2 ; description 'No discard inner-VLAN.' ; } } default discard-inner-vlan ; description 'VTEP mode.' ; } list bind-vxlan-id { key vxlan-id; leaf vxlan-id { type uint32; description 'VXLAN ID.' ; } description 'the vxlan id list for the vtep.'; } description 'the vtep instance.'; } description 'vtep interface.'; } description 'the vtep interfaces configuration.'; } description 'the vxlan configure model.'; } 6. Design Tree of Operational State Model Hu, et al. Expires April 14, 2016 [Page 9] Internet-Draft VxLAN YANG October 2015 +--ro vxlan-state +--ro vxlan-instance | +--ro vxlan-id? uint32 | +--ro multicast-ip? inet:ipv4-address | +--ro (vxlan-map-types)? | +--:(vxlan-map-vlan) | | +--ro map-type-vlan? enumeration | | +--ro map-vlan* [vlan-id] | | +--ro vlan-id uint16 | +--:(vxlan-map-mac) | | +--ro map-type-mac? empty | | +--ro mac? yang:mac-address | +--:(vxlan-map-l2interface) | | +--ro map-type-l2interface? empty | | +--ro vlan-id? uint16 | | +--ro interface-name? if:interface-ref | +--:(vxlan-map-l3interface) | +--ro map-type-l3interface? empty | +--ro map-l3interface* [interface-name] | +--ro interface-name if:interface-ref +--ro vtep-instance +--ro vtep-id? uint32 +--ro vtep-name? string +--ro source-interface? if:interface-ref +--ro vtep-mode? enumeration +--ro bind-vxlan-id* [vxlan-id] +--ro vxlan-id uint32 7. VxLAN YANG Operational State Model /* Operational data */ container vxlan-state{ container vxlan-instance { leaf vxlan-id { type uint32; description "show the vxlan id."; } leaf multicast-ip { type inet:ipv4-address ; description 'show VxLAN multicast IP address.' ; } choice vxlan-map-types { case vxlan-map-vlan { leaf map-type-vlan { Hu, et al. Expires April 14, 2016 [Page 10] Internet-Draft VxLAN YANG October 2015 type enumeration { enum map-type-vlan1to1 { value 1 ; description 'Map type VLAN1:1.' ; } enum map-type-vlan1ton { value 2 ; description 'Map type VLAN1:n.' ; } } default map-type-vlan1to1 ; description 'VXLAN map VLAN.'; } list map-vlan { key vlan-id ; leaf vlan-id { type uint16; description 'VLAN ID.' ; } description 'VXLAN map VLAN.' ; } description 'VXLAN map VLAN.' ; } case vxlan-map-mac { leaf map-type-mac { type empty ; description 'VXLAN map MAC.' ; } leaf mac { type yang:mac-address ; description 'MAC address.' ; } description 'VXLAN map MAC.' ; } case vxlan-map-l2interface { leaf map-type-l2interface { type empty ; description 'VXLAN map L2 interface.' ; } leaf vlan-id { type uint16; description 'VLAN ID.' ; } Hu, et al. Expires April 14, 2016 [Page 11] Internet-Draft VxLAN YANG October 2015 leaf interface-name { type if:interface-ref; description 'L2 interface name.' ; } description 'VXLAN map L2 interface.' ; } case vxlan-map-l3interface { leaf map-type-l3interface { type empty ; description 'VXLAN map L3 interface.' ; } list map-l3interface { key interface-name ; leaf interface-name { type if:interface-ref; description 'L3 interface name.' ; } description 'VXLAN map L3 interface.' ; } description 'VXLAN map L3 interface.' ; } description 'VXLAN map type choice.' ; } description 'show the vxlan instance information.'; } container vtep-instance { leaf vtep-id { type uint32; description "show the vtep id."; } leaf vtep-name { type string; description 'show the vtep name.'; } leaf source-interface{ type if:interface-ref; description 'show the source interface.'; } leaf vtep-mode { type enumeration { enum discard-inner-vlan { value 1 ; description 'Discard inner-VLAN.' ; } Hu, et al. Expires April 14, 2016 [Page 12] Internet-Draft VxLAN YANG October 2015 enum no-discard-inner-vlan { value 2 ; description 'No discard inner-VLAN.' ; } } default discard-inner-vlan ; description 'show VTEP mode.' ; } list bind-vxlan-id { key vxlan-id; leaf vxlan-id { type uint32; description 'show the VXLAN ID.' ; } description 'show the vxlan id list for the vtep.'; } description 'show the vtep information'; } description 'show the vxlan operational state information'; } 8. Security Considerations 9. Acknowledgements 10. IANA Considerations This document requires no IANA Actions. Please remove this section before RFC publication. 11. Normative References [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010, . [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, . [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 6991, DOI 10.17487/RFC6991, July 2013, . Hu, et al. Expires April 14, 2016 [Page 13] Internet-Draft VxLAN YANG October 2015 [RFC7223] Bjorklund, M., "A YANG Data Model for Interface Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, . [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, . Authors' Addresses Fangwei Hu ZTE Corporation No.889 Bibo Rd Shanghai 201203 China Phone: +86 21 68896273 Email: hu.fangwei@zte.com.cn Ran Chen ZTE Corporation No.50 Software Avenue,Yuhuatai District Nanjing, Jiangsu Province 210012 China Phone: +86 025 88014636 Email: chen.ran@zte.com.cn Mallik Mahalingam Springpath 640 W. California Ave, Suite #110 Sunnyvale, CA 94086 USA Email: mallik_mahalingam@yahoo.com Hu, et al. Expires April 14, 2016 [Page 14] Internet-Draft VxLAN YANG October 2015 Zu Qiang Ericsson 8400, boul. Decarie Ville Mont-Royal, QC Canada Email: Zu.Qiang@Ericsson.com Hu, et al. Expires April 14, 2016 [Page 15]