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 2021-12-10 { description "Add INSTALL_PROTOCOL_TYPE gRIBI."; reference "3.2.1"; } 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.2.1"; oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity ATTRIBUTE_COMPARISON { 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"; } identity INSTALL_PROTOCOL_TYPE { 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"; } identity GRIBI { base INSTALL_PROTOCOL_TYPE; description "gRPC Routing Information Base Interface"; } typedef match-set-options-type { type enumeration { enum "ANY" { description "match is true if given value matches any member of the defined set"; } enum "ALL" { description "match is true if given value matches all members of the defined set"; } enum "INVERT" { 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" { description "match is true if given value matches any member of the defined set"; } enum "INVERT" { 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."; } 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"; } 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"; } } }