ietf-pim-base

The module defines a collection of YANG definitions common for all PIM (Protocol Independent Multicast) modes.

  • Version: 2017-03-09

    ietf-pim-base@2017-03-09


    
      module ietf-pim-base {
    
        yang-version 1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-pim-base";
    
        prefix pim-base;
    
        import ietf-inet-types {
          prefix inet;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import ietf-routing-types {
          prefix rt-types;
        }
        import ietf-interfaces {
          prefix if;
        }
        import ietf-routing {
          prefix rt;
        }
    
        organization "IETF PIM Working Group";
    
        contact
          "WG Web:   <http://tools.ietf.org/wg/pim/>
         WG List:  <mailto:pim@ietf.org>
         WG Chair: Stig Venaas
                   <mailto:stig@venaas.com>
         WG Chair: Mike McBride
                   <mailto:mmcbride7@gmail.com>
         Editor:   Xufeng Liu
                   <mailto:Xufeng_Liu@jabil.com>
         Editor:   Pete McAllister
                   <mailto:pete.mcallister@metaswitch.com>
         Editor:   Anish Peter
                   <mailto:anish.ietf@gmail.com>
         Editor:   Mahesh Sivakumar
                   <mailto:masivaku@cisco.com>
         Editor:   Yisong Liu
                   <mailto:liuyisong@huawei.com>
         Editor:   Fangwei Hu
                   <mailto:hu.fangwei@zte.com.cn>";
    
        description
          "The module defines a collection of YANG definitions common for
         all PIM (Protocol Independent Multicast) modes.";
    
        revision "2017-03-09" {
          description "Initial revision.";
          reference
            "RFC XXXX: A YANG Data Model for PIM";
    
        }
    
    
        feature bfd {
          description
            "Support BFD (Bidirectional Forwarding Detection).";
        }
    
        feature global-graceful-restart {
          description
            "Global configuration for graceful restart support as per
           RFC5306.";
        }
    
        feature intf-dr-priority {
          description
            "Support configuration of interface DR (Designated Router)
           priority.";
        }
    
        feature intf-hello-holdtime {
          description
            "Support configuration of interface hello holdtime.";
        }
    
        feature intf-hello-interval {
          description
            "Support configuration of interface hello interval.";
        }
    
        feature intf-hello-multiplier {
          description
            "Support configuration of interface hello multiplier.";
        }
    
        feature intf-jp-interval {
          description
            "Support configuration of interface join prune interval.";
        }
    
        feature intf-jp-holdtime {
          description
            "Support configuration of interface join prune holdtime.";
        }
    
        feature intf-jp-multiplier {
          description
            "Support configuration of interface join prune multiplier.";
        }
    
        feature intf-propagation-delay {
          description
            "Support configuration of interface propagation delay.";
        }
    
        feature intf-override-interval {
          description
            "Support configuration of interface override interval.";
        }
    
        feature per-af-graceful-restart {
          description
            "Per address family configuration for graceful restart support
           as per RFC5306.";
        }
    
        typedef interface-event-type {
          type enumeration {
            enum "up" {
              value 0;
              description
                "Neighbor status changed to up.";
            }
            enum "down" {
              value 1;
              description
                "Neighbor status changed to down.";
            }
            enum "new-dr" {
              value 2;
              description
                "A new DR (Designated Router) was elected on the connected
               network.";
            }
            enum "new-df" {
              value 3;
              description
                "A new DF (Designated Forwarder) was elected on the
               connected network.";
            }
          }
          description
            "Operational status event type for notifications.";
        }
    
        typedef neighbor-event-type {
          type enumeration {
            enum "up" {
              value 0;
              description
                "Neighbor status changed to up.";
            }
            enum "down" {
              value 1;
              description
                "Neighbor status changed to down.";
            }
          }
          description
            "Operational status event type for notifications.";
        }
    
        typedef pim-mode {
          type enumeration {
            enum "none" {
              value 0;
              description
                "PIM is not operating.";
            }
            enum "ssm" {
              value 1;
              description
                "PIM operates in the Sparse Mode with Source-Specific
               Multicast (SSM).";
            }
            enum "asm" {
              value 2;
              description
                "PIM operates in the Sparse Mode with Any Source Multicast
               (ASM).";
            }
            enum "bidir" {
              value 3;
              description
                "PIM operates in the Bidirectional Mode.";
            }
            enum "dm" {
              value 4;
              description
                "PIM operates in the Dense Mode (DM).";
            }
            enum "other" {
              value 5;
              description
                "PIM operates in any other mode.";
            }
          }
          description
            "The PIM mode in which a group is operating.";
        }
    
        typedef timer-value {
          type rt-types:timer-value-seconds16;
          description "Timer value type.";
        }
    
        notification pim-neighbor-event {
          description
            "Notification event for neighbor.";
          leaf event-type {
            type neighbor-event-type;
            description "Event type.";
          }
    
          leaf interface-state-ref {
            type leafref {
              path "/rt:routing-state/rt:control-plane-protocols/pim-base:pim/pim-base:interfaces/pim-base:interface/pim-base:interface";
            }
            description
              "Reference to a PIM interface.";
          }
    
          leaf interface-af-state-ref {
            type leafref {
              path "/rt:routing-state/rt:control-plane-protocols/pim-base:pim/pim-base:interfaces/pim-base:interface[pim-base:interface = current()/../interface-state-ref]/pim-base:address-family/pim-base:address-family";
            }
            description
              "Reference to a PIM interface address family.";
          }
    
          leaf neighbor-ipv4-state-ref {
            when
              "../interface-af-state-ref = 'rt:ipv4'" {
              description
                "Only applicable to IPv4 address family.";
            }
            type leafref {
              path "/rt:routing-state/rt:control-plane-protocols/pim-base:pim/pim-base:interfaces/pim-base:interface[pim-base:interface = current()/../interface-state-ref]/pim-base:address-family[pim-base:address-family = current()/../interface-af-state-ref]/pim-base:neighbor-ipv4/pim-base:address";
            }
            description
              "Reference to a PIM IPv4 neighbor.";
          }
    
          leaf neighbor-ipv6-state-ref {
            when
              "../interface-af-state-ref = 'rt:ipv6'" {
              description
                "Only applicable to IPv6 address family.";
            }
            type leafref {
              path "/rt:routing-state/rt:control-plane-protocols/pim-base:pim/pim-base:interfaces/pim-base:interface[pim-base:interface = current()/../interface-state-ref]/pim-base:address-family[pim-base:address-family = current()/../interface-af-state-ref]/pim-base:neighbor-ipv6/pim-base:address";
            }
            description
              "Reference to a PIM IPv6 neighbor.";
          }
    
          leaf up-time {
            type uint32;
            units "seconds";
            description "Up time duration.";
          }
        }  // notification pim-neighbor-event
    
        notification pim-interface-event {
          description
            "Notification event for interface.";
          leaf event-type {
            type interface-event-type;
            description "Event type.";
          }
    
          leaf interface-state-ref {
            type leafref {
              path "/rt:routing-state/rt:control-plane-protocols/pim-base:pim/pim-base:interfaces/pim-base:interface/pim-base:interface";
            }
            description
              "Reference to a PIM interface.";
          }
    
          container ipv4 {
            description
              "Containing IPv4 information.";
            leaf-list address {
              type inet:ipv4-address;
              description "List of addresses.";
            }
    
            leaf dr-address {
              type inet:ipv4-address;
              description
                "DR (Designated Router) address.";
            }
          }  // container ipv4
    
          container ipv6 {
            description
              "Containing IPv6 information.";
            leaf-list address {
              type inet:ipv6-address;
              description "List of addresses.";
            }
    
            leaf dr-address {
              type inet:ipv6-address;
              description
                "DR (Designated Router) address.";
            }
          }  // container ipv6
        }  // notification pim-interface-event
      }  // module ietf-pim-base
    

© 2023 YumaWorks, Inc. All rights reserved.