blob: 2995369497c2c9fc2ad7770f857a41e09d03cae8 [file] [log] [blame]
module openconfig-platform-port {
yang-version "1";
// namespace
namespace "http://openconfig.net/yang/platform/port";
prefix "oc-port";
// import some basic types
import openconfig-platform { prefix oc-platform; }
import openconfig-interfaces { prefix oc-if; }
import openconfig-if-ethernet { prefix oc-eth; }
import openconfig-extensions { prefix oc-ext; }
// meta
organization "OpenConfig working group";
contact
"OpenConfig working group
www.openconfig.net";
description
"This module defines data related to PORT components in the openconfig-platform model";
oc-ext:openconfig-version "0.3.0";
revision "2018-01-20" {
description
"Added augmentation for interface-to-port reference";
reference "0.3.0";
}
revision "2017-11-17" {
description
"Corrected augmentation path for port data";
reference "0.2.0";
}
revision "2016-10-24" {
description
"Initial revision";
reference "0.1.0";
}
// extension statements
// feature statements
// identity statements
// typedef statements
// grouping statements
grouping port-breakout-config {
description
"Configuration data for the port breakout mode";
leaf num-channels {
type uint8;
description
"Sets the number of channels to 'breakout' on a port
capable of channelization";
}
leaf channel-speed {
type identityref {
base oc-eth:ETHERNET_SPEED;
}
description
"Sets the channel speed on each channel -- the
supported values are defined by the
ETHERNET_SPEED identity";
}
}
grouping port-breakout-state {
description
"Operational state data for the port breakout mode ";
}
grouping port-breakout-top {
description
"Top-level grouping for port breakout data";
container breakout-mode {
description
"Top-level container for port breakout data";
container config {
description
"Configuration data for port breakout";
uses port-breakout-config;
}
container state {
config false;
description
"Operational state data for port breakout";
uses port-breakout-config;
uses port-breakout-state;
}
}
}
// data definition statements
// augment statements
augment "/oc-platform:components/oc-platform:component/" +
"oc-platform:port" {
description
"Adding port breakout data to physical platform data";
uses port-breakout-top {
when "./oc-platform:state/oc-platform:type = 'PORT'" {
description
"This data is valid only for PORT components";
}
}
}
augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
description
"Adds a reference from the base interface to the corresponding
port component in the device inventory.";
leaf hardware-port {
type leafref {
path "/oc-platform:components/oc-platform:component/" +
"oc-platform:name";
}
description
"For non-channelized interfaces, references the hardware port
corresponding to the base interface.";
}
}
// rpc statements
// notification statements
}