bbf-icmpv6

This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on subscriber management v...

  • Version: 2023-12-15

    bbf-icmpv6@2023-12-15


    
      module bbf-icmpv6 {
    
        yang-version 1.1;
    
        namespace "urn:bbf:yang:bbf-icmpv6";
    
        prefix bbf-icmpv6;
    
        import ietf-interfaces {
          prefix if;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import bbf-if-type {
          prefix bbfift;
        }
        import bbf-icmpv6-profile-common {
          prefix bbf-icmpv6-pc;
        }
    
        organization
          "Broadband Forum <https://www.broadband-forum.org>
         Common YANG Work Area";
    
        contact
          "Comments or questions about this Broadband Forum YANG module
         should be directed to <mailto:help@broadband-forum.org>.
    
         Editor:      Nick Hancock, Adtran
    
         Editor:      Ludwig Pauwels, Nokia
    
         PS Leader:   Joey Boyd, Adtran
    
         WA Director: Joey Boyd, Adtran
    
         WA Director: Sven Ooghe, Nokia";
    
        description
          "This module contains a collection of YANG definitions for
         supporting the Broadband Forum requirements on subscriber
         management via the Internet Control Message Protocol version 6
         (ICMPv6) as applicable to access network equipment. As such, this
         module is specific to access network equipment (e.g.,
         BBF-specified Access Nodes and FTTdp DPUs).
    
         The functionality to realize BBF's ICMPv6 protocol requirements
         is called 'ICMPv6 Relay'.
    
         Copyright (c) 2017-2023, Broadband Forum
    
         Redistribution and use in source and binary forms, with or
         without modification, are permitted provided that the following
         conditions are met:
    
         1. Redistributions of source code must retain the above copyright
            notice, this list of conditions and the following disclaimer.
    
         2. Redistributions in binary form must reproduce the above
            copyright notice, this list of conditions and the following
            disclaimer in the documentation and/or other materials
            provided with the distribution.
    
         3. Neither the name of the copyright holder nor the names of its
            contributors may be used to endorse or promote products
            derived from this software without specific prior written
            permission.
    
         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
         CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
         INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
         MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
         DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
         CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
         SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
         NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
         LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
         CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
         STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
         ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
         ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    
         The above license is used as a license under copyright only.
         Please reference the Forum IPR Policy for patent licensing terms
         <https://www.broadband-forum.org/ipr-policy>.
    
         Any moral rights which are necessary to exercise under the above
         license grant are also deemed granted under this license.
    
         This version of this YANG module is part of TR-383a7; see
         the TR itself for full legal notices.";
    
        revision "2023-12-15" {
          description
            "Amendment 7.
           * Approval Date:    2023-12-15.
           * Publication Date: 2023-12-15.";
          reference
            "TR-383a7: Common YANG Modules
            	  <https://www.broadband-forum.org/technical/download/
            		   TR-383_Amendment-7.pdf>";
    
        }
    
    
        grouping counters {
          description
            "Defines counter parameters.";
          leaf forwarded-messages {
            type yang:counter32;
            description
              "Number of messages forwarded.";
          }
    
          leaf discarded-messages {
            type yang:counter32;
            description
              "Number of messages discarded.";
          }
        }  // grouping counters
    
        grouping icmpv6-counters {
          description
            "Defines ICMPv6 statistics parameters.";
          container router-solicitation {
            description
              "ICMPv6 Router Solicitation statistics.";
            reference
              "TR-177 R-17";
    
            uses counters;
          }  // container router-solicitation
    
          container router-advertisement {
            description
              "ICMPv6 Router Advertisement statistics.";
            reference
              "TR-177 R-18";
    
            uses counters;
          }  // container router-advertisement
    
          container neighbor-advertisement {
            description
              "ICMPv6 Neighbor Advertisement statistics.";
            reference
              "TR-177 Section 5.6.2.4";
    
            uses counters;
          }  // container neighbor-advertisement
    
          container neighbor-solicitation {
            description
              "ICMPv6 Neighbor Solicitation statistics.";
            reference
              "TR-177 Section 5.6.2.3";
    
            uses counters;
          }  // container neighbor-solicitation
    
          container router-redirect {
            description
              "ICMPv6 Redirect Message statistics.";
            reference
              "TR-177 R-19";
    
            uses counters;
          }  // container router-redirect
    
          container multicast-listener-query {
            description
              "ICMPv6 Multicast Listener Query statistics.";
            reference
              "TR-177 R-20";
    
            uses counters;
          }  // container multicast-listener-query
    
          container error-message {
            description
              "Aggregate count of the following ICMPv6 error messages:
             Type 1 - Destination Unreachable
             Type 2 - Message Too Big
             Type 3 - Time Exceeded
             Type 4 - Parameter Problem.";
            reference
              "TR-177 Section 5.6.2";
    
            uses counters;
          }  // container error-message
    
          container informational-message {
            description
              "Aggregate count of the following ICMPv6 informational
             messages:
             Type 128 - Echo Request
             Type 129 - Echo Reply.";
            reference
              "TR-177 Section 5.6.2";
    
            uses counters;
          }  // container informational-message
    
          container unknown-message {
            description
              "ICMPv6 invalid message statistics, i.e., ICMPv6 messages with
             an unknown type.";
            reference
              "TR-177 R-13";
    
            uses counters;
          }  // container unknown-message
        }  // grouping icmpv6-counters
    
        uses bbf-icmpv6-pc:icmpv6-profiles;
    
        augment /if:interfaces/if:interface {
          when
            "derived-from-or-self (if:type, 'bbfift:vlan-sub-interface')" {
            description
              "Applies to VLAN sub-interfaces.";
          }
          description
            "Additions for ICMPv6 message processing on the VLAN
           sub-interface.";
          container icmpv6 {
            presence
              "Indicates configuration related to ICMPv6 message processing
             is present on this interface.";
            description
              "ICMPv6 Relay configuration parameters.
    
             Configuration within this container instantiates (or may
             instantiate, see leaf 'enabled') an ICMPv6 Relay with a
             behavior based on the additional configuration contained
             within this container.
    
             If the container is not present, no ICMPv6 Relay
             functionality is performed on this interface. Any received
             ICMPv6 message is processed based on the layer 2
             configuration, e.g., VLAN sub-interface and/or layer 2
             forwarding.";
            leaf enabled {
              type union {
                type boolean;
                type enumeration {
                  enum "secured-host" {
                    value 0;
                    description
                      "Upstream ICMPv6 messages that can be sent by a host
                     are forwarded. Messages that can be sent only by a
                     router are discarded. Discarded messages are:
                     - Router Advertisement
                     - Redirect
                     - MLD query messages.
    
                     Downstream ICMPv6 messages that could reveal data of
                     one user to another shall be sent to the right user
                     only or shall be discarded. For example, the
                     multicast Neighbor Solicitation message sent to
                     resolve a user's IP address to a MAC address shall be
                     discarded.";
                  }
                }
              }
              default "false";
              description
                "If 'true', the ICMPv6 Relay will process ICMPv6 messages
               received on the interface as defined in the referenced
               Technical Report:
               - Discard messages that are only sent by routers, i.e.,
                 Router Advertisement, Redirect, MLD Query messages.
               - Relay the received Router Solicitation within a new IPv6
                 datagram and insert a LIO.
               - Forward other ICMPv6 messages as normal layer 2 frames.
    
               The downstream IPv6 datagram received as a reply will be
               unpacked and the Router Advertisement message included
               within will be sent on the interface identified by the LIO.
    
               Downstream ICMPv6 messages that can come from a router are
               forwarded, Downstream ICMPv6 messages that can come only
               from a host, i.e., the Router Solicitation message, shall
               be discarded (if it reaches the VLAN sub-interface).
    
               If 'false', no ICMPv6 Relay functionality is performed on
               this interface. Received ICMPv6 messages are processed
               based on the layer 2 configuration, e.g., VLAN
               sub-interface and/or layer 2 forwarding.
    
               Otherwise, the ICMPv6 Relay will forward messages as
               defined in the selected enumeration.";
              reference
                "TR-177 R-17;
                TR-177 R-18;
                TR-177 R-19;
                TR-177 R-20";
    
            }
    
            leaf unknown-type-processing {
              type enumeration {
                enum "forward" {
                  value 0;
                  description
                    "ICMPv6 messages with a type unknown to the device are
                   processed based on the layer 2 forwarding
                   configuration.";
                }
                enum "discard" {
                  value 1;
                  description
                    "ICMPv6 messages with a type unknown to the device are
                   discarded.";
                }
              }
              default "forward";
              description
                "Manages how to process ICMPv6 messages with a type unknown
               to the device.";
              reference
                "TR-177 R-13";
    
            }
    
            leaf profile-ref {
              when "../enabled = 'true'" {
                description
                  "Applicable only when ICMPv6 Relay functionality is
                 enabled.";
              }
              if-feature bbf-icmpv6-pc:relay-with-lio;
              type leafref {
                path "/bbf-icmpv6:icmpv6-profiles/bbf-icmpv6:icmpv6-profile/bbf-icmpv6:name";
              }
              mandatory true;
              description
                "Reference to the ICMPv6 configuration profile.";
            }
          }  // container icmpv6
        }
    
        augment /if:interfaces-state/if:interface/if:statistics {
          when
            "derived-from-or-self (../if:type, "
              + "                      'bbfift:vlan-sub-interface')" {
            description
              "Applies only to VLAN sub-interfaces.";
          }
          description
            "Add state data for ICMPv6 message processing statistics on
           VLAN sub-interfaces.
    
           Note that the model provides a rather complete set of optional
           statistics. This does not turn the support of these statistics
           into a requirement. For example, if certain ICMPv6 messages are
           forwarded at layer 2 then such messages might not be counted.";
          container icmpv6 {
            presence
              "ICMPv6 statistics are available.";
            description
              "Container presents the message statistics related to the
             ICMPv6 Relay.";
            container upstream {
              description
                "Upstream ICMPv6 Relay statistics.";
              uses icmpv6-counters;
            }  // container upstream
    
            container downstream {
              description
                "Downstream ICMPv6 Relay statistics.";
              uses icmpv6-counters;
            }  // container downstream
          }  // container icmpv6
        }
      }  // module bbf-icmpv6
    

© 2023 YumaWorks, Inc. All rights reserved.