193 lines
4.3 KiB
YANG
193 lines
4.3 KiB
YANG
module openconfig-if-aggregate {
|
|
|
|
yang-version "1";
|
|
|
|
// namespace
|
|
namespace "http://openconfig.net/yang/interfaces/aggregate";
|
|
|
|
prefix "oc-lag";
|
|
|
|
// import some basic types
|
|
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; }
|
|
|
|
// meta
|
|
organization "OpenConfig working group";
|
|
|
|
contact
|
|
"OpenConfig working group
|
|
netopenconfig@googlegroups.com";
|
|
|
|
description
|
|
"Model for managing aggregated (aka bundle, LAG) interfaces.";
|
|
|
|
oc-ext:openconfig-version "1.1.0";
|
|
|
|
revision "2016-12-22" {
|
|
description
|
|
"Fixes to Ethernet interfaces model";
|
|
reference "1.1.0";
|
|
}
|
|
|
|
// extension statements
|
|
|
|
// feature statements
|
|
|
|
// identity statements
|
|
|
|
// typedef statements
|
|
|
|
|
|
|
|
typedef aggregation-type {
|
|
type enumeration {
|
|
enum LACP {
|
|
description "LAG managed by LACP";
|
|
}
|
|
enum STATIC {
|
|
description "Statically configured bundle / LAG";
|
|
}
|
|
}
|
|
description
|
|
"Type to define the lag-type, i.e., how the LAG is
|
|
defined and managed";
|
|
}
|
|
|
|
// grouping statements
|
|
|
|
|
|
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-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 "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-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 state {
|
|
|
|
config false;
|
|
description
|
|
"Operational state variables for logical
|
|
aggregate / LAG interfaces";
|
|
|
|
uses aggregation-logical-config;
|
|
uses aggregation-logical-state;
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
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";
|
|
}
|
|
}
|
|
|
|
// data definition statements
|
|
|
|
// augment statements
|
|
|
|
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;
|
|
}
|
|
|
|
// rpc statements
|
|
|
|
// notification statements
|
|
|
|
}
|