argus-netconf-exporter/exp/yangcli/h3c-yang/openconfig-ospf-policy@2018-11-21.yang
2025-11-28 14:35:21 +08:00

200 lines
4.9 KiB
YANG

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.3";
revision "2018-11-21" {
description
"Add OpenConfig module metadata extensions.";
reference "0.1.3";
}
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";
}
// OpenConfig specific extensions for module metadata.
oc-ext:regexp-posix;
oc-ext:catalog-organization "openconfig";
oc-ext:origin "openconfig";
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;
}
}