huawei-mvpn

A model for Multicast Virtual Private Network (MVPN).

  • Version: 2021-08-05

    huawei-mvpn@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.