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.1.2"; revision "2018-06-05" { description "Bug fixes in when statements in lsdb"; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.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; } }