openconfig-bgp-types

This module contains general data definitions for use in BGP policy. It can be imported by modules that make use of BGP attribut...

  • Version: 2016-06-21

    openconfig-bgp-types@2016-06-21


    
      module openconfig-bgp-types {
    
        yang-version 1;
    
        namespace
          "http://openconfig.net/yang/bgp-types";
    
        prefix oc-bgp-types;
    
        import ietf-inet-types {
          prefix inet;
        }
        import openconfig-types {
          prefix oc-types;
        }
        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 BGP
        policy. It can be imported by modules that make use of BGP
        attributes";
    
        revision "2016-06-21" {
          description "OpenConfig BGP refactor";
          reference
            "2.1.1";
    
        }
    
        oc-ext:openconfig-version "2.1.1";
    
        identity BGP_CAPABILITY {
          description
            "Base identity for a BGP capability";
        }
    
        identity MPBGP {
          base BGP_CAPABILITY;
          description
            "Multi-protocol extensions to BGP";
          reference
            "RFC2858";
    
        }
    
        identity ROUTE_REFRESH {
          base BGP_CAPABILITY;
          description
            "The BGP route-refresh functionality";
          reference
            "RFC2918";
    
        }
    
        identity ASN32 {
          base BGP_CAPABILITY;
          description
            "4-byte (32-bit) AS number functionality";
          reference
            "RFC6793";
    
        }
    
        identity GRACEFUL_RESTART {
          base BGP_CAPABILITY;
          description
            "Graceful restart functionality";
          reference
            "RFC4724";
    
        }
    
        identity ADD_PATHS {
          base BGP_CAPABILITY;
          description "BGP add-paths";
          reference
            "draft-ietf-idr-add-paths";
    
        }
    
        identity AFI_SAFI_TYPE {
          description
            "Base identity type for AFI,SAFI tuples for BGP-4";
          reference
            "RFC4760 - multiprotocol extensions for BGP-4";
    
        }
    
        identity IPV4_UNICAST {
          base AFI_SAFI_TYPE;
          description
            "IPv4 unicast (AFI,SAFI = 1,1)";
          reference
            "RFC4760";
    
        }
    
        identity IPV6_UNICAST {
          base AFI_SAFI_TYPE;
          description
            "IPv6 unicast (AFI,SAFI = 2,1)";
          reference
            "RFC4760";
    
        }
    
        identity IPV4_LABELED_UNICAST {
          base AFI_SAFI_TYPE;
          description
            "Labeled IPv4 unicast (AFI,SAFI = 1,4)";
          reference
            "RFC3107";
    
        }
    
        identity IPV6_LABELED_UNICAST {
          base AFI_SAFI_TYPE;
          description
            "Labeled IPv6 unicast (AFI,SAFI = 2,4)";
          reference
            "RFC3107";
    
        }
    
        identity L3VPN_IPV4_UNICAST {
          base AFI_SAFI_TYPE;
          description
            "Unicast IPv4 MPLS L3VPN (AFI,SAFI = 1,128)";
          reference
            "RFC4364";
    
        }
    
        identity L3VPN_IPV6_UNICAST {
          base AFI_SAFI_TYPE;
          description
            "Unicast IPv6 MPLS L3VPN (AFI,SAFI = 2,128)";
          reference
            "RFC4659";
    
        }
    
        identity L3VPN_IPV4_MULTICAST {
          base AFI_SAFI_TYPE;
          description
            "Multicast IPv4 MPLS L3VPN (AFI,SAFI = 1,129)";
          reference
            "RFC6514";
    
        }
    
        identity L3VPN_IPV6_MULTICAST {
          base AFI_SAFI_TYPE;
          description
            "Multicast IPv6 MPLS L3VPN (AFI,SAFI = 2,129)";
          reference
            "RFC6514";
    
        }
    
        identity L2VPN_VPLS {
          base AFI_SAFI_TYPE;
          description
            "BGP-signalled VPLS (AFI,SAFI = 25,65)";
          reference
            "RFC4761";
    
        }
    
        identity L2VPN_EVPN {
          base AFI_SAFI_TYPE;
          description
            "BGP MPLS Based Ethernet VPN (AFI,SAFI = 25,70)";
        }
    
        identity BGP_WELL_KNOWN_STD_COMMUNITY {
          description
            "Reserved communities within the standard community space
          defined by RFC1997. These communities must fall within the
          range 0x00000000 to 0xFFFFFFFF";
          reference
            "RFC1997";
    
        }
    
        identity NO_EXPORT {
          base BGP_WELL_KNOWN_STD_COMMUNITY;
          description
            "Do not export NLRI received carrying this community outside
          the bounds of this autonomous system, or this confederation if
          the local autonomous system is a confederation member AS. This
          community has a value of 0xFFFFFF01.";
          reference
            "RFC1997";
    
        }
    
        identity NO_ADVERTISE {
          base BGP_WELL_KNOWN_STD_COMMUNITY;
          description
            "All NLRI received carrying this community must not be
          advertised to other BGP peers. This community has a value of
          0xFFFFFF02.";
          reference
            "RFC1997";
    
        }
    
        identity NO_EXPORT_SUBCONFED {
          base BGP_WELL_KNOWN_STD_COMMUNITY;
          description
            "All NLRI received carrying this community must not be
          advertised to external BGP peers - including over confederation
          sub-AS boundaries. This community has a value of 0xFFFFFF03.";
          reference
            "RFC1997";
    
        }
    
        identity NOPEER {
          base BGP_WELL_KNOWN_STD_COMMUNITY;
          description
            "An autonomous system receiving NLRI tagged with this community
          is advised not to readvertise the NLRI to external bi-lateral
          peer autonomous systems. An AS may also filter received NLRI
          from bilateral peer sessions when they are tagged with this
          community value";
          reference
            "RFC3765";
    
        }
    
        typedef bgp-session-direction {
          type enumeration {
            enum "INBOUND" {
              value 0;
              description
                "Refers to all NLRI received from the BGP peer";
            }
            enum "OUTBOUND" {
              value 1;
              description
                "Refers to all NLRI advertised to the BGP peer";
            }
          }
          description
            "Type to describe the direction of NLRI transmission";
        }
    
        typedef bgp-well-known-community-type {
          type identityref {
            base BGP_WELL_KNOWN_STD_COMMUNITY;
          }
          description
            "Type definition for well-known IETF community attribute
          values";
          reference
            "IANA Border Gateway Protocol (BGP) Well Known Communities";
    
        }
    
        typedef bgp-std-community-type {
          type union {
            type uint32 {
              range "65536..4294901759";
            }
            type string {
              pattern '([0-9]+:[0-9]+)';
            }
          }
          description
            "Type definition for standard commmunity attributes";
          reference
            "RFC 1997 - BGP Communities Attribute";
    
        }
    
        typedef bgp-ext-community-type {
          type union {
            type string {
              pattern
                '(6[0-5][0-5][0-3][0-5]|[1-5][0-9]{4}|'
                  + '[1-9][0-9]{1,4}|[0-9]):'
                  + '(4[0-2][0-9][0-4][0-9][0-6][0-7][0-2][0-9][0-6]|'
                  + '[1-3][0-9]{9}|[1-9]([0-9]{1,7})?[0-9]|[1-9])';
            }
            type string {
              pattern
                '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'
                  + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|'
                  + '2[0-4][0-9]|25[0-5]):'
                  + '(6[0-5][0-5][0-3][0-5]|[1-5][0-9]{4}|'
                  + '[1-9][0-9]{1,4}|[0-9])';
            }
            type string {
              pattern
                'route\-target:(6[0-5][0-5][0-3][0-5]|'
                  + '[1-5][0-9]{4}|[1-9][0-9]{1,4}|[0-9]):'
                  + '(4[0-2][0-9][0-4][0-9][0-6][0-7][0-2][0-9][0-6]|'
                  + '[1-3][0-9]{9}|[1-9]([0-9]{1,7})?[0-9]|[1-9])';
            }
            type string {
              pattern
                'route\-target:'
                  + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'
                  + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|'
                  + '2[0-4][0-9]|25[0-5]):'
                  + '(6[0-5][0-5][0-3][0-5]|[1-5][0-9]{4}|'
                  + '[1-9][0-9]{1,4}|[0-9])';
            }
            type string {
              pattern
                'route\-origin:(6[0-5][0-5][0-3][0-5]|'
                  + '[1-5][0-9]{4}|[1-9][0-9]{1,4}|[0-9]):'
                  + '(4[0-2][0-9][0-4][0-9][0-6][0-7][0-2][0-9][0-6]|'
                  + '[1-3][0-9]{9}|[1-9]([0-9]{1,7})?[0-9]|[1-9])';
            }
            type string {
              pattern
                'route\-origin:'
                  + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'
                  + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|'
                  + '2[0-4][0-9]|25[0-5]):'
                  + '(6[0-5][0-5][0-3][0-5]|[1-5][0-9]{4}|'
                  + '[1-9][0-9]{1,4}|[0-9])';
            }
          }
          description
            "Type definition for extended community attributes";
          reference
            "RFC 4360 - BGP Extended Communities Attribute";
    
        }
    
        typedef bgp-community-regexp-type {
          type oc-types:std-regexp;
          description
            "Type definition for communities specified as regular
          expression patterns";
        }
    
        typedef bgp-origin-attr-type {
          type enumeration {
            enum "IGP" {
              value 0;
              description
                "Origin of the NLRI is internal";
            }
            enum "EGP" {
              value 1;
              description
                "Origin of the NLRI is EGP";
            }
            enum "INCOMPLETE" {
              value 2;
              description
                "Origin of the NLRI is neither IGP or EGP";
            }
          }
          description
            "Type definition for standard BGP origin attribute";
          reference
            "RFC 4271 - A Border Gateway Protocol 4 (BGP-4),
            Sec 4.3";
    
        }
    
        typedef peer-type {
          type enumeration {
            enum "INTERNAL" {
              value 0;
              description "internal (iBGP) peer";
            }
            enum "EXTERNAL" {
              value 1;
              description "external (eBGP) peer";
            }
          }
          description
            "labels a peer or peer group as explicitly internal or
          external";
        }
    
        identity REMOVE_PRIVATE_AS_OPTION {
          description
            "Base identity for options for removing private autonomous
          system numbers from the AS_PATH attribute";
        }
    
        identity PRIVATE_AS_REMOVE_ALL {
          base REMOVE_PRIVATE_AS_OPTION;
          description
            "Strip all private autonmous system numbers from the AS_PATH.
          This action is performed regardless of the other content of the
          AS_PATH attribute, and for all instances of private AS numbers
          within that attribute.";
        }
    
        identity PRIVATE_AS_REPLACE_ALL {
          base REMOVE_PRIVATE_AS_OPTION;
          description
            "Replace all instances of private autonomous system numbers in
          the AS_PATH with the local BGP speaker's autonomous system
          number. This action is performed regardless of the other
          content of the AS_PATH attribute, and for all instances of
          private AS number within that attribute.";
        }
    
        typedef remove-private-as-option {
          type identityref {
            base REMOVE_PRIVATE_AS_OPTION;
          }
          description
            "set of options for configuring how private AS path numbers
          are removed from advertisements";
        }
    
        typedef percentage {
          type uint8 {
            range "0..100";
          }
          description
            "Integer indicating a percentage value";
        }
    
        typedef rr-cluster-id-type {
          type union {
            type uint32;
            type inet:ipv4-address;
          }
          description
            "union type for route reflector cluster ids:
          option 1: 4-byte number
          option 2: IP address";
        }
    
        typedef community-type {
          type enumeration {
            enum "STANDARD" {
              value 0;
              description
                "send only standard communities";
            }
            enum "EXTENDED" {
              value 1;
              description
                "send only extended communities";
            }
            enum "BOTH" {
              value 2;
              description
                "send both standard and extended communities";
            }
            enum "NONE" {
              value 3;
              description
                "do not send any community attribute";
            }
          }
          description
            "type describing variations of community attributes:
          STANDARD: standard BGP community [rfc1997]
          EXTENDED: extended BGP community [rfc4360]
          BOTH: both standard and extended community";
        }
      }  // module openconfig-bgp-types
    

© 2023 YumaWorks, Inc. All rights reserved.