huawei-multicast-bas

Multicast for BRAS access.

  • Version: 2020-03-16

    huawei-multicast-bas@2020-03-16


    
      module huawei-multicast-bas {
    
        yang-version 1;
    
        namespace
          "urn:huawei:yang:huawei-multicast-bas";
    
        prefix mcbas;
    
        import huawei-ifm {
          prefix ifm;
        }
        import huawei-extension {
          prefix ext;
        }
        import huawei-bras-basic-access {
          prefix bras-basic-access;
        }
        import huawei-network-instance {
          prefix ni;
        }
        import huawei-l3vpn {
          prefix l3vpn;
        }
    
        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 "Multicast for BRAS access.";
    
        revision "2020-03-16" {
          description
            "Modify addr-family-type enumeration name.";
          reference
            "Huawei private.";
    
        }
    
        revision "2019-03-30" {
          description "Init revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "mcast-base";
    
        typedef addr-family-type {
          type enumeration {
            enum "ipv4-unicast" {
              value 1;
              description "IPv4 unicast.";
            }
            enum "ipv6-unicast" {
              value 2;
              description "IPv6 unicast.";
            }
          }
          description "Address family.";
        }
    
        augment /ifm:ifm/ifm:interfaces/ifm:interface {
          description
            "Add multicast BAS configuration to the ifm module.";
          container multicast-bas {
            must
              "(./mcbas:user-aggregation-pevlan and ./mcbas:user-aggregation-cevlan) or (not(./mcbas:user-aggregation-pevlan) and not(./mcbas:user-aggregation-cevlan))";
            description
              "Configure multicast BAS.";
            choice vlan-type {
              description
                "Specify the VLAN-type of multicast BAS user-aggregation.";
              case qinq {
                description "QinQ type.";
                leaf user-aggregation-pevlan {
                  type uint32 {
                    range "1..4094";
                  }
                  description
                    "QINQ PE ID in an outer VLAN tag.";
                }
    
                leaf user-aggregation-cevlan {
                  type uint32 {
                    range "1..4094";
                  }
                  description
                    "QINQ CE ID in an inner VLAN tag.";
                }
              }  // case qinq
    
              case vlan {
                description "VLAN type.";
                leaf user-aggregation-vlan {
                  type uint32 {
                    range "1..4094";
                  }
                  description
                    "VLAN ID in an outer VLAN tag.";
                }
              }  // case vlan
            }  // choice vlan-type
    
            leaf copy-by-session-enable {
              when
                "../../bras-basic-access:bas/bras-basic-access:layer2-subscriber or ../../bras-basic-access:bas/bras-basic-access:layer2-leaseline or ../../bras-basic-access:bas/bras-basic-access:layer3-subscriber or ../../bras-basic-access:bas/bras-basic-access:layer3-leaseline or ../../bras-basic-access:bas/bras-basic-access:l2vpn-leaseline";
              type boolean;
              default "false";
              description
                "Enable/disable multicast copy by-session.";
            }
    
            leaf copy-by-vlan-enable {
              when
                "../../bras-basic-access:bas/bras-basic-access:layer2-subscriber or ../../bras-basic-access:bas/bras-basic-access:layer2-leaseline or ../../bras-basic-access:bas/bras-basic-access:layer3-subscriber or ../../bras-basic-access:bas/bras-basic-access:layer3-leaseline or ../../bras-basic-access:bas/bras-basic-access:l2vpn-leaseline";
              type boolean;
              default "false";
              description
                "Enable/disable multicast copy by-VLAN.";
            }
    
            leaf authorization-enable {
              type boolean;
              default "false";
              description
                "Enable/disable authorization.";
            }
    
            leaf igmp-query-auto-send-enable {
              when
                "../../bras-basic-access:bas/bras-basic-access:layer2-subscriber or ../../bras-basic-access:bas/bras-basic-access:layer2-leaseline or ../../bras-basic-access:bas/bras-basic-access:layer3-subscriber or ../../bras-basic-access:bas/bras-basic-access:layer3-leaseline or ../../bras-basic-access:bas/bras-basic-access:l2vpn-leaseline";
              type boolean;
              default "false";
              description
                "Enable/disable IGMP to send query message automatically.";
            }
    
            container binding-vpn-instances {
              description
                "List of multicast binding vpn-instance configurations.";
              list binding-vpn-instance {
                key "name address-family";
                description
                  "Configure multicast binding vpn-instance.";
                leaf name {
                  type leafref {
                    path
                      "/ni:network-instance/ni:instances/ni:instance/ni:name";
                  }
                  must "../name!='_public_'";
                  description "VPN instance.";
                }
    
                leaf address-family {
                  type addr-family-type;
                  must
                    "../address-family='ipv4-unicast' or ../../../../ifm:type='Virtual-Template'";
                  must
                    "/ni:network-instance/ni:instances/ni:instance[ni:name = current()/../name]/l3vpn:afs/l3vpn:af[l3vpn:type=current()]";
                  description
                    "Address family, which determines whether an address belongs to IPv4 or IPv6.";
                }
              }  // list binding-vpn-instance
            }  // container binding-vpn-instances
          }  // container multicast-bas
        }
      }  // module huawei-multicast-bas
    

© 2023 YumaWorks, Inc. All rights reserved.