Adding OpenConfig YANG models.
Change-Id: I0a2fdd5826e80933cf4b9ae939ff3051acec02aa
diff --git a/models/openconfig/src/main/yang/ospf/openconfig-ospf-policy.yang b/models/openconfig/src/main/yang/ospf/openconfig-ospf-policy.yang
new file mode 100644
index 0000000..da80fae
--- /dev/null
+++ b/models/openconfig/src/main/yang/ospf/openconfig-ospf-policy.yang
@@ -0,0 +1,176 @@
+module openconfig-ospf-policy {
+ yang-version "1";
+
+ namespace "http://openconfig.net/yang/ospf-policy";
+
+ prefix "oc-ospf-pol";
+
+ import openconfig-routing-policy { prefix "oc-rpol"; }
+ import openconfig-extensions { prefix "oc-ext"; }
+ import openconfig-ospf-types { prefix "oc-ospf-types"; }
+
+ organization
+ "OpenConfig working group";
+
+ contact
+ "OpenConfig working group
+ www.openconfig.net";
+
+ description
+ "This module defines extensions to the OpenConfig policy
+ model to add extensions for OSPF. This module is intended
+ to be generic for both OSPFv2 and OSPFv3.";
+
+ oc-ext:openconfig-version "0.0.1";
+
+ revision "2016-08-22" {
+ description
+ "Initial revision";
+ reference "0.0.1";
+ }
+
+ grouping ospf-match-config {
+ description
+ "Configuration parameters for OSPF match conditions";
+
+ leaf area-eq {
+ type oc-ospf-types:ospf-area-identifier;
+ description
+ "Match prefixes which are within a particular OSPF area";
+ }
+ }
+
+ grouping ospf-match-conditions {
+ description
+ "Match conditions that are added by OSPF";
+
+ container ospf-conditions {
+ description
+ "Match conditions specific to OSPF";
+
+ container config {
+ description
+ "Configuration parameters relating to OSPF match conditions";
+
+ uses ospf-match-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Operational state parameters relating to OSPF match conditions";
+
+ uses ospf-match-config;
+ }
+ }
+ }
+
+ grouping ospf-actions-config {
+ description
+ "Configuration parameters for OSPF policy actions";
+
+ leaf set-area {
+ type oc-ospf-types:ospf-area-identifier;
+ description
+ "Set the area for the matched route. This action is typically
+ used when importing prefixes into OSPF, such that a route can
+ be imported into a specific area within the instance.";
+ }
+ }
+
+ grouping ospf-actions-set-metric-config {
+ description
+ "Configuration parameters relating to setting the OSPF metric";
+
+ leaf metric-type {
+ type enumeration {
+ enum EXTERNAL_TYPE_1 {
+ description
+ "Set the external type 1 metric";
+ }
+ enum EXTERNAL_TYPE_2 {
+ description
+ "Set the external type 2 metric";
+ }
+ }
+ default "EXTERNAL_TYPE_2";
+ description
+ "Specify the type of metric which is to be set by the policy";
+ }
+
+ leaf metric {
+ type oc-ospf-types:ospf-metric;
+ description
+ "Set the metric of the routes matching the policy to the value
+ specified by this leaf.";
+ }
+ }
+
+ grouping ospf-actions {
+ description
+ "Actions that are added by OSPF to the action framework";
+
+ container ospf-actions {
+ description
+ "Actions specific to OSPF";
+
+ container config {
+ description
+ "Configuration parameters for OSPF actions";
+
+ uses ospf-actions-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Operational state parameters for OSPF actions";
+
+ uses ospf-actions-config;
+ }
+
+ container set-metric {
+ description
+ "Configuration and state parameters relating to manipulating
+ the OSPF metric";
+
+ container config {
+ description
+ "Configuration parameters relating to setting the OSPF metric";
+ uses ospf-actions-set-metric-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Operational state parameters relating to setting the OSPF
+ metric";
+
+ uses ospf-actions-set-metric-config;
+ }
+ }
+ }
+ }
+
+ // augment the groupings into the routing policy model
+
+ // TODO: discuss whether igp-actions should be used or whether this should
+ // be removed.
+
+ augment "/oc-rpol:routing-policy/oc-rpol:policy-definitions/" +
+ "oc-rpol:policy-definition/oc-rpol:statements/oc-rpol:statement/" +
+ "oc-rpol:conditions" {
+ description
+ "Add OSPF specific match conditions to the routing policy model";
+ uses ospf-match-conditions;
+ }
+
+ augment "/oc-rpol:routing-policy/oc-rpol:policy-definitions/" +
+ "oc-rpol:policy-definition/oc-rpol:statements/oc-rpol:statement/" +
+ "oc-rpol:actions" {
+ description
+ "Add OSPF specific actions to the routing policy model";
+ uses ospf-actions;
+ }
+
+}
\ No newline at end of file