ietf-pim-sm

This YANG module defines a PIM (Protocol Independent Multicast) SM (Sparse Mode) model. Copyright (c) 2022 IETF Trust and the p...

  • Version: 2022-10-19

    ietf-pim-sm@2022-10-19


    
      module ietf-pim-sm {
    
        yang-version 1.1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-pim-sm";
    
        prefix pim-sm;
    
        import ietf-inet-types {
          prefix inet;
          reference
            "RFC 6991: Common YANG Data Types";
    
    
        }
        import ietf-routing {
          prefix rt;
          reference
            "RFC 8349: A YANG Data Model for Routing Management (NMDA
            Version)";
    
    
        }
        import ietf-pim-base {
          prefix pim-base;
          reference
            "RFC 9128: A YANG Data Model for Protocol Independent
            Multicast (PIM)";
    
    
        }
        import ietf-pim-rp {
          prefix pim-rp;
          reference
            "RFC 9128: A YANG Data Model for Protocol Independent
            Multicast (PIM)";
    
    
        }
    
        organization "IETF PIM Working Group";
    
        contact
          "WG Web:   <https://datatracker.ietf.org/wg/pim/>
         WG List:  <mailto:pim@ietf.org>
    
         Editor:   Xufeng Liu
                   <mailto:xufeng.liu.ietf@gmail.com>
    
         Editor:   Pete McAllister
                   <mailto:pete.mcallister@metaswitch.com>
    
         Editor:   Anish Peter
                   <mailto:anish.ietf@gmail.com>
    
         Editor:   Mahesh Sivakumar
                   <mailto:sivakumar.mahesh@gmail.com>
    
         Editor:   Yisong Liu
                   <mailto:liuyisong@chinamobile.com>
    
         Editor:   Fangwei Hu
                   <mailto:hufwei@gmail.com>";
    
        description
          "This YANG module defines a PIM (Protocol Independent Multicast)
         SM (Sparse Mode) model.
    
         Copyright (c) 2022 IETF Trust and the persons identified as
         authors of the code.  All rights reserved.
    
         Redistribution and use in source and binary forms, with or
         without modification, is permitted pursuant to, and subject to
         the license terms contained in, the Revised BSD License set
         forth in Section 4.c of the IETF Trust's Legal Provisions
         Relating to IETF Documents
         (https://trustee.ietf.org/license-info).
    
         This version of this YANG module is part of RFC 9128; see the
         RFC itself for full legal notices.";
    
        revision "2022-10-19" {
          description "Initial revision.";
          reference
            "RFC 9128: A YANG Data Model for Protocol Independent
            Multicast (PIM)";
    
        }
    
    
        feature spt-switch-infinity {
          description
            "This feature indicates that the system supports the
           configuration choice of whether to trigger switchover from
           the RPT (Rendezvous Point Tree) to the SPT (Shortest Path
           Tree).";
          reference
            "RFC 7761: Protocol Independent Multicast - Sparse Mode
            (PIM-SM): Protocol Specification (Revised), Section 4.2";
    
        }
    
        feature spt-switch-policy {
          description
            "This feature indicates that the system supports configuring
           the policy for switchover from the RPT to the SPT.";
          reference
            "RFC 7761: Protocol Independent Multicast - Sparse Mode
            (PIM-SM): Protocol Specification (Revised), Section 4.2";
    
        }
    
        identity rp-sm {
          base pim-rp:rp-mode;
          description "SM (Sparse Mode).";
        }
    
        grouping static-rp-sm-container {
          description
            "Grouping that contains SM attributes for static RPs.";
          container sm {
            presence
              "Indicates support for PIM-SM.";
            description
              "PIM-SM configuration data.";
            uses pim-rp:static-rp-attributes;
          }  // container sm
        }  // grouping static-rp-sm-container
    
        augment /rt:routing/rt:control-plane-protocols/pim-base:pim/pim-base:address-family {
          description "PIM-SM augmentation.";
          container sm {
            description
              "PIM-SM configuration data.";
            container asm {
              description
                "ASM (Any-Source Multicast) attributes.";
              container anycast-rp {
                presence
                  "Present to enable an Anycast-RP
                        (Rendezvous Point).";
                description
                  "Anycast-RP attributes.";
                list ipv4-anycast-rp {
                  when
                    "../../../../pim-base:address-family = 'rt:ipv4'" {
                    description
                      "Only applicable to an IPv4 address family.";
                  }
                  key "anycast-address rp-address";
                  description
                    "A list of IPv4 Anycast-RP settings.  Only applicable
                   when 'pim-base:address-family' is IPv4.";
                  leaf anycast-address {
                    type inet:ipv4-address;
                    description
                      "IP address of the Anycast-RP set.  This IP address
                     is used by the multicast groups or sources to join
                     or register.";
                  }
    
                  leaf rp-address {
                    type inet:ipv4-address;
                    description
                      "IP address of the router configured with an
                     Anycast-RP.  This is the IP address where the
                     Register messages are forwarded.";
                  }
                }  // list ipv4-anycast-rp
    
                list ipv6-anycast-rp {
                  when
                    "../../../../pim-base:address-family = 'rt:ipv6'" {
                    description
                      "Only applicable to an IPv6 address family.";
                  }
                  key "anycast-address rp-address";
                  description
                    "A list of IPv6 Anycast-RP settings.  Only applicable
                   when 'pim-base:address-family' is IPv6.";
                  leaf anycast-address {
                    type inet:ipv6-address;
                    description
                      "IP address of the Anycast-RP set.  This IP address
                     is used by the multicast groups or sources to join
                     or register.";
                  }
    
                  leaf rp-address {
                    type inet:ipv6-address;
                    description
                      "IP address of the router configured with an
                     Anycast-RP.  This is the IP address where the
                     Register messages are forwarded.";
                  }
                }  // list ipv6-anycast-rp
              }  // container anycast-rp
    
              container spt-switch {
                description
                  "SPT (Shortest Path Tree) switching attributes.";
                container infinity {
                  if-feature spt-switch-infinity;
                  presence
                    "Present if the SPT switchover threshold is set
                          to infinity, according to the policy specified
                          below.";
                  description
                    "The receiver's DR (Designated Router) never triggers
                   switchover from the RPT to the SPT.";
                  leaf policy-name {
                    if-feature spt-switch-policy;
                    type string;
                    description
                      "The string value is the name to uniquely identify a
                     policy that contains one or more policy rules used
                     to accept or reject certain multicast groups.
                     The groups accepted by this policy have the SPT
                     switchover threshold set to infinity, meaning that
                     they will stay on the shared tree forever.
                     If a policy is not specified, the entire multicast
                     address space is accepted.
                     The definition of such a policy is outside the scope
                     of this document.";
                  }
                }  // container infinity
              }  // container spt-switch
            }  // container asm
    
            container ssm {
              presence
                "Present to enable SSM (Source-Specific
                      Multicast).";
              description "SSM attributes.";
              leaf range-policy {
                type string;
                description
                  "The string value is the name to uniquely identify a
                 policy that contains one or more policy rules used
                 to accept or reject certain multicast groups.
                 The groups accepted by this policy define the multicast
                 group range used by SSM.
                 If a policy is not specified, the default SSM multicast
                 group range is used.
                 The default SSM multicast group range is 232.0.0.0/8
                 for IPv4 and ff3x::/96 for IPv6, where x represents any
                 valid scope identifier.
                 The definition of such a policy is outside the scope
                 of this document.";
                reference
                  "RFC 4607: Source-Specific Multicast for IP";
    
              }
            }  // container ssm
          }  // container sm
        }
    
        augment /rt:routing/rt:control-plane-protocols/pim-base:pim/pim-base:interfaces/pim-base:interface/pim-base:address-family {
          description "PIM-SM augmentation.";
          container sm {
            presence "Present to enable PIM-SM.";
            description
              "PIM-SM configuration data.";
            leaf passive {
              type empty;
              description
                "Specifies that no PIM messages are sent or accepted on
               this PIM interface, but the interface can be included in a
               multicast forwarding entry.";
            }
          }  // container sm
        }
    
        augment /rt:routing/rt:control-plane-protocols/pim-base:pim/pim-base:address-family/pim-rp:rp/pim-rp:static-rp/pim-rp:ipv4-rp {
          description "PIM-SM augmentation.";
          uses static-rp-sm-container;
        }
    
        augment /rt:routing/rt:control-plane-protocols/pim-base:pim/pim-base:address-family/pim-rp:rp/pim-rp:static-rp/pim-rp:ipv6-rp {
          description "PIM-SM augmentation.";
          uses static-rp-sm-container;
        }
      }  // module ietf-pim-sm
    

© 2023 YumaWorks, Inc. All rights reserved.