openconfig-if-aggregate

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

  • Version: 2017-07-14

    openconfig-if-aggregate@2017-07-14


    
      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 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 "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.0.0";
    
        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 "megabps";
            description
              "Reports effective speed of the aggregate interface,
            based on speed of active member interfaces";
          }
    
          leaf-list member {
            when "oc-lag: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 {
          when
            "oc-if:type = 'ift:ieee8023adLag'" {
            description
              "active when the interface is set to type LAG";
          }
          description
            "Adds LAG configuration to the interface module";
          uses aggregation-logical-top;
        }
    
        augment /oc-if:interfaces/oc-if:interface/oc-eth:ethernet/oc-eth:config {
          when
            "oc-if:type = 'ift:ethernetCsmacd'" {
            description
              "active when the interface is Ethernet";
          }
          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 {
          when
            "oc-if:type = 'ift:ethernetCsmacd'" {
            description
              "active when the interface is Ethernet";
          }
          description
            "Adds LAG settings to individual Ethernet
        interfaces";
          uses ethernet-if-aggregation-config;
        }
      }  // module openconfig-if-aggregate
    

© 2023 YumaWorks, Inc. All rights reserved.