| module openconfig-policy-types { |
| |
| yang-version "1"; |
| |
| // namespace |
| namespace "http://openconfig.net/yang/policy-types"; |
| |
| prefix "oc-pol-types"; |
| |
| // import some basic types |
| import ietf-yang-types { prefix yang; } |
| import openconfig-extensions { prefix oc-ext; } |
| |
| // meta |
| 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."; |
| |
| oc-ext:openconfig-version "3.0.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"; |
| } |
| |
| // identity statements |
| |
| 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"; |
| } |
| |
| 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."; |
| //TODO: restriction on enumerated types is only allowed in |
| //YANG 1.1. Until then, we will require this additional 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"; |
| } |
| } |
| |
| 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 { |
| description |
| "Base type for protocols which can 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"; |
| } |
| } |