Skip to content

Commit

Permalink
Refactor physical ethernet vs. aggregate interface characteristics (o…
Browse files Browse the repository at this point in the history
…penconfig#1183)

* Refactor physical ethernet vs. aggregate interface characteristics

  * (M) release/models/interfaces/openconfig-if-ethernet.yang
    - Split/restrict physical vs. aggregate ethernet config/state
  • Loading branch information
earies authored Oct 31, 2024
1 parent 3ea7d6b commit 4af7a68
Showing 1 changed file with 51 additions and 21 deletions.
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

0 comments on commit 4af7a68

Please sign in to comment.