| 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 |
| |
| } |