| < draft-ietf-nvo3-yang-cfg-00.txt | draft-ietf-nvo3-yang-cfg-01.txt > | |||
|---|---|---|---|---|
| INTERNET-DRAFT B. Liu, Ed. | INTERNET-DRAFT B. Liu, Ed. | |||
| Intended Status: Standards Track Huawei | Intended Status: Standards Track Huawei | |||
| R. Chen | R. Chen | |||
| ZTE | ZTE | |||
| F. Qin | F. Qin | |||
| China Mobile | China Mobile | |||
| R. Rahman | R. Rahman | |||
| Cisco | Cisco | |||
| Expires: April 10, 2020 October 8, 2019 | Expires: May 7, 2020 November 4, 2019 | |||
| Base YANG Data Model for NVO3 Protocols | Base YANG Data Model for NVO3 Protocols | |||
| draft-ietf-nvo3-yang-cfg-00.txt | draft-ietf-nvo3-yang-cfg-01.txt | |||
| 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. | |||
| skipping to change at page 5, line 46 ¶ | skipping to change at page 5, line 46 ¶ | |||
| 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.3. Model Structure | |||
| module: ietf-nvo3 | module: ietf-nvo3-base | |||
| +--rw nvo3 | +--rw nvo3 | |||
| | +--rw vni-instances | | +--rw vni-instances | |||
| | +--rw vni-instance* [vni-id] | | +--rw vni-instance* [vni-id] | |||
| | +--rw vni-id uint32 | | +--rw vni-id uint32 | |||
| | +--rw vni-mode enumeration | | +--rw vni-mode enumeration | |||
| | +--rw source-nve if:interface-ref | | +--rw source-nve if:interface-ref | |||
| | +--rw protocol-bgp? boolean | | +--rw protocol-bgp? boolean | |||
| | +--ro status? vni-status-type | | +--ro status? vni-status-type | |||
| | +--rw static-ipv4-peers | | +--rw static-ipv4-peers | |||
| | | +--rw static-peer* [peer-ip] | | | +--rw static-peer* [peer-ip] | |||
| skipping to change at page 8, line 21 ¶ | skipping to change at page 8, line 21 ¶ | |||
| +---w input | +---w input | |||
| +---w vni-id uint32 | +---w vni-id uint32 | |||
| +---w mode vni-type | +---w mode vni-type | |||
| +---w peer-ip inet:ipv4-address-no-zone | +---w peer-ip inet:ipv4-address-no-zone | |||
| +---w direction direction-type | +---w direction direction-type | |||
| Figure 3.2. The tree structure of YANG module for NVO3 configuration | Figure 3.2. The tree structure of YANG module for NVO3 configuration | |||
| 3.4. YANG Module | 3.4. YANG Module | |||
| <CODE BEGINS> file "ietf-nvo3-base@2019-07-01.yang" | <CODE BEGINS> file "ietf-nvo3-base@2019-11-04.yang" | |||
| module ietf-nvo3 { | module ietf-nvo3-base { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-nvo3"; | namespace "urn:ietf:params:xml:ns:yang:ietf-nvo3"; | |||
| prefix "nvo3"; | prefix "nvo3"; | |||
| import ietf-network-instance { | import ietf-network-instance { | |||
| prefix "ni"; | prefix "ni"; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix "if"; | |||
| skipping to change at page 8, line 51 ¶ | skipping to change at page 8, line 51 ¶ | |||
| } | } | |||
| import ietf-bgp-l3vpn { | import ietf-bgp-l3vpn { | |||
| prefix "l3vpn"; | prefix "l3vpn"; | |||
| } | } | |||
| organization "ietf"; | organization "ietf"; | |||
| contact "ietf"; | contact "ietf"; | |||
| description "Yang model for NVO3"; | description "Yang model for NVO3"; | |||
| revision 2019-11-04 { | ||||
| description | ||||
| "Cleaning non ietf-bgp-l3vpn related errors"; | ||||
| reference | ||||
| ""; | ||||
| } | ||||
| revision 2019-04-01 { | revision 2019-04-01 { | |||
| description | description | |||
| "Init revision"; | "Init revision"; | |||
| reference | reference | |||
| ""; | ""; | |||
| } | } | |||
| typedef vni-status-type { | typedef vni-status-type { | |||
| type enumeration { | type enumeration { | |||
| enum "up" { | enum "up" { | |||
| skipping to change at page 11, line 35 ¶ | skipping to change at page 11, line 43 ¶ | |||
| container nvo3 { | container nvo3 { | |||
| description | description | |||
| "Management of NVO3."; | "Management of NVO3."; | |||
| container vni-instances { | container vni-instances { | |||
| description | description | |||
| "The confiuration and information table of the VNI."; | "The confiuration and information table of the VNI."; | |||
| list vni-instance { | list vni-instance { | |||
| key "vni-id"; | key "vni-id"; | |||
| must "(/if:interfaces/if:interface[if:name = current()/source_nve]/if:type = 'Nve')"; | must "(/if:interfaces/if:interface[if:name=current()/source-nve]/if:type='Nve')"; | |||
| description | description | |||
| "The confiuration and information of the VNI."; | "The confiuration and information of the VNI."; | |||
| 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 VNI."; | |||
| } | } | |||
| leaf vni-mode { | leaf vni-mode { | |||
| skipping to change at page 18, line 41 ¶ | skipping to change at page 18, line 47 ¶ | |||
| config false; | config false; | |||
| description | description | |||
| "The name of VPN instance."; | "The name of VPN instance."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/if:interfaces/if:interface" { | augment "/if:interfaces/if:interface" { | |||
| description | description | |||
| "Augment the interface, NVE as an interface."; | "Augment the interface, NVE as an interface."; | |||
| when "if:type = 'Nve'"; | ||||
| container nvo3-nve { | container nvo3-nve { | |||
| when "if:interfaces/if:interface/if:type = 'Nve'"; | ||||
| description | description | |||
| "Network virtualization edge."; | "Network virtualization edge."; | |||
| leaf source-vtep-ip { | leaf source-vtep-ip { | |||
| type inet:ipv4-address-no-zone; | type inet:ipv4-address-no-zone; | |||
| description | description | |||
| "The source address of the NVE interface."; | "The source address of the NVE interface."; | |||
| } | } | |||
| leaf source-vtep-ipv6 { | leaf source-vtep-ipv6 { | |||
| type inet:ipv6-address-no-zone; | type inet:ipv6-address-no-zone; | |||
| description | description | |||
| skipping to change at page 19, line 37 ¶ | skipping to change at page 19, line 44 ¶ | |||
| description | description | |||
| "The type of the NVE interface."; | "The type of the NVE interface."; | |||
| } | } | |||
| leaf peer-ip { | leaf peer-ip { | |||
| type inet:ipv4-address-no-zone; | type inet:ipv4-address-no-zone; | |||
| description | description | |||
| "IP address of the remote VTEP."; | "IP address of the remote VTEP."; | |||
| } | } | |||
| leaf direction { | leaf direction { | |||
| type direction-type; | type direction-type; | |||
| must "(./mode='l3' and ./bound!='bidirection')"; | must "(../mode='l3' and ../direction!='bidirection')"; | |||
| description | description | |||
| "Traffic statistics type about the VXLAN tunnel."; | "Traffic statistics type about the VXLAN tunnel."; | |||
| } | } | |||
| container info { | container info { | |||
| config false; | config false; | |||
| description | description | |||
| "Traffic statistics about the peer."; | "Traffic statistics about the peer."; | |||
| leaf rx-pkts { | leaf rx-pkts { | |||
| type uint64; | type uint64; | |||
| config false; | config false; | |||
| description | description | |||
| "Total number of received packets."; | "Total number of received packets."; | |||
| } | } | |||
| leaf rx-bytes { | leaf rx-bytes { | |||
| type uint64; | type uint64; | |||
| config false; | config false; | |||
| description | description | |||
| skipping to change at page 22, line 4 ¶ | skipping to change at page 22, line 11 ¶ | |||
| description | description | |||
| "Number of bits sent per second."; | "Number of bits sent per second."; | |||
| } | } | |||
| leaf tx-pkt-per-sec { | leaf tx-pkt-per-sec { | |||
| type uint64; | type uint64; | |||
| config false; | config false; | |||
| description | description | |||
| "Number of packets sent per second."; | "Number of packets sent per second."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container nvo3-gateway { | container nvo3-gateway { | |||
| when "if:interfaces/if:interface/if:type = 'Vbdif'"; | when "/if:interfaces/if:interface/if:type = 'Vbdif'"; | |||
| description | description | |||
| "Enable anycast gateway."; | "Enable anycast gateway."; | |||
| leaf vxlan-anycast-gateway { | leaf vxlan-anycast-gateway { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description | description | |||
| "Enable vxlan anycast gateway."; | "Enable vxlan anycast gateway."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| skipping to change at page 24, line 18 ¶ | skipping to change at page 24, line 25 ¶ | |||
| "The type of vni memeber statistic."; | "The type of vni memeber statistic."; | |||
| } | } | |||
| leaf peer-ip { | leaf peer-ip { | |||
| type inet:ipv4-address-no-zone; | type inet:ipv4-address-no-zone; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "IP address of the remote NVE interface."; | "IP address of the remote NVE interface."; | |||
| } | } | |||
| leaf direction{ | leaf direction{ | |||
| type direction-type; | type direction-type; | |||
| must "(./mode='mode-l3' and ./bound!='bidirection')"; | must "(../mode='l3' and ../direction!='bidirection')"; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Traffic statistics type about the VXLAN tunnel."; | "Traffic statistics type about the VXLAN tunnel."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| End of changes. 13 change blocks. | ||||
| 11 lines changed or deleted | 18 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/ | ||||