openconfig-if-aggregate

Model for managing aggregated (aka bundle, LAG) interfaces.

  • Version: 2020-05-01

    openconfig-if-aggregate@2020-05-01


    
      module openconfig-if-aggregate {
    
        yang-version 1;
    
        namespace
          "http://openconfig.net/yang/interfaces/aggregate";
    
        prefix oc-lag;
    
        import openconfig-interfaces {
          prefix oc-if;
        }
        import openconfig-if-ethernet {
          prefix oc-eth;
        }
        import iana-if-type {
          prefix ianaift;
        }
        import openconfig-if-types {
          prefix oc-ift;
        }
        import openconfig-extensions {
          prefix oc-ext;
        }
    
        organization "OpenConfig working group";
    
        contact
          "OpenConfig working group
    netopenconfig@googlegroups.com";
    
        description
          "Model for managing aggregated (aka bundle, LAG) interfaces.";
    
        revision "2020-05-01" {
          description
            "Update when statements to reference config nodes
    from config true elements.";
          reference
            "2.4.3";
    
        }
    
        revision "2019-04-16" {
          description
            "Update import prefix for iana-if-type module";
          reference
            "2.4.2";
    
        }
    
        revision "2018-11-21" {
          description
            "Add OpenConfig module metadata extensions.";
          reference
            "2.3.2";
    
        }
    
        revision "2018-03-23" {
          description
            "Fix/cleanup when statements in aggregates model.";
          reference
            "2.3.1";
    
        }
    
        revision "2018-01-05" {
          description
            "Add logical loopback to interface.";
          reference
            "2.3.0";
    
        }
    
        revision "2017-12-22" {
          description
            "Add IPv4 proxy ARP configuration.";
          reference
            "2.2.0";
    
        }
    
        revision "2017-12-21" {
          description
            "Added IPv6 router advertisement configuration.";
          reference
            "2.1.0";
    
        }
    
        revision "2017-07-14" {
          description
            "Added Ethernet/IP state data; Add dhcp-client;
    migrate to OpenConfig types modules; Removed or
    renamed opstate values";
          reference
            "2.0.0";
    
        }
    
        revision "2016-12-22" {
          description
            "Fixes to Ethernet interfaces model";
          reference
            "1.1.0";
    
        }
    
        oc-ext:openconfig-version "2.4.3";
        oc-ext:regexp-posix;
        oc-ext:catalog-organization "openconfig";
        oc-ext:origin "openconfig";
    
        typedef aggregation-type {
          type enumeration {
            enum "LACP" {
              value 0;
              description "LAG managed by LACP";
            }
            enum "STATIC" {
              value 1;
              description
                "Statically configured bundle / LAG";
            }
          }
          description
            "Type to define the lag-type, i.e., how the LAG is
    defined and managed";
        }
    
        grouping aggregation-logical-config {
          description
            "Configuration data for aggregate interfaces";
          leaf lag-type {
            type aggregation-type;
            description
              "Sets the type of LAG, i.e., how it is
    configured / maintained";
          }
    
          leaf min-links {
            type uint16;
            description
              "Specifies the mininum number of member
    interfaces that must be active for the aggregate interface
    to be available";
          }
        }  // grouping aggregation-logical-config
    
        grouping aggregation-logical-state {
          description
            "Operational state data for aggregate interfaces";
          leaf lag-speed {
            type uint32;
            units "Mbps";
            description
              "Reports effective speed of the aggregate interface,
    based on speed of active member interfaces";
          }
    
          leaf-list member {
            when
              "../../config/lag-type = 'STATIC'" {
              description
                "The simple list of member interfaces is active
    when the aggregate is statically configured";
            }
            type oc-if:base-interface-ref;
            description
              "List of current member interfaces for the aggregate,
    expressed as references to existing interfaces";
          }
        }  // grouping aggregation-logical-state
    
        grouping aggregation-logical-top {
          description
            "Top-level data definitions for LAGs";
          container aggregation {
            description
              "Options for logical interfaces representing
    aggregates";
            container config {
              description
                "Configuration variables for logical aggregate /
    LAG interfaces";
              uses aggregation-logical-config;
            }  // container config
    
            container state {
              config false;
              description
                "Operational state variables for logical
    aggregate / LAG interfaces";
              uses aggregation-logical-config;
    
              uses aggregation-logical-state;
            }  // container state
          }  // container aggregation
        }  // grouping aggregation-logical-top
    
        grouping ethernet-if-aggregation-config {
          description
            "Adds configuration items for Ethernet interfaces
    belonging to a logical aggregate / LAG";
          leaf aggregate-id {
            type leafref {
              path "/oc-if:interfaces/oc-if:interface/oc-if:name";
            }
            description
              "Specify the logical aggregate interface to which
    this interface belongs";
          }
        }  // grouping ethernet-if-aggregation-config
    
        augment /oc-if:interfaces/oc-if:interface {
          description
            "Adds LAG configuration to the interface module";
          uses aggregation-logical-top {
            when
              "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" {
              description
                "active when the interface is set to type LAG";
            }
          }
        }
    
        augment /oc-if:interfaces/oc-if:interface/oc-eth:ethernet/oc-eth:config {
          description
            "Adds LAG settings to individual Ethernet interfaces";
          uses ethernet-if-aggregation-config;
        }
    
        augment /oc-if:interfaces/oc-if:interface/oc-eth:ethernet/oc-eth:state {
          description
            "Adds LAG settings to individual Ethernet interfaces";
          uses ethernet-if-aggregation-config;
        }
      }  // module openconfig-if-aggregate
    

© 2021 YumaWorks, Inc. All rights reserved.