module openconfig-policy-types {
yang-version 1;
namespace
"http://openconfig.net/yang/policy-types";
prefix oc-pol-types;
import ietf-yang-types {
prefix yang;
}
import openconfig-extensions {
prefix oc-ext;
}
organization "OpenConfig working group";
contact
"OpenConfig working group
netopenconfig@googlegroups.com";
description
"This module contains general data definitions for use in routing
policy. It can be imported by modules that contain protocol-
specific policy conditions and actions.";
revision "2018-11-21" {
description
"Add OpenConfig module metadata extensions.";
reference
"3.1.1";
}
revision "2018-06-05" {
description
"Add PIM, IGMP to INSTALL_PROTOCOL_TYPES identity";
reference
"3.1.0";
}
revision "2017-07-14" {
description
"Replace policy choice node/type with policy-result
enumeration;simplified defined set naming;removed generic
IGP actions; migrate to OpenConfig types; added mode for
prefix sets";
reference
"3.0.0";
}
revision "2016-05-12" {
description
"OpenConfig public release";
reference
"2.0.1";
}
oc-ext:openconfig-version "3.1.1";
oc-ext:regexp-posix;
oc-ext:catalog-organization "openconfig";
oc-ext:origin "openconfig";
identity ATTRIBUTE_COMPARISON {
base
description
"base type for supported comparison operators on route
attributes";
}
identity ATTRIBUTE_EQ {
base ATTRIBUTE_COMPARISON;
description "== comparison";
}
identity ATTRIBUTE_GE {
base ATTRIBUTE_COMPARISON;
description ">= comparison";
}
identity ATTRIBUTE_LE {
base ATTRIBUTE_COMPARISON;
description "<= comparison";
}
typedef match-set-options-type {
type enumeration {
enum "ANY" {
value 0;
description
"match is true if given value matches any member
of the defined set";
}
enum "ALL" {
value 1;
description
"match is true if given value matches all
members of the defined set";
}
enum "INVERT" {
value 2;
description
"match is true if given value does not match any
member of the defined set";
}
}
default "ANY";
description
"Options that govern the behavior of a match statement. The
default behavior is ANY, i.e., the given value matches any
of the members of the defined set";
}
typedef match-set-options-restricted-type {
type enumeration {
enum "ANY" {
value 0;
description
"match is true if given value matches any member
of the defined set";
}
enum "INVERT" {
value 1;
description
"match is true if given value does not match any
member of the defined set";
}
}
default "ANY";
description
"Options that govern the behavior of a match statement. The
default behavior is ANY, i.e., the given value matches any
of the members of the defined set. Note this type is a
restricted version of the match-set-options-type.";
}
grouping attribute-compare-operators {
description
"common definitions for comparison operations in
condition statements";
leaf operator {
type identityref {
base ATTRIBUTE_COMPARISON;
}
description
"type of comparison to be performed";
}
leaf value {
type uint32;
description
"value to compare with the community count";
}
} // grouping attribute-compare-operators
typedef tag-type {
type union {
type uint32;
type yang:hex-string;
}
description
"type for expressing route tags on a local system,
including IS-IS and OSPF; may be expressed as either decimal or
hexidecimal integer";
reference
"RFC 2178 OSPF Version 2
RFC 5130 A Policy Control Mechanism in IS-IS Using
Administrative Tags";
}
identity INSTALL_PROTOCOL_TYPE {
base
description
"Base type for routing protocols, including those which may
install prefixes into the RIB";
}
identity BGP {
base INSTALL_PROTOCOL_TYPE;
description "BGP";
reference
"RFC 4271";
}
identity ISIS {
base INSTALL_PROTOCOL_TYPE;
description "IS-IS";
reference
"ISO/IEC 10589";
}
identity OSPF {
base INSTALL_PROTOCOL_TYPE;
description "OSPFv2";
reference
"RFC 2328";
}
identity OSPF3 {
base INSTALL_PROTOCOL_TYPE;
description "OSPFv3";
reference
"RFC 5340";
}
identity STATIC {
base INSTALL_PROTOCOL_TYPE;
description
"Locally-installed static route";
}
identity DIRECTLY_CONNECTED {
base INSTALL_PROTOCOL_TYPE;
description
"A directly connected route";
}
identity LOCAL_AGGREGATE {
base INSTALL_PROTOCOL_TYPE;
description
"Locally defined aggregate route";
}
identity PIM {
base INSTALL_PROTOCOL_TYPE;
description
"Protocol Independent Multicast";
reference
"RFC 7761";
}
identity IGMP {
base INSTALL_PROTOCOL_TYPE;
description
"Internet Group Management Protocol";
reference
"RFC 3376";
}
} // module openconfig-policy-types