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 "./state/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 }