PIM Working Group                                               H. Zhao
Internet Draft                                                 Ericsson
Intended status: Standards Track                                 X. Liu
Expires: July 04, 2023                                  IBM Corporation
                                                                 Y. Liu
                                                           China Mobile
                                                        M. Panchanathan
                                                          Cisco Systems
                                                           M. Sivakumar
                                                                Juniper



                                                       January 05, 2023



                   A YANG Data Model for IGMP/MLD Proxy
                   draft-ietf-pim-igmp-mld-proxy-yang-10




Abstract

   This document defines a YANG data model that can be used to
configure and manage Internet Group Management Protocol (IGMP) or
Multicast Listener Discovery (MLD) proxy devices. The YANG module in
this document conforms to Network Management Datastore Architecture
(NMDA).

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt





Zhao & Liu, etc           Expires July 04, 2023                [Page 1]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on July 04, 2023.

Copyright Notice

   Copyright (c) 2023 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document. Code Components extracted from this document must
   include Revised BSD License text as described in Section 4.e of the
   Trust Legal Provisions and are provided without warranty as described
   in the Revised BSD License.



Table of Contents


   1. Introduction...................................................3
      1.1. Terminology...............................................3
      1.2. Tree Diagrams.............................................3
      1.3. Prefixes in Data Node Names...............................3
   2. Design of Data Model...........................................4
      2.1. Overview..................................................4
      2.2. Optional Features.........................................4
      2.3. Position of Address Family in Hierarchy...................4
   3. Module Structure...............................................5
      3.1. IGMP Proxy Configuration and Operational State............5
      3.2. MLD Proxy Configuration and Operational State.............6
   4. IGMP/MLD Proxy YANG Module.....................................7
   5. Security Considerations.......................................14
   6. IANA Considerations...........................................16
      6.1. XML Registry.............................................16
      6.2. YANG Module Names Registry...............................16
   7. References....................................................16
      7.1. Normative References.....................................16
      7.2. Informative References...................................18
   Appendix. Data Tree Example......................................19
   Authors' Addresses...............................................22






Zhao & Liu, etc          Expires July 04, 2023                 [Page 2]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

1. Introduction

This document defines a YANG [RFC7950] data model for the management of
Internet Group Management Protocol (IGMP) or Multicast Listener
Discovery (MLD) Proxy [RFC4605] devices. The YANG module in this
document conforms to the Network Management Datastore Architecture
defined in [RFC8342].

1.1. Terminology

The terminology for describing YANG data models is found in [RFC6020]
and [RFC7950], including:
  *  augment
  *  data model
  *  data node
  *  identity
  *  module

The following abbreviations are used in this document and defined model:
  IGMP: Internet Group Management Protocol [RFC3376].
  MLD: Multicast Listener Discovery [RFC3810].
  PIM: Protocol Independent Multicast [RFC7761].

1.2. Tree Diagrams

Tree diagrams used in this document follow the notation defined in

[RFC8340].

1.3. Prefixes in Data Node Names

In this document, names of data nodes, and other data model objects are
often used without a prefix, as long as it is clear from the context in
which YANG module each name is defined. Otherwise, names are prefixed
using the standard prefix associated with the corresponding YANG module,
as shown in Table 1.

+----------+-----------------------+---------------------------------+
| Prefix   | YANG module           | Reference                       |
+==========+=======================+=================================+


Zhao & Liu, etc          Expires July 04, 2023                 [Page 3]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

| inet     | ietf-inet-types       | [RFC6991]                       |
+----------+-----------------------+---------------------------------+
| if       | ietf-interfaces       | [RFC8343]                       |
+----------+-----------------------+---------------------------------+
| rt       | ietf-routing          | [RFC8349]                       |
+----------+-----------------------+---------------------------------+
| rt-types | ietf-routing-types    | [RFC8294]                       |
+----------+-----------------------+---------------------------------+
| pim-base | ietf-pim-base         | [RFC9128]                       |
+----------+-----------------------+---------------------------------+
     Table 1: Prefixes and Corresponding YANG Modules

2. Design of Data Model

