huawei-l2vpn-vpls-ext

L2VPN VPLS ext.

  • Version: 2020-03-24

    huawei-l2vpn-vpls-ext@2020-03-24


    
      module huawei-l2vpn-vpls-ext {
    
        yang-version 1;
    
        namespace
          "urn:huawei:yang:huawei-l2vpn-vpls-ext";
    
        prefix l2vpn-vpls-ext;
    
        import huawei-l2vpn {
          prefix l2vpn;
        }
        import huawei-qos {
          prefix qos;
        }
        import huawei-extension {
          prefix ext;
        }
    
        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 "L2VPN VPLS ext.";
    
        revision "2020-03-24" {
          description "Add must condition.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-03-09" {
          description "Add pipe type.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-01-17" {
          description
            "Modify container reserve-if-switch.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-01-13" {
          description
            "Modify container name and description.";
          reference
            "Huawei private.";
    
        }
    
        revision "2019-11-15" {
          description
            "Modify typedef defination.";
          reference
            "Huawei private.";
    
        }
    
        revision "2019-04-23" {
          description "Initial revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "forwarding";
    
        typedef l2vpn-pipe-mode {
          type enumeration {
            enum "pipe" {
              value 1;
              description
                "The L2VPN pipe mode is pipe.";
            }
            enum "shortPipe" {
              value 2;
              description
                "The L2VPN pipe mode is short pipe.";
            }
            enum "uniform" {
              value 3;
              description
                "The L2VPN pipe mode is uniform.";
            }
          }
          description "L2VPN pipe mode.";
        }
    
        typedef l2vpn-service-class {
          type enumeration {
            enum "be" {
              value 0;
              description
                "Specify the CoS as BE.";
            }
            enum "af1" {
              value 1;
              description
                "Specify the CoS as AF1.";
            }
            enum "af2" {
              value 2;
              description
                "Specify the CoS as AF2.";
            }
            enum "af3" {
              value 3;
              description
                "Specify the CoS as AF3.";
            }
            enum "af4" {
              value 4;
              description
                "Specify the CoS as AF4.";
            }
            enum "ef" {
              value 5;
              description
                "Specify the CoS as EF.";
            }
            enum "cs6" {
              value 6;
              description
                "Specify the CoS as CS6.";
            }
            enum "cs7" {
              value 7;
              description
                "Specify the CoS as CS7.";
            }
          }
          description "Description of CoS.";
        }
    
        typedef l2vpn-color {
          type enumeration {
            enum "green" {
              value 0;
              description
                "Specify the packet color as green.";
            }
            enum "yellow" {
              value 1;
              description
                "Specify the packet color as yellow.";
            }
            enum "red" {
              value 2;
              description
                "Specify the packet color as red.";
            }
          }
          description
            "Description of packet color.";
        }
    
        typedef l2vpn-trust-type {
          type enumeration {
            enum "outpri" {
              value 0;
              description
                "Specify the trust type as OUTTER-VLAN-8021P.";
            }
            enum "inpri" {
              value 1;
              description
                "Specify the trust type as INNER-VLAN-8021P.";
            }
            enum "ipdscp" {
              value 2;
              description
                "Specify the trust type as IP-DSCP.";
            }
          }
          description
            "Description of trust type.";
        }
    
        rpc reset-vsi-ac-suppression-statistics {
          ext:node-ref "/l2vpn:l2vpn/l2vpn:instances/l2vpn:instance/l2vpn:vpls";
          description "Reset AC suppression.";
          input {
            leaf interface-name {
              type leafref {
                path "/l2vpn:l2vpn/l2vpn:instances/l2vpn:instance/l2vpn:vpls/l2vpn:acs/l2vpn:ac/l2vpn:interface-name";
              }
              mandatory true;
              description "Interface name.";
            }
    
            leaf vsi-name {
              type leafref {
                path "/l2vpn:l2vpn/l2vpn:instances/l2vpn:instance/l2vpn:name";
              }
              mandatory true;
              description "VSI name.";
            }
          }
        }  // rpc reset-vsi-ac-suppression-statistics
    
        augment /l2vpn:l2vpn/l2vpn:common {
          description "L2VPN common parameters.";
          container l2vpn-ext {
            description
              "Configure the extension of L2VPN.";
            leaf vpls-ldp-fast-switch {
              type boolean;
              default "false";
              description
                "Enable/disable the flag of VPLS LDP fast-switch.";
            }
    
            leaf pw-source-tunnel-check {
              type boolean;
              default "true";
              description
                "Enable/disable the flag of L2VPN pw-source-tunnel check.";
            }
    
            leaf flow-label-hash {
              type enumeration {
                enum "L2" {
                  value 2;
                  description "L2.";
                }
                enum "L3" {
                  value 1;
                  description "L3.";
                }
                enum "L4" {
                  value 0;
                  description "L4.";
                }
              }
              default "L4";
              description
                "The flag of flowLabel.";
            }
    
            leaf convergence-separate-in-system {
              type boolean;
              default "false";
              description
                "Enable/disable the flag of VPLS convergence separate in systerm.";
            }
    
            leaf vpls-tm-prune-enable {
              type boolean;
              default "false";
              description
                "Enable/disable the flag of TM prune mode.";
            }
          }  // container l2vpn-ext
        }
    
        augment /l2vpn:l2vpn/l2vpn:instances/l2vpn:instance/l2vpn:vpls {
          description "Vpls instances.";
          container vsi-pipe {
            description
              "Configure the diffserv mode of VPLS.";
            leaf split-mode {
              type boolean;
              must
                "((../split-mode='false' and not(../ingress-pipe-mode) and not(../egress-pipe-mode) and ../pipe-mode) or (../split-mode='true' and not(../pipe-mode) and ../ingress-pipe-mode and ../egress-pipe-mode and not(../ingress-pipe-mode='uniform' and ../egress-pipe-mode='uniform')))";
              default "false";
              description
                "Enable/disable split mode.";
            }
    
            leaf pipe-mode {
              when "../split-mode='false'";
              type l2vpn-pipe-mode;
              must
                "(../split-mode='false') and ((../pipe-mode='pipe' and (../service-class) and (../color)) or (../pipe-mode='shortPipe' and (../service-class) and (../color) and (../domain-name)) or (../pipe-mode='uniform'))";
              default "uniform";
              description "VSI pipe mode.";
            }
    
            leaf ingress-pipe-mode {
              when "../split-mode='true'";
              type l2vpn-pipe-mode;
              must
                "((../split-mode='true') and (((../service-class) and (../color) and (../ingress-pipe-mode='shortPipe' or ../ingress-pipe-mode='pipe')) or (../ingress-pipe-mode='uniform' and ../egress-pipe-mode!='uniform')))";
              default "uniform";
              description
                "VSI ingress pipe mode.";
            }
    
            leaf egress-pipe-mode {
              when "../split-mode='true'";
              type l2vpn-pipe-mode;
              must
                "((../split-mode='true') and (((../domain-name) and (../trust-type) and (../egress-pipe-mode='shortPipe')) or (../egress-pipe-mode='pipe') or (../egress-pipe-mode='uniform' and ../ingress-pipe-mode!='uniform')))";
              default "uniform";
              description
                "VSI egress pipe mode.";
            }
    
            leaf service-class {
              when
                "(../pipe-mode='pipe' or ../pipe-mode='shortPipe' or ../ingress-pipe-mode='pipe' or ../ingress-pipe-mode='shortPipe')";
              type l2vpn-service-class;
              must
                "(../pipe-mode='pipe' or ../pipe-mode='shortPipe' or ../ingress-pipe-mode='pipe' or ../ingress-pipe-mode='shortPipe')";
              default "be";
              description "VSI service class.";
            }
    
            leaf color {
              when
                "(../pipe-mode='pipe' or ../pipe-mode='shortPipe'  or ../ingress-pipe-mode='pipe' or ../ingress-pipe-mode='shortPipe')";
              type l2vpn-color;
              must
                "(../pipe-mode='pipe' or ../pipe-mode='shortPipe' or ../ingress-pipe-mode='pipe' or ../ingress-pipe-mode='shortPipe')";
              default "green";
              description "Packet color.";
            }
    
            leaf domain-name {
              when
                "(../pipe-mode='shortPipe'  or ../egress-pipe-mode='shortPipe')";
              type leafref {
                path "/qos:qos/qos:classifier-template/qos:diffserv-domains/qos:diffserv-domain/qos:name";
              }
              must
                "(../pipe-mode='shortPipe' or ../egress-pipe-mode='shortPipe')";
              default "default";
              description "Domain name.";
            }
    
            leaf trust-type {
              when
                "../egress-pipe-mode='shortPipe'";
              type l2vpn-trust-type;
              must
                "../egress-pipe-mode='shortPipe'";
              default "outpri";
              description "VSI trust type.";
            }
          }  // container vsi-pipe
    
          container reserve-if-switch {
            when "../l2vpn:work-mode='normal'";
            description
              "Configure VSI separate broadcast fast switching.";
            leaf enable {
              type boolean;
              default "false";
              description
                "Enable/disable the flag of VSI separate broadcast fast switching.";
            }
          }  // container reserve-if-switch
    
          container vpls-ext {
            description
              "Configure VPLS common extension.";
            leaf vsi-multicast-switch {
              type boolean;
              must
                "(../vsi-multicast-switch = 'false') or ((../vsi-multicast-switch = 'true') and (../../l2vpn:work-mode='normal' or ../../l2vpn:work-mode='bd-mode' or ../../l2vpn:work-mode='b-vsi' or ../../l2vpn:work-mode='i-vsi' or ../../l2vpn:work-mode='i-vsi-p2p'))";
              default "false";
              description
                "Enable/disable the flag of VPLS multicast fast switching.";
            }
    
            leaf pw-packet-type-traffic-statistic {
              type boolean;
              must
                "(../pw-packet-type-traffic-statistic = 'false') or ((../pw-packet-type-traffic-statistic = 'true') and (../../l2vpn:work-mode='normal' or ../../l2vpn:work-mode='bd-mode'))";
              default "false";
              description
                "Enable/disable the function to collect packet-type traffic statistics.";
            }
    
            leaf convergence-separate {
              type boolean;
              must
                "(../convergence-separate ='false') or ((../convergence-separate ='true') and (../../l2vpn:work-mode='normal' or ../../l2vpn:work-mode='bd-mode') and (../../l2vpn:ldp-signaling/l2vpn:hard-pipe='false') and (/l2vpn:l2vpn/l2vpn:common/l2vpn-vpls-ext:l2vpn-ext/l2vpn-vpls-ext:convergence-separate-in-system='false'))";
              default "false";
              description
                "Enable/disable the flag of VPLS convergence separate in VSI.";
            }
          }  // container vpls-ext
        }
    
        augment /l2vpn:l2vpn/l2vpn:instances/l2vpn:instance/l2vpn:vpls/l2vpn:acs/l2vpn:ac {
          description "VPLS AC.";
          container vpls-ac-suppression {
            config false;
            description
              "Statistics of the VSI AC suppression.";
            leaf time {
              type string {
                length "1..60";
              }
              config false;
              description "AC suppression time.";
            }
    
            leaf unicast-in-flag {
              type boolean;
              default "false";
              config false;
              description
                "Unicast inbound suppression flag.";
            }
    
            leaf unicast-in-pass-packets {
              type uint64;
              config false;
              description
                "Number of unknown unicast packets passed in the inbound direction of an AC interface.";
            }
    
            leaf unicast-in-pass-bytes {
              type uint64;
              config false;
              description
                "Number of unknown unicast bytes passed in the inbound direction of an AC interface.";
            }
    
            leaf unicast-in-drop-packets {
              type uint64;
              config false;
              description
                "Number of unknown unicast packets dropped in the inbound direction of an AC interface.";
            }
    
            leaf unicast-in-drop-bytes {
              type uint64;
              config false;
              description
                "Number of unknown unicast bytes dropped in the inbound direction of an AC interface.";
            }
    
            leaf unicast-out-flag {
              type boolean;
              default "false";
              config false;
              description
                "Unicast outbound suppression flag.";
            }
    
            leaf unicast-out-pass-packets {
              type uint64;
              config false;
              description
                "Number of unknown unicast packets passed in the outbound direction of an AC interface.";
            }
    
            leaf unicast-out-pass-bytes {
              type uint64;
              config false;
              description
                "Number of unknown unicast bytes passed in the outbound direction of an AC interface.";
            }
    
            leaf unicast-out-drop-packets {
              type uint64;
              config false;
              description
                "Number of unknown unicast packets dropped in the outbound direction of an AC interface.";
            }
    
            leaf unicast-out-drop-bytes {
              type uint64;
              config false;
              description
                "Number of unknown unicast bytes dropped in the outbound direction of an AC interface.";
            }
    
            leaf multicast-in-flag {
              type boolean;
              default "false";
              config false;
              description
                "Multicast inbound suppression flag.";
            }
    
            leaf multicast-in-pass-packets {
              type uint64;
              config false;
              description
                "Number of multicast packets passed in the inbound direction of an AC interface.";
            }
    
            leaf multicast-in-pass-bytes {
              type uint64;
              config false;
              description
                "Number of multicast bytes passed in the inbound direction of an AC interface.";
            }
    
            leaf multicast-in-drop-packets {
              type uint64;
              config false;
              description
                "Number of multicast packets dropped in the inbound direction of an AC interface.";
            }
    
            leaf multicast-in-drop-bytes {
              type uint64;
              config false;
              description
                "Number of multicast bytes dropped in the inbound direction of an AC interface.";
            }
    
            leaf multicast-out-flag {
              type boolean;
              default "false";
              config false;
              description
                "Multicast outbound suppression flag.";
            }
    
            leaf multicast-out-pass-packets {
              type uint64;
              config false;
              description
                "Number of multicast packets passed in the outbound direction of an AC interface.";
            }
    
            leaf multicast-out-pass-bytes {
              type uint64;
              config false;
              description
                "Number of multicast bytes passed in the outbound direction of an AC interface.";
            }
    
            leaf multicast-out-drop-packets {
              type uint64;
              config false;
              description
                "Number of multicast packets dropped in the outbound direction of an AC interface.";
            }
    
            leaf multicast-out-drop-bytes {
              type uint64;
              config false;
              description
                "Number of multicast bytes dropped in the outbound direction of an AC interface.";
            }
    
            leaf broadcast-in-flag {
              type boolean;
              default "false";
              config false;
              description
                "Broadcast inbound suppression flag.";
            }
    
            leaf broadcast-in-pass-packets {
              type uint64;
              config false;
              description
                "Number of broadcast packets passed in the inbound direction of an AC interface.";
            }
    
            leaf broadcast-in-pass-bytes {
              type uint64;
              config false;
              description
                "Number of broadcast bytes passed in the inbound direction of an AC interface.";
            }
    
            leaf broadcast-in-drop-packets {
              type uint64;
              config false;
              description
                "Number of broadcast packets dropped in the inbound direction of an AC interface.";
            }
    
            leaf broadcast-in-drop-bytes {
              type uint64;
              config false;
              description
                "Number of broadcast bytes dropped in the inbound direction of an AC interface.";
            }
    
            leaf broadcast-out-flag {
              type boolean;
              default "false";
              config false;
              description
                "Broadcast outbound suppression flag.";
            }
    
            leaf broadcast-out-pass-packets {
              type uint64;
              config false;
              description
                "Number of broadcast packets passed in the outbound direction of an AC interface.";
            }
    
            leaf broadcast-out-pass-bytes {
              type uint64;
              config false;
              description
                "Number of broadcast bytes passed in the outbound direction of an AC interface.";
            }
    
            leaf broadcast-out-drop-packets {
              type uint64;
              config false;
              description
                "Number of broadcast packets dropped in the outbound direction of an AC interface.";
            }
    
            leaf broadcast-out-drop-bytes {
              type uint64;
              config false;
              description
                "Number of broadcast bytes dropped in the outbound direction of an AC interface.";
            }
          }  // container vpls-ac-suppression
        }
    
        augment /l2vpn:l2vpn/l2vpn:instances/l2vpn:instance/l2vpn:vpls/l2vpn:ldp-signaling/l2vpn:pws/l2vpn:pw {
          description
            "Configure the encapsulation VLAN pass of a PW.";
          container encapsulation-vlan {
            when
              "../../../../l2vpn:work-mode ='bd-mode' and ../l2vpn:name";
            description
              "Configure the encapsulation VLAN pass of a PW.";
            leaf vlan-pass {
              type boolean;
              default "false";
              description
                "Enable/disable the VLAN pass.";
            }
          }  // container encapsulation-vlan
        }
      }  // module huawei-l2vpn-vpls-ext
    

© 2023 YumaWorks, Inc. All rights reserved.