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]