| < draft-ietf-nvo3-yang-cfg-02.txt | draft-ietf-nvo3-yang-cfg-03.txt > | |||
|---|---|---|---|---|
| INTERNET-DRAFT B. Liu, Ed. | NVO3 B. Liu, Ed. | |||
| Intended Status: Standards Track Huawei | Internet-Draft Huawei Technologies | |||
| R. Chen | Intended status: Standards Track R. Chen | |||
| ZTE | Expires: March 3, 2021 ZTE Corporation | |||
| F. Qin | F. Qin | |||
| China Mobile | China Mobile | |||
| R. Rahman | R. Rahman | |||
| Cisco | Cisco Systems | |||
| Expires: September 10, 2020 March 9, 2020 | August 30, 2020 | |||
| Base YANG Data Model for NVO3 Protocols | Base YANG Data Model for NVO3 Protocols | |||
| draft-ietf-nvo3-yang-cfg-02.txt | draft-ietf-nvo3-yang-cfg-03 | |||
| Abstract | Abstract | |||
| This document describes the base YANG data model that can be used by | This document describes the base YANG data model that can be used by | |||
| operators to configure and manage Network Virtualization Overlay | operators to configure and manage Network Virtualization Overlay | |||
| protocols. The model is focused on the common configuration | protocols. The model is focused on the common configuration | |||
| requirement of various encapsulation options, such as VXLAN, NVGRE, | requirement of various encapsulation options, such as VXLAN, NVGRE, | |||
| GENEVE and VXLAN-GPE. Using this model as a starting point, | GENEVE and VXLAN-GPE. Using this model as a starting point, | |||
| incremental work can be done to satisfy the requirement of a specific | incremental work can be done to satisfy the requirement of a specific | |||
| encapsulation. | encapsulation. | |||
| Status of this Memo | Status of This Memo | |||
| This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF). Note that other groups may also distribute | |||
| other groups may also distribute working documents as | working documents as Internet-Drafts. The list of current Internet- | |||
| Internet-Drafts. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | This Internet-Draft will expire on March 3, 2021. | |||
| http://www.ietf.org/1id-abstracts.html | ||||
| The list of Internet-Draft Shadow Directories can be accessed at | ||||
| http://www.ietf.org/shadow.html | ||||
| Copyright and License Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Acronyms and Terminology . . . . . . . . . . . . . . . . . . . 3 | 2. Acronyms and Terminology . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. The YANG Data Model for NVO3 . . . . . . . . . . . . . . . . . 3 | 3. The YANG Data Model for NVO3 . . . . . . . . . . . . . . . . 3 | |||
| 3.1 Mapping to the NVO3 architecture . . . . . . . . . . . . . . 4 | 3.1. Mapping to the NVO3 architecture . . . . . . . . . . . . 3 | |||
| 3.2. The Configuration Parameters . . . . . . . . . . . . . . . 4 | 3.2. The Configuration Parameters . . . . . . . . . . . . . . 4 | |||
| 3.2.1. NVE as an interface . . . . . . . . . . . . . . . . . . 4 | 3.2.1. NVE as an interface . . . . . . . . . . . . . . . . . 4 | |||
| 3.2.2. Virtual Network Instance . . . . . . . . . . . . . . . 5 | 3.2.2. Virtual Network Instance . . . . . . . . . . . . . . 4 | |||
| 3.2.3. BUM Mode . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.2.3. BUM Mode . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.3. Statistics . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.3. Statistics . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.3. Model Structure . . . . . . . . . . . . . . . . . . . . . . 5 | 3.4. Model Structure . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.4. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . 8 | 3.5. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . . 24 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 24 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 25 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 23 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . . 25 | 7.2. Informative References . . . . . . . . . . . . . . . . . 24 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . . 26 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| Author's Addresses . . . . . . . . . . . . . . . . . . . . . . . . 27 | ||||
| 1. Introduction | 1. Introduction | |||
| Network Virtualization Overlays (NVO3), such as VXLAN, NVGRE, GENEVE | Network Virtualization Overlays (NVO3), such as VXLAN [RFC7348], | |||
| and VXLAN-GPE, enable network virtualization for data center networks | NVGRE [RFC7637], GENEVE [I-D.ietf-nvo3-geneve] and VXLAN-GPE | |||
| environment that assumes an IP-based underlay. | [I-D.ietf-nvo3-vxlan-gpe], enable network virtualization for data | |||
| center networks environment that assumes an IP-based underlay. | ||||
| YANG [RFC6020] is a data definition language that was introduced to | YANG [RFC6020] is a data definition language that was introduced to | |||
| define the contents of a conceptual data store that allows networked | define the contents of a conceptual data store that allows networked | |||
| devices to be managed using NETCONF [RFC6241]. This document | devices to be managed using NETCONF [RFC6241]. This document | |||
| specifies a YANG data model that can be used to configure and manage | specifies a YANG data model that can be used to configure and manage | |||
| NVO3 protocols. The model covers the configuration of NVO3 instances | NVO3 protocols. The model covers the configuration of NVO3 instances | |||
| as well as their operation states, which are the basic common | as well as their operation states, which are the basic common | |||
| requirements of the different tunnel encapsulations. Thus it is | requirements of the different tunnel encapsulations. Thus it is | |||
| called "the base model for NVO3" in this document. | called "the base model for NVO3" in this document. | |||
| As the Network Virtualization Overlay evolves, newly defined tunnel | As the Network Virtualization Overlay evolves, newly defined tunnel | |||
| encapsulation may require extra configuration. For example, GENEVE | encapsulation may require extra configuration. For example, GENEVE | |||
| may require configuration of TLVs at the NVE. The base module can be | may require configuration of TLVs at the NVE. The base module can be | |||
| augmented to accommodate these new solutions. | augmented to accommodate these new solutions. | |||
| 2. Acronyms and Terminology | 2. Acronyms and Terminology | |||
| 2.1. Acronyms | 2.1. Acronyms | |||
| NVO3: Network Virtualization Overlays | NVO: Network Virtualization Overlays | |||
| VNI: Virtual Network Instance | ||||
| BUM: Broadcast, Unknown Unicast, Multicast traffic | ||||
| 2.2. Terminology | VNI: Virtual Network Instance | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | BUM: Broadcast, Unknown Unicast, Multicast traffic | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | ||||
| Familiarity with [RFC7348], [RFC7364], [RFC7365] and [RFC8014] is | 2.2. Terminology | |||
| assumed in this document. | ||||
| 3. The YANG Data Model for NVO3 | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | |||
| NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", | ||||
| and "OPTIONAL" in this document are to be interpreted as described in | ||||
| BCP14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| Familiarity with [RFC7348], [RFC7348], [RFC7364], [RFC7365] and | ||||
| [RFC8014] is assumed in this document. | ||||
| 3. The YANG Data Model for NVO3 | ||||
| The NVO3 base YANG model defined in this document is used to | The NVO3 base YANG model defined in this document is used to | |||
| configure the NVEs. It is divided into three containers. The first | configure the NVEs. It is divided into three containers. The first | |||
| container contains the configuration of the virtual network | container contains the configuration of the virtual network | |||
| instances, e.g. the VNI, the NVE that the instance is mounted, the | instances, e.g. the VNI, the NVE that the instance is mounted, the | |||
| peer NVEs which can be determined dynamically via a control plane or | peer NVEs which can be determined dynamically via a control plane or | |||
| given statically, and the statistical states of the instance. The | given statically, and the statistical states of the instance. The | |||
| other two containers are separately the statistical states of the | other two containers are separately the statistical states of the | |||
| peer NVEs and the tunnels. | peer NVEs and the tunnels. | |||
| 3.1 Mapping to the NVO3 architecture | 3.1. Mapping to the NVO3 architecture | |||
| The NVO3 base YANG model is defined according to the NVO3 | The NVO3 base YANG model is defined according to the NVO3 | |||
| architecture [RFC8014]. As shown in Figure 3.1, the reference model | architecture [RFC8014]. As shown in Figure 1, the reference model of | |||
| of the NVE defined in [RFC8014], multiple instances can be mounted | the NVE defined in [RFC8014], multiple instances can be mounted under | |||
| under a NVE. The key of the instance is VNI. The source NVE of the | a NVE. The key of the instance is VNI. The source NVE of the | |||
| instance is the NVE configured by the base YANG. An instance can have | instance is the NVE configured by the base YANG. An instance can | |||
| several peer NVEs. A NVO3 tunnel can be determined by the VNI, the | have several peer NVEs. A NVO3 tunnel can be determined by the VNI, | |||
| source NVE and the peer NVE. The tunnel can be built statically by | the source NVE and the peer NVE. The tunnel can be built statically | |||
| manually indicate the addresses of the peer NVEs, or dynamically via | by manually indicate the addresses of the peer NVEs, or dynamically | |||
| a control plane, e.g. EVPN [RFC8365]. An enabler is defined in the | via a control plane, e.g. EVPN [RFC8365]. An enabler is defined in | |||
| NVO3 base YANG to choose from these two modes. | the NVO3 base YANG to choose from these two modes. | |||
| | Data-Center Network (IP) | | +-----------------------------------------+ | |||
| | | | | Data-Center Network (IP) | | |||
| +-----------------------------------------+ | +-----------------------------------------+ | |||
| | | | | | | |||
| | Tunnel Overlay | | | Tunnel Overlay | | |||
| +------------+---------+ +---------+------------+ | +------------+---------+ +---------+------------+ | |||
| | +----------+-------+ | | +-------+----------+ | | | +----------+-------+ | | +-------+----------+ | | |||
| | | Overlay Module | | | | Overlay Module | | | | | Overlay Module | | | | Overlay Module | | | |||
| | +---------+--------+ | | +---------+--------+ | | | +---------+--------+ | | +---------+--------+ | | |||
| | | | | | | | | | | | | | | |||
| NVE1 | | | | | | NVE2 | NVE1 | | | | | | NVE2 | |||
| | +--------+-------+ | | +--------+-------+ | | | +--------+-------+ | | +--------+-------+ | | |||
| | | VNI1 VNI2 | | | | VNI1 VNI2 | | | | | VNI1 VNI2 | | | | VNI1 VNI2 | | | |||
| | +-+----------+---+ | | +-+-----------+--+ | | | +-+----------+---+ | | +-+-----------+--+ | | |||
| | | VAP1 | VAP2 | | | VAP1 | VAP2| | | | VAP1 | VAP2 | | | VAP1 | VAP2| | |||
| +----+----------+------+ +----+-----------+-----+ | +----+----------+------+ +----+-----------+-----+ | |||
| | | | | | | | | | | |||
| | | | | | | | | | | |||
| | | | /| | | | | /| | |||
| -------+---------+-------------------+---------/-+------- | -------+----------+-------------------+---------/-+------- | |||
| | | Tenant | / | | | | Tenant | / | | |||
| TSI1 |TSI2 | TSI3 TSI1 TSI2/ TSI3 | TSI1 |TSI2 | TSI3 TSI1 TSI2/ TSI3 | |||
| +---+ +---+ +---+ +---+ +---+ +---+ | +---+ +---+ +---+ +---+ +---+ +---+ | |||
| |TS1| |TS2| |TS3| |TS4| |TS5| |TS6| | |TS1| |TS2| |TS3| |TS4| |TS5| |TS6| | |||
| +---+ +---+ +---+ +---+ +---+ +---+ | +---+ +---+ +---+ +---+ +---+ +---+ | |||
| Figure 3.1. NVE Reference model in RFC 8014 | ||||
| 3.2. The Configuration Parameters | Figure 1: NVE Reference model in RFC8014 | |||
| 3.2.1. NVE as an interface | 3.2. The Configuration Parameters | |||
| 3.2.1. NVE as an interface | ||||
| A NVE in the NVO3 base YANG is defined via augmenting the IETF | A NVE in the NVO3 base YANG is defined via augmenting the IETF | |||
| interface YANG. If anycast gateway is enabled, the source VTEP | interface YANG. If anycast gateway is enabled, the source VTEP | |||
| address is the address of the anycast gateway, and a bypass address | address is the address of the anycast gateway, and a bypass address | |||
| is used to uniquely identify the NVE. Otherwise, the source VTEP | is used to uniquely identify the NVE. Otherwise, the source VTEP | |||
| address is the NVE interface's own IP address. | address is the NVE interface's own IP address. | |||
| 3.2.2. Virtual Network Instance | 3.2.2. Virtual Network Instance | |||
| A Virtual Network Instance ('VNI') is a specific VN instance on an | A Virtual Network Instance ('VNI') is a specific VN instance on an | |||
| NVE [RFC7365]. At each NVE, a Tenant System is connect to VNIs | NVE [RFC7365]. At each NVE, a Tenant System is connect to VNIs | |||
| through Virtual Access Points (VAP). VAPs can be physical ports or | through Virtual Access Points (VAP). VAPs can be physical ports or | |||
| virtual ports identified by the bridge domain Identifier ('bdId'). | virtual ports identified by the bridge domain Identifier ('bdId'). | |||
| The mapping between VNI and bdId is managed by the operator. | The mapping between VNI and bdId is managed by the operator. | |||
| As defined in [draft-ietf-bess-evpn-inter-subnet-forwarding], a | As defined in [I-D.ietf-bess-evpn-inter-subnet-forwarding], a tenant | |||
| tenant can have multiple bridge domains, and each domain has its own | can have multiple bridge domains, and each domain has its own VNI. | |||
| VNI. Thus these VNIs are used as L2VPN. Besides, a dedicated VNI can | Thus these VNIs are used as L2VPN. Besides, a dedicated VNI can be | |||
| be used for routing between the bridge domains, i.e. used as L3VPN. | used for routing between the bridge domains, i.e. used as L3VPN. The | |||
| The mapping relationship between VNI and L2VPN (respectively, L3VPN) | mapping relationship between VNI and L2VPN (respectively, L3VPN) is | |||
| is given by augmenting the IETF YANG of L2VPN (respectively L3VPN). | given by augmenting the IETF YANG of L2VPN (respectively L3VPN). | |||
| 3.2.3. BUM Mode | 3.2.3. BUM Mode | |||
| An NVE SHOULD support either ingress replication, or multicast proxy, | An NVE SHOULD support either ingress replication, or multicast proxy, | |||
| or point to multipoint tunnels on a per-VNI basis. It is possible | or point to multipoint tunnels on a per-VNI basis. It is possible | |||
| that both modes be used simultaneously in one NVO3 network by | that both modes be used simultaneously in one NVO3 network by | |||
| different NVEs. | different NVEs. | |||
| If ingress replication is used, the receiver addresses are listed in | If ingress replication is used, the receiver addresses are listed in | |||
| 'peers'. If multicast proxy [RFC8293] is used, the proxy's address is | 'peers'. If multicast proxy [RFC8293] is used, the proxy's address | |||
| given in "flood-proxy". If the choice is point to multipoint tunnels, | is given in "flood-proxy". If the choice is point to multipoint | |||
| the multicast address is given as 'multiAddr'. | tunnels, the multicast address is given as 'multiAddr'. | |||
| 3.3. Statistics | 3.3. Statistics | |||
| Operators can determine whether a NVE should gather statistic values | Operators can determine whether a NVE should gather statistic values | |||
| on a per-VNI basis. An enabler is contained in the 'static' list as | on a per-VNI basis. An enabler is contained in the 'static' list as | |||
| 'statistic-enable' leaf. If the gathering for a VNI is enabled, the | 'statistic-enable' leaf. If the gathering for a VNI is enabled, the | |||
| statistical information about the local NVEs, the remote NVEs, the | statistical information about the local NVEs, the remote NVEs, the | |||
| flows and the MAC addresses will be collected by the NVEs in this | flows and the MAC addresses will be collected by the NVEs in this | |||
| VNI. | VNI. | |||
| 3.3. Model Structure | 3.4. Model Structure | |||
| module: ietf-nvo3-base | ||||
| +--rw nvo3 | ||||
| | +--rw vni-instances | ||||
| | +--rw vni-instance* [vni-id] | ||||
| | +--rw vni-id uint32 | ||||
| | +--rw vni-mode enumeration | ||||
| | +--rw source-nve if:interface-ref | ||||
| | +--rw protocol-bgp? boolean | ||||
| | +--ro status? vni-status-type | ||||
| | +--rw static-ipv4-peers | ||||
| | | +--rw static-peer* [peer-ip] | ||||
| | | +--rw peer-ip inet:ipv4-address-no-zone | ||||
| | | +--rw out-vni-id? uint32 | ||||
| | +--rw static-ipv6-peers | ||||
| | | +--rw static-ipv6-peer* [peer-ip] | ||||
| | | +--rw peer-ip inet:ipv6-address-no-zone | ||||
| | +--rw flood-proxys | ||||
| | | +--rw flood-proxy* [peer-ip] | ||||
| | | +--rw peer-ip inet:ipv4-address-no-zone | ||||
| | +--rw mcast-groups | ||||
| | | +--rw mcast-group* [mcast-ip] | ||||
| | | +--rw mcast-ip inet:ipv4-address-no-zone | ||||
| | +--rw statistic | ||||
| | +--rw statistic-enable? boolean | ||||
| | +--ro statistic-info | ||||
| | +--ro rx-bits-per-sec? uint64 | ||||
| | +--ro rx-pkt-per-sec? uint64 | ||||
| | +--ro tx-bits-per-sec? uint64 | ||||
| | +--ro tx-pkt-per-sec? uint64 | ||||
| | +--ro rx-pkts? uint64 | ||||
| | +--ro rx-bytes? uint64 | ||||
| | +--ro tx-pkts? uint64 | ||||
| | +--ro tx-bytes? uint64 | ||||
| | +--ro rx-unicast-pkts? uint64 | ||||
| | +--ro rx-multicast-pkts? uint64 | ||||
| | +--ro rx-broadcast-pkts? uint64 | ||||
| | +--ro drop-unicast-pkts? uint64 | ||||
| | +--ro drop-multicast-pkts? uint64 | ||||
| | +--ro drop-broadcast-pkts? uint64 | ||||
| | +--ro tx-unicast-pkts? uint64 | ||||
| | +--ro tx-multicast-pkts? uint64 | ||||
| | +--ro tx-broadcast-pkts? uint64 | ||||
| +--ro vni-peer-infos | ||||
| | +--ro peers | ||||
| | +--ro peer* [vni-id source-ip peer-ip] | ||||
| | +--ro vni-id uint32 | ||||
| | +--ro source-ip inet:ip-address-no-zone | ||||
| | +--ro peer-ip inet:ip-address-no-zone | ||||
| | +--ro tunnel-type? peer-type | ||||
| | +--ro out-vni-id? uint32 | ||||
| +--ro tunnel-infos | ||||
| +--ro tunnel-info* [tunnel-id] | ||||
| +--ro tunnel-id uint32 | ||||
| +--ro source-ip? inet:ip-address-no-zone | ||||
| +--ro peer-ip? inet:ip-address-no-zone | ||||
| +--ro status? tunnel-status | ||||
| +--ro type? tunnel-type | ||||
| +--ro up-time? string | ||||
| +--ro vrf-name? -> /ni:network-instances/network-instance/name | ||||
| augment /if:interfaces/if:interface: | module: ietf-nvo3-base | |||
| +--rw nvo3-nve | +--rw nvo3 | |||
| +--rw nvo3-config | | +--rw vni-instances | |||
| +--rw source-vtep-ip? inet:ipv4-address-no-zone | | +--rw vni-instance* [vni-id] | |||
| +--rw source-vtep-ipv6? inet:ipv6-address-no-zone | | +--rw vni-id uint32 | |||
| +--rw bypass-vtep-ip? inet:ipv4-address-no-zone | | +--rw vni-mode? vni-mode | |||
| +--rw statistics | | +--rw source-nve if:interface-ref | |||
| +--rw statistic* [vni-id peer-ip direction] | | +--rw protocol-bgp? boolean | |||
| +--rw vni-id uint32 | | +--ro status? vni-status-type | |||
| +--rw mode vni-type | | +--rw static-ipv4-peers | |||
| +--rw peer-ip inet:ipv4-address-no-zone | | | +--rw static-peer* [peer-ip] | |||
| +--rw direction direction-type | | | +--rw peer-ip inet:ipv4-address-no-zone | |||
| +--ro info | | | +--rw out-vni-id? uint32 | |||
| +--ro rx-pkts? uint64 | | +--rw static-ipv6-peers | |||
| +--ro rx-bytes? uint64 | | | +--rw static-ipv6-peer* [peer-ip] | |||
| +--ro tx-pkts? uint64 | | | +--rw peer-ip inet:ipv6-address-no-zone | |||
| +--ro tx-bytes? uint64 | | | +--rw out-vni-id? uint32 | |||
| +--ro rx-unicast-pkts? uint64 | | +--rw flood-proxys | |||
| +--ro rx-multicast-pkts? uint64 | | | +--rw flood-proxy* [peer-ip] | |||
| +--ro rx-broadcast-pkts? uint64 | | | +--rw peer-ip inet:ip-address-no-zone | |||
| +--ro tx-unicast-pkts? uint64 | | +--rw mcast-groups | |||
| +--ro tx-multicast-pkts? uint64 | | | +--rw mcast-group* [mcast-ip] | |||
| +--ro tx-broadcast-pkts? uint64 | | | +--rw mcast-ip inet:ip-address-no-zone | |||
| +--ro drop-unicast-pkts? uint64 | | +--rw statistic | |||
| +--ro drop-multicast-pkts? uint64 | | +--rw enable? boolean | |||
| +--ro drop-broadcast-pkts? uint64 | | +--ro info | |||
| +--ro rx-bits-per-sec? uint64 | | +--ro send-bits-rate? uint64 | |||
| +--ro rx-pkt-per-sec? uint64 | | +--ro send-pkts-rate? uint64 | |||
| +--ro tx-bits-per-sec? uint64 | | +--ro send-unicast-pkts? uint64 | |||
| +--ro tx-pkt-per-sec? uint64 | | +--ro send-multicast-pkts? uint64 | |||
| | +--ro send-broadcast-pkts? uint64 | ||||
| | +--ro send-total-bytes? uint64 | ||||
| | +--ro send-total-pkts? uint64 | ||||
| | +--ro receive-bits-rate? uint64 | ||||
| | +--ro receive-pkts-rate? uint64 | ||||
| | +--ro receive-unicast-pkts? uint64 | ||||
| | +--ro receive-multicast-pkts? uint64 | ||||
| | +--ro receive-broadcast-pkts? uint64 | ||||
| | +--ro receive-total-bytes? uint64 | ||||
| | +--ro receive-total-pkts? uint64 | ||||
| | +--ro drop-unicast-pkts? uint64 | ||||
| | +--ro drop-multicast-pkts? uint64 | ||||
| | +--ro drop-broadcast-pkts? uint64 | ||||
| +--ro vni-peer-infos | ||||
| | +--ro peers | ||||
| | +--ro peer* [vni-id source-ip peer-ip] | ||||
| | +--ro vni-id uint32 | ||||
| | +--ro source-ip inet:ip-address-no-zone | ||||
| | +--ro peer-ip inet:ip-address-no-zone | ||||
| | +--ro type? tunnel-type | ||||
| | +--ro out-vni-id? uint32 | ||||
| +--ro tunnel-infos | ||||
| +--ro tunnel-info* [tunnel-id] | ||||
| +--ro tunnel-id uint32 | ||||
| +--ro source-ip? inet:ip-address-no-zone | ||||
| +--ro peer-ip? inet:ip-address-no-zone | ||||
| +--ro status? tunnel-status | ||||
| +--ro type? tunnel-type | ||||
| +--ro up-time? string | ||||
| +--ro vrf-name? -> /ni:network-instances/network-instance/name | ||||
| augment /ni:network-instances/ni:network-instance/ni:ni-type/l3vpn:l3vpn/l3vpn:l3vpn: | augment /if:interfaces/if:interface: | |||
| +--rw vni-lists | +--rw nvo3-nve | |||
| +--rw vni* [vni-id] | +--rw nve-ip? inet:ipv4-address-no-zone | |||
| +--rw vni-id uint32 | +--rw nve-ipv6? inet:ipv6-address-no-zone | |||
| augment /ni:network-instances/ni:network-instance/ni:ni-type/l2vpn:l2vpn: | +--rw bypass-nve-ip? inet:ipv4-address-no-zone | |||
| +--rw vni-lists | +--rw bypass-nve-ipv6? inet:ipv6-address-no-zone | |||
| +--rw vni* [vni-id] | +--rw statistics | |||
| +--rw vni-id uint32 | +--rw statistic* [vni-id peer-ip direction] | |||
| +--rw split-horizon-mode? vni-bind-type | +--rw vni-id uint32 | |||
| +--rw split-group? string | +--rw peer-ip inet:ip-address-no-zone | |||
| rpcs: | +--rw direction direction-type | |||
| +--ro info | ||||
| +--ro send-bits-rate? uint64 | ||||
| +--ro send-pkts-rate? uint64 | ||||
| +--ro send-unicast-pkts? uint64 | ||||
| +--ro send-multicast-pkts? uint64 | ||||
| +--ro send-broadcast-pkts? uint64 | ||||
| +--ro send-total-bytes? uint64 | ||||
| +--ro send-total-pkts? uint64 | ||||
| +--ro receive-bits-rate? uint64 | ||||
| +--ro receive-pkts-rate? uint64 | ||||
| +--ro receive-unicast-pkts? uint64 | ||||
| +--ro receive-multicast-pkts? uint64 | ||||
| +--ro receive-broadcast-pkts? uint64 | ||||
| +--ro receive-total-bytes? uint64 | ||||
| +--ro receive-total-pkts? uint64 | ||||
| +--ro drop-unicast-pkts? uint64 | ||||
| +--ro drop-multicast-pkts? uint64 | ||||
| +--ro drop-broadcast-pkts? uint64 | ||||
| +---x reset-vni-instance-statistic | augment /ni:network-instances/ni:network-instance/ni:ni-type/l3vpn:l3vpn/l3vpn:l3vpn: | |||
| | +---w input | +--rw vnis | |||
| | +---w vni-id uint32 | +--rw vni* [vni-id] | |||
| +---x reset-vni-peer-statistic | +--rw vni-id uint32 | |||
| +---w input | ||||
| +---w vni-id uint32 | ||||
| +---w mode vni-type | ||||
| +---w peer-ip inet:ipv4-address-no-zone | ||||
| +---w direction direction-type | ||||
| Figure 3.2. The tree structure of YANG module for NVO3 configuration | augment /ni:network-instances/ni:network-instance/ni:ni-type/l2vpn:l2vpn: | |||
| +--rw vnis | ||||
| +--rw vni* [vni-id] | ||||
| +--rw vni-id uint32 | ||||
| +--rw split-horizon-mode? vni-bind-type | ||||
| +--rw split-group? string | ||||
| 3.4. YANG Module | rpcs: | |||
| +---x reset-vni-instance-statistic | ||||
| | +---w input | ||||
| | +---w vni-id uint32 | ||||
| +---x reset-vni-peer-statistic | ||||
| +---w input | ||||
| +---w vni-id uint32 | ||||
| +---w peer-ip inet:ip-address-no-zone | ||||
| +---w direction direction-type | ||||
| <CODE BEGINS> file "ietf-nvo3-base@2020-03-09.yang" | 3.5. YANG Module | |||
| module ietf-nvo3-base { | ||||
| yang-version 1.1; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-nvo3-base"; | ||||
| prefix "nvo3"; | ||||
| import ietf-network-instance { | <CODE BEGINS> file "ietf-nvo3-base@2020-08-26.yang" | |||
| prefix "ni"; | ||||
| } | ||||
| import ietf-interfaces { | module ietf-nvo3-base { | |||
| prefix "if"; | yang-version 1.1; | |||
| } | namespace "urn:ietf:params:xml:ns:yang:ietf-nvo3-base"; | |||
| prefix "nvo3"; | ||||
| import ietf-inet-types { | import ietf-network-instance { | |||
| prefix "inet"; | prefix "ni"; | |||
| } | ||||
| import ietf-interfaces { | ||||
| prefix "if"; | ||||
| } | ||||
| import ietf-inet-types { | ||||
| prefix "inet"; | ||||
| } | ||||
| import ietf-l2vpn { | ||||
| prefix "l2vpn"; | ||||
| } | ||||
| import ietf-bgp-l3vpn { | ||||
| prefix "l3vpn"; | ||||
| } | ||||
| import iana-if-type { | ||||
| prefix ianaift; | ||||
| } | ||||
| organization "ietf"; | ||||
| contact "ietf"; | ||||
| description "Yang model for NVO3."; | ||||
| revision 2020-08-26 { | ||||
| description | ||||
| "Clean non ietf-bgp-l3vpn & ietf-l2vpn related errors."; | ||||
| reference | ||||
| ""; | ||||
| } | ||||
| revision 2020-07-22 { | ||||
| description | ||||
| "Solve syntax and norms issues."; | ||||
| reference | ||||
| ""; | ||||
| } | ||||
| revision 2020-03-09 { | ||||
| description | ||||
| "Revise some design in the statitics."; | ||||
| reference | ||||
| ""; | ||||
| } | ||||
| revision 2019-11-04 { | ||||
| description | ||||
| "Cleaning non ietf-bgp-l3vpn related errors."; | ||||
| reference | ||||
| ""; | ||||
| } | ||||
| revision 2019-04-01 { | ||||
| description | ||||
| "Init revision."; | ||||
| reference | ||||
| ""; | ||||
| } | ||||
| typedef vni-status-type { | ||||
| type enumeration { | ||||
| enum "up" { | ||||
| description | ||||
| "The state is up."; | ||||
| } | ||||
| enum "down" { | ||||
| description | ||||
| "The state is down."; | ||||
| } | ||||
| } | } | |||
| description | ||||
| "The state for VNI."; | ||||
| } | ||||
| typedef tunnel-status { | ||||
| type enumeration { | ||||
| enum "up" { | ||||
| description | ||||
| "The tunnel is up."; | ||||
| } | ||||
| enum "down" { | ||||
| description | ||||
| "The tunnel is down."; | ||||
| } | ||||
| import ietf-l2vpn { | ||||
| prefix "l2vpn"; | ||||
| } | } | |||
| description | ||||
| "The status of NVO3 Tunnel."; | ||||
| } | ||||
| typedef tunnel-type { | ||||
| type enumeration { | ||||
| enum "dynamic" { | ||||
| description | ||||
| "The tunnel is dynamic."; | ||||
| } | ||||
| enum "static" { | ||||
| description | ||||
| "The tunnel is static."; | ||||
| } | ||||
| enum "invalid" { | ||||
| description | ||||
| "The tunnel is invalid."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The type of NVO3 Tunnel."; | ||||
| } | ||||
| import ietf-bgp-l3vpn { | typedef direction-type { | |||
| prefix "l3vpn"; | type enumeration { | |||
| enum "inbound" { | ||||
| description | ||||
| "Inbound."; | ||||
| } | ||||
| enum "outbound" { | ||||
| description | ||||
| "Outbound."; | ||||
| } | ||||
| enum "bidirection" { | ||||
| description | ||||
| "Bidirection."; | ||||
| } | ||||
| } | } | |||
| description | ||||
| "Bound direction."; | ||||
| } | ||||
| typedef vni-bind-type { | ||||
| type enumeration { | ||||
| enum "hub-mode" { | ||||
| description | ||||
| "Hub mode. The vni instance can't communicate with other hub mode vni instances."; | ||||
| } | ||||
| enum "spoke-mode" { | ||||
| description | ||||
| "Spoke mode."; | ||||
| } | ||||
| enum "split-group-mode" { | ||||
| description | ||||
| "Split group mode."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The binding type of VNI."; | ||||
| } | ||||
| import iana-if-type { | typedef vni-mode { | |||
| prefix ianaift; | type enumeration { | |||
| enum "local" { | ||||
| description | ||||
| "Local mode."; | ||||
| } | ||||
| enum "global" { | ||||
| description | ||||
| "Global mode."; | ||||
| } | ||||
| } | } | |||
| description | ||||
| "The mode of VNI."; | ||||
| } | ||||
| organization "ietf"; | grouping nvo3-traffic-statistics { | |||
| contact "ietf"; | description | |||
| description "Yang model for NVO3"; | "NVO3 tunnel traffic statistics collection."; | |||
| revision 2020-03-09 { | leaf send-bits-rate { | |||
| type uint64; | ||||
| units bit/s; | ||||
| description | description | |||
| "Revise some design in the statitics"; | "Number of send bits per second."; | |||
| reference | ||||
| ""; | ||||
| } | } | |||
| leaf send-pkts-rate { | ||||
| revision 2019-11-04 { | type uint64; | |||
| units pps; | ||||
| description | description | |||
| "Cleaning non ietf-bgp-l3vpn related errors"; | "Number of send packets per second."; | |||
| reference | ||||
| ""; | ||||
| } | } | |||
| leaf send-unicast-pkts { | ||||
| revision 2019-04-01 { | type uint64; | |||
| units packet; | ||||
| description | description | |||
| "Init revision"; | "Number of send unicast packets."; | |||
| reference | ||||
| ""; | ||||
| } | } | |||
| leaf send-multicast-pkts { | ||||
| typedef vni-status-type { | type uint64; | |||
| type enumeration { | units packet; | |||
| enum "up" { | ||||
| description | ||||
| "Vni status up."; | ||||
| } | ||||
| enum "down" { | ||||
| description | ||||
| "Vni status down."; | ||||
| } | ||||
| } | ||||
| description | description | |||
| "Vni status"; | "Number of send multicast packets."; | |||
| } | } | |||
| leaf send-broadcast-pkts { | ||||
| typedef vni-type { | type uint64; | |||
| type enumeration { | units packet; | |||
| enum "l2" { | ||||
| description | ||||
| "layer 2 mode"; | ||||
| } | ||||
| enum "l3" { | ||||
| description | ||||
| "layer 3 mode"; | ||||
| } | ||||
| } | ||||
| description | description | |||
| "vni type"; | "Number of send broadcast packets."; | |||
| } | } | |||
| leaf send-total-bytes { | ||||
| typedef peer-type { | type uint64; | |||
| type enumeration { | units Byte; | |||
| enum "static" { | ||||
| description | ||||
| "Static."; | ||||
| } | ||||
| enum "dynamic" { | ||||
| description | ||||
| "Dynamic."; | ||||
| } | ||||
| } | ||||
| description | description | |||
| "Peer type"; | "Total number of send bytes."; | |||
| } | } | |||
| leaf send-total-pkts { | ||||
| typedef tunnel-status { | type uint64; | |||
| type enumeration { | units packet; | |||
| enum "up" { | ||||
| description | ||||
| "The tunnel is up."; | ||||
| } | ||||
| enum "down" { | ||||
| description | ||||
| "The tunnel is down."; | ||||
| } | ||||
| } | ||||
| description | description | |||
| "Tunnel status"; | "Total number of send packets."; | |||
| } | } | |||
| typedef tunnel-type { | leaf receive-bits-rate { | |||
| type enumeration { | type uint64; | |||
| enum "dynamic" { | units bit/s; | |||
| description | ||||
| "The tunnel is dynamic."; | ||||
| } | ||||
| enum "static" { | ||||
| description | ||||
| "The tunnel is static."; | ||||
| } | ||||
| enum "invalid" { | ||||
| description | ||||
| "The tunnel is invalid."; | ||||
| } | ||||
| } | ||||
| description | description | |||
| "Tunnel type"; | "Number of receive bits per second."; | |||
| } | } | |||
| leaf receive-pkts-rate { | ||||
| type uint64; | ||||
| units pps; | ||||
| description | ||||
| "Number of receive packets per second."; | ||||
| } | ||||
| leaf receive-unicast-pkts { | ||||
| type uint64; | ||||
| units packet; | ||||
| description | ||||
| "Number of receive unicast packets."; | ||||
| } | ||||
| leaf receive-multicast-pkts { | ||||
| type uint64; | ||||
| units packet; | ||||
| description | ||||
| "Number of receive multicast packets."; | ||||
| } | ||||
| leaf receive-broadcast-pkts { | ||||
| type uint64; | ||||
| units packet; | ||||
| description | ||||
| "Number of receive broadcast packets."; | ||||
| } | ||||
| leaf receive-total-bytes { | ||||
| type uint64; | ||||
| units Byte; | ||||
| description | ||||
| "Total number of receive bytes."; | ||||
| } | ||||
| leaf receive-total-pkts { | ||||
| type uint64; | ||||
| units packet; | ||||
| description | ||||
| "Total number of receive packets."; | ||||
| } | ||||
| leaf drop-unicast-pkts { | ||||
| type uint64; | ||||
| units packet; | ||||
| description | ||||
| "Number of discarded unicast packets."; | ||||
| } | ||||
| leaf drop-multicast-pkts { | ||||
| type uint64; | ||||
| units packet; | ||||
| description | ||||
| "Number of discarded multicast packets."; | ||||
| } | ||||
| leaf drop-broadcast-pkts { | ||||
| type uint64; | ||||
| units packet; | ||||
| description | ||||
| "Number of discarded broadcast packets."; | ||||
| } | ||||
| } | ||||
| typedef direction-type { | container nvo3 { | |||
| type enumeration { | description | |||
| enum "inbound" { | "Management of NVO3."; | |||
| description | container vni-instances { | |||
| "Inbound."; | description | |||
| } | "List of virtual network instances."; | |||
| enum "outbound" { | list vni-instance { | |||
| key "vni-id"; | ||||
| description | ||||
| "Configure the information of VNI."; | ||||
| leaf vni-id { | ||||
| type uint32 { | ||||
| range "1..16777215"; | ||||
| } | ||||
| description | description | |||
| "Outbound."; | "The id of VNI."; | |||
| } | } | |||
| enum "bidirection" { | leaf vni-mode { | |||
| type vni-mode; | ||||
| default "local"; | ||||
| description | description | |||
| "Bidirection."; | "The mode of VNI."; | |||
| } | } | |||
| } | leaf source-nve { | |||
| description | type if:interface-ref; | |||
| "Bound direction"; | mandatory true; | |||
| } | must "(/if:interfaces/if:interface[if:name=current()]/if:type='Nve')"; | |||
| typedef vni-bind-type { | ||||
| type enumeration { | ||||
| enum "hub-mode" { | ||||
| description | description | |||
| "Hub mode. The vni instance can’t communicate with other hub mode vni instances."; | "The name of the local NVE."; | |||
| } | } | |||
| enum "spoke-mode" { | leaf protocol-bgp { | |||
| type boolean; | ||||
| default "false"; | ||||
| description | description | |||
| "Spoke mode."; | "Learn remote NVEs in the same VNI via BGP."; | |||
| } | } | |||
| enum "split-group-mode" { | leaf status { | |||
| type vni-status-type; | ||||
| config false; | ||||
| description | description | |||
| "Split group mode."; | "The status of the VNI."; | |||
| } | } | |||
| description | container static-ipv4-peers { | |||
| "bdBindVniType"; | ||||
| } | ||||
| } | ||||
| container nvo3 { | ||||
| description | ||||
| "Management of NVO3."; | ||||
| container vni-instances { | ||||
| description | ||||
| "The confiuration and information table of the VNI."; | ||||
| list vni-instance { | ||||
| key "vni-id"; | ||||
| must "(if:interfaces/if:interface[if:name=current()/source-nve]/if:type='Nve')"; | ||||
| description | description | |||
| "The confiuration and information of the VNI."; | "List of remote NVE address created by users in a VNI."; | |||
| leaf vni-id { | list static-peer { | |||
| type uint32 { | key "peer-ip"; | |||
| range "1..16777215"; | ||||
| } | ||||
| description | description | |||
| "The id of VNI."; | "Configure remote NVE address in a same VNI."; | |||
| } | leaf peer-ip { | |||
| leaf vni-mode { | type inet:ipv4-address-no-zone; | |||
| type enumeration { | description | |||
| enum "Local" { | "The address of the remote NVE."; | |||
| description | } | |||
| "Local mode"; | leaf out-vni-id { | |||
| } | type uint32 { | |||
| enum "Global" { | range "1..16777215"; | |||
| description | ||||
| "Global mode"; | ||||
| } | } | |||
| description | ||||
| "The ID of VNI for outbound. Do not support separate deletion."; | ||||
| } | } | |||
| description | ||||
| "The mode of the VNI instance."; | ||||
| } | ||||
| leaf source-nve { | ||||
| type if:interface-ref; | ||||
| mandatory true; | ||||
| description | ||||
| "The name of the nve interface ."; | ||||
| } | } | |||
| leaf protocol-bgp { | } | |||
| type boolean; | container static-ipv6-peers { | |||
| default "false"; | description | |||
| description | "List of remote NVE IPv6 address created by users in a VNI."; | |||
| "Whether use bgp as vxlan's protocol."; | list static-ipv6-peer { | |||
| } | key "peer-ip"; | |||
| leaf status { | ||||
| type vni-status-type; | ||||
| config false; | ||||
| description | ||||
| "The status of the VNI."; | ||||
| } | ||||
| container static-ipv4-peers { | ||||
| description | description | |||
| "The remote NVE address table in a same VNI."; | "Configure remote NVE IPv6 address in a same VNI."; | |||
| list static-peer { | leaf peer-ip { | |||
| key "peer-ip"; | type inet:ipv6-address-no-zone; | |||
| description | description | |||
| "The remote NVE address in a same VNI."; | "The IPv6 address of the remote NVE."; | |||
| leaf peer-ip { | } | |||
| type inet:ipv4-address-no-zone; | leaf out-vni-id { | |||
| description | type uint32 { | |||
| "The address of the NVE."; | range "1..16777215"; | |||
| } | ||||
| leaf out-vni-id { | ||||
| type uint32 { | ||||
| range "1..16777215"; | ||||
| } | ||||
| description | ||||
| "The ID of the out VNI. Do not support separate deletion."; | ||||
| } | } | |||
| description | ||||
| "The ID of VNI for outbound. Do not support separate deletion."; | ||||
| } | } | |||
| } | } | |||
| container static-ipv6-peers { | } | |||
| container flood-proxys { | ||||
| description | ||||
| "List of flood proxys for the VNI."; | ||||
| list flood-proxy { | ||||
| key "peer-ip"; | ||||
| description | description | |||
| "The remote NVE ipv6 address table in a same VNI."; | "Configure flood proxys for the VNI."; | |||
| list static-ipv6-peer { | leaf peer-ip { | |||
| key "peer-ip"; | type inet:ip-address-no-zone; | |||
| description | description | |||
| "The remote NVE ipv6 address in a same VNI."; | "The address of flood proxy."; | |||
| leaf peer-ip { | ||||
| type inet:ipv6-address-no-zone; | ||||
| description | ||||
| "The ipv6 address of the NVE."; | ||||
| } | ||||
| } | } | |||
| } | } | |||
| container flood-proxys { | } | |||
| container mcast-groups { | ||||
| description | ||||
| "List of multicast address for the VNI."; | ||||
| list mcast-group { | ||||
| key "mcast-ip"; | ||||
| description | description | |||
| "The flood proxys for this VNI"; | "Configure multicast address in a same VNI."; | |||
| list flood-proxy { | leaf mcast-ip { | |||
| key "peer-ip"; | type inet:ip-address-no-zone; | |||
| leaf peer-ip { | ||||
| type inet:ipv4-address-no-zone; | ||||
| description | ||||
| "peer ip address"; | ||||
| } | ||||
| description | description | |||
| "List of the flood proxys"; | "The mcast address of NVO3."; | |||
| } | } | |||
| } | } | |||
| container mcast-groups { | } | |||
| container statistic { | ||||
| description | ||||
| "Configure VNI traffic statistics."; | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | description | |||
| "The mcast address table."; | "Enable/disable VNI traffic statistics."; | |||
| list mcast-group { | ||||
| key "mcast-ip"; | ||||
| description | ||||
| "The mcast address."; | ||||
| leaf mcast-ip { | ||||
| type inet:ipv4-address-no-zone; | ||||
| description | ||||
| "The mcast address of NVO3."; | ||||
| } | ||||
| } | ||||
| } | } | |||
| container statistic { | container info { | |||
| when "../enable='true'"; | ||||
| config false; | ||||
| description | description | |||
| "The VNI member in a same NVE."; | "The information of vni instance traffic statistics."; | |||
| leaf statistic-enable { | uses nvo3-traffic-statistics; | |||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "To determine whether to enable the statistics for a VNI."; | ||||
| } | ||||
| container statistic-info { | ||||
| config false; | ||||
| description | ||||
| "The vni instance traffic statistics information."; | ||||
| leaf rx-bits-per-sec { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of bits received per second."; | ||||
| } | ||||
| leaf rx-pkt-per-sec { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of packets received per second."; | ||||
| } | ||||
| leaf tx-bits-per-sec { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of bits sent per second."; | ||||
| } | ||||
| leaf tx-pkt-per-sec { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of packets sent per second."; | ||||
| } | ||||
| leaf rx-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Total number of received packets."; | ||||
| } | ||||
| leaf rx-bytes { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Total number of received bytes."; | ||||
| } | ||||
| leaf tx-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Total number of sent packets."; | ||||
| } | ||||
| leaf tx-bytes { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Total number of sent bytes."; | ||||
| } | ||||
| leaf rx-unicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of received unicast packets."; | ||||
| } | ||||
| leaf rx-multicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of received multicast packets."; | ||||
| } | ||||
| leaf rx-broadcast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of received broadcast packets."; | ||||
| } | ||||
| leaf drop-unicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of discarded unicast packets."; | ||||
| } | ||||
| leaf drop-multicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of discarded multicast packets."; | ||||
| } | ||||
| leaf drop-broadcast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of discarded broadcast packets."; | ||||
| } | ||||
| leaf tx-unicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of sent unicast packets."; | ||||
| } | ||||
| leaf tx-multicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of sent multicast packets."; | ||||
| } | ||||
| leaf tx-broadcast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of sent broadcast packets."; | ||||
| } | ||||
| } | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container vni-peer-infos { | } | |||
| container vni-peer-infos { | ||||
| config false; | ||||
| description | ||||
| "List of remote NVE addresses."; | ||||
| container peers { | ||||
| config false; | config false; | |||
| description | description | |||
| "The information table of vni members."; | "Operational data of remote NVE address in a VNI."; | |||
| container peers { | list peer { | |||
| key "vni-id source-ip peer-ip"; | ||||
| config false; | config false; | |||
| description | description | |||
| "The remote nve address in a same VNI."; | "Operational data of remote NVE addresses in a VNI."; | |||
| list peer { | leaf vni-id { | |||
| key "vni-id source-ip peer-ip"; | type uint32 { | |||
| range "1..16777215"; | ||||
| } | ||||
| config false; | config false; | |||
| description | description | |||
| "The remote nve address list in a same VNI."; | "The ID of VNI."; | |||
| } | ||||
| leaf vni-id { | leaf source-ip { | |||
| type uint32 { | type inet:ip-address-no-zone; | |||
| range "1..16777215"; | config false; | |||
| } | description | |||
| config false; | "Local NVE address, as NVO3 tunnel source point."; | |||
| description | } | |||
| "The ID of VNI."; | leaf peer-ip { | |||
| } | type inet:ip-address-no-zone; | |||
| leaf source-ip { | config false; | |||
| type inet:ip-address-no-zone; | description | |||
| config false; | "Remote NVE address, as NVO3 tunnel end point."; | |||
| description | } | |||
| "The source address of the NVE interface."; | leaf type { | |||
| } | type tunnel-type; | |||
| leaf peer-ip { | config false; | |||
| type inet:ip-address-no-zone; | description | |||
| config false; | "Tunnel type."; | |||
| description | } | |||
| "The remote NVE address."; | leaf out-vni-id { | |||
| } | type uint32 { | |||
| leaf tunnel-type { | range "1..16777215"; | |||
| type peer-type; | ||||
| config false; | ||||
| description | ||||
| "Tunnel type."; | ||||
| } | ||||
| leaf out-vni-id { | ||||
| type uint32 { | ||||
| range "1..16777215"; | ||||
| } | ||||
| config false; | ||||
| description | ||||
| "The ID of the out VNI."; | ||||
| } | } | |||
| config false; | ||||
| description | ||||
| "The ID of VNI for outbound."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| } | ||||
| container tunnel-infos { | container tunnel-infos { | |||
| config false; | ||||
| description | ||||
| "List of NVO3 tunnel information."; | ||||
| list tunnel-info { | ||||
| key "tunnel-id"; | ||||
| config false; | config false; | |||
| description | description | |||
| "VxLAN tunnel information."; | "Operational data of NVO3 tunnel information."; | |||
| list tunnel-info { | leaf tunnel-id { | |||
| key "tunnel-id"; | type uint32 { | |||
| range "1..4294967295"; | ||||
| } | ||||
| config false; | config false; | |||
| description | description | |||
| "VxLAN tunnel information list."; | "The ID of NVO3 tunnel."; | |||
| leaf tunnel-id { | } | |||
| type uint32 { | leaf source-ip { | |||
| range "1..4294967295"; | type inet:ip-address-no-zone; | |||
| } | config false; | |||
| config false; | description | |||
| description | "Local NVE address, as NVO3 tunnel source point."; | |||
| "The ID of Vxlan tunnel."; | } | |||
| } | leaf peer-ip { | |||
| leaf source-ip { | type inet:ip-address-no-zone; | |||
| type inet:ip-address-no-zone; | config false; | |||
| config false; | description | |||
| description | "Remote NVE address, as NVO3 tunnel end point."; | |||
| "Local NVE interface address."; | } | |||
| } | leaf status { | |||
| leaf peer-ip { | type tunnel-status; | |||
| type inet:ip-address-no-zone; | config false; | |||
| config false; | description | |||
| description | "Tunnel status."; | |||
| "Remote NVE interface address."; | } | |||
| } | leaf type { | |||
| leaf status { | type tunnel-type; | |||
| type tunnel-status; | config false; | |||
| config false; | description | |||
| description | "Tunnel type."; | |||
| "Tunnel status."; | } | |||
| } | leaf up-time { | |||
| leaf type { | type string { | |||
| type tunnel-type; | length "1..10"; | |||
| config false; | ||||
| description | ||||
| "Tunnel type."; | ||||
| } | ||||
| leaf up-time { | ||||
| type string { | ||||
| length "1..10"; | ||||
| } | ||||
| config false; | ||||
| description | ||||
| "Vxlan tunnel up time."; | ||||
| } | } | |||
| leaf vrf-name { | config false; | |||
| type leafref { | description | |||
| path "/ni:network-instances/ni:network-instance/ni:name"; | "The continuous time as NVO3 tunnel is reachable."; | |||
| } | } | |||
| default "_public_"; | leaf vrf-name { | |||
| config false; | type leafref { | |||
| description | path "/ni:network-instances/ni:network-instance/ni:name"; | |||
| "The name of VPN instance."; | ||||
| } | } | |||
| default "_public_"; | ||||
| config false; | ||||
| description | ||||
| "The name of VPN instance."; | ||||
| } | } | |||
| } | } | |||
| } | ||||
| augment "/ianaift" { | identity Nve { | |||
| description | base ianaift:iana-interface-type; | |||
| "A new interface type to be registered to IANA"; | description "A new interface type to be registered to IANA"; | |||
| identity Nve { | } | |||
| base iana-interface-type; | ||||
| } | ||||
| } | ||||
| augment "/if:interfaces/if:interface" { | augment "/if:interfaces/if:interface" { | |||
| when "(/if:interfaces/if:interface/if:type = 'nvo3:Nve')"; | ||||
| description | ||||
| "Augment the interface, NVE as an interface."; | ||||
| container nvo3-nve { | ||||
| description | description | |||
| "Augment the interface, NVE as an interface."; | "Local NVE."; | |||
| when "(/if:interfaces/if:interface/if:type = 'Nve')"; | leaf nve-ip { | |||
| container nvo3-nve { | type inet:ipv4-address-no-zone; | |||
| description | description | |||
| "Network virtualization edge."; | "The address of local NVE."; | |||
| leaf source-vtep-ip { | ||||
| type inet:ipv4-address-no-zone; | ||||
| description | ||||
| "The source address of the NVE interface."; | ||||
| } | ||||
| leaf source-vtep-ipv6 { | ||||
| type inet:ipv6-address-no-zone; | ||||
| description | ||||
| "The source ipv6 address of the NVE interface."; | ||||
| } | ||||
| leaf bypass-vtep-ip { | ||||
| type inet:ipv4-address-no-zone; | ||||
| description | ||||
| "The source address of bypass VXLAN tunnel."; | ||||
| } | ||||
| container statistics { | ||||
| description | ||||
| "VXLAN Tunnel Traffic Statistical Configuration Table."; | ||||
| list statistic { | ||||
| key "vni-id mode peer-ip direction"; | ||||
| description | ||||
| "VXLAN Tunnel Traffic Statistics Configuration."; | ||||
| leaf vni-id { | ||||
| type uint32 { | ||||
| range "1..16777215"; | ||||
| } | ||||
| description | ||||
| "ID of the VNI."; | ||||
| } | ||||
| leaf mode { | ||||
| type vni-type; | ||||
| description | ||||
| "The type of the NVE interface."; | ||||
| } | ||||
| leaf peer-ip { | ||||
| type inet:ipv4-address-no-zone; | ||||
| description | ||||
| "IP address of the remote VTEP."; | ||||
| } | ||||
| leaf direction { | ||||
| type direction-type; | ||||
| description | ||||
| "Traffic statistics type about the VXLAN tunnel."; | ||||
| } | ||||
| container info { | ||||
| config false; | ||||
| description | ||||
| "Traffic statistics about the peer."; | ||||
| leaf rx-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Total number of received packets."; | ||||
| } | ||||
| leaf rx-bytes { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Total number of received bytes."; | ||||
| } | ||||
| leaf tx-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Total number of sent packets."; | ||||
| } | ||||
| leaf tx-bytes { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Total number of sent bytes."; | ||||
| } | ||||
| leaf rx-unicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of received unicast packets."; | ||||
| } | ||||
| leaf rx-multicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of received multicast packets."; | ||||
| } | ||||
| leaf rx-broadcast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of received broadcast packets."; | ||||
| } | ||||
| leaf tx-unicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of sent unicast packets."; | ||||
| } | ||||
| leaf tx-multicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of sent multicast packets."; | ||||
| } | ||||
| leaf tx-broadcast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of sent broadcast packets."; | ||||
| } | ||||
| leaf drop-unicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of discarded unicast packets."; | ||||
| } | ||||
| leaf drop-multicast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of discarded multicast packets."; | ||||
| } | ||||
| leaf drop-broadcast-pkts { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of discarded broadcast packets."; | ||||
| } | ||||
| leaf rx-bits-per-sec { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of bits received per second."; | ||||
| } | ||||
| leaf rx-pkt-per-sec { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of packets received per second."; | ||||
| } | ||||
| leaf tx-bits-per-sec { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of bits sent per second."; | ||||
| } | ||||
| leaf tx-pkt-per-sec { | ||||
| type uint64; | ||||
| config false; | ||||
| description | ||||
| "Number of packets sent per second."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| } | } | |||
| } | leaf nve-ipv6 { | |||
| type inet:ipv6-address-no-zone; | ||||
| augment "/ni:network-instances/ni:network-instance/ni:ni-type" + | description | |||
| "/l3vpn:l3vpn/l3vpn:l3vpn" { | "The IPv6 address of the local NVE."; | |||
| description "Augment for l3vpn instance"; | } | |||
| container vni-lists { | leaf bypass-nve-ip { | |||
| description "Vni list for l3vpn"; | type inet:ipv4-address-no-zone; | |||
| list vni { | description | |||
| key "vni-id"; | "The address of local NVE as bypass."; | |||
| } | ||||
| leaf bypass-nve-ipv6 { | ||||
| type inet:ipv6-address-no-zone; | ||||
| description | ||||
| "The IPv6 address of local NVE as bypass."; | ||||
| } | ||||
| container statistics { | ||||
| description | ||||
| "List of NVO3 tunnel statistics."; | ||||
| list statistic { | ||||
| key "vni-id peer-ip direction"; | ||||
| description | description | |||
| "Vni for current l3vpn instance"; | "Configure NVO3 tunnel statistics information."; | |||
| leaf vni-id { | leaf vni-id { | |||
| type uint32 { | type uint32 { | |||
| range "1..16777215"; | range "1..16777215"; | |||
| } | } | |||
| description | description | |||
| "The id of VNI."; | "The ID of the VNI."; | |||
| } | } | |||
| } | leaf peer-ip { | |||
| } | type inet:ip-address-no-zone; | |||
| } | ||||
| augment "/ni:network-instances/ni:network-instance/ni:ni-type" + | ||||
| "/l2vpn:l2vpn" { | ||||
| description "Augment for l2vpn instance"; | ||||
| container vni-lists { | ||||
| description "Vni list for l2vpn"; | ||||
| list vni { | ||||
| key "vni-id"; | ||||
| description | ||||
| "Vni for current l2vpn instance"; | ||||
| leaf vni-id { | ||||
| type uint32 { | ||||
| range "1..16777215"; | ||||
| } | ||||
| description | description | |||
| "The id of VNI."; | "The address of remote NVE."; | |||
| } | } | |||
| container split-horizon { | leaf direction { | |||
| leaf split-horizon-mode { | type direction-type; | |||
| type vni-bind-type; | description | |||
| default "hub-mode"; | "Traffic statistics direction for the tunnel."; | |||
| description | } | |||
| "Split horizon mode."; | container info { | |||
| } | config false; | |||
| leaf split-group { | description | |||
| must "(vni-bind-type='split-group-mode')"; | "The information of tunnel traffic statistics."; | |||
| type string { | uses nvo3-traffic-statistics; | |||
| length "1..31"; | ||||
| } | ||||
| description | ||||
| "Split group name."; | ||||
| } | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | ||||
| rpc reset-vni-instance-statistic { | augment "/ni:network-instances/ni:network-instance/ni:ni-type" + | |||
| description | "/l3vpn:l3vpn/l3vpn:l3vpn" { | |||
| "Clear traffic statistics about the VNI."; | description "Augment for l3vpn instance"; | |||
| input { | container vnis { | |||
| description "Vni list for l3vpn."; | ||||
| list vni { | ||||
| key "vni-id"; | ||||
| description | ||||
| "Vni for current l3vpn instance."; | ||||
| leaf vni-id { | leaf vni-id { | |||
| type uint32 { | type uint32 { | |||
| range "1..16777215"; | range "1..16777215"; | |||
| } | } | |||
| mandatory true; | ||||
| description | description | |||
| "ID of the VNI."; | "The ID of the VNI."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| rpc reset-vni-peer-statistic { | } | |||
| description | ||||
| "Clear traffic statistics about the VXLAN tunnel."; | augment "/ni:network-instances/ni:network-instance/ni:ni-type" + | |||
| input { | "/l2vpn:l2vpn" { | |||
| description "Augment for l2vpn instance."; | ||||
| container vnis { | ||||
| description "Vni list for l2vpn."; | ||||
| list vni { | ||||
| key "vni-id"; | ||||
| description | ||||
| "Vni for current l2vpn instance."; | ||||
| leaf vni-id { | leaf vni-id { | |||
| type uint32 { | type uint32 { | |||
| range "1..16777215"; | range "1..16777215"; | |||
| } | } | |||
| mandatory true; | ||||
| description | description | |||
| "ID of the VNI."; | "The ID of the VNI."; | |||
| } | } | |||
| leaf peer-ip { | container split-horizon { | |||
| type inet:ipv4-address-no-zone; | description "Configure NVO3 split-horizon information."; | |||
| mandatory true; | leaf split-horizon-mode { | |||
| description | type vni-bind-type; | |||
| "IP address of the remote NVE interface."; | default "hub-mode"; | |||
| description | ||||
| "Split horizon mode."; | ||||
| } | ||||
| leaf split-group { | ||||
| when "(../split-horizon-mode='split-group-mode')"; | ||||
| type string { | ||||
| length "1..31"; | ||||
| } | ||||
| description | ||||
| "Split group name."; | ||||
| } | ||||
| } | } | |||
| leaf direction{ | } | |||
| type direction-type; | } | |||
| mandatory true; | } | |||
| description | ||||
| "Traffic statistics type about the VXLAN tunnel."; | rpc reset-vni-instance-statistic { | |||
| description | ||||
| "Clear traffic statistics about the VNI."; | ||||
| input { | ||||
| leaf vni-id { | ||||
| type uint32 { | ||||
| range "1..16777215"; | ||||
| } | } | |||
| mandatory true; | ||||
| description | ||||
| "The ID of the VNI."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | rpc reset-vni-peer-statistic { | |||
| description | ||||
| "Clear traffic statistics about the VXLAN tunnel."; | ||||
| input { | ||||
| leaf vni-id { | ||||
| type uint32 { | ||||
| range "1..16777215"; | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "The ID of the VNI."; | ||||
| } | ||||
| leaf peer-ip { | ||||
| type inet:ip-address-no-zone; | ||||
| mandatory true; | ||||
| description | ||||
| "The address of the remote NVE."; | ||||
| } | ||||
| leaf direction{ | ||||
| type direction-type; | ||||
| mandatory true; | ||||
| description | ||||
| "Traffic statistics direction for the tunnel."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| 4. Security Considerations | <CODE ENDS> | |||
| 4. Security Considerations | ||||
| This document raises no new security issues. | This document raises no new security issues. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| The namespace URI defined in Section 3.3 need be registered in the | The namespace URI defined in Section 3.4 need to be registered in the | |||
| IETF XML registry [RFC3688]. | IETF XML registry [RFC3688]. | |||
| This document need to register the 'ietf-nvo3-base' YANG module in | This document need to register the 'ietf-nvo3-base' YANG module in | |||
| the YANG Module Names registry [RFC6020]. | the YANG Module Names registry [RFC6020]. | |||
| 6. Contributors | 6. Contributors | |||
| Haibo Wang | Haibo Wang | |||
| Huawei | Huawei | |||
| Email: rainsword.wang@huawei.com | Email: rainsword.wang@huawei.com | |||
| Yuan Gao | Yuan Gao | |||
| Huawei | Huawei | |||
| Email: sean.gao@huawei.com | Email: sean.gao@huawei.com | |||
| Gang Yan | Guannan Shi | |||
| Huawei | Huawei | |||
| Email: yangang@huawei.com | Email: shiguannan1@huawei.com | |||
| Gang Yan | ||||
| Huawei | ||||
| Email: yangang@huawei.com | ||||
| Mingui Zhang | Mingui Zhang | |||
| Huawei | Huawei | |||
| Email: zhangmingui@huawei.com | Email: zhangmingui@huawei.com | |||
| Yubao(Bob) Wang | Yubao Wang | |||
| ZTE Corporation | ZTE Corporation | |||
| Email: yubao.wang2008@hotmail.com | Email: yubao.wang2008@hotmail.com | |||
| Ruixue Wang | Ruixue Wang | |||
| China Mobile | China Mobile | |||
| Email: wangruixue@chinamobile.com | Email: wangruixue@chinamobile.com | |||
| Sijun Weng | Sijun Weng | |||
| China Mobile | China Mobile | |||
| Email: wengsijun@chinamobile.com | Email: wengsijun@chinamobile.com | |||
| 7. Acknowledgements | This document is part of a plan to make xml2rfc indispensable. | |||
| Authors would like to thank the comments and suggestions from Tao | 7. References | |||
| Han, Weilian Jiang. | ||||
| 8. References | 7.1. Normative References | |||
| 8.1. Normative References | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | ||||
| DOI 10.17487/RFC2119, March 1997, | ||||
| <https://www.rfc-editor.org/info/rfc2119>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | ||||
| [RFC7364] T. Narten, E. Gray, et al, "Problem Statement: Overlays for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| Network Virtualization", draft-ietf-nvo3-overlay-problem- | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| statement, working in progress. | DOI 10.17487/RFC6020, October 2010, | |||
| <https://www.rfc-editor.org/info/rfc6020>. | ||||
| [RFC7365] Marc Lasserre, Florin Balus, et al, "Framework for DC | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| Network Virtualization", draft-ietf-nvo3-framework, working | and A. Bierman, Ed., "Network Configuration Protocol | |||
| in progress. | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | ||||
| [RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger, | [RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger, | |||
| L., Sridhar, T., Bursell, M., and C. Wright, "Virtual | L., Sridhar, T., Bursell, M., and C. Wright, "Virtual | |||
| eXtensible Local Area Network (VXLAN): A Framework for | eXtensible Local Area Network (VXLAN): A Framework for | |||
| Overlaying Virtualized Layer 2 Networks over Layer 3 | Overlaying Virtualized Layer 2 Networks over Layer 3 | |||
| Networks", RFC 7348, August 2014. | Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014, | |||
| <https://www.rfc-editor.org/info/rfc7348>. | ||||
| [I-D.ietf-nvo3-geneve] Gross, J., Ganga, I., and T. Sridhar, "Geneve: | [RFC7364] Narten, T., Ed., Gray, E., Ed., Black, D., Fang, L., | |||
| Generic Network Virtualization Encapsulation", draft-ietf- | Kreeger, L., and M. Napierala, "Problem Statement: | |||
| nvo3-geneve-10 (work in progress), March 2019. | Overlays for Network Virtualization", RFC 7364, | |||
| DOI 10.17487/RFC7364, October 2014, | ||||
| <https://www.rfc-editor.org/info/rfc7364>. | ||||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC7365] Lasserre, M., Balus, F., Morin, T., Bitar, N., and Y. | |||
| January 2004. | Rekhter, "Framework for Data Center (DC) Network | |||
| Virtualization", RFC 7365, DOI 10.17487/RFC7365, October | ||||
| 2014, <https://www.rfc-editor.org/info/rfc7365>. | ||||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC8014] Black, D., Hudson, J., Kreeger, L., Lasserre, M., and T. | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | Narten, "An Architecture for Data-Center Network | |||
| October 2010. | Virtualization over Layer 3 (NVO3)", RFC 8014, | |||
| DOI 10.17487/RFC8014, December 2016, | ||||
| <https://www.rfc-editor.org/info/rfc8014>. | ||||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| and A. Bierman, Ed., "Network Configuration Protocol | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| (NETCONF)", RFC 6241, June 2011. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8014] D. Black, J. Hudson, L. Kreeger, M. Lasserre, T. Narten, An | [RFC8365] Sajassi, A., Ed., Drake, J., Ed., Bitar, N., Shekhar, R., | |||
| Architecture for Data-Center Network Virtualization over | Uttaro, J., and W. Henderickx, "A Network Virtualization | |||
| Layer 3 (NVO3), RFC8014, December 2016. | Overlay Solution Using Ethernet VPN (EVPN)", RFC 8365, | |||
| DOI 10.17487/RFC8365, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8365>. | ||||
| 8.2. Informative References | 7.2. Informative References | |||
| [RFC7637] M. Sridharan, A. Greenberg, et al, "NVGRE: Network | ||||
| Virtualization using Generic Routing Encapsulation", | ||||
| RFC7637, September 2015. | ||||
| [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. | ||||
| [I-D.draft-ietf-bess-evpn-inter-subnet-forwarding] A. Sajassi, S. | ||||
| Salam, S. Thoria, J. Drake, J. Rabadan, "Integrated Routing | ||||
| and Bridging in EVPN", draft-ietf-bess-evpn-inter-subnet- | ||||
| forwarding-08, March 4, 2019. | ||||
| [RFC8293] A. Ghanwani, L. Dunbar, V. Bannai, M. McBride, R. Krishnan, | ||||
| "A Framework for Multicast in Network Virtualization over | ||||
| Layer 3", RFC8293, January 2018. | ||||
| Author's Addresses | [I-D.ietf-bess-evpn-inter-subnet-forwarding] | |||
| Sajassi, A., Salam, S., Thoria, S., Drake, J., and J. | ||||
| Rabadan, "Integrated Routing and Bridging in EVPN", draft- | ||||
| ietf-bess-evpn-inter-subnet-forwarding-09 (work in | ||||
| progress), June 2020. | ||||
| Bing Liu | [I-D.ietf-nvo3-geneve] | |||
| Gross, J., Ganga, I., and T. Sridhar, "Geneve: Generic | ||||
| Network Virtualization Encapsulation", draft-ietf- | ||||
| nvo3-geneve-16 (work in progress), March 2020. | ||||
| [I-D.ietf-nvo3-vxlan-gpe] | ||||
| Maino, F., Kreeger, L., and U. Elzur, "Generic Protocol | ||||
| Extension for VXLAN (VXLAN-GPE)", draft-ietf-nvo3-vxlan- | ||||
| gpe-10 (work in progress), July 2020. | ||||
| [RFC7637] Garg, P., Ed. and Y. Wang, Ed., "NVGRE: Network | ||||
| Virtualization Using Generic Routing Encapsulation", | ||||
| RFC 7637, DOI 10.17487/RFC7637, September 2015, | ||||
| <https://www.rfc-editor.org/info/rfc7637>. | ||||
| [RFC8293] Ghanwani, A., Dunbar, L., McBride, M., Bannai, V., and R. | ||||
| Krishnan, "A Framework for Multicast in Network | ||||
| Virtualization over Layer 3", RFC 8293, | ||||
| DOI 10.17487/RFC8293, January 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8293>. | ||||
| Authors' Addresses | ||||
| Bing Liu (editor) | ||||
| Huawei Technologies | Huawei Technologies | |||
| No. 156 Beiqing Rd. Haidian District, | No. 156 Beiqing Rd. Haidian District | |||
| Beijing 100095 | Beijing 100095 | |||
| P.R. China | China | |||
| Email: remy.liubing@huawei.com | Email: remy.liubing@huawei.com | |||
| Ran Chen | Ran Chen | |||
| ZTE Corporation | ZTE Corporation | |||
| Email: chen.ran@zte.com.cn | Email: chen.ran@zte.com.cn | |||
| Fengwei Qin | Fengwei Qin | |||
| China Mobile | China Mobile | |||
| 32 Xuanwumen West Ave, Xicheng District | 32 Xuanwumen West Ave, Xicheng District | |||
| Beijing, Beijing 100053 | Beijing 100053 | |||
| China | China | |||
| Email: qinfengwei@chinamobile.com | Email: qinfengwei@chinamobile.com | |||
| Reshad Rahman | Reshad Rahman | |||
| Cisco Systems | Cisco Systems | |||
| Email: rrahman@cisco.com | Email: rrahman@cisco.com | |||
| End of changes. 169 change blocks. | ||||
| 982 lines changed or deleted | 915 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||