huawei-fim-ifm

Common interface management, which includes the public configuration of interfaces.

  • Version: 2020-03-23

    huawei-fim-ifm@2020-03-23


    
      module huawei-fim-ifm {
    
        yang-version 1;
    
        namespace
          "urn:huawei:yang:huawei-fim-ifm";
    
        prefix fim-ifm;
    
        import huawei-pub-type {
          prefix pub-type;
        }
        import huawei-ifm {
          prefix ifm;
        }
        import huawei-extension {
          prefix ext;
        }
        import huawei-ethernet {
          prefix ethernet;
        }
    
        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
          "Common interface management, which includes the public configuration of interfaces.";
    
        reference
          "Huawei private.";
    
    
        revision "2020-03-23" {
          description "Initial revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "forwarding";
    
        typedef enable-type {
          type enumeration {
            enum "disable" {
              value 0;
              description "Disable.";
            }
            enum "enable" {
              value 1;
              description "Enable.";
            }
          }
          description "Enable type.";
        }
    
        typedef statistic-mode-type {
          type enumeration {
            enum "forward" {
              value 1;
              description
                "Forward mode statistics.";
            }
            enum "mac" {
              value 0;
              description "MAC mode statistics.";
            }
          }
          description "Ip Statistic Mode Type.";
        }
    
        typedef ve-mode-type {
          type enumeration {
            enum "through" {
              value 1;
              description "Software loopback.";
            }
            enum "loopback" {
              value 0;
              description "Hardware loopback.";
            }
            enum "half-through" {
              value 3;
              description
                "Software switch hardware loopback.";
            }
          }
          description "VE Forward Mode Type.";
        }
    
        typedef ve-interface-type {
          type enumeration {
            enum "L2VE" {
              value 1;
              description
                "Layer 2 Terminate Virtual-Ethernet interface.";
            }
            enum "L3VE" {
              value 2;
              description
                "Layer 3 Access Virtual-Ethernet interface.";
            }
            enum "terminate-ve" {
              value 7;
              description
                "Layer 3 Terminate Virtual-Ethernet interface.";
            }
          }
          description "VE Interface Type.";
        }
    
        typedef local-forward-type {
          type enumeration {
            enum "unicast" {
              value 1;
              description
                "Unicast Local Forward.";
            }
          }
          description
            "Trunk Local Forward Type.";
        }
    
        typedef reset-ipversion-type {
          type enumeration {
            enum "ipv4" {
              value 1;
              description "IPv4 reset.";
            }
            enum "ipv6" {
              value 2;
              description "IPv6 reset.";
            }
          }
          description "Reset IP vertion type.";
        }
    
        typedef reset-dispcard-type {
          type enumeration {
            enum "mac" {
              value 1;
              description "MAC reset.";
            }
            enum "mtu" {
              value 2;
              description "MTU reset.";
            }
          }
          description
            "Reset discard vertion type.";
        }
    
        rpc rst-macmtu-intf {
          ext:node-ref "/ifm/interfaces/interface";
          description
            "Clear MAC and MTU error statistics.";
          input {
            leaf interface-name {
              type string {
                length "1..63";
              }
              mandatory true;
              description "Interface name.";
            }
    
            leaf discard-type {
              type reset-dispcard-type;
              description
                "Configure the discard type.";
            }
    
            leaf ip-version {
              type reset-ipversion-type;
              description
                "Configure the discard IP version.";
            }
          }
        }  // rpc rst-macmtu-intf
    
        rpc rst-macmtu-slot {
          ext:node-ref "/ifm/interfaces/interface";
          description
            "Clear MAC&MTU error statistics.";
          input {
            leaf board-position {
              type string {
                length "1..32";
              }
              mandatory true;
              description "Board position.";
            }
    
            leaf discard-type {
              type reset-dispcard-type;
              description
                "Configure the discard type.";
            }
    
            leaf ip-version {
              type reset-ipversion-type;
              description
                "Configure the discard IP version.";
            }
          }
        }  // rpc rst-macmtu-slot
    
        rpc rst-mru-discard {
          ext:node-ref "/ifm/interfaces/interface";
          description
            "Clear interface MRU discard statistics.";
          input {
            leaf interface-name {
              type string {
                length "1..63";
              }
              mandatory true;
              description
                "Interface name of clear interface MRU discard statistics.";
            }
          }
        }  // rpc rst-mru-discard
    
        augment /ifm:ifm/ifm:interfaces/ifm:interface {
          description
            "Interface forward configuration to the interface management module.";
          container fim {
            description
              "Configure the function of statistic to main interface.";
            leaf statistic-enable {
              when
                "../../ifm:class='main-interface' and ../../ifm:type!='Virtual-Ethernet' and ../../ifm:type!='Tunnel' and ../../ifm:type!='NULL' and ../../ifm:type!='LoopBack' and ../../ifm:type!='Global-VE' and ../../ifm:type!='Nve' and ../../ifm:type!='Vlanif' and ../../ifm:type!='PW-VE' and ../../ifm:type!='Vbdif' and ../../ifm:type!='FlexE-200GE' and ../../ifm:type!='FlexE-50G' and ../../ifm:type!='FlexE-100G' and ../../ifm:type!='FlexE-10G' and ../../ifm:type!='FlexE-400G' and ../../ifm:type!='FlexE-50|100G'";
              type enable-type;
              default "disable";
              description
                "Enable the function of traffic statistics.";
            }
    
            leaf statistic-mode {
              when
                "not(../../ifm:type='Tunnel' or ../../ifm:type='NULL' or ../../ifm:type='LoopBack' or ../../ifm:type='Nve' or ((../../ifm:type='PW-VE' or ../../ifm:type='Global-VE' or ../../ifm:type='Virtual-Ethernet') and (../../ifm:class='main-interface')) or ../../ifm:type='FlexE-200GE' or ../../ifm:type='FlexE-50G' or ../../ifm:type='FlexE-100G' or ../../ifm:type='FlexE-10G' or ../../ifm:type='FlexE-400G' or ../../ifm:type='FlexE-50|100G')";
              type statistic-mode-type;
              default "mac";
              description
                "Configure the traffic statistics mode.";
            }
    
            leaf mac-statistic-enable {
              when
                "../../ifm:class='main-interface' and ../../ifm:type!='Virtual-Ethernet' and ../../ifm:type!='Tunnel' and ../../ifm:type!='NULL' and ../../ifm:type!='LoopBack' and ../../ifm:type!='Global-VE' and ../../ifm:type!='Nve' and ../../ifm:type!='Vbdif' and ../../ifm:type!='Vlanif' and ../../ifm:type!='PW-VE' and ../../ifm:type!='FlexE-200GE' and ../../ifm:type!='FlexE-50G' and ../../ifm:type!='FlexE-100G' and ../../ifm:type!='FlexE-10G' and ../../ifm:type!='FlexE-400G' and ../../ifm:type!='FlexE-50|100G'";
              type enable-type;
              default "disable";
              description
                "Enable the function of bit per seconds (bps) statistics.";
            }
          }  // container fim
    
          container fim-ifm-mru {
            description
              "Configure the maximum receive unit.";
            leaf mru {
              when
                "../../ifm:type!='Virtual-Ethernet' and ../../ifm:type!='Tunnel' and ../../ifm:type!='NULL' and ../../ifm:type!='LoopBack' and ../../ifm:type!='Global-VE' and ../../ifm:type!='Nve' and ../../ifm:type!='FlexE-200GE' and ../../ifm:type!='FlexE-50G' and ../../ifm:type!='FlexE-100G' and ../../ifm:type!='FlexE-10G' and ../../ifm:type!='FlexE-400G' and ../../ifm:type!='FlexE-50|100G'";
              type uint16 {
                range "46..9600";
              }
              units "Byte";
              must
                "not(/ifm:ifm/ifm:interfaces/ifm:interface/fim-ifm:fim-tcp-mss/fim-ifm:tcp-mss)";
              description
                "Maximum receive unit of an interface.";
            }
    
            leaf mru-statistic-enable {
              when "../mru";
              type enable-type;
              default "disable";
              description
                "Enable discard statistics of maximum receive unit of an interface.";
            }
          }  // container fim-ifm-mru
    
          container fim-tcp-mss {
            description "Configure Tcp mss.";
            leaf tcp-mss {
              when
                "../../ifm:type!='Virtual-Ethernet' and ../../ifm:type!='Tunnel' and ../../ifm:type!='NULL' and ../../ifm:type!='LoopBack' and ../../ifm:type!='Global-VE' and ../../ifm:type!='Nve' and ../../ifm:type!='FlexE-200GE' and ../../ifm:type!='FlexE-50G' and ../../ifm:type!='FlexE-100G' and ../../ifm:type!='FlexE-10G' and ../../ifm:type!='FlexE-400G' and ../../ifm:type!='FlexE-50|100G'";
              type uint16 {
                range "32..9500";
              }
              units "Byte";
              must
                "(not(/ifm:ifm/ifm:interfaces/ifm:interface/ethernet:ethernet/ethernet:main-interface/ethernet:l2-attribute) or not(../tcp-mss)) and not(/ifm:ifm/ifm:interfaces/ifm:interface/fim-ifm:fim-ifm-mru/fim-ifm:mru)";
              description
                "Maxitum Segment Size of an interface.";
            }
          }  // container fim-tcp-mss
    
          container fim-ifm-bdifint {
            when "../ifm:type='Vbdif'";
            description
              "Configure forward configurations to VBDIF interface.";
            leaf vbdif-loopback-enable {
              type boolean;
              default "false";
              description
                "Enable/disable the VBDIF loopback forward mode.";
            }
          }  // container fim-ifm-bdifint
    
          container fim-ifm-veint {
            description
              "Configure Virtual-Ethernet interface information.";
            leaf ve-forward-mode {
              when
                "(../../ifm:type='Virtual-Ethernet' and ../../fim-ifm:ve-group/fim-ifm:type='L2VE') or (../../ifm:type='Global-VE' and ../../fim-ifm:ve-group/fim-ifm:type='L2VE')";
              type ve-mode-type;
              default "loopback";
              description
                "Virtual-Ethernet forward mode type.";
            }
    
            leaf ve-slot-id {
              when
                "../../ifm:type='Global-VE' and ../../fim-ifm:ve-group/fim-ifm:type='L2VE'";
              type string {
                length "1..512";
              }
              description
                "Remove boards from a global VE interface.";
            }
          }  // container fim-ifm-veint
    
          container ve-group {
            when
              "../ifm:type='Virtual-Ethernet' or ../ifm:type='Global-VE'";
            presence "configure ve-group.";
            description
              "Enable/disable a Virtual-Ethernet Group.";
            leaf type {
              ext:operation-exclude "update" {
                description "The node cannot be modified when ve-group is configured.";
              }
              type ve-interface-type;
              mandatory true;
              description
                "Virtual-Ethernet interface type.";
            }
    
            leaf id {
              ext:operation-exclude "update" {
                description "The node cannot be modified when ve-group is configured.";
              }
              type uint32 {
                range "1..8192";
              }
              mandatory true;
              description
                "Virtual-Ethernet group ID.";
            }
          }  // container ve-group
    
          container mru-discard-statistic {
            config false;
            description
              "Statistics of maximum receive unit of an interface.";
            leaf packet {
              type uint64;
              description
                "Display the packets of discarded statistics of maximum receive unit of an interface.";
            }
    
            leaf byte {
              type uint64;
              units "Byte";
              description
                "Display the bytes of discarded statistics of maximum receive unit of an interface.";
            }
          }  // container mru-discard-statistic
    
          container macmtu-discard-stat {
            config false;
            description
              "MAC&MTU error statistics.";
            leaf mtu-ipv4 {
              type uint64;
              description
                "IPv4 MTU error statistics.";
            }
    
            leaf mtu-ipv6 {
              type uint64;
              description
                "IPv6 MTU error statistics.";
            }
    
            leaf mac-ipv4 {
              type uint64;
              default "0";
              description
                "IPv4 MAC error statistics.";
            }
    
            leaf mac-ipv6 {
              type uint64;
              description
                "IPv6 MAC error statistics.";
            }
          }  // container macmtu-discard-stat
        }
    
        augment /ifm:ifm/ifm:global {
          description
            "Global configuration to the interface management module.";
          container fim-ifm-global {
            description
              "Configure FIM global configurations.";
            leaf global-strict-filter {
              type enable-type;
              default "disable";
              description
                "Global filter enable status.";
            }
    
            leaf dual-stat-enable {
              type enable-type;
              default "disable";
              description
                "Set forward mode statistic for all interfaces.";
            }
    
            leaf trunk-delaysend-time {
              type uint32 {
                range "1000..300000";
              }
              units "ms";
              default "1500";
              description
                "Configure the delay time for an ETH-Trunk interface to join a member interface in a unicast scenario.";
            }
    
            leaf trunk-adjust-enable {
              type enable-type;
              default "disable";
              description
                "Enable the function of trunk load-blance dynamic-adjust.";
            }
    
            leaf qinq-transport-enable {
              type enable-type;
              default "disable";
              description
                "Configures Ethernet interfaces to retain the outer TPID EtherType value in received QinQ packets.";
            }
          }  // container fim-ifm-global
    
          container fim-trunk-localfwd {
            description
              "Configure the function of trunk local forward.";
            leaf enable {
              type enable-type;
              default "disable";
              description
                "Trunk Local Forward enable status.";
            }
          }  // container fim-trunk-localfwd
    
          container ve-groups {
            config false;
            description
              "List of the relation of Virtual-Ethernet and ve-group.";
            list ve-group {
              key "ve-group-id slot-id";
              description
                "Operational state of the relation of Virtual-Ethernet and ve-group.";
              leaf ve-group-id {
                type uint32;
                description "VE-group id.";
              }
    
              leaf slot-id {
                type string {
                  length "1..24";
                }
                description "Slot ID.";
              }
    
              leaf l2-ve-ifname {
                type pub-type:if-name;
                description
                  "Terminate Virtual-Ethernet interface.";
              }
    
              leaf l3-ve-ifname {
                type pub-type:if-name;
                description
                  "Access Virtual-Ethernet interface.";
              }
            }  // list ve-group
          }  // container ve-groups
        }
      }  // module huawei-fim-ifm
    

© 2023 YumaWorks, Inc. All rights reserved.