A model for Multicast Virtual Private Network (MVPN).
Version: 2021-08-05
module huawei-mvpn { yang-version 1; namespace "urn:huawei:yang:huawei-mvpn"; prefix mvpn; import huawei-ifm { prefix ifm; } import huawei-network-instance { prefix ni; } import huawei-l3vpn { prefix l3vpn; } import huawei-pub-type { prefix pub-type; } import huawei-routing-policy { prefix rtp; } import huawei-l3-multicast { prefix l3mc; } import ietf-inet-types { prefix inet; } import huawei-extension { prefix ext; } import huawei-acl { prefix acl; } import huawei-mpls { prefix mpls; } import huawei-mpls-te { prefix mpls-te; } import huawei-bier { prefix bier; } import huawei-srv6 { prefix srv6; } 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 "A model for Multicast Virtual Private Network (MVPN)."; revision "2021-08-05" { description "Add signal-format leaf fot Src-dt. Add multicast-sid case for src-dt-sid. Add node rosen-global. Delete some nodes that not supported. Modify the design for switch-group."; reference "Huawei private."; } revision "2021-07-25" { description "Modify some restriction for bier-entropy-mode. The when condition of bier-entropy-mode is deleted."; reference "Huawei private."; } revision "2021-03-30" { description "Nodes related to NG MVPN over BIER6 are added. Modify the xpath of leafref for ad-import-policy-name. Modify the design of ipmsi-infos."; reference "Huawei private."; } revision "2021-01-16" { description "Added configurable nodes related to IPv6 NG MVPN FRR. A must clause was deleted for is-c-multicast-frr. Modify the type of frr-acl-name."; reference "Huawei private."; } revision "2020-12-17" { description "Modify some restriction for NG MVPN S-PMSI tunnel. The value range of spmsi-tnl-detect-delay is modified."; reference "Huawei private."; } revision "2020-02-21" { description "Modify bier leaf node type to leafref. Add units for some nodes. Modify some restriction for bier node. Modify description. Add dynamic default value for per-item-tunnel-limit."; reference "Huawei private."; } revision "2020-02-04" { description "Change rsvp-te-p2mp-template leaf node type to leafref."; reference "Huawei private."; } revision "2019-12-18" { description "Change relative node for bier tunnel."; reference "Huawei private."; } revision "2019-11-20" { description "Change container information to ipmsi-infos."; reference "Huawei private."; } revision "2019-05-06" { description "Initial revision."; reference "Huawei private."; } ext:task-name "mvpn"; typedef addr-family-type { type enumeration { enum "ipv4-unicast" { value 1; description "IPv4 address family."; } enum "ipv6-unicast" { value 2; description "IPv6 address family."; } } description "Address family."; } typedef signaling-mode { type enumeration { enum "invalid" { value 0; description "Invalid signaling mode."; } enum "BGP" { value 2; description "BGP signaling mode."; } } description "MVPN signal type."; } typedef tunnel-mode { type enumeration { enum "p2mp-te" { value 3; description "P2MP TE tunnel."; } enum "p2mp-mldp" { value 4; description "P2MP mLDP tunnel."; } enum "bier" { value 7; description "BIER tunnel."; } enum "bier-ipv6" { value 8; description "BIER IPv6 tunnel."; } } description "MVPN tunnel type."; } typedef src-dt-address-type { type enumeration { enum "srv6-locator" { value 1; description "Src-dt addresses using SRv6 locator."; } } description "The src-dt addresses type."; } typedef src-dt-signal-format { type enumeration { enum "msid" { value 1; description "Multicast service identifier."; } } description "Src-dt signal format."; } typedef auto-discovery-type { type enumeration { enum "none" { value 0; description "The A-D mode is disabled."; } enum "MDT" { value 1; description "The A-D mode is Multicast Distribution Tree (MDT)."; } } description "Auto-Discovery Mode."; } typedef vpn-target-type { type enumeration { enum "export-extcommunity" { value 2; description "Extended community attribute carried in routes sent from an outbound interface to the destination VPN."; } enum "import-extcommunity" { value 3; description "Extended community attribute used to accept routes carrying the specified extended community attribute."; } } description "VPN target type."; } typedef rpt-spt-mode { type enumeration { enum "none" { value 0; description "PIM SM shared tree is not supported."; } enum "spt-mode" { value 1; description "SPT-only mode."; } enum "rpt-spt-mode" { value 2; description "RPT-SPT mode."; } } description "The mode of PIM SM shared tree."; } typedef umh-type { type enumeration { enum "unicast" { value 0; description "Unicast route preferred."; } enum "highest-ip" { value 1; description "Highest IP address."; } } description "Select upstream multicast hop."; } typedef bier-entropy-mode { type enumeration { enum "sg-hash" { value 1; description "SG hash entropy mode of MVPN BIER."; } } description "MVPN BIER entropy mode."; } typedef bit-string-length { type enumeration { enum "64-bit" { value 1; description "64-bit BitString."; } enum "128-bit" { value 2; description "128-bit BitString."; } enum "256-bit" { value 3; description "256-bit BitString."; } } description "Enumerated values of the BitString length."; } container mvpn { description "Configure global MVPN configurations."; container globals { description "List of global MVPN configuration."; list global { key "address-family"; description "Configure global MVPN."; leaf address-family { type addr-family-type; description "IPv4 or IPv6 address family."; } leaf mvpn-id { type inet:ip-address-no-zone; mandatory true; description "Specify MVPN ID, IP address mode."; } leaf enable-inter-area-segmented { when "../address-family='ipv4-unicast'"; type boolean; default "false"; description "Enable/disable segmented tunnels globally on the ABR."; } leaf apply-explicit-null-label { when "../address-family='ipv6-unicast'"; type boolean; default "false"; description "Enable/disable IPv6 explicit null to apply label."; } } // list global } // container globals container ipv6-underlay-globals { description "List of IPv6 underlay global MVPN configuration."; list ipv6-underlay-global { key "address-family"; description "Configure IPv6 underlay global MVPN."; leaf address-family { type addr-family-type; description "IPv4 or IPv6 address family."; } leaf mvpn-id { type inet:ipv6-address-no-zone; mandatory true; description "Specify IPv6 underlay MVPN ID, IPv6 address mode."; } } // list ipv6-underlay-global } // container ipv6-underlay-globals container rosen-global { description "Configure global Rosen MVPN configurations."; container source-interface { when "/ni:network-instance/ni:instances/ni:instance[ni:name='_public_']/l3mc:multicast/l3mc:ipv4"; description "Configure default interface whose IP address is used as the default IP address of an MTI."; leaf source-interface-name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:vrf-name='_public_'"; description "Name of the public network interface whose IP address is used as the default IP address of an MTI."; } } // container source-interface } // container rosen-global } // container mvpn } // module huawei-mvpn
© 2023 YumaWorks, Inc. All rights reserved.