idnits 2.17.1 draft-zhang-nvo3-yang-cfg-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 7 instances of too long lines in the document, the longest one being 23 characters in excess of 72. ** There are 165 instances of lines with control characters in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 206 has weird spacing: '...t-group ine...' == Line 215 has weird spacing: '...pn-name vrf...' == Line 241 has weird spacing: '...peer-ip ine...' == Line 268 has weird spacing: '...urce-ip ine...' == Line 307 has weird spacing: '...nnel-id uin...' -- The document date (March 8, 2019) is 1869 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'I-D.ietf-nvo3-geneve' is defined on line 1265, but no explicit reference was found in the text == Unused Reference: 'RFC7637' is defined on line 1281, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-nvo3-vxlan-gpe' is defined on line 1284, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-nvo3-encap-02' is defined on line 1290, but no explicit reference was found in the text ** Downref: Normative reference to an Informational draft: draft-ietf-nvo3-overlay-problem-statement (ref. 'RFC7364') ** Downref: Normative reference to an Informational draft: draft-ietf-nvo3-framework (ref. 'RFC7365') ** Downref: Normative reference to an Informational RFC: RFC 7348 == Outdated reference: A later version (-16) exists of draft-ietf-nvo3-geneve-10 == Outdated reference: A later version (-13) exists of draft-ietf-nvo3-vxlan-gpe-06 == Outdated reference: A later version (-12) exists of draft-ietf-nvo3-encap-02 Summary: 5 errors (**), 0 flaws (~~), 13 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 INTERNET-DRAFT Mingui Zhang 3 Intended Status: Standards Track Yuan Gao 4 Haibo Wang 5 Bing Liu 6 Huawei 7 Fu Qiao 8 China Mobile 9 Expires: September 9, 2019 March 8, 2019 11 Base YANG Data Model for NVO3 Protocols 12 draft-zhang-nvo3-yang-cfg-05.txt 14 Abstract 16 This document describes the base YANG data model that can be used by 17 operators to configure and manage Network Virtualization Overlay 18 protocols. The model is focused on the common configuration 19 requirement of various encapsulation options, such as VXLAN, NVGRE, 20 GENEVE and VXLAN-GPE. Using this model as a starting point, 21 incremental work can be done to satisfy the requirement of a specific 22 encapsulation. 24 Status of this Memo 26 This Internet-Draft is submitted to IETF in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF), its areas, and its working groups. Note that 31 other groups may also distribute working documents as 32 Internet-Drafts. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 The list of current Internet-Drafts can be accessed at 40 http://www.ietf.org/1id-abstracts.html 42 The list of Internet-Draft Shadow Directories can be accessed at 43 http://www.ietf.org/shadow.html 45 Copyright and License Notice 47 Copyright (c) 2018 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (http://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 63 2. Acronyms and Terminology . . . . . . . . . . . . . . . . . . . 3 64 2.1. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . 3 65 2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3 66 3. The YANG Data Model for NVO3 . . . . . . . . . . . . . . . . . 3 67 3.1. The Configuration Parameters . . . . . . . . . . . . . . . 4 68 3.1.1. NVE ID . . . . . . . . . . . . . . . . . . . . . . . . 4 69 3.1.2. Virtual Network Instance . . . . . . . . . . . . . . . 4 70 3.1.3. Flags in the Header . . . . . . . . . . . . . . . . . . 4 71 3.1.4. BUM Mode . . . . . . . . . . . . . . . . . . . . . . . 4 72 3.2. Statistics . . . . . . . . . . . . . . . . . . . . . . . . 4 73 3.3. Model Structure . . . . . . . . . . . . . . . . . . . . . . 4 74 3.4. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . 7 75 4. Security Considerations . . . . . . . . . . . . . . . . . . . . 26 76 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 26 77 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . 27 78 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 27 79 6.1. Normative References . . . . . . . . . . . . . . . . . . . 27 80 6.2. Informative References . . . . . . . . . . . . . . . . . . 27 81 Author's Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29 83 1. Introduction 85 Network Virtualization Overlays (NVO3), such as VXLAN, NVGRE, GENEVE 86 and VXLAN-GPE, enable network virtualization for data center networks 87 environment that assumes an IP-based underlay. 89 YANG [RFC6020] is a data definition language that was introduced to 90 define the contents of a conceptual data store that allows networked 91 devices to be managed using NETCONF [RFC6241]. This document 92 specifies a YANG data model that can be used to configure and manage 93 NVO3 protocols. The model covers the configuration of NVO3 instances 94 as well as their operation states, which are the basic common 95 requirements of the different tunnel encapsulations. Thus it is 96 called "the base model for NVO3" in this document. 98 As the Network Virtualization Overlay evolves, newly defined tunnel 99 encapsulation may require extra configuration. For example, GENEVE 100 may require configuration of TLVs at the NVE. The base model can be 101 augmented to accommodate these new solutions. 103 2. Acronyms and Terminology 105 2.1. Acronyms 107 NVO3: Network Virtualization Overlays 108 VNI: Virtual Network Instance 109 BUM: Broadcast, Unknown Unicast, Multicast traffic 111 BUM: Broadcast, Unknown Unicast, Multicast traffic 113 2.2. Terminology 115 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 116 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 117 document are to be interpreted as described in RFC 2119 [RFC2119]. 119 Familiarity with [RFC7348], [RFC7364], [RFC7365] and [RFC8014] is 120 assumed in this document. 122 3. The YANG Data Model for NVO3 124 The NVO3 base YANG model is divided in three containers. The first 125 container contains writable parameters. The second container contains 126 the writable enablers per VNI for the statistical operational states 127 as well as the status of these enablers. The third container contains 128 the statistical operational states. 130 3.1. The Configuration Parameters 132 3.1.1. NVE ID 134 The 'nves' list contains NVEs under the management. The NVE is 135 identified using the 'srcAddr', which is the underlay IP address of 136 the NVE. 138 3.1.2. Virtual Network Instance 140 A Virtual Network Instance ('VNI') is a specific VN instance on an 141 NVE [RFC7365]. At each NVE, a Tenant System is connect to VNIs 142 through Virtual Access Points (VAP). VAPs can be physical ports or 143 virtual ports identified by the bridge domain Identifier ('bdId'). 144 The mapping between VNI and bdId is managed by the operator. 146 3.1.3. Flags in the Header 148 Flags in the NVO3 header are to be configured. For VxLAN, the I bit 149 of 'flag' MUST be set to 1 while other 7 bits are reserved and MUST 150 be set to zero on transmission and ignored on receipt. For NVGRE, 151 bits in position 0 and 3 MUST be set to zero. The bit in position 2 152 MUST be set to 1. Bits from position 4 through 12 are reserved and 153 MUST be set to zero on transmission and ignored on receipt. 155 3.1.4. BUM Mode 157 An NVE SHOULD support either ingress replication, or multicast proxy, 158 or point to multipoint tunnels on a per-VNI basis. It is possible 159 that both modes be used simultaneously in one NVO3 network by 160 different NVEs. 162 If ingress replication is used, the receiver addresses are listed in 163 'peers'. If multicast proxy is used, the proxy's address is given in 164 "flood-proxy". If the choice is point to multipoint tunnels, the 165 multicast address is given as 'multiAddr'. 167 3.2. Statistics 169 Operators can determine whether a NVE should gather statistic values 170 on a per-VNI base. The enablers are contained in the 'nvo3Info' list 171 as 'statisticsEnable' leaf. 173 If the gathering for a VNI is enabled, the statistical information 174 about the local NVEs, the remote NVEs, the flows and the MAC 175 addresses will be collected by the NVEs in this VNI. 177 3.3. Model Structure 178 module: ietf-nvo3-base 179 +--rw nov3 180 +--rw common 181 | +--rw nvo3-enable? boolean 182 +--rw nves 183 | +--rw nve* [if-name source-interface] 184 | +--rw if-name ifName 185 | +--rw vtep-ip? inet:ipv4-address-no-zone 186 | +--rw ipv6-vtep-ip? inet:ipv6-address-no-zone 187 | +--rw source-interface ifName 188 | +--rw mac-address? yang:mac-address 189 | +--rw bypass-vtep-ip? inet:ipv4-address-no-zone 190 | +--rw vni-members 191 | | +--rw vni-member* [vni-id] 192 | | +--rw vni-id uint32 193 | | +--rw protocol-bgp? protocolType 194 | | +--rw peers 195 | | | +--rw peer* [peer-ip] 196 | | | +--rw peer-ip inet:ipv4-address-no-zone 197 | | | +--rw out-vni-id? uint32 198 | | | +--rw split-horizon-group? string 199 | | +--rw ipv6-peers 200 | | | +--rw ipv6-peer* [ipv6-peer-ip] 201 | | | +--rw ipv6-peer-ip inet:ipv6-address-no-zone 202 | | +--rw flood-proxys 203 | | | +--rw flood-proxy* [peer-ip] 204 | | | +--rw peer-ip inet:ipv4-address-no-zone 205 | | +--rw mcast-group* [mcast-group] 206 | | +--rw mcast-group inet:ipv4-address-no-zone 207 | +--rw vni-map-l2vpns 208 | | +--rw vni-map-l2vpn* [vni-id] 209 | | +--rw l2vpn-id uint32 210 | | +--rw l2vpn-name? string 211 | | +--rw vni-id uint32 212 | | +--rw split-horizon-group? string 213 | +--rw vni-map-l3vpns 214 | | +--rw vni-map-l3vpn* [l3vpn-name] 215 | | +--rw l3vpn-name vrfName 216 | | +--rw vni-id? uint32 217 | +--ro vni-statistics-infos 218 | | +--ro vni-statistic-info* [vni-id] 219 | | +--ro vni-id uint32 220 | | +--ro vni-statistics 221 | | +--ro rx-bits-persec? uint64 222 | | +--ro rx-pkts-persec? uint64 223 | | +--ro tx-bits-persec? uint64 224 | | +--ro tx-pkts-persec? uint64 225 | | +--ro rx-pkts? uint64 226 | | +--ro rx-bytes? uint64 227 | | +--ro tx-pkts? uint64 228 | | +--ro tx-bytes? uint64 229 | | +--ro rx-unicast-pkts? uint64 230 | | +--ro rx-multicast-pkts? uint64 231 | | +--ro rx-broadcast-pkts? uint64 232 | | +--ro drop-unicast-pkts? uint64 233 | | +--ro drop-multicast-pkts? uint64 234 | | +--ro drop-broadcast-pkts? uint64 235 | | +--ro tx-unicast-pkts? uint64 236 | | +--ro tx-multicast-pkts? uint64 237 | | +--ro tx-broadcast-pkts? uint64 238 | +--rw vnipeer-statistics-cfgs 239 | | +--rw vnipeer-satistics-cfg* [vni-id peer-ip] 240 | | +--rw vni-id uint32 241 | | +--rw peer-ip inet:ipv4-address-no-zone 242 | +--ro vnipeer-statistics-infos 243 | | +--ro vnipeer-satistics-info* [vni-id source-ip peer-ip] 244 | | +--ro vni-id uint32 245 | | +--ro source-ip inet:ipv4-address-no-zone 246 | | +--ro peer-ip inet:ipv4-address-no-zone 247 | | +--ro vnipeer_statistics 248 | | +--ro rx-bits-persec? uint64 249 | | +--ro rx-pkts-persec? uint64 250 | | +--ro tx-bits-persec? uint64 251 | | +--ro tx-pkts-persec? uint64 252 | | +--ro rx-pkts? uint64 253 | | +--ro rx-bytes? uint64 254 | | +--ro tx-pkts? uint64 255 | | +--ro tx-bytes? uint64 256 | | +--ro rx-unicast-pkts? uint64 257 | | +--ro rx-multicast-pkts? uint64 258 | | +--ro rx-broadcast-pkts? uint64 259 | | +--ro drop-unicast-pkts? uint64 260 | | +--ro drop-multicast-pkts? uint64 261 | | +--ro drop-broadcast-pkts? uint64 262 | | +--ro tx-unicast-pkts? uint64 263 | | +--ro tx-multicast-pkts? uint64 264 | | +--ro tx-broadcast-pkts? uint64 265 | +--rw ipv6-vnipeer-statistics-cfgs 266 | | +--rw ipv6-vnipeer-statistics-cfg* [vni-id ipv6-source-ip ipv6-peer-ip] 267 | | +--rw vni-id uint32 268 | | +--rw ipv6-source-ip inet:ipv6-address-no-zone 269 | | +--rw ipv6-peer-ip inet:ipv6-address-no-zone 270 | +--ro ipv6-vnipeer-statistics-infos 271 | +--ro ipv6-vnipeer-statistics-info* [vniId ipv6-source-ip ipv6-peer-ip] 272 | +--ro vniId uint32 273 | +--ro ipv6-source-ip inet:ipv6-address-no-zone 274 | +--ro ipv6-peer-ip inet:ipv6-address-no-zone 275 | +--ro ipv6_vnipeer_statistics 276 | +--ro rx-bits-persec? uint64 277 | +--ro rx-pkts-persec? uint64 278 | +--ro tx-bits-persec? uint64 279 | +--ro tx-pkts-persec? uint64 280 | +--ro rx-pkts? uint64 281 | +--ro rx-bytes? uint64 282 | +--ro tx-pkts? uint64 283 | +--ro tx-bytes? uint64 284 | +--ro rx-unicast-pkts? uint64 285 | +--ro rx-multicast-pkts? uint64 286 | +--ro rx-broadcast-pkts? uint64 287 | +--ro drop-unicast-pkts? uint64 288 | +--ro drop-multicast-pkts? uint64 289 | +--ro drop-broadcast-pkts? uint64 290 | +--ro tx-unicast-pkts? uint64 291 | +--ro tx-multicast-pkts? uint64 292 | +--ro tx-broadcast-pkts? uint64 293 +--ro vnipeer-infos 294 | +--ro vnipeer-info* [vni-id source-ip peer-ip] 295 | +--ro vni-id uint32 296 | +--ro source-ip inet:ip-address-no-zone 297 | +--ro peer-ip inet:ip-address-no-zone 298 | +--ro type? peerType 299 | +--ro out-vni-id? uint32 300 +--rw vni-infos 301 | +--rw vni_info* [vni-id] 302 | +--rw vni-id uint32 303 | +--rw statistics-enable? vniStatisticsEnable 304 | +--ro status? vniStatus 305 +--ro tunnel-infos 306 +--ro tunnel-infos* [tunnel-id] 307 +--ro tunnel-id uint32 308 +--ro source-ip? inet:ip-address-no-zone 309 +--ro peer-ip? inet:ip-address-no-zone 310 +--ro status? tunnelStatus 311 +--ro type? tunnelType 312 +--ro up-time? string 313 +--ro vrf-name? vrfName 315 Figure 3.1. The tree structure of YANG module for NVO3 configuration 317 3.4. YANG Module 319 file "ietf-nvo3-base@2019-03-01.yang" 320 module ietf-nvo3-base { 321 namespace "urn:ietf:params:xml:ns:yang:ietf-nvo3-base"; 322 //namespace need to be assigned by IANA 323 prefix "nvo3"; 324 import ietf-inet-types { 325 prefix "inet"; 326 } 327 import ietf-yang-types { 328 prefix yang; 329 } 331 organization "IETF NVO3 Working Group"; 332 contact "zhangmingui@huawei.com 333 sean.gao@huawei.com"; 334 description "nvo3 yang module"; 335 revision "2019-03-01" { 336 description 337 "Initial version"; 338 reference "RFC 7348 RFC 7637"; 339 } 340 typedef vrfName { 341 type string { 342 length "1..31"; 343 } 344 description 345 "vrfName is a string type with length constraints"; 346 } 347 typedef ifName { 348 type string { 349 length "1..63"; 350 } 351 description 352 "ifName is a string type with length constraints"; 353 } 354 typedef vniStatus { 355 type enumeration { 356 enum up { 357 description 358 "The VNI is up"; 359 } 360 enum down { 361 description 362 "The VNI is down"; 363 } 364 } 365 description 366 "The status of a VNI can be either up or down"; 368 } 369 typedef protocolType { 370 type enumeration { 371 enum null { 372 description 373 "No specific protocol is used"; 374 } 375 enum evpn { 376 description 377 "EVPN is used as the control plane protocol"; 378 } 379 } 380 description 381 "The protocol type being used as control plane"; 382 } 383 typedef peerType { 384 type enumeration { 385 enum static { 386 description 387 "Static peer NVE"; 388 } 389 enum dynamic { 390 description 391 "Dynamic peer NVE"; 392 } 393 } 394 description 395 "The type of the peer NVE"; 396 } 397 typedef tunnelStatus { 398 type enumeration { 399 enum up { 400 description 401 "The tunnel is up"; 402 } 403 enum down { 404 description 405 "The tunnel is down"; 406 } 407 } 408 description 409 "The status of a tunnel can be either up or down"; 410 } 411 typedef vniStatisticsEnable { 412 type enumeration { 413 enum enable { 414 description 415 "The statistics is enabled"; 417 } 418 enum disable { 419 description 420 "The statistics is disabled"; 421 } 422 } 423 description 424 "The statistics of a VNI can be enabled or disabled"; 425 } 426 typedef tunnelType { 427 type enumeration { 428 enum dynamic { 429 description 430 "The tunnel is built in a dynamic way"; 431 } 432 enum static { 433 description 434 "The tunnel is built by static configuration"; 435 } 436 } 437 description 438 "The type of a tunnel"; 439 } 440 container nvo3{ 441 description 442 "NVO3 base YANG main part"; 443 container common { 444 description 445 "Common part"; 446 leaf nvo3-enable { 447 type boolean; 448 default "false"; 449 description 450 "Enable/Disable NVO3 featrues"; 451 } 452 } 453 container nves { 454 description 455 "Parameters of NVEs"; 456 list nve { 457 key "if-name source-interface"; 458 description 459 "The list of NVEs"; 460 leaf if-name { 461 type ifName; 462 description 463 "nve interface name"; 464 } 465 leaf vtep-ip { 466 type inet:ipv4-address-no-zone; 467 description 468 "NVO3 tunnel source address"; 469 } 470 leaf ipv6-vtep-ip { 471 type inet:ipv6-address-no-zone; 472 description 473 "ipv6 NVO3 tunnel source address"; 474 } 475 leaf source-interface { 476 type ifName; 477 description 478 "source interface"; 479 } 480 leaf mac-address { 481 type yang:mac-address; 482 description 483 "mac address"; 484 } 485 leaf bypass-vtep-ip { 486 type inet:ipv4-address-no-zone; 487 description 488 "bypass NVO3 tunnel source address"; 489 } 490 container vni-members { 491 description 492 "The VNI members on the NVE"; 493 list vni-member { 494 key "vni-id"; 495 description 496 "nve vni member"; 497 leaf vni-id { 498 type uint32 { 499 range "1..16777215"; 500 } 501 description 502 "Associate NVO3 VNIs (Virtual Network Identifiers) with the NVE interface."; 503 } 504 leaf protocol-bgp { 505 type protocolType; 506 default "null"; 507 description 508 "Enables BGP EVPN with ingress replication for the VNI."; 509 } 510 container peers { 511 description 512 "The peers in this VNI"; 513 list peer { 514 key "peer-ip"; 515 description 516 "A peer NVE in this VNI"; 517 leaf peer-ip { 518 type inet:ipv4-address-no-zone; 519 description 520 "peer ip address"; 521 } 522 leaf out-vni-id { 523 type uint32 { 524 range "1..16777215"; 525 } 526 description 527 "out vni id"; 528 } 529 leaf split-horizon-group { 530 type string { 531 length "1..31"; 532 } 533 description 534 "split group name"; 535 } 536 } 537 } 538 container ipv6-peers { 539 description 540 "The IPv6 peers in this VNI"; 541 list ipv6-peer { 542 key "ipv6-peer-ip"; 543 description 544 "An IPv6 peer NVE in this VNI"; 545 leaf ipv6-peer-ip { 546 type inet:ipv6-address-no-zone; 547 description 548 "peer ipv6 address"; 549 } 550 } 551 } 552 container flood-proxys { 553 description 554 "The flood proxys for this VNI"; 555 list flood-proxy { 556 key "peer-ip"; 557 leaf peer-ip { 558 type inet:ipv4-address-no-zone; 559 description 560 "peer ip address"; 562 } 563 description 564 "List of the flood proxys"; 565 } 566 } 567 list mcast-group { 568 key "mcast-group"; 569 description 570 "The multicast groups in this VNI"; 571 leaf mcast-group { 572 type inet:ipv4-address-no-zone; 573 description 574 "mcast ip address"; 575 } 576 } 577 } 578 } 579 container vni-map-l2vpns { 580 description 581 "Mapping VNIs to L2VPNs"; 582 list vni-map-l2vpn { 583 key "vni-id"; 584 description 585 "L2VPN"; 586 leaf l2vpn-id { 587 type uint32 { 588 range "1..16777215"; 589 } 590 mandatory true; 591 description 592 "l2vpn id"; 593 } 594 leaf l2vpn-name { 595 type string { 596 length "1..31"; 597 } 598 description 599 "l2vpn name"; 600 } 601 leaf vni-id { 602 type uint32 { 603 range "1..16777215"; 604 } 605 description 606 "vni id"; 607 } 608 leaf split-horizon-group { 609 type string { 610 length "1..31"; 611 } 612 description 613 "split group name"; 614 } 615 } 616 } 617 container vni-map-l3vpns { 618 description 619 "Mapping VNIs to L3VPNs"; 620 list vni-map-l3vpn { 621 key "l3vpn-name"; 622 description 623 "L3VPN"; 624 leaf l3vpn-name { 625 type vrfName; 626 description 627 "l3vpn name"; 628 } 629 leaf vni-id { 630 type uint32 { 631 range "1..16777215"; 632 } 633 description 634 "vni id"; 635 } 636 } 637 } 638 container vni-statistics-infos { 639 config false; 640 description 641 "The statistics information for VNIs"; 642 list vni-statistic-info { 643 key "vni-id"; 644 config false; 645 description 646 "The statistics information for a VNI"; 647 leaf vni-id { 648 type uint32 { 649 range "1..16777215"; 650 } 651 config false; 652 description 653 "vni id"; 654 } 655 container vni-statistics { 656 config false; 657 description 658 "The statistics information items for a VNI"; 659 leaf rx-bits-persec { 660 type uint64; 661 config false; 662 description 663 "Received bits per second"; 664 } 665 leaf rx-pkts-persec { 666 type uint64; 667 config false; 668 description 669 "Received packets per second"; 670 } 671 leaf tx-bits-persec { 672 type uint64; 673 config false; 674 description 675 "Transmitted bits per second"; 676 } 677 leaf tx-pkts-persec { 678 type uint64; 679 config false; 680 description 681 "Transmitted packets per second"; 682 } 683 leaf rx-pkts { 684 type uint64; 685 config false; 686 description 687 "Received packets"; 688 } 689 leaf rx-bytes { 690 type uint64; 691 config false; 692 description 693 "Received bytes"; 694 } 695 leaf tx-pkts { 696 type uint64; 697 config false; 698 description 699 "Transmitted packets"; 700 } 701 leaf tx-bytes { 702 type uint64; 703 config false; 704 description 705 "Transmitted bytes"; 707 } 708 leaf rx-unicast-pkts { 709 type uint64; 710 config false; 711 description 712 "Received unicast packets"; 713 } 714 leaf rx-multicast-pkts { 715 type uint64; 716 config false; 717 description 718 "Received multicast packets"; 719 } 720 leaf rx-broadcast-pkts { 721 type uint64; 722 config false; 723 description 724 "Received broadcast packets"; 725 } 726 leaf drop-unicast-pkts { 727 type uint64; 728 config false; 729 description 730 "Dropped unicast packets"; 731 } 732 leaf drop-multicast-pkts { 733 type uint64; 734 config false; 735 description 736 "Dropped multicast packets"; 737 } 738 leaf drop-broadcast-pkts { 739 type uint64; 740 config false; 741 description 742 "Dropped broadcast packets"; 743 } 744 leaf tx-unicast-pkts { 745 type uint64; 746 config false; 747 description 748 "Transmitted unicast packets"; 749 } 750 leaf tx-multicast-pkts { 751 type uint64; 752 config false; 753 description 754 "Transmitted multicast packets"; 756 } 757 leaf tx-broadcast-pkts { 758 type uint64; 759 config false; 760 description 761 "Transmitted broadcast packets"; 762 } 763 } 764 } 765 } 766 container vnipeer-statistics-cfgs { 767 description 768 "Statistics configuration of peers in the VNI."; 769 list vnipeer-satistics-cfg { 770 key "vni-id peer-ip"; 771 description 772 "Statistics configuration of a peer in the VNI."; 773 leaf vni-id { 774 type uint32 { 775 range "1..16777215"; 776 } 777 description 778 "vni id"; 779 } 780 leaf peer-ip { 781 type inet:ipv4-address-no-zone; 782 description 783 "The Ipv4 address of the peer"; 784 } 785 } 786 } 787 container vnipeer-statistics-infos { 788 config false; 789 description 790 "Statistics configuration of the peers in a VNI"; 791 list vnipeer-satistics-info { 792 key "vni-id source-ip peer-ip"; 793 config false; 794 description 795 "Statistics information of a peer in the VNI."; 796 leaf vni-id { 797 type uint32 { 798 range "0..16777215"; 799 } 800 config false; 801 description 802 "vni id"; 803 } 804 leaf source-ip { 805 type inet:ipv4-address-no-zone; 806 config false; 807 description 808 "Source address"; 809 } 810 leaf peer-ip { 811 type inet:ipv4-address-no-zone; 812 config false; 813 description 814 "Address of the peer"; 815 } 816 container vnipeer_statistics { 817 config false; 818 description 819 "Statistics information items of a peer in the VNI"; 820 leaf rx-bits-persec { 821 type uint64; 822 config false; 823 description 824 "Received bits per second"; 825 } 826 leaf rx-pkts-persec { 827 type uint64; 828 config false; 829 description 830 "Received packets per second"; 831 } 832 leaf tx-bits-persec { 833 type uint64; 834 config false; 835 description 836 "Transmitted bits per second"; 837 } 838 leaf tx-pkts-persec { 839 type uint64; 840 config false; 841 description 842 "Transmitted packets per second"; 843 } 844 leaf rx-pkts { 845 type uint64; 846 config false; 847 description 848 "Received packets"; 849 } 850 leaf rx-bytes { 851 type uint64; 852 config false; 853 description 854 "Received bytes"; 855 } 856 leaf tx-pkts { 857 type uint64; 858 config false; 859 description 860 "Transmitted packets"; 861 } 862 leaf tx-bytes { 863 type uint64; 864 config false; 865 description 866 "Transmitted bytes"; 867 } 868 leaf rx-unicast-pkts { 869 type uint64; 870 config false; 871 description 872 "Received unicast packets"; 873 } 874 leaf rx-multicast-pkts { 875 type uint64; 876 config false; 877 description 878 "Received multicast packets"; 879 } 880 leaf rx-broadcast-pkts { 881 type uint64; 882 config false; 883 description 884 "Received broadcast packets"; 885 } 886 leaf drop-unicast-pkts { 887 type uint64; 888 config false; 889 description 890 "Dropped unicast packets"; 891 } 892 leaf drop-multicast-pkts { 893 type uint64; 894 config false; 895 description 896 "Dropped multicast packets"; 897 } 898 leaf drop-broadcast-pkts { 899 type uint64; 900 config false; 901 description 902 "Dropped broadcast packets"; 903 } 904 leaf tx-unicast-pkts { 905 type uint64; 906 config false; 907 description 908 "Transmitted unicast packets"; 909 } 910 leaf tx-multicast-pkts { 911 type uint64; 912 config false; 913 description 914 "Transmitted multicast packets"; 915 } 916 leaf tx-broadcast-pkts { 917 type uint64; 918 config false; 919 description 920 "Transmitted broadcast packets"; 921 } 922 } 923 } 924 } 925 container ipv6-vnipeer-statistics-cfgs { 926 description 927 "Statistics configuration of IPv6 peers in the VNI."; 928 list ipv6-vnipeer-statistics-cfg { 929 key "vni-id ipv6-source-ip ipv6-peer-ip"; 930 description 931 "Statistics configuration of an IPv6 peer in the VNI."; 932 leaf vni-id { 933 type uint32 { 934 range "1..16777215"; 935 } 936 description 937 "vni id"; 938 } 939 leaf ipv6-source-ip { 940 type inet:ipv6-address-no-zone; 941 description 942 "Source IPv6 address"; 943 } 944 leaf ipv6-peer-ip { 945 type inet:ipv6-address-no-zone; 946 description 947 "IPv6 address of the peer"; 949 } 950 } 951 } 952 container ipv6-vnipeer-statistics-infos { 953 config false; 954 description 955 "Statistics information of IPv6 peers in the VNI."; 956 list ipv6-vnipeer-statistics-info { 957 key "vniId ipv6-source-ip ipv6-peer-ip"; 958 config false; 959 description 960 "Statistics information of an IPv6 peer in the VNI."; 961 leaf vniId { 962 type uint32 { 963 range "1..16777215"; 964 } 965 config false; 966 description 967 "vni id"; 968 } 969 leaf ipv6-source-ip { 970 type inet:ipv6-address-no-zone; 971 config false; 972 description 973 "Source IPv6 address"; 974 } 975 leaf ipv6-peer-ip { 976 type inet:ipv6-address-no-zone; 977 config false; 978 description 979 "IPv6 address of the peer"; 980 } 981 container ipv6_vnipeer_statistics { 982 config false; 983 description 984 "Statistics information items of an IPv6 peer in the VNI."; 985 leaf rx-bits-persec { 986 type uint64; 987 config false; 988 description 989 "Received bits per second"; 990 } 991 leaf rx-pkts-persec { 992 type uint64; 993 config false; 994 description 995 "Received packets per second"; 996 } 997 leaf tx-bits-persec { 998 type uint64; 999 config false; 1000 description 1001 "Transmitted bits per second"; 1002 } 1003 leaf tx-pkts-persec { 1004 type uint64; 1005 config false; 1006 description 1007 "Transmitted packets per second"; 1008 } 1009 leaf rx-pkts { 1010 type uint64; 1011 config false; 1012 description 1013 "Received packets"; 1014 } 1015 leaf rx-bytes { 1016 type uint64; 1017 config false; 1018 description 1019 "Received bytes"; 1020 } 1021 leaf tx-pkts { 1022 type uint64; 1023 config false; 1024 description 1025 "Transmitted packets"; 1026 } 1027 leaf tx-bytes { 1028 type uint64; 1029 config false; 1030 description 1031 "Transmitted bytes"; 1032 } 1033 leaf rx-unicast-pkts { 1034 type uint64; 1035 config false; 1036 description 1037 "Received unicast packets"; 1038 } 1039 leaf rx-multicast-pkts { 1040 type uint64; 1041 config false; 1042 description 1043 "Received multicast packets"; 1044 } 1045 leaf rx-broadcast-pkts { 1046 type uint64; 1047 config false; 1048 description 1049 "Received broadcast packets"; 1050 } 1051 leaf drop-unicast-pkts { 1052 type uint64; 1053 config false; 1054 description 1055 "Dropped unicast packets"; 1056 } 1057 leaf drop-multicast-pkts { 1058 type uint64; 1059 config false; 1060 description 1061 "Dropped multicast packets"; 1062 } 1063 leaf drop-broadcast-pkts { 1064 type uint64; 1065 config false; 1066 description 1067 "Dropped broadcast packets"; 1068 } 1069 leaf tx-unicast-pkts { 1070 type uint64; 1071 config false; 1072 description 1073 "Transmitted unicast packets"; 1074 } 1075 leaf tx-multicast-pkts { 1076 type uint64; 1077 config false; 1078 description 1079 "Transmitted multicast packets"; 1080 } 1081 leaf tx-broadcast-pkts { 1082 type uint64; 1083 config false; 1084 description 1085 "Transmitted broadcast packets"; 1086 } 1087 } 1088 } 1089 } 1090 } 1091 } 1092 container vnipeer-infos { 1093 config false; 1094 description 1095 "Information of the peers"; 1096 list vnipeer-info { 1097 key "vni-id source-ip peer-ip"; 1098 config false; 1099 description 1100 "Information of a peer"; 1101 leaf vni-id { 1102 type uint32 { 1103 range "1..16777215"; 1104 } 1105 config false; 1106 description 1107 "vni-id"; 1108 } 1109 leaf source-ip { 1110 type inet:ip-address-no-zone; 1111 config false; 1112 description 1113 "source ip"; 1114 } 1115 leaf peer-ip { 1116 type inet:ip-address-no-zone; 1117 config false; 1118 description 1119 "peer ip"; 1120 } 1121 leaf type { 1122 type peerType; 1123 config false; 1124 description 1125 "peer type"; 1126 } 1127 leaf out-vni-id { 1128 type uint32 { 1129 range "1..16777215"; 1130 } 1131 config false; 1132 description 1133 "out vni id"; 1134 } 1135 } 1136 } 1137 container vni-infos { 1138 description 1139 "Information of the VNIs"; 1140 list vni_info { 1141 key "vni-id"; 1142 description 1143 "Information of a VNI"; 1144 leaf vni-id { 1145 type uint32 { 1146 range "1..16777215"; 1147 } 1148 description 1149 "vni id"; 1150 } 1151 leaf statistics-enable { 1152 type vniStatisticsEnable; 1153 default "disable"; 1154 description 1155 "Statistics is enabled or not"; 1156 } 1157 leaf status { 1158 type vniStatus; 1159 config false; 1160 description 1161 "The status of the VNI"; 1162 } 1163 } 1164 } 1165 container tunnel-infos { 1166 config false; 1167 description 1168 "Information of tunnels"; 1169 list tunnel-infos { 1170 key "tunnel-id"; 1171 config false; 1172 description 1173 "Information of a tunnel"; 1174 leaf tunnel-id { 1175 type uint32 { 1176 range "1..4294967295"; 1177 } 1178 config false; 1179 description 1180 "tunnel id"; 1181 } 1182 leaf source-ip { 1183 type inet:ip-address-no-zone; 1184 config false; 1185 description 1186 "source"; 1187 } 1188 leaf peer-ip { 1189 type inet:ip-address-no-zone; 1190 config false; 1191 description 1192 "peer ip"; 1193 } 1194 leaf status { 1195 type tunnelStatus; 1196 config false; 1197 description 1198 "tunnel status"; 1199 } 1200 leaf type { 1201 type tunnelType; 1202 config false; 1203 description 1204 "tunnel type"; 1205 } 1206 leaf up-time { 1207 type string { 1208 length "1..10"; 1209 } 1210 config false; 1211 description 1212 "tunnel up time"; 1213 } 1214 leaf vrf-name { 1215 type vrfName; 1216 default "_public_"; 1217 config false; 1218 description 1219 "vrf"; 1220 } 1221 } 1222 } 1223 } 1224 } 1225 1227 4. Security Considerations 1229 This document raises no new security issues. 1231 5. IANA Considerations 1233 The namespace URI defined in Section 3.3 need be registered in the 1234 IETF XML registry [RFC3688]. 1236 This document need to register the 'ietf-nvo3-base' YANG module in 1237 the YANG Module Names registry [RFC6020]. 1239 Acknowledgements 1241 Authors would like to thank the comments and suggestions from Tao 1242 Han, Weilian Jiang. 1244 6. References 1246 6.1. Normative References 1248 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1249 Requirement Levels", BCP 14, RFC 2119, March 1997. 1251 [RFC7364] T. Narten, E. Gray, et al, "Problem Statement: Overlays for 1252 Network Virtualization", draft-ietf-nvo3-overlay-problem- 1253 statement, working in progress. 1255 [RFC7365] Marc Lasserre, Florin Balus, et al, "Framework for DC 1256 Network Virtualization", draft-ietf-nvo3-framework, working 1257 in progress. 1259 [RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger, 1260 L., Sridhar, T., Bursell, M., and C. Wright, "Virtual 1261 eXtensible Local Area Network (VXLAN): A Framework for 1262 Overlaying Virtualized Layer 2 Networks over Layer 3 1263 Networks", RFC 7348, August 2014. 1265 [I-D.ietf-nvo3-geneve] Gross, J., Ganga, I., and T. Sridhar, "Geneve: 1266 Generic Network Virtualization Encapsulation", draft-ietf- 1267 nvo3-geneve-10 (work in progress), March 2019. 1269 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1270 January 2004. 1272 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1273 the Network Configuration Protocol (NETCONF)", RFC 6020, 1274 October 2010. 1276 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1277 and A. Bierman, Ed., "Network Configuration Protocol 1278 (NETCONF)", RFC 6241, June 2011. 1280 6.2. Informative References 1281 [RFC7637] M. Sridharan, A. Greenberg, et al, "NVGRE: Network 1282 Virtualization using Generic Routing Encapsulation", 1283 RFC7637, September 2015. 1284 [I-D.ietf-nvo3-vxlan-gpe] Maino, F., Kreeger, L., and U. Elzur, 1285 "Generic Protocol Extension for VXLAN", draft-ietf-nvo3- 1286 vxlan-gpe-06 (work in progress), April 2018. 1287 [RFC8014] D. Black, J. Hudson, L. Kreeger, M. Lasserre, T. Narten, An 1288 Architecture for Data-Center Network Virtualization over 1289 Layer 3 (NVO3), RFC8014, December 2016. 1290 [I-D.ietf-nvo3-encap-02] Boutros, S., "NVO3 Encapsulation 1291 Considerations", draft-ietf-nvo3-encap-02 (work in 1292 progress), September, 2018. 1294 Author's Addresses 1296 Mingui Zhang 1297 Huawei Technologies 1298 No. 156 Beiqing Rd. Haidian District, 1299 Beijing 100095 1300 P.R. China 1302 EMail: zhangmingui@huawei.com 1304 Yuan Gao 1305 Huawei Technologies 1306 No. 101 Nanjing Rd. Yuhua District, 1307 Nanjing 210012 1308 P.R. China 1309 EMail: sean.gao@huawei.com 1311 Haibo Wang 1312 Huawei Technologies 1313 No. 156 Beiqing Rd. Haidian District, 1314 Beijing 100095 1315 P.R. China 1316 EMail: rainsword.wang@huawei.com 1318 Bing Liu 1319 Huawei Technologies 1320 No. 156 Beiqing Rd. Haidian District, 1321 Beijing 100095 1322 P.R. China 1323 EMail: remy.liubing@huawei.com 1325 Fu Qiao 1326 China Mobile 1328 EMail: fuqiao@chinamobile.com