Management for data center network virtualization over Layer 3.
Version: 2021-08-12
module huawei-nvo3 { yang-version 1; namespace "urn:huawei:yang:huawei-nvo3"; prefix nvo3; import huawei-bd { prefix bd; } import huawei-ifm { prefix ifm; } import huawei-network-instance { prefix ni; } import huawei-pub-type { prefix pub-type; } import ietf-inet-types { prefix inet; } import huawei-extension { prefix ext; } import huawei-evpl { prefix evpl; } organization "Huawei Technologies Co., Ltd."; contact "Huawei Industrial Base Bantian, Longgang Shenzhen 518129 People's Republic of China Website: http://www.huawei.com Email: support@huawei.com"; description "Management for data center network virtualization over Layer 3."; revision "2021-08-12" { description "Modify the description of leaf source-vtep-ip."; reference "Huawei private."; } revision "2020-03-06" { description "The modifications in the schema file are synchronized to the YANG file."; reference "Huawei private."; } revision "2019-03-01" { description "Initial revision."; reference "Huawei private."; } ext:task-name "nvo3"; typedef vni-state { type enumeration { enum "down" { value 0; description "The state is down."; } enum "up" { value 1; description "The state is up."; } } description "The state for VNI."; } typedef tunnel-type { type enumeration { enum "dynamic" { value 0; description "Learning via protocols."; } enum "static" { value 1; description "Created by users."; } } description "VXLAN tunnel type."; } typedef tunnel-mode { type enumeration { enum "default-mode" { value 0; description "Default mode."; } enum "cu-mode" { value 1; description "Control-User separation mode."; } } description "VXLAN tunnel mode."; } typedef peer-learning-type { type enumeration { enum "peer" { value 1; description "Learning peers for multicast via BGP."; } } description "The type of peers Learning via BGP."; } typedef nqa-state-type { type enumeration { enum "unknown" { value 0; description "The NQA state is unknown."; } enum "down" { value 1; description "The NQA state is down."; } enum "up" { value 2; description "The NQA state is up."; } } description "The NQA state."; } typedef preference-type { type enumeration { enum "primary" { value 1; description "Primary enable."; } enum "secondary" { value 2; description "Secondary enable."; } enum "bypass" { value 4; description "Bypass enable."; } } description "Preference type."; } typedef ipv6-preference-type { type enumeration { enum "primary" { value 1; description "Primary enable."; } enum "secondary" { value 2; description "Secondary enable."; } } description "Preference type."; } container nvo3 { description "Management of NVO3."; container vni-instances { description "List of virtual extensible local area network."; list vni-instance { key "vni source-nve"; description "Configure the information of virtual extensible local area network."; leaf vni { type uint32 { range "1..16777215"; } description "VXLAN network identifier."; } leaf source-nve { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Nve'"; description "The name of interface NVE, as VXLAN tunnel source point."; } leaf state { type vni-state; config false; description "The state of the VNI. When the VTEP address in the VNI is reachable, the state is up, the opposite is down."; } leaf protocol-bgp { type peer-learning-type; description "Learning VTEPs via BGP for communication in a same VNI."; } container static-peers { description "List of VTEPs created by users for multicast in a same VNI."; list static-peer { key "address"; description "Configure VTEP by users for multicast."; leaf address { type inet:ipv4-address-no-zone; description "The address of VTEP."; } } // list static-peer } // container static-peers container static-ipv6-peers { description "List of VTEPs created by users for multicast in a same VNI."; list static-ipv6-peer { key "address"; description "Configure VTEP by users for multicast."; leaf address { type inet:ipv6-address-no-zone; description "The IPv6 address of VTEP."; } } // list static-ipv6-peer } // container static-ipv6-peers container static-evpl-peers { description "List of VTEPs created by users for ethernet virtual private line in the same VNI."; list static-evpl-peer { key "address"; max-elements 1; description "Configure VTEP by users for ethernet virtual private line."; leaf address { type inet:ipv4-address-no-zone; must "(not(../../../static-peers/static-peer) and not(../../../protocol-bgp)) or not(../address)"; description "The address of VTEP."; } leaf preference { ext:operation-exclude "update|delete"; type preference-type; default "primary"; description "The preference of VXLAN tunnel."; } } // list static-evpl-peer } // container static-evpl-peers container static-evpl-ipv6-peers { description "List of IPv6 VTEPs created by users for ethernet virtual private line in the same VNI."; list static-evpl-ipv6-peer { key "address"; max-elements 1; description "Configure IPv6 VTEP by users for ethernet virtual private line."; leaf address { type inet:ipv6-address-no-zone; description "The IPv6 address of VTEP."; } leaf preference { ext:operation-exclude "update|delete"; type ipv6-preference-type; default "primary"; description "The preference of VXLAN6 tunnel."; } } // list static-evpl-ipv6-peer } // container static-evpl-ipv6-peers } // list vni-instance } // container vni-instances container vni-labels { description "List of VXLAN network identifiers."; list vni-label { key "vni"; description "Configure VXLAN network identifier."; leaf vni { type uint32 { range "1..16777215"; } description "VXLAN network identifier."; } container statistics { description "Configure VNI traffic statistics."; leaf enable { type boolean; default "false"; description "Enable/disable VNI traffic statistics."; } container collections { when "../enable='true'"; config false; description "Statistics of VNI traffic statistics collection."; leaf send-bits-rate { type uint64; units "bit/s"; config false; description "Number of send bits per second."; } leaf send-pkts-rate { type uint64; units "pps"; config false; description "Number of send packets per second."; } leaf send-unicast-pkts { type uint64; units "packet"; config false; description "Number of send unicast packets."; } leaf send-multicast-pkts { type uint64; units "packet"; config false; description "Number of send multicast packets."; } leaf send-broadcast-pkts { type uint64; units "packet"; config false; description "Number of send broadcast packets."; } leaf send-total-bytes { type uint64; units "Byte"; config false; description "Total number of send bytes."; } leaf send-total-pkts { type uint64; units "packet"; config false; description "Total number of send packets."; } leaf receive-bits-rate { type uint64; units "bit/s"; config false; description "Number of receive bits per second."; } leaf receive-pkts-rate { type uint64; units "pps"; config false; description "Number of receive packets per second."; } leaf receive-unicast-pkts { type uint64; units "packet"; config false; description "Number of receive unicast packets."; } leaf receive-multicast-pkts { type uint64; units "packet"; config false; description "Number of receive multicast packets."; } leaf receive-broadcast-pkts { type uint64; units "packet"; config false; description "Number of receive broadcast packets."; } leaf receive-total-bytes { type uint64; units "Byte"; config false; description "Total number of receive bytes."; } leaf receive-total-pkts { type uint64; units "packet"; config false; description "Total number of receive packets."; } leaf drop-unicast-pkts { type uint64; units "packet"; config false; description "Number of discarded unicast packets."; } leaf drop-multicast-pkts { type uint64; units "packet"; config false; description "Number of discarded multicast packets."; } leaf drop-broadcast-pkts { type uint64; units "packet"; config false; description "Number of discarded broadcast packets."; } } // container collections } // container statistics container qos-profile-applys { description "List of configure QoS profile application."; list qos-profile-apply { key "direction"; description "Configure QoS profile application."; leaf direction { type qos:qos-direction-type; description "Direction."; } leaf name { ext:operation-exclude "update" { description "After the configuration is created, the node cannot be modified."; } type leafref { path "/qos:qos/qos:queue-scheduler-template/qos:profiles/qos:profile/qos:name"; } must "/qos:qos/qos:queue-scheduler-template/qos:profiles/qos:profile[qos:name=current()]/qos:mode='normal'"; mandatory true; description "QoS profile name."; } } // list qos-profile-apply } // container qos-profile-applys } // list vni-label } // container vni-labels container vteps { config false; description "Statistics of VTEPs."; container peers { config false; description "List of VTEPs for multicast in a same VNI."; list peer { key "vni source destination"; config false; description "Operational data of VTEPs for multicast with the same VNI."; leaf vni { type uint32 { range "1..16777215"; } config false; description "VXLAN network identifier."; } leaf source { type inet:ip-address-no-zone; config false; description "The address of VXLAN tunnel source point."; } leaf destination { type inet:ip-address-no-zone; config false; description "The address of VTEP."; } leaf type { type tunnel-type; config false; description "The type of VXLAN tunnel."; } leaf out-vni { type uint32 { range "1..16777215"; } config false; description "VXLAN network identifier for mapping."; } } // list peer } // container peers container cu-peers { config false; description "List of VNI Peers Table of CU Mode."; list cu-peer { key "vni source destination"; description "Operational data of VNI Peer Table of CU Mode."; leaf vni { type uint32 { range "1..16777215"; } description "The identification of VXLAN tunnel."; } leaf source { type inet:ip-address-no-zone; description "The address of VXLAN tunnel source point."; } leaf destination { type inet:ip-address-no-zone; description "The address of VTEP."; } leaf type { type tunnel-type; description "VXLAN tunnel type."; } leaf out-vni { type uint32 { range "1..16777215"; } description "VXLAN network identifier for mapping."; } leaf nqa-state { type nqa-state-type; description "The NQA state:unknown, down or up."; } leaf packet-loss-ratio { type uint8 { range "0..100"; } units "%"; description "The NQA packet loss ratio."; } } // list cu-peer } // container cu-peers container evpl-peers { config false; description "List of VTEPs for ethernet virtual private line in a same VNI."; list evpl-peer { key "id"; description "Operational data of VTEPs for Ethernet virtual private lines with the same VNI."; leaf id { type uint32 { range "1..16777215"; } description "The identification of the EVPL instance."; } leaf vni { type uint32 { range "1..16777215"; } description "Local VNI for communication."; } leaf source { type inet:ip-address-no-zone; description "The address of VXLAN tunnel source point."; } leaf ipv6-source { type inet:ipv6-address-no-zone; description "The IPv6 address of VXLAN tunnel source point."; } leaf peer { type inet:ip-address-no-zone; description "The address of primary VTEP."; } leaf out-vni { type uint32 { range "1..16777215"; } description "Primary VNI for mapping."; } leaf backup-peer { type inet:ip-address-no-zone; description "The address of backup VTEP."; } leaf backup-out-vni { type uint32 { range "1..16777215"; } description "Backup VNI for mapping."; } leaf bypass-peer { type inet:ip-address-no-zone; description "The address of bypass VTEP."; } leaf bypass-out-vni { type uint32 { range "1..16777215"; } description "Bypass VNI for mapping."; } } // list evpl-peer } // container evpl-peers } // container vteps container global-attribute { description "Configure global attribute of VXLAN."; leaf exact-sub-enable { type boolean; default "false"; description "Enable/disable exact route subscribe."; } } // container global-attribute container tunnels { config false; description "List of VXLAN tunnel information."; list tunnel { key "id"; config false; description "Statistics of VXLAN tunnels."; leaf id { type uint32 { range "1..4294967295"; } config false; description "The identification of VXLAN tunnel."; } leaf source { ext:support-filter "true"; type inet:ip-address-no-zone; config false; description "The address of VXLAN tunnel source point."; } leaf destination { ext:support-filter "true"; type inet:ip-address-no-zone; config false; description "The address of VTEP."; } leaf mode { ext:support-filter "true"; type tunnel-mode; config false; description "VXLAN tunnel mode."; } leaf state { type vni-state; config false; description "VXLAN tunnel state. When the address of VTEP is reachable, the state is up, otherwise is down."; } leaf type { type tunnel-type; config false; description "VXLAN tunnel type."; } leaf up-time { type string { length "1..10"; } config false; description "The continuous time as VXLAN tunnel is reachable."; } leaf vpn-name { ext:support-filter "true"; type string { length "1..31"; } description "VPN instance name."; } } // list tunnel } // container tunnels } // container nvo3 } // module huawei-nvo3
© 2023 YumaWorks, Inc. All rights reserved.