summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-platform-port.yang
diff options
context:
space:
mode:
authorHongjun Ni <hongjun.ni@intel.com>2018-12-21 04:48:35 +0000
committerGerrit Code Review <gerrit@fd.io>2018-12-21 04:48:35 +0000
commit8791f3211bd61d213e4ea4a0af66a14bb2e3a239 (patch)
tree846a89e6ca81d639d024e5509654766d3581b7ea /src/plugins/yang/openconfig/openconfig-platform-port.yang
parentde7bb8f2b0cdd2dfeba0586213bd415c9bb3fd18 (diff)
parent639509ad42f8bd6baf9b6f5b668a9bbfb05108d4 (diff)
Merge "Add Openconfig YANG modules."
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-platform-port.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform-port.yang149
1 files changed, 149 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-platform-port.yang b/src/plugins/yang/openconfig/openconfig-platform-port.yang
new file mode 100644
index 0000000..2039a8e
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-platform-port.yang
@@ -0,0 +1,149 @@
+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
+
+} \ No newline at end of file