Skip to main content

YANG Data Model for VxLAN Protocol
draft-chen-nvo3-vxlan-yang-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Expired".
Authors fangwei hu , Ran Chen , Mallik Mahalingam
Last updated 2015-05-06
RFC stream (None)
Formats
Additional resources
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-chen-nvo3-vxlan-yang-00
NVO3 WG                                                      Fangwei. Hu
Internet-Draft                                                 Ran. Chen
Intended status: Standards Track                         ZTE Corporation
Expires: November 7, 2015                             Mallik. Mahalingam
                                                               Storvisor
                                                             May 6, 2015

                   YANG Data Model for VxLAN Protocol
                   draft-chen-nvo3-vxlan-yang-00.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 November 7, 2015.

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 November 7, 2015                [Page 1]
Internet-Draft                 VxLAN YANG                       May 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 of the Data Model  . . . . . . . . . . . . . . . . . .   3
   5.  VxLAN YANG Data Model . . . . . . . . . . . . . . . . . . . .   4
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  10
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  10
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  10
   9.  Normative References  . . . . . . . . . . . . . . . . . . . .  10
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  11

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 November 7, 2015                [Page 2]
Internet-Draft                 VxLAN YANG                       May 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 of the Data Model

Hu, et al.              Expires November 7, 2015                [Page 3]
Internet-Draft                 VxLAN YANG                       May 2015

         Module: VxLAN

         VxLAN configuration
          +--rw global-config
          |   +--rw global-enable
          +--rw vxlan-instances *[vxlan-id]
          |    +--rw vxlan-id
          |    +--rw vxlan-multicast-ip   inet: ipv4-address
          |    +--rw vxlan-map-table
          |       +--rw map-type-vlan
          |       +--rw map-vlan *[vlan-id]
          |       +--rw map-type-mac
          |       +--rw map-mac
          |          +--rw mac   yang:mac-address
          |       +--map-tye-l2interface
          |          +--rw map-type-interface
          |          +--rw map-l2interface
          |             +--rw vlan-id   uint16
          |             +--rw interface-name   if:name
          |       +--map-type-l3interface
          |          +--rw map-type-l3interface *[interface-name]
          |          +--rw map-l3interface
          |             +-- rw interface-name   if:name
          +--rw vtep-instances
          |   +--rw vtep-source-interfaces
          |       +--rw vtep-source-interface
          |           +--rw vtep-name    if:name
          |           +--rw source-interface   if:name
          |   +--rw vtep-modes
          |       +--rw vtep-mode *[vtep-name]
          |           +--rw vtep-name    if:name
          |           +--rw vetp-mode    enumeration
          +--rw vtep-binds
          |   +--rw vtep-bind *[vtep-name vxlan-id]
          |       +--rw vtep-name    if:name
          |       +--vxlan-id        uint32
          +

5.  VxLAN YANG Data Model

 module ietf-vxlan {
    namespace "urn:ietf:params:xml:ns:yang:ietf-vxlan";
    prefix "vxlan";
    organization
        "Internet Engineer Task Force";

Hu, et al.              Expires November 7, 2015                [Page 4]
Internet-Draft                 VxLAN YANG                       May 2015

      contact

         Editor:   Ran Chen
                   <mailto:chen.ran@zte.com.cn>
         Editor:   Fangwei Hu
                   <mailto:hu.fangwei@zte.com.cn>

    description "TBD";

    revision 2015-05-05 {
      description "Initial revision";
    }

    import ietf-yang-types {
       prefix yang;
     }

    import ietf-inet-types {
       prefix "inet";
     }

    import ietf-interfaces {
      prefix "if";
     }

    //data defs
    container configuration {
     description 'Configuration model info.' ;
     container vxlan {
      description 'Configure VXLAN parameters.' ;
      container global-config {
        description 'Global configuration.' ;
        presence global-config ;
        leaf global-enable {
          description 'VXLAN global enble.' ;
          type empty ;
          mandatory true ;
        }
      }
      container vxlan-instances {
        description 'VXLAN instances.' ;
        list vxlan-instance {
          description 'VXLAN instance.' ;
          key vxlan-id ;
          leaf vxlan-id {
            description 'VXLAN ID.' ;
            type uint32 {

Hu, et al.              Expires November 7, 2015                [Page 5]
Internet-Draft                 VxLAN YANG                       May 2015

              range 1..16777215 {
                description 'The value of VXLAN,it must between 1 to 16777215.' ;
              }
            }
          }
          container vxlan-multicast-ip {
            description 'VXLAN multicast IP address.' ;
            presence vxlan-multicast-ip ;
            leaf multicast-ip {
              description 'VXLAN multicast IP address.' ;
              type inet:ipv4-address  ;
              mandatory true ;
            }
          }
          container vxlan-map-tables {
            description 'VXLAN map tables.' ;
            presence vxlan-map-tables ;
            choice vxlan-map-types {
              description 'VXLAN map type choice.' ;
              case vxlan-map-vlan {
                description 'VXLAN map VLAN.' ;
                leaf map-type-vlan {
                  description 'VXLAN map 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 ;
                }
                list map-vlan {
                  description 'VXLAN map VLAN.' ;
                  key vlan-id ;
                  leaf vlan-id {
                    description 'VLAN ID.' ;
                    type uint16 {
                      range 1..4094 {
                        description 'The value of VLAN,it must between 1 to 409'
                                  + '4.'
                                    ;
                      }
                    }
                  }

Hu, et al.              Expires November 7, 2015                [Page 6]
Internet-Draft                 VxLAN YANG                       May 2015

                }
              }
              case vxlan-map-mac {
                description 'VXLAN map MAC.' ;
                leaf map-type-mac {
                  description 'VXLAN map MAC.' ;
                  type empty ;
                }
                container map-mac {
                  description 'VXLAN map MAC.' ;
                  presence map-mac ;
                  leaf mac {
                    description 'MAC address.' ;
                    type yang:mac-address ;
                    mandatory true ;
                  }
                }
              }
              case vxlan-map-l2interface {
                description 'VXLAN map L2 interface.' ;
                leaf map-type-l2interface {
                  description 'VXLAN map L2 interface.' ;
                  type empty ;
                }
                container map-l2interface {
                  description 'VXLAN map L2 interface.' ;
                  presence map-l2interface ;
                  leaf vlan-id {
                    description 'VLAN ID.' ;
                    type uint16 {
                      range 1..4094 {
                        description 'The value of VLAN,it must between 1 to 409'
                                  + '4.'
                                    ;
                      }
                    }
                    mandatory true ;
                  }
                  leaf interface-name {
                    description 'L2 interface name.' ;
                    type if:name {
                      length 1..31 {
                        description 'The length of interface name must between '
                                  + '1 to 31.'
                                    ;
                      }
                    }
                    mandatory true ;

Hu, et al.              Expires November 7, 2015                [Page 7]
Internet-Draft                 VxLAN YANG                       May 2015

                  }
                }
              }
              case vxlan-map-l3interface {
                description 'VXLAN map L3 interface.' ;
                leaf map-type-l3interface {
                  description 'VXLAN map L3 interface.' ;
                  type empty ;
                }
                list map-l3interface {
                  description 'VXLAN map L3 interface.' ;
                  key interface-name ;
                  leaf interface-name {
                    description 'L3 interface name.' ;
                    type if:name {
                      length 1..31 {
                        description 'The length of interface name must between '
                                  + '1 to 31.'
                                    ;
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      container vtep-instances {
        description 'VTEP instances.' ;
        container vtep-source-interfaces {
          description 'VTEP source interfaces.' ;
          list vtep-source-interface {
            description 'VTEP source interface.' ;
            key vtep-name ;
            leaf vtep-name {
              description 'VTEP interface name.' ;
              type if:name {
                length 1..31 {
                  description 'The length of interface name must between 1 to 3'
                            + '1.'
                              ;
                }
              }
            }
            leaf source-interface {
              description 'Source interface name.' ;
              type if:name {

Hu, et al.              Expires November 7, 2015                [Page 8]
Internet-Draft                 VxLAN YANG                       May 2015

                length 1..31 {
                  description 'The length of interface name must between 1 to 3'
                            + '1.'
                              ;
                }
              }
              mandatory true ;
            }
          }
        }
        container vtep-modes {
          description 'VTEP modes.' ;
          list vtep-mode {
            description 'VTEP mode.' ;
            key vtep-name ;
            leaf vtep-name {
              description 'VTEP interface name.' ;
              type if:name {
                length 1..31 {
                  description 'The length of interface name must between 1 to 3'
                            + '1.'
                              ;
                }
              }
            }
            leaf vtep-mode {
              description 'VTEP mode.' ;
              type enumeration {
                enum discard-inner-vlan {
                  value 1 ;
                  description 'Discard inner-VLAN.' ;
                }
                enum no-discard-inner-vlan {
                  value 2 ;
                  description 'No discard inner-VLAN.' ;
                }
              }
              default discard-inner-vlan ;
            }
          }
        }
      }
      container vtep-binds {
        description 'VTEP bind table.' ;
        list vtep-bind {
          description 'VTEP bind table.' ;
          key 'vtep-name vxlan-id' ;
          leaf vtep-name {

Hu, et al.              Expires November 7, 2015                [Page 9]
Internet-Draft                 VxLAN YANG                       May 2015

            description 'VTEP interface name.' ;
            type if:name {
              length 1..31 {
                description 'The length of interface name must between 1 to 31.' ;
              }
            }
          }
          leaf vxlan-id {
            description 'VXLAN ID.' ;
            type uint32 {
              range 1..16777215 {
                description 'The value of VXLAN,it must between 1 to 16777215.' ;
              }
            }
          }
        }
      }
    }
  }
}

6.  Security Considerations

7.  Acknowledgements

8.  IANA Considerations

   This document requires no IANA Actions.  Please remove this section
   before RFC publication.

9.  Normative References

   [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.

   [RFC6991]  Schoenwaelder, J., "Common YANG Data Types", RFC 6991,
              July 2013.

   [RFC7223]  Bjorklund, M., "A YANG Data Model for Interface
              Management", RFC 7223, May 2014.

Hu, et al.              Expires November 7, 2015               [Page 10]
Internet-Draft                 VxLAN YANG                       May 2015

   [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, 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
   Storvisor
   640 W. California Ave, Suite #110
   Sunnyvale, CA  94086
   USA

   Email: mallik_mahalingam@yahoo.com

Hu, et al.              Expires November 7, 2015               [Page 11]