pim

The YANG-module for Protocol Independent Multicast (PIM). The module defines configuration and operational data for the followi...

  • Version: 2019-07-01

    pim@2019-07-01


    
      module pim {
    
        yang-version 1;
    
        namespace
          "urn:cisco:params:xml:ns:yang:pim";
    
        prefix pim;
    
        import cisco-semver {
          prefix cisco-semver;
        }
    
        organization
          "
    Cisco Systems, Inc.
    ";
    
        contact
          "
    Cisco Systems, Inc.
    Customer Service
    
    Postal: 170 W Tasman Drive
     San Jose, CA 95134
    
    Tel: +1 1800 553-NETS
    
    E-mail: cs-yang@cisco.com
    ";
    
        description
          "
    The YANG-module for Protocol Independent Multicast (PIM).
    The module defines configuration and operational data
    for the following features:
    PIM Sparse Mode (PIM-SM)
    PIM Source-Specific Multicast (PIM-SSM)
    Bidirectional PIM (Bidir-PIM)
    Anycast-RP for PIM
    Bootstrap Router (BSR)  for PIM
    PIM Dense Mode (PIM-DM)
    Auto-RP - Cisco-propriatary";
    
        revision "2019-07-01" {
          description
            "Establish semantic version baseline";
        }
    
        revision "2014-06-27" {
          description "v1.0";
        }
    
        cisco-semver:module-version "1.0.0";
    
        feature auto-rp {
          description
            "Auto-RP is a Cisco-developed solution to create dynamic
    group-to-RP-mappings. It is the predecessor of the BSR Mechanism for PIM.";
        }
    
        feature bsr {
          description
            "Bootstrap Router (BSR) Mechanism as defined in RFC5059";
        }
    
        identity group-to-rp-mapping-mode {
          description
            "The base-type for a PIM-mode giving context to a group-to-rp-mapping.";
        }
    
        identity dm-mapping-mode {
          base group-to-rp-mapping-mode;
          description
            "The mapping is for Dense Mode.";
        }
    
        identity sm-mapping-mode {
          base group-to-rp-mapping-mode;
          description
            "The mapping is for Sparse Mode.";
        }
    
        identity pim-bidir-mapping-mode {
          base group-to-rp-mapping-mode;
          description
            "The mapping is for Bidirectional PIM.";
        }
    
        identity ssm-mapping-mode {
          base group-to-rp-mapping-mode;
          description
            "The mapping is for Source Specific Mode.";
        }
    
        identity asm-mapping-mode {
          base group-to-rp-mapping-mode;
          description
            "The mapping is for Any-Source Multicast (ASM) with PIM Sparse Mode.";
        }
    
        identity other-mapping-mode {
          base group-to-rp-mapping-mode;
          description
            "None of the available modes.";
        }
    
        typedef Route-protocol-type {
          type enumeration {
            enum "other" {
              value 1;
            }
            enum "local" {
              value 2;
            }
            enum "netmgmt" {
              value 3;
            }
            enum "icmp" {
              value 4;
            }
            enum "egp" {
              value 5;
            }
            enum "ggp" {
              value 6;
            }
            enum "hello" {
              value 7;
            }
            enum "rip" {
              value 8;
            }
            enum "isIs" {
              value 9;
            }
            enum "esIs" {
              value 10;
            }
            enum "ciscoIgrp" {
              value 11;
            }
            enum "bbnSpfIgp" {
              value 12;
            }
            enum "ospf" {
              value 13;
            }
            enum "bgp" {
              value 14;
            }
            enum "idpr" {
              value 15;
            }
            enum "ciscoEigrp" {
              value 16;
            }
            enum "dvmrp" {
              value 17;
            }
          }
          description
            "A mechanism for learning routes.  Inclusion of values for
    routing protocols is not intended to imply that those
    protocols need be supported.";
        }
    
        typedef Mroute-protocol-type {
          type enumeration {
            enum "other" {
              value 1;
            }
            enum "local" {
              value 2;
            }
            enum "netmgmt" {
              value 3;
            }
            enum "dvmrp" {
              value 4;
            }
            enum "mospf" {
              value 5;
            }
            enum "pimSparseDense" {
              value 6;
            }
            enum "cbt" {
              value 7;
            }
            enum "pimSparseMode" {
              value 8;
            }
            enum "pimDenseMode" {
              value 9;
            }
            enum "igmpOnly" {
              value 10;
            }
            enum "bgmp" {
              value 11;
            }
            enum "msdp" {
              value 12;
            }
          }
          description
            "The multicast routing protocol.  Inclusion of values for
    multicast routing protocols is not intended to imply that
    those protocols need be supported.";
        }
    
        typedef Pim-mode {
          type enumeration {
            enum "sparse" {
              value 1;
              description
                "PIM sparse mode enabled on interface";
            }
            enum "dense" {
              value 2;
              description
                "PIM dense mode enable on interface.";
            }
            enum "sparse-dense" {
              value 3;
              description
                "PIM dense mode enable on interface.";
            }
            enum "dm-proxy" {
              value 4;
              description
                "PIM dense mode enable on interface.";
            }
            enum "none" {
              value 5;
              description
                "PIM dense mode enable on interface.";
            }
          }
          description
            "PIM mode active on an interface.";
        }
    
        typedef Origin {
          type enumeration {
            enum "other-origin" {
              value 1;
              description
                "The state's origin is none of the available sources or it is unknown.";
            }
            enum "pim-request" {
              value 2;
              description
                "PIM-request-states are learned by PIM joins (between PIM-routers).";
            }
            enum "ssm-request" {
              value 3;
              description
                "SSM-Request-states are learned by SSM channel subscription, e.g., through
    IGMP3 (primarily only on last-hop-routers, although routers within the domain can keep
    this origin-type
    ).";
            }
            enum "fixed" {
              value 4;
              description
                "Fixed states are created automatically by the router at startup, to
    correspond to the well-defined prefixes of link-local and unroutable group addresses.
    These states are never destroyed.";
            }
            enum "embedded" {
              value 5;
              description
                "Embedded states are created by the router to correspond to group
    prefixes that are to be treated as being in Embedded-RP format.";
            }
            enum "static" {
              value 6;
              description
                "Static states are created and destroyed as a result of static configuration.";
            }
            enum "config-ssm" {
              value 7;
              description
                "Config-SSM states are created and destroyed as a result of configuration
    of SSM address ranges to the local router.";
            }
            enum "auto-rp" {
              value 8;
              description
                "Auto-RP states are created as a result of running Cisco's Auto-RP mechanism.";
            }
            enum "bsr" {
              value 9;
              description
                "BSR states are created as a result of running the PIM Bootstrap Router
    (BSR) mechanism.";
            }
            enum "msdp" {
              value 10;
              description
                "MSDP states are (*, G)-entries learned through a Multicast Source Discovery
    Protocol (MSDP) peer. This origin is applicable only for an RP running MSDP. ";
            }
          }
          description
            "This type  verify all uses of origin in model describes where a state was learned.";
        }
    
        typedef IP-Multicast-Group-Address {
          type union {
            type IPv4-Multicast-Group-Address;
            type IPv6-Multicast-Group-Address;
          }
          description
            "The IP-Multicast-Group-Address type represents an IP multicast address and is
    IP version neutral. The format of the textual representations implies the IP version.";
        }
    
        typedef IPv4-Multicast-Group-Address {
          type string {
            pattern
              '(2((2[4-9])|(3[0-9]))\.)(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
          }
          description
            "The IPv4-Multicast-Group-Address type represents an IPv4 multicast address in
    dotted-quad notation.";
          reference
            "RFC4607";
    
        }
    
        typedef IPv6-Multicast-Group-Address {
          type string {
            pattern
              '(((FF|ff)[0-9a-fA-F]{2}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))';
            pattern
              '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)';
          }
          description
            "The IPv6-Multicast-Group-Address type represents an IPv6 address in full,
    mixed, shortened, and shortened-mixed notation.";
          reference
            "RFC4291 2.7.
            ietf-inet-types:ipv6-address";
    
        }
    
        typedef IP-Multicast-Group-Address-Prefix {
          type union {
            type IPv4-Multicast-Group-Address-Prefix;
            type IPv6-Multicast-Group-Address-Prefix;
          }
          description
            "The IP-Multicast-Group-Address-Prefix type represents an IP multicast address
    prefix and is IP version neutral. The format of the textual representations implies the IP
    version. It includes a prefix-length, separated by a '/' sign.";
        }
    
        typedef IPv4-Multicast-Group-Address-Prefix {
          type string {
            pattern
              '(2((2[4-9])|(3[0-9]))\.)(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(/(([4-9])|([1-2][0-9])|(3[0-2])))';
          }
          description
            "The IPv4-Multicast-Group-Address-Prefix type represents an IPv4 multicast
    address prefix in dotted-quad notation. It includes a prefix-length, separated by a '/' sign.";
          reference
            "RFC4607";
    
        }
    
        typedef IPv6-Multicast-Group-Address-Prefix {
          type string {
            pattern
              '(((FF|ff)[0-9a-fA-F]{2}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(/((1[6-9])|([2-9][0-9])|(1[0-1][0-9])|(12[0-8])))';
            pattern
              '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)';
          }
          description
            "The IPv6-Multicast-Group-Address-Prefix type represents an IPv6 multicast address
    prefix in full, mixed, shortened, and shortened-mixed notation. It includes a prefix-length, separated by a '/' sign.";
          reference
            "RFC4291 2.7.
            
            ietf-inet-types:ipv6-address";
    
        }
    
        typedef IP-SSM-Group-Address {
          type union {
            type IPv4-SSM-Group-Address;
            type IPv6-SSM-Group-Address;
          }
          description
            "The IP-SSM-Group-Address type represents an IP Source-Specific multicast
    address and is IP version neutral. The format of the textual representations implies the IP version.";
        }
    
        typedef IPv4-SSM-Group-Address {
          type string {
            pattern
              '(232\.)(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
          }
          description
            "The IPv4-SSM-Group-Address type represents an IPv4 Source-Specific multicast
    address in dotted-quad notation.
    IPv4 addresses in the 232/8 range are designated as SSM.";
          reference
            "RFC4607
            IANA IPv4 Multicast Address Space Registry";
    
        }
    
        typedef IPv6-SSM-Group-Address {
          type string {
            pattern
              '((FF3|ff3)([0-9a-fA-F]{1}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))';
            pattern
              '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)';
          }
          description
            "The IPv6-SSM-Group-Address type represents an IPv6 Source-Specific
    multicast group address in shortened and shortened-mixed notation.";
          reference
            "RFC4607";
    
        }
      }  // module pim
    

© 2023 YumaWorks, Inc. All rights reserved.