The model covers Internet Group Management Protocol (IGMP) / Multicast
Listener Discovery (MLD) - Based Multicast Forwarding ("IGMP/MLD
Proxying") [RFC4605]. The goal of this document is to define a data
model that provides a common user interface to IGMP/MLD Proxy.

2.1. Overview

The model defined in this document has all the common building blocks
for the IGMP/MLD Proxy devices. It can be used to configure IGMP/MLD
Proxy. The operational state data and statistics can also be retrieved
by it.

2.2. Optional Features

This model is designed to represent the basic capability subsets of IGMP
/ MLD Proxy. The main design goals of this document are that the basic
capabilities described in the model are supported by any major now-
existing implementation, and that the configuration of all
implementations meeting the specifications is easy to express through
some combination of the optional features in the model and simple vendor
augmentations.

This model declares two features representing capabilities that not all
deployed devices support. One feature is igmp-proxy, and the other
feature is mld-proxy. Either or both features could be implemented,
which could provide more choices for vendors.

2.3. Position of Address Family in Hierarchy

IGMP Proxy only supports IPv4, while MLD Proxy only supports IPv6. The
data model defined in this document can be used for both IPv4 and IPv6
address families.


Zhao & Liu, etc          Expires July 04, 2023                 [Page 4]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

This document defines IGMP Proxy and MLD Proxy as separate schema
branches in the structure. The benefits are:

*  The model can support IGMP Proxy (IPv4), MLD Proxy (IPv6), or both
optionally and independently. Such flexibility cannot be achieved
cleanly with a combined branch.

*  The structure is consistent with other YANG data models such as
[RFC8652], which uses separate branches for IPv4 and IPv6.

*  Having separate branches for IGMP Proxy and MLD Proxy allows minor
differences in their behavior to be modelled more simply and cleanly.
The two branches can better support different features and node types.

3.  Module Structure

This model augments the core routing data model specified in [RFC8349].

      +--rw routing
         +--rw router-id?
         +--rw control-plane-protocols
         |  +--rw control-plane-protocol* [type name]
         |     +--rw type
         |     +--rw name
         |     +--rw igmp-proxy <= Augmented by this Model
                        ...
         |     +--rw mld-proxy  <= Augmented by this Model


The "igmp-proxy" container instantiates IGMP Proxy. The "mld-proxy"
container instantiates MLD Proxy.

3.1. IGMP Proxy Configuration and Operational State

The YANG module augments /rt:routing/rt:control-plane-
protocols/rt:control-plane-protocol to add the igmp-proxy container.

All the IGMP Proxy related attributes are defined in the igmp-proxy
container. The read-write attributes represent configurable data. The
read-only attributes represent state data.

The igmp-version represents the version of IGMP protocol, and the
default value is 2. If the value of enabled is true, it means IGMP Proxy
is enabled.

The interface list under igmp-proxy contains upstream interfaces for
IGMP proxy. There is also a constraint to make sure the upstream
interface for IGMP proxy is not configured to use PIM.

To configure a downstream interface for IGMP proxy, it is needed to
enable IGMP on that interface. This is defined in the YANG Data Model

Zhao & Liu, etc          Expires July 04, 2023                 [Page 5]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

for Internet Group Management Protocol (IGMP) and Multicast Listener
Discovery (MLD) [RFC8652].

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw igmp-proxy! {igmp-proxy}?
       +--rw interfaces
          +--rw interface* [name]
             +--rw name                     if:interface-ref
             +--rw igmp-version?            uint8
             +--rw enabled?                 boolean
             +--rw sender-source-address?   inet:ipv4-address-no-zone
             +--ro group* [group-address]
                +--ro group-address
                |       rt-types:ipv4-multicast-group-address
                +--ro up-time?         uint32
                +--ro filter-mode      enumeration
                +--ro source* [source-address]
                   +--ro source-address
                   |       inet:ipv4-address-no-zone
                   +--ro up-time?                uint32
                   +--ro downstream-interface* [name]
                      +--ro name    if:interface-ref

3.2. MLD Proxy Configuration and Operational State

The YANG module augments /rt:routing/rt:control-plane-
protocols/rt:control-plane-protocol to add the mld-proxy container.

All the MLD Proxy related attributes are defined in the mld-proxy
container. The read-write attributes represent configurable data. The
read-only attributes represent state data.

The mld-version represents the version of MLD protocol, and default
value is 2. If the value of enabled is true, it means MLD Proxy is
enabled.

The interface list under mld-proxy contains upstream interfaces for MLD
proxy. There is also a constraint to make sure the upstream interface
for MLD proxy is not configured to use PIM.

To configure a downstream interface for MLD proxy, enable MLD on that
interface. This is defined in the YANG Data Model for Internet Group
Management Protocol (IGMP) and Multicast Listener Discovery (MLD)
[RFC8652].

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
     +--rw mld-proxy! {mld-proxy}?
       +--rw interfaces
          +--rw interface* [name]

Zhao & Liu, etc          Expires July 04, 2023                 [Page 6]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

             +--rw name                     if:interface-ref
             +--rw mld-version?             uint8
             +--rw enabled?                 boolean
             +--rw sender-source-address?   inet:ipv6-address-no-zone
             +--ro group* [group-address]
                +--ro group-address
                |       rt-types:ipv6-multicast-group-address
                +--ro up-time?         uint32
                +--ro filter-mode      enumeration
                +--ro source* [source-address]
                   +--ro source-address
                   |       inet:ipv6-address-no-zone
                   +--ro up-time?                uint32
                   +--ro downstream-interface* [name]
                      +--ro name    if:interface-ref

4. IGMP/MLD Proxy YANG Module

This module references [RFC4605], [RFC6991], [RFC8294], [RFC8343],
[RFC8349] and [RFC9128].

<CODE BEGINS> file ietf-igmp-mld-proxy@2022-12-07.yang
module ietf-igmp-mld-proxy {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-igmp-mld-proxy";
  // replace with IANA namespace when assigned
  prefix igmp-mld-proxy;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }
  import ietf-interfaces {
    prefix if;
    reference
      "RFC 8343: A YANG Data Model for Interface Management";
  }
  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349: A YANG Data Model for Routing Management (NMDA
       Version)";
  }
  import ietf-routing-types {
    prefix rt-types;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area";
  }
  import ietf-pim-base {
    prefix pim-base;

Zhao & Liu, etc          Expires July 04, 2023                 [Page 7]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

    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/about/>
     WG List:  <mailto:pim@ietf.org>

     Editors:  Hongji Zhao
               <mailto:hongji.zhao@ericsson.com>

               Xufeng Liu
               <mailto:xufeng.liu.ietf@gmail.com>

               Yisong Liu
               <mailto:liuyisong@chinamobile.com>

               Mani Panchanathan
               <mailto:mapancha@cisco.com>

               Mahesh Sivakumar
               <mailto:sivakumar.mahesh@gmail.com>

    ";

  description
    "The module defines a collection of YANG definitions common for
     all Internet Group Management Protocol (IGMP) and Multicast
     Listener Discovery (MLD) Proxy devices.

     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
     (http://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.";

  revision 2022-12-07 {
    description
      "Initial revision.";
    reference

Zhao & Liu, etc          Expires July 04, 2023                 [Page 8]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

      "RFC XXXX: A YANG Data Model for IGMP and MLD Proxy";
  }

  /*
   * Features
   */

  feature igmp-proxy {
    description
      "Support IGMP Proxy protocol.";
    reference
      "RFC 4605";
  }

  feature mld-proxy {
    description
      "Support MLD Proxy protocol.";
    reference
      "RFC 4605";
  }

  /*
   * Identities
   */

  identity igmp-proxy {
    base rt:control-plane-protocol;
    description
      "IGMP Proxy protocol";
  }

  identity mld-proxy {
    base rt:control-plane-protocol;
    description
      "MLD Proxy protocol";
  }

  /*
   * Groupings
   */

  grouping per-interface-config-attributes {
    description "Config attributes under interface view";
    leaf enabled {
      type boolean;
      default true;
      description
        "Set the value to true to enable IGMP/MLD proxy";
    }
  } // per-interface-config-attributes


Zhao & Liu, etc          Expires July 04, 2023                 [Page 9]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

  grouping state-group-attributes {
    description
      "State group attributes";
    leaf up-time {
      type uint32;
      units seconds;
      description
        "The elapsed time for (S,G) or (*,G).";
    }
    leaf filter-mode {
      type enumeration {
        enum "include" {
          description
            "In include mode, reception of packets sent
             to the specified multicast address is requested
             only from those IP source addresses listed in the
             source-list parameter";
        }
        enum "exclude" {
          description
            "In exclude mode, reception of packets sent
             to the given multicast address is requested
             from all IP source addresses except those
             listed in the source-list parameter.";
        }
      }
      mandatory true;
      description
        "Filter mode for a multicast group,
         may be either include or exclude.";
    }
  } // state-group-attributes


 /* augments */

  augment "/rt:routing/rt:control-plane-protocols"+
        "/rt:control-plane-protocol" {
    when
      "derived-from-or-self(rt:type, 'igmp-mld-proxy:igmp-proxy')" {
        description
          "This augmentation is only valid for IGMP Proxy.";
    }
    description
      "IGMP Proxy augmentation to routing control plane protocol
       configuration and state.";
    container igmp-proxy {
      if-feature "igmp-proxy";
      presence "IGMP Proxy configuration.";
      description "IGMP Proxy instance configuration.";
      container interfaces {

Zhao & Liu, etc          Expires July 04, 2023                [Page 10]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

        description
          "Containing a list of upstream interfaces.";
        list interface {
          key "name";
          description
            "List of upstream interfaces.";
          leaf name {
            type if:interface-ref;
            must "not( current() = /rt:routing"+
              "/rt:control-plane-protocols/pim-base:pim"+
              "/pim-base:interfaces/pim-base:interface"+
              "/pim-base:name )" {
              description
                "The upstream interface for IGMP proxy
                 must not be configured to use PIM.";
            }
            description "The upstream interface name.";
          }
          leaf igmp-version {
            type uint8 {
              range "1..3";
            }
            default 2;
            description "IGMP version.";
          }
          uses per-interface-config-attributes;
          leaf sender-source-address {
            type inet:ipv4-address-no-zone;
            description
              "The sender source address of
               IGMP membership report message or leave message.";
          }
          list group {
            key "group-address";
            config false;
            description
              "Multicast group membership information
              that joined on the interface.";
            leaf group-address {
              type rt-types:ipv4-multicast-group-address;
              description
                "Multicast group address.";
            }
            uses state-group-attributes;
            list source {
              key "source-address";
              description
                "List of multicast source information
                 of the multicast group.";
              leaf source-address {
                type inet:ipv4-address-no-zone;

Zhao & Liu, etc          Expires July 04, 2023                [Page 11]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

                description
                  "Multicast source address";
              }
              leaf up-time {
                type uint32;
                units seconds;
                description
                  "The elapsed time for (S,G) or (*,G).";
              }
              list downstream-interface {
                key "name";
                description "The downstream interfaces list.";
                leaf name {
                  type if:interface-ref;
                  description
                    "Downstream interfaces
                     for each upstream-interface";
                }
              }
            } // list source
          } // list group
        } // interface
      } // interfaces
    }
  }

  augment "/rt:routing/rt:control-plane-protocols"+
        "/rt:control-plane-protocol" {
    when
     "derived-from-or-self(rt:type, 'igmp-mld-proxy:mld-proxy')" {
        description
          "This augmentation is only valid for MLD Proxy.";
    }
    description
      "MLD Proxy augmentation to routing control plane protocol
       configuration and state.";
    container mld-proxy {
      if-feature "mld-proxy";
      presence "MLD Proxy configuration.";
      description "MLD Proxy instance configuration.";
      container interfaces {
        description
          "Containing a list of upstream interfaces.";
        list interface {
          key "name";
          description
            "List of upstream interfaces.";
          leaf name {
            type if:interface-ref;
            must "not( current() = /rt:routing"+
              "/rt:control-plane-protocols/pim-base:pim"+

Zhao & Liu, etc          Expires July 04, 2023                [Page 12]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

              "/pim-base:interfaces/pim-base:interface"+
              "/pim-base:name )" {
              description
                "The upstream interface for MLD proxy
                 must not be configured to use PIM.";
            }
            description "The upstream interface name.";
          }
          leaf mld-version {
            type uint8 {
              range "1..2";
            }
            default 2;
            description "MLD version.";
          }
          uses per-interface-config-attributes;
          leaf sender-source-address {
            type inet:ipv6-address-no-zone;
            description
              "The sender source address of
               MLD membership report message or leave message.";
          }
          list group {
            key "group-address";
            config false;
            description
              "Multicast group membership information
              that joined on the interface.";
            leaf group-address {
              type rt-types:ipv6-multicast-group-address;
              description
                "Multicast group address.";
            }
            uses state-group-attributes;
            list source {
              key "source-address";
              description
                "List of multicast source information
                 of the multicast group.";
              leaf source-address {
                type inet:ipv6-address-no-zone;
                description
                  "Multicast source address";
              }
              leaf up-time {
                type uint32;
                units seconds;
                description
                  "The elapsed time for (S,G) or (*,G).";
              }
              list downstream-interface {

Zhao & Liu, etc          Expires July 04, 2023                [Page 13]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

                key "name";
                description "The downstream interfaces list.";
                leaf name {
                  type if:interface-ref;
                  description
                    "Downstream interfaces
                     for each upstream-interface";
                }
              }
            } // list source
          } // list group
        } // interface
      } // interfaces
    }
  }
}
<CODE ENDS>

5. Security Considerations

The YANG module specified in this document defines a schema for data
that is designed to be accessed via network management protocols such as
NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer is the
secure transport layer, and the mandatory-to-implement secure transport
is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and
the mandatory-to-implement secure transport is TLS [RFC8446].

The Network Configuration Access Control Model (NACM) [RFC8341] provides
the means to restrict access for particular NETCONF or RESTCONF users to
a preconfigured subset of all available NETCONF or RESTCONF protocol
operations and content.

There are a number of data nodes defined in this YANG module that are
writable/creatable/deletable (i.e., config true, which is the default).
These data nodes may be considered sensitive or vulnerable in some
network environments. Write operations (e.g., edit-config) to these data
nodes without proper protection can have a negative effect on network
operations. These are the subtrees and data nodes and their
sensitivity/vulnerability:

Under /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:/
igmp-mld-proxy:igmp-proxy,

igmp-mld-proxy:interfaces
  This subtree specifies the interface list for IGMP Proxy. Modifying
  the configuration may cause IGMP Proxy interface to be deleted or
  changed.

Zhao & Liu, etc          Expires July 04, 2023                [Page 14]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

igmp-mld-proxy:interfaces/interface
  This subtree specifies the configuration for the IGMP Proxy attributes
  at the interface level. Modifying the configuration may cause IGMP
  Proxy to be deleted or changed on a specific interface.

Under /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:/
igmp-mld-proxy:mld-proxy,

igmp-mld-proxy:interfaces
  This subtree specifies the interface list for MLD Proxy. Modifying the
  configuration may cause MLD Proxy interface to be deleted or
  changed.

igmp-mld-proxy:interfaces/interface
  This subtree specifies the configuration for the MLD Proxy attributes
  at the interface level. Modifying the configuration may cause MLD
  Proxy to be deleted or changed on a specific interface.

Unauthorized access to any data node of these subtrees can adversely
affect the IGMP / MLD Proxy subsystem of both the local device and the
network. This may lead to network malfunctions, delivery of packets to
inappropriate destinations, and other problems.

Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or
notification) to these data nodes. These are the subtrees and data nodes
and their sensitivity/vulnerability:

Under /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:/
igmp-mld-proxy:igmp-proxy
igmp-mld-proxy:mld-proxy

Unauthorized access to any data node of these subtrees can disclose the
operational state information of IGMP / MLD Proxy on this device. The
group/source information may expose multicast group memberships.




Zhao & Liu, etc          Expires July 04, 2023                [Page 15]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

6. IANA Considerations

RFC Ed.: In this section, replace all occurrences of 'XXXX' with the
actual RFC number (and remove this note).

6.1. XML Registry

This document registers the following namespace URIs in the IETF XML
registry [RFC3688]:

--------------------------------------------------------------------
URI: urn:ietf:params:xml:ns:yang:ietf-igmp-mld-proxy
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.
--------------------------------------------------------------------

6.2. YANG Module Names Registry

This document registers the following YANG modules in the YANG Module
Names registry [RFC7950]:
--------------------------------------------------------------------
name:         ietf-igmp-mld-proxy
namespace:    urn:ietf:params:xml:ns:yang:ietf-igmp-mld-proxy
prefix:       igmp-mld-proxy
reference:    RFC XXXX
--------------------------------------------------------------------

7. References

7.1. Normative References

   [RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
             Thyagarajan, "Internet Group Management Protocol, Version
             3", RFC 3376, October 2002.

   [RFC3688] Mealling, M., "The IETF XML Registry", RFC 3688, January
             2004.

   [RFC3810] Vida, R. and L. Costa, "Multicast Listener Discovery
             Version 2 (MLDv2) for IPv6", RFC 3810, June 2004.

   [RFC4605] B. Fenner, H. He, B. Haberman and H. Sandick, "Internet
             Group Management Protocol (IGMP) / Multicast Listener
             Discovery (MLD) - Based Multicast Forwarding ("IGMP/MLD
             Proxying")", RFC 4605, August 2006.


Zhao & Liu, etc          Expires July 04, 2023                [Page 16]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

   [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
             the Network Configuration Protocol (NETCONF)", RFC 6020,
             October 2010.

   [RFC6241] R. Enns, Ed., M. Bjorklund, Ed., J. Schoenwaelder, Ed., A.
             Bierman, Ed., "Network Configuration Protocol (NETCONF)",
             RFC 6241, June 2011.

   [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
             Shell (SSH)", RFC 6242, June 2011.

   [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 6991,
             July 2013.

   [RFC7950] M. Bjorklund, Ed., "The YANG 1.1 Data Modeling Language",
             RFC 7950, August 2016.

   [RFC8040] A. Bierman, M. Bjorklund, K. Watsen, "RESTCONF Protocol",
             RFC 8040, January 2017.

   [RFC8294] X. Liu, Y. Qu, A. Lindem, C. Hopps, L. Berger, "Common YANG
             Data Types for the Routing Area", RFC 8294, December 2017.

   [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration Access
             Control Model", RFC 8341, March 2018.

   [RFC8342] M. Bjorklund and J. Schoenwaelder, "Network Management
             Datastore Architecture (NMDA)", RFC 8342, March 2018.

   [RFC8343] M. Bjorklund, "A YANG Data Model for Interface Management",
             RFC 8343, March 2018.

   [RFC8349] L. Lhotka, A. Lindem, Y. Qu, "A YANG Data Model for Routing
             Management (NMDA Version)", RFC 8349, March 2018.

   [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
             Version 1.3", RFC 8446, August 2018.

   [RFC8652] X. Liu, F. Guo, M. Sivakumar, P. McAllister, A. Peter, "A
             YANG Data Model for the Internet Group Management Protocol
             (IGMP) and Multicast Listener Discovery (MLD)", RFC 8652,
             November 2019.

   [RFC9128] X. Liu, P. McAllister, A. Peter, M. Sivakumar, Y. Liu, F.
             Hu, "A YANG Data Model for Protocol Independent Multicast
             (PIM)", RFC 9128, May 2018.






Zhao & Liu, etc          Expires July 04, 2023                [Page 17]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

7.2. Informative References

   [RFC7761] B. Fenner, M. Handley, H. Holbrook, I. Kouvelas, R. Parekh,
             Z. Zhang, L. Zheng, "Protocol Independent Multicast -
             Sparse Mode (PIM-SM): Protocol Specification (Revised)",
             RFC 7761, March 2016.

   [RFC7951] L. Lhotka, "JSON Encoding of Data Modeled with YANG", RFC
             7951, August 2016.

   [RFC8340] M. Bjorklund, and L. Berger, Ed., "YANG Tree Diagrams", RFC
             8340, March 2018.

   [RFC8407] A. Bierman, "Guidelines for Authors and Reviewers of
             Documents Containing YANG Data Models", RFC 8407, October
             2018.




































Zhao & Liu, etc          Expires July 04, 2023                [Page 18]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

Appendix. Data Tree Example

This section contains an example for IGMP Proxy in the JSON encoding
[RFC7951], containing both configuration and state data. In the example
IGMP Proxy is enabled on interface eth1/1.

It is also needed to enable IGMP on eth1/2 and eth1/3. The configuration
details are omitted here because this document is focused on IGMP/MLD
Proxy.

              +-----------+
              +  Source   +
              +-----+-----+
                    |
   -----------------+----------------------------
                    |eth1/1
                +---+----+
                +  R1    +
                +-+----+-+
           eth1/2 |     \ eth1/3
                  |      \
                  |       \
                  |        \
   ---------------+---------+-------------------
                  |          \
                  |           \
         +--------+--+     +---+--------+
         + Receiver1 +     +  Receiver2 +
         +-----------+     +------------+



The configuration data for R1 in the above figure could be as follows:

{
    "ietf-interfaces:interfaces": {
      "interface": [
        {
          "name": "eth1/1",
          "type": "iana-if-type:ipForward",
          "ietf-ip:ipv4": {
            "address": [
              {
                "ip": "203.0.113.1",
                "prefix-length": 24
              }
            ]
          }
        }
      ]
    },

Zhao & Liu, etc          Expires July 04, 2023                [Page 19]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

   "ietf-routing:routing": {
      "control-plane-protocols": {
        "control-plane-protocol": [
          {
            "type": "ietf-igmp-mld-proxy:igmp-proxy",
            "name": "proxy1",
            "ietf-igmp-mld-proxy:igmp-proxy": {
              "interfaces": {
                "interface": [
                  {
                    "name": "eth1/1",
                    "igmp-version": 3,
                    "enabled": true
                  }
                ]
              }
            }
          }
        ]
      }
    }
  }


The corresponding operational state data for R1 could be as follows:

{
    "ietf-interfaces:interfaces": {
      "interface": [
        {
          "name": "eth1/1",
          "type": "iana-if-type:ipForward",
          "admin-status": "up",
          "oper-status": "up",
          "if-index": 25678136,
          "statistics": {
            "discontinuity-time": "2021-05-23T10:34:56-06:00"
          },
          "ietf-ip:ipv4": {
            "address": [
              {
                "ip": "203.0.113.1",
                "prefix-length": 24
              }
            ]
          }
        }
      ]
    },
   "ietf-routing:routing": {
      "control-plane-protocols": {

Zhao & Liu, etc          Expires July 04, 2023                [Page 20]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023

        "control-plane-protocol": [
          {
            "type": "ietf-igmp-mld-proxy:igmp-proxy",
            "name": "proxy1",
            "ietf-igmp-mld-proxy:igmp-proxy": {
              "interfaces": {
                "interface": [
                  {
                    "name": "eth1/1",
                    "igmp-version": 3,
                    "enabled": true,
                    "group": [
                      {
                        "group-address": "233.252.0.23",
                        "filter-mode": "include",
                        "source": [
                          {
                            "source-address": "192.0.2.1",
                            "downstream-interface": [
                              {
                                "name": "eth1/2"
                              },
                              {
                                "name": "eth1/3"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            }
          }
        ]
      }
    }
  }













Zhao & Liu, etc          Expires July 04, 2023                [Page 21]


Internet-Draft        IGMP/MLD Proxy YANG Module       January 05, 2023



Authors' Addresses

   Hongji Zhao
   Ericsson (China) Communications Company Ltd.
   Ericsson Tower, No. 5 Lize East Street,
   ChaoYANG District Beijing 100102, China
   Email: hongji.zhao@ericsson.com


   Xufeng Liu
   IBM Corporation
   2300 Dulles Station Blvd.
   Herndon, VA 20171
   United States of America
   EMail: Xufeng.liu.ietf@gmail.com


   Yisong Liu
   China Mobile
   China
   Email: liuyisong@chinamobile.com


   Mani Panchanathan
   Cisco Systems
   India
   Email: mapancha@cisco.com


   Mahesh Sivakumar
   Juniper Networks
   1133 Innovation Way
   Sunnyvale, California
   USA
   EMail: sivakumar.mahesh@gmail.com















Zhao & Liu, etc          Expires July 04, 2023                [Page 22]