Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor physical ethernet vs. aggregate interface characteristics #1183

Merged
merged 10 commits into from
Oct 31, 2024
72 changes: 51 additions & 21 deletions release/models/interfaces/openconfig-if-ethernet.yang
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,15 @@ module openconfig-if-ethernet {
"Model for managing Ethernet interfaces -- augments the OpenConfig
model for interface configuration and state.";

oc-ext:openconfig-version "2.13.0";
oc-ext:openconfig-version "2.14.0";

revision "2024-09-17" {
description
"Refactor config/state nodes to account for physical ethernet vs.
aggregate interface characteristics along with description updates
to indicate applicability.";
reference "2.14.0";
}

revision "2023-03-10" {
description
Expand Down Expand Up @@ -294,7 +302,9 @@ module openconfig-if-ethernet {
// grouping statements

grouping ethernet-interface-config {
description "Configuration items for Ethernet interfaces";
description
"Common interface configuration for physical ethernet + logical
aggregate interfaces";

leaf mac-address {
type oc-yang:mac-address;
Expand All @@ -304,6 +314,31 @@ module openconfig-if-ethernet {
expected to show the system-assigned MAC address.";
}

leaf enable-flow-control {
type boolean;
default false;
description
"Enable or disable flow control for this interface.
Ethernet flow control is a mechanism by which a receiver
may send PAUSE frames to a sender to stop transmission for
a specified time.

This setting should override auto-negotiated flow control
settings. If left unspecified, and auto-negotiate is TRUE,
flow control mode is negotiated with the peer interface.";
reference
"IEEE 802.3x";
}
}

grouping physical-interface-config {
description
"Configuration specific to physical ethernet interfaces. Note
that this grouping is to only apply when the interface `type` is
set to 'ianaift:ethernetCsmacd'. This is not currently restricted
by YANG language statements (must/when) due to uses of this module
within other domains (e.g. wifi).";

leaf auto-negotiate {
type boolean;
default true;
Expand Down Expand Up @@ -365,22 +400,6 @@ module openconfig-if-ethernet {
by ETHERNET_SPEED identities";
}

leaf enable-flow-control {
type boolean;
default false;
description
"Enable or disable flow control for this interface.
Ethernet flow control is a mechanism by which a receiver
may send PAUSE frames to a sender to stop transmission for
a specified time.

This setting should override auto-negotiated flow control
settings. If left unspecified, and auto-negotiate is TRUE,
flow control mode is negotiated with the peer interface.";
reference
"IEEE 802.3x";
}

leaf fec-mode {
type identityref {
base INTERFACE_FEC;
Expand Down Expand Up @@ -596,9 +615,13 @@ module openconfig-if-ethernet {

}

grouping ethernet-interface-state {
grouping physical-interface-state {
description
"Grouping for defining Ethernet-specific operational state";
"Grouping for operational state specific to physical ethernet
interfaces. Note that this grouping is to only apply when the
interface `type` is set to 'ianaift:ethernetCsmacd'. This is not
currently restricted by YANG language statements (must/when) due
to uses of this module within other domains (e.g. wifi).";

leaf hw-mac-address {
type oc-yang:mac-address;
Expand Down Expand Up @@ -631,6 +654,11 @@ module openconfig-if-ethernet {
completed auto-negotiation with the remote peer, this value
shows the interface speed that has been negotiated.";
}
}

grouping ethernet-interface-state {
description
"Common state for physical ethernet and aggregate interfaces";

container counters {
description "Ethernet interface counters";
Expand All @@ -653,7 +681,7 @@ module openconfig-if-ethernet {
description "Configuration data for ethernet interfaces";

uses ethernet-interface-config;

uses physical-interface-config;
}

container state {
Expand All @@ -662,6 +690,8 @@ module openconfig-if-ethernet {
description "State variables for Ethernet interfaces";

uses ethernet-interface-config;
uses physical-interface-config;
uses physical-interface-state;
uses ethernet-interface-state;

}
Expand Down
Loading