netconfcentral logo

openconfig-policy-types@2018-11-21



  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