draft-ietf-pim-igmp-mld-yang-05.txt   draft-ietf-pim-igmp-mld-yang-06.txt 
PIM Working Group X. Liu PIM Working Group X. Liu
Internet-Draft Jabil Internet-Draft Jabil
Intended Status: Standard Track F. Guo Intended Status: Standard Track F. Guo
Expires: March 19, 2018 Huawei Expires: April 20, 2018 Huawei
M. Sivakumar M. Sivakumar
Cisco Cisco
P. McAllister P. McAllister
Metaswitch Networks Metaswitch Networks
A. Peter A. Peter
Juniper Networks Juniper Networks
Sep 19, 2017 Oct 20, 2017
A YANG data model for Internet Group Management Protocol (IGMP) and A YANG data model for Internet Group Management Protocol (IGMP) and
Multicast Listener Discovery (MLD) Multicast Listener Discovery (MLD)
draft-ietf-pim-igmp-mld-yang-05 draft-ietf-pim-igmp-mld-yang-06
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 39 skipping to change at page 1, line 39
months and may be updated, replaced, or obsoleted by other documents months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress." reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
This Internet-Draft will expire on March 20, 2017. This Internet-Draft will expire on April 20, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 29 skipping to change at page 2, line 29
1.1. Requirements Language................................... 3 1.1. Requirements Language................................... 3
1.2. Terminology ............................................ 3 1.2. Terminology ............................................ 3
2. Design of Data model......................................... 3 2. Design of Data model......................................... 3
2.1. Scope of model ......................................... 3 2.1. Scope of model ......................................... 3
2.2. Optional capabilities................................... 3 2.2. Optional capabilities................................... 3
2.3. Position of address family in hierarchy................. 4 2.3. Position of address family in hierarchy................. 4
3. Module Structure ............................................ 4 3. Module Structure ............................................ 4
3.1. IGMP Configuration and Operational state................ 4 3.1. IGMP Configuration and Operational state................ 4
3.2. MLD Configuration and Operational State................. 6 3.2. MLD Configuration and Operational State................. 6
3.3. IGMP and MLD RPC........................................ 8 3.3. IGMP and MLD RPC........................................ 8
4. IGMP and MLD YANG Modules.................................... 8 4. IGMP and MLD YANG Modules.................................... 9
5. Security Considerations..................................... 30 5. Security Considerations..................................... 32
6. IANA Considerations ........................................ 30 6. IANA Considerations ........................................ 32
7. References ................................................. 31 7. Acknowledgments ............................................ 33
7.1. Normative References................................... 31 8. Contributing Authors........................................ 33
7.2. Informative References................................. 32 9. References ................................................. 33
8. Acknowledgments ............................................ 32 9.1. Normative References................................... 33
9.2. Informative References................................. 34
1. Introduction 1. Introduction
YANG [RFC6020] [RFC7950] is a data definition language that was YANG [RFC6020] [RFC7950] is a data definition language that was
introduced to model the configuration and running state of a device introduced to model the configuration and running state of a device
managed using NETCONF [RFC6241]. YANG is now also being used as a managed using NETCONF [RFC6241]. YANG is now also being used as a
component of wider management interfaces, such as CLIs. component of wider management interfaces, such as CLIs.
This document defines a YANG data model that can be used to This document defines a YANG data model that can be used to
configure and manage Internet Group Management Protocol (IGMP) and configure and manage Internet Group Management Protocol (IGMP) and
skipping to change at page 5, line 10 skipping to change at page 5, line 10
Where fields are not genuinely essential to protocol operation, they Where fields are not genuinely essential to protocol operation, they
are marked as optional. Some fields will be essential but have a are marked as optional. Some fields will be essential but have a
default specified, so that they need not be configured explicitly. default specified, so that they need not be configured explicitly.
We define the IGMP model as a protocol-centric model , and the IGMP We define the IGMP model as a protocol-centric model , and the IGMP
model augments "/rt:routing/rt:control-plane-protocols/ rt:control- model augments "/rt:routing/rt:control-plane-protocols/ rt:control-
plane-protocol" in [draft-acee-netmod-rfc8022bis-01] and would allow plane-protocol" in [draft-acee-netmod-rfc8022bis-01] and would allow
a single protocol instance per VRF. a single protocol instance per VRF.
augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:
+--rw igmp +--rw igmp
+--rw global +--rw global
| +--rw enable? boolean {global-admin-enable}? | +--rw enable? boolean {global-admin-enable}?
| +--rw max-entries? uint32 {global-max-entries}? | +--rw max-entries? uint32 {global-max-entries}?
| +--rw max-groups? uint32 {global-max-groups}? | +--rw max-groups? uint32 {global-max-groups}?
| +--ro entries-count? uint32 | +--ro entries-count? uint32
| +--ro groups-count? uint32 | +--ro groups-count? uint32
| +--ro statistics | +--ro statistics
| +--ro discontinuity-time? yang:date-and-time | +--ro discontinuity-time? yang:date-and-time
| +--ro error | +--ro error
skipping to change at page 6, line 9 skipping to change at page 6, line 9
+--rw immediate-leave? empty {intf-immediate-leave}? +--rw immediate-leave? empty {intf-immediate-leave}?
+--rw last-member-query-interval? uint16 +--rw last-member-query-interval? uint16
+--rw max-groups? uint32 {intf-max-groups}? +--rw max-groups? uint32 {intf-max-groups}?
+--rw max-group-sources? uint32 {intf-max-group-sources}? +--rw max-group-sources? uint32 {intf-max-group-sources}?
+--rw query-interval? uint16 +--rw query-interval? uint16
+--rw query-max-response-time? uint16 +--rw query-max-response-time? uint16
+--rw require-router-alert? boolean {intf-require-router-alert}? +--rw require-router-alert? boolean {intf-require-router-alert}?
+--rw robustness-variable? uint8 +--rw robustness-variable? uint8
+--rw source-policy? string {intf-source-policy}? +--rw source-policy? string {intf-source-policy}?
+--rw verify-source-subnet? empty {intf-verify-source-subnet}? +--rw verify-source-subnet? empty {intf-verify-source-subnet}?
+--rw explicit-tracking? boolean {intf-explicit-tracking}?
+--rw exclude-lite? boolean {intf-exclude-lite}?
+--rw version? uint8 +--rw version? uint8
+--rw join-group* inet:ipv4-address {intf-join-group}? +--rw join-group* inet:ipv4-address {intf-join-group}?
+--rw ssm-map* [source-addr group-policy] {intf-ssm-map}? +--rw ssm-map* [source-addr group-policy] {intf-ssm-map}?
| +--rw source-addr ssm-map-ipv4-addr-type | +--rw source-addr ssm-map-ipv4-addr-type
| +--rw group-policy string | +--rw group-policy string
+--rw static-group* [group-addr source-addr] {intf-static-group} +--rw static-group* [group-addr source-addr] {intf-static-group}?
| +--rw group-addr inet:ipv4-address | +--rw group-addr inet:ipv4-address
| +--rw source-addr source-ipv4-addr-type | +--rw source-addr source-ipv4-addr-type
+--ro oper-status? enumeration +--ro oper-status? enumeration
+--ro querier? inet:ipv4-address +--ro querier? inet:ipv4-address
+--ro joined-group* inet:ipv4-address {intf-join-group}? +--ro joined-group* inet:ipv4-address {intf-join-group}?
+--ro group* [address] +--ro group* [group-address]
+--ro address inet:ipv4-address +--ro group-address inet:ipv4-address
+--ro expire? uint32 +--ro expire? uint32
+--ro filter-mode? enumeration +--ro filter-mode? enumeration
+--ro host-count? uint32
+--ro up-time? uint32 +--ro up-time? uint32
+--ro host* inet:ipv4-address
+--ro last-reporter? inet:ipv4-address +--ro last-reporter? inet:ipv4-address
+--ro source* [address] +--ro source* [source-address]
+--ro address inet:ipv4-address +--ro source-address inet:ipv4-address
+--ro expire? uint32 +--ro expire? uint32
+--ro up-time? uint32 +--ro up-time? uint32
+--ro last-reporter? inet:ipv4-address +--ro host-count? uint32 {intf-explicit-tracking}?
+--ro last-reporter? inet:ipv4-address
+--ro host* [host-address] {intf-explicit-tracking}?
+--ro host-address inet:ipv4-address
+--ro host-filter-mode? enumeration
3.2. MLD Configuration and Operational State 3.2. MLD Configuration and Operational State
The MLD YANG model uses the same structure as IGMP YANG model. The The MLD YANG model uses the same structure as IGMP YANG model. The
MLD module also defines the routing-control-plane-protocol-wide MLD module also defines the routing-control-plane-protocol-wide
configuration and operational state options separately in a three- configuration and operational state options separately in a three-
level hierarchy. level hierarchy.
augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:
+--rw mld +--rw mld
skipping to change at page 7, line 42 skipping to change at page 7, line 46
+--rw immediate-leave? empty {intf-immediate-leave}? +--rw immediate-leave? empty {intf-immediate-leave}?
+--rw last-member-query-interval? uint16 +--rw last-member-query-interval? uint16
+--rw max-groups? uint32 {intf-max-groups}? +--rw max-groups? uint32 {intf-max-groups}?
+--rw max-group-sources? uint32 {intf-max-group-sources}? +--rw max-group-sources? uint32 {intf-max-group-sources}?
+--rw query-interval? uint16 +--rw query-interval? uint16
+--rw query-max-response-time? uint16 +--rw query-max-response-time? uint16
+--rw require-router-alert? boolean {intf-require-router-alert}? +--rw require-router-alert? boolean {intf-require-router-alert}?
+--rw robustness-variable? uint8 +--rw robustness-variable? uint8
+--rw source-policy? string {intf-source-policy}? +--rw source-policy? string {intf-source-policy}?
+--rw verify-source-subnet? empty {intf-verify-source-subnet}? +--rw verify-source-subnet? empty {intf-verify-source-subnet}?
+--rw explicit-tracking? boolean {intf-explicit-tracking}?
+--rw exclude-lite? boolean {intf-exclude-lite}?
+--rw version? uint8 +--rw version? uint8
+--rw join-group* inet:ipv6-address {intf-join-group}? +--rw join-group* inet:ipv6-address {intf-join-group}?
+--rw ssm-map* [source-addr group-policy] {intf-ssm-map}? +--rw ssm-map* [source-addr group-policy] {intf-ssm-map}?
| +--rw source-addr ssm-map-ipv6-addr-type | +--rw source-addr ssm-map-ipv6-addr-type
| +--rw group-policy string | +--rw group-policy string
+--rw static-group* [group source-addr] {intf-static-group}? +--rw static-group* [group source-addr] {intf-static-group}?
| +--rw group inet:ipv6-address | +--rw group inet:ipv6-address
| +--rw source-addr source-ipv6-addr-type | +--rw source-addr source-ipv6-addr-type
+--ro oper-status? enumeration +--ro oper-status? enumeration
+--ro querier? inet:ipv6-address +--ro querier? inet:ipv6-address
+--ro joined-group* inet:ipv6-address {intf-join-group}? +--ro joined-group* inet:ipv6-address {intf-join-group}?
+--ro group* [address] +--ro group* [group-address]
+--ro address inet:ipv6-address +--ro group-address inet:ipv6-address
+--ro expire? uint32 +--ro expire? uint32
+--ro filter-mode? enumeration +--ro filter-mode? enumeration
+--ro host-count? uint32
+--ro up-time? uint32 +--ro up-time? uint32
+--ro host* inet:ipv6-address
+--ro last-reporter? inet:ipv6-address +--ro last-reporter? inet:ipv6-address
+--ro source* [address] +--ro source* [source-address]
+--ro address inet:ipv6-address +--ro source-address inet:ipv6-address
+--ro expire? uint32 +--ro expire? uint32
+--ro up-time? uint32 +--ro up-time? uint32
+--ro last-reporter? inet:ipv6-address +--ro host-count? uint32 {intf-explicit-tracking}?
+--ro last-reporter? inet:ipv6-address
+--ro host* [host-address] {intf-explicit-tracking}?
+--ro host-address inet:ipv6-address
+--ro host-filter-mode? enumeration
3.3. IGMP and MLD RPC 3.3. IGMP and MLD RPC
IGMP and MLD RPC clears the specified IGMP and MLD group membership. IGMP and MLD RPC clears the specified IGMP and MLD group membership.
rpcs: rpcs:
+---x clear-igmp-groups {rpc-clear-groups}? +---x clear-igmp-groups {rpc-clear-groups}?
| +---w input | +---w input
skipping to change at page 8, line 46 skipping to change at page 9, line 7
+---w input +---w input
+---w interface? string +---w interface? string
+---w group? inet:ipv6-address +---w group? inet:ipv6-address
+---w source? inet:ipv6-address +---w source? inet:ipv6-address
4. IGMP and MLD YANG Modules 4. IGMP and MLD YANG Modules
<CODE BEGINS> file "ietf-igmp-mld@2017-09-19.yang" <CODE BEGINS> file "ietf-igmp-mld@2017-10-20.yang"
module ietf-igmp-mld { module ietf-igmp-mld {
namespace "urn:ietf:params:xml:ns:yang:ietf-igmp-mld"; namespace "urn:ietf:params:xml:ns:yang:ietf-igmp-mld";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix igmp-mld; prefix igmp-mld;
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
} }
import ietf-routing-2 { import ietf-routing {
prefix "rt"; prefix "rt";
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
} }
import ietf-ip { import ietf-ip {
prefix ip; prefix ip;
} }
skipping to change at page 10, line 9 skipping to change at page 10, line 18
Editor: Pete McAllister Editor: Pete McAllister
<mailto:pete.mcallister@metaswitch.com> <mailto:pete.mcallister@metaswitch.com>
Editor: Anish Peter Editor: Anish Peter
<mailto:anish.ietf@gmail.com>"; <mailto:anish.ietf@gmail.com>";
description description
"The module defines a collection of YANG definitions common for "The module defines a collection of YANG definitions common for
IGMP and MLD."; IGMP and MLD.";
revision 2017-10-20 {
description
"Updated yang data model for adding explicit-tracking and
lightweight IGMPv3 and MLDv2 function.";
reference
"RFC XXXX: A YANG Data Model for IGMP and MLD";
}
revision 2017-09-19 { revision 2017-09-19 {
description description
"Updated yang data model for NMDA version and errata."; "Updated yang data model for NMDA version and errata.";
reference reference
"RFC XXXX: A YANG Data Model for IGMP and MLD"; "RFC XXXX: A YANG Data Model for IGMP and MLD";
} }
/* /*
* Features * Features
*/ */
skipping to change at page 11, line 39 skipping to change at page 12, line 7
feature intf-static-group { feature intf-static-group {
description description
"Support configuration of interface static-group."; "Support configuration of interface static-group.";
} }
feature intf-verify-source-subnet { feature intf-verify-source-subnet {
description description
"Support configuration of interface verify-source-subnet."; "Support configuration of interface verify-source-subnet.";
} }
feature intf-explicit-tracking {
description
"Support configuration of interface explicit-tracking hosts.";
}
feature intf-exclude-lite {
description
"Support configuration of interface exclude-lite.";
}
feature per-interface-config { feature per-interface-config {
description description
"Support per interface configuration."; "Support per interface configuration.";
} }
feature rpc-clear-groups { feature rpc-clear-groups {
description description
"Support rpc's to clear groups."; "Support rpc's to clear groups.";
} }
skipping to change at page 21, line 9 skipping to change at page 21, line 35
and value of this name, possibly space and special and value of this name, possibly space and special
characters are not allowed."; characters are not allowed.";
} }
leaf verify-source-subnet { leaf verify-source-subnet {
if-feature intf-verify-source-subnet; if-feature intf-verify-source-subnet;
type empty; type empty;
description description
"If present, the interface accepts packets with matching "If present, the interface accepts packets with matching
source IP subnet only."; source IP subnet only.";
} }
leaf explicit-tracking {
if-feature intf-explicit-tracking;
type boolean;
description
"IGMP/MLD-based explicit membership tracking function
for multicast routers and IGMP/MLD proxy devices
supporting IGMPv3/MLDv2. The explicit membership tracking
function contributes to saving network resources and
shortening leave latency.";
}
leaf exclude-lite {
if-feature intf-exclude-lite;
type boolean;
description
"lightweight IGMPv3 and MLDv2 protocols, which simplify the
standard versions of IGMPv3 and MLDv2.";
reference "RFC5790";
}
} // interface-config-attributes-igmp-mld } // interface-config-attributes-igmp-mld
grouping interface-config-attributes-mld { grouping interface-config-attributes-mld {
description "Per interface configuration for MLD."; description "Per interface configuration for MLD.";
uses interface-config-attributes-igmp-mld; uses interface-config-attributes-igmp-mld;
leaf version { leaf version {
type uint8 { type uint8 {
skipping to change at page 22, line 41 skipping to change at page 23, line 36
} }
leaf-list joined-group { leaf-list joined-group {
if-feature intf-join-group; if-feature intf-join-group;
type inet:ipv4-address; type inet:ipv4-address;
config false; config false;
description description
"The routers that joined this multicast group."; "The routers that joined this multicast group.";
} }
list group { list group {
key "address"; key "group-address";
config false; config false;
description description
"Multicast group membership information "Multicast group membership information
that joined on the interface."; that joined on the interface.";
leaf address { leaf group-address {
type inet:ipv4-address; type inet:ipv4-address;
description description
"Multicast group address."; "Multicast group address.";
} }
uses interface-state-group-attributes-igmp-mld; uses interface-state-group-attributes-igmp-mld;
leaf-list host {
type inet:ipv4-address;
description
"List of host addresses that
joined the multicast group";
}
leaf last-reporter { leaf last-reporter {
type inet:ipv4-address; type inet:ipv4-address;
description description
"The last host address which has sent the "The last host address which has sent the
report to join the multicast group."; report to join the multicast group.";
} }
list source { list source {
key "address"; key "source-address";
description description
"List of multicast source information "List of multicast source information
of the multicast group."; of the multicast group.";
leaf address { leaf source-address {
type inet:ipv4-address; type inet:ipv4-address;
description description
"Multicast source address"; "Multicast source address";
} }
uses interface-state-source-attributes-igmp-mld; uses interface-state-source-attributes-igmp-mld;
leaf last-reporter { leaf last-reporter {
type inet:ipv4-address; type inet:ipv4-address;
description description
"The last host address which has sent the "The last host address which has sent the
report to join the multicast source and group."; report to join the multicast source and group.";
} }
list host {
if-feature intf-explicit-tracking;
key "host-address";
description
"List of multicast membership hosts
of the specific multicast source-group.";
leaf host-address {
type inet:ipv4-address;
description
"Multicast membership host address.";
}
leaf host-filter-mode {
type enumeration {
enum "include" {
description
"In include mode";
}
enum "exclude" {
description
"In exclude mode.";
}
}
description
"Filter mode for a multicast membership
host may be either include or exclude.";
}
}// list host
} // list source } // list source
} // list group } // list group
} // interface-state-attributes-igmp } // interface-state-attributes-igmp
grouping interface-state-attributes-igmp-mld { grouping interface-state-attributes-igmp-mld {
description description
"Per interface state attributes for both IGMP and MLD."; "Per interface state attributes for both IGMP and MLD.";
leaf oper-status { leaf oper-status {
type enumeration { type enumeration {
enum up { enum up {
skipping to change at page 24, line 32 skipping to change at page 25, line 51
} }
leaf-list joined-group { leaf-list joined-group {
if-feature intf-join-group; if-feature intf-join-group;
type inet:ipv6-address; type inet:ipv6-address;
config false; config false;
description description
"The routers that joined this multicast group."; "The routers that joined this multicast group.";
} }
list group { list group {
key "address"; key "group-address";
config false; config false;
description description
"Multicast group membership information "Multicast group membership information
that joined on the interface."; that joined on the interface.";
leaf address { leaf group-address {
type inet:ipv6-address; type inet:ipv6-address;
description description
"Multicast group address."; "Multicast group address.";
} }
uses interface-state-group-attributes-igmp-mld; uses interface-state-group-attributes-igmp-mld;
leaf-list host {
type inet:ipv6-address;
description
"List of host addresses that
joined the multicast group";
}
leaf last-reporter { leaf last-reporter {
type inet:ipv6-address; type inet:ipv6-address;
description description
"The last host address which has sent the "The last host address which has sent the
report to join the multicast group."; report to join the multicast group.";
} }
list source { list source {
key "address"; key "source-address";
description description
"List of multicast source information "List of multicast source information
of the multicast group."; of the multicast group.";
leaf address { leaf source-address {
type inet:ipv6-address; type inet:ipv6-address;
description description
"Multicast source address"; "Multicast source address";
} }
uses interface-state-source-attributes-igmp-mld; uses interface-state-source-attributes-igmp-mld;
leaf last-reporter { leaf last-reporter {
type inet:ipv6-address; type inet:ipv6-address;
description description
"The last host address which has sent the "The last host address which has sent the
report to join the multicast source and group."; report to join the multicast source and group.";
} }
list host {
if-feature intf-explicit-tracking;
key "host-address";
description
"List of multicast membership hosts
of the specific multicast source-group.";
leaf host-address {
type inet:ipv6-address;
description
"Multicast membership host address.";
}
leaf host-filter-mode {
type enumeration {
enum "include" {
description
"In include mode";
}
enum "exclude" {
description
"In exclude mode.";
}
}
description
"Filter mode for a multicast membership
host may be either include or exclude.";
}
}// list host
} // list source } // list source
} // list group } // list group
} // interface-state-attributes-mld } // interface-state-attributes-mld
grouping interface-state-group-attributes-igmp-mld { grouping interface-state-group-attributes-igmp-mld {
description description
"Per interface state attributes for both IGMP and MLD "Per interface state attributes for both IGMP and MLD
groups."; groups.";
leaf expire { leaf expire {
skipping to change at page 26, line 12 skipping to change at page 28, line 4
"In exclude mode, reception of packets sent "In exclude mode, reception of packets sent
to the given multicast address is requested to the given multicast address is requested
from all IP source addresses except those from all IP source addresses except those
listed in the source-list parameter."; listed in the source-list parameter.";
} }
} }
description description
"Filter mode for a multicast group, "Filter mode for a multicast group,
may be either include or exclude."; may be either include or exclude.";
} }
leaf host-count {
type uint32;
description
"The number of host addresses.";
}
leaf up-time { leaf up-time {
type uint32; type uint32;
units seconds; units seconds;
description description
"The elapsed time since the device created multicast group record."; "The elapsed time since the device created multicast group record.";
} }
} // interface-state-group-attributes-igmp-mld } // interface-state-group-attributes-igmp-mld
grouping interface-state-source-attributes-igmp-mld { grouping interface-state-source-attributes-igmp-mld {
description description
skipping to change at page 26, line 43 skipping to change at page 28, line 30
description description
"The time left before multicast source-group state expires."; "The time left before multicast source-group state expires.";
} }
leaf up-time { leaf up-time {
type uint32; type uint32;
units seconds; units seconds;
description description
"The elapsed time since the device created multicast "The elapsed time since the device created multicast
source-group record."; source-group record.";
} }
leaf host-count {
if-feature intf-explicit-tracking;
type uint32;
description
"The number of host addresses.";
}
} // interface-state-source-attributes-igmp-mld } // interface-state-source-attributes-igmp-mld
/* /*
* Configuration and Operational state data nodes (NMDA version) * Configuration and Operational state data nodes (NMDA version)
*/ */
augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol" augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol"
{ {
description description
"IGMP augmentation to routing control plane protocol "IGMP augmentation to routing control plane protocol
configuration and state."; configuration and state.";
skipping to change at page 31, line 4 skipping to change at page 32, line 44
This document registers the following YANG modules in the YANG Module This document registers the following YANG modules in the YANG Module
Names registry [RFC7950]: Names registry [RFC7950]:
-------------------------------------------------------------------- --------------------------------------------------------------------
name: ietf-igmp-mld name: ietf-igmp-mld
namespace: urn:ietf:params:xml:ns:yang:ietf-igmp-mld namespace: urn:ietf:params:xml:ns:yang:ietf-igmp-mld
prefix: igmp-mld prefix: igmp-mld
reference: RFC XXXX reference: RFC XXXX
-------------------------------------------------------------------- --------------------------------------------------------------------
7. References 7. Acknowledgments
7.1. Normative References The authors would like to thank Steve Baillargeon, Hu Fangwei,
Robert Kebler, Tanmoy Kundu, and Stig Venaas for their valuable
contributions.
8. Contributing Authors
Yisong Liu
Huawei Technologies
Huawei Bld., No.156 Beiqing Rd.
Beijing 100095
China
Email: liuyisong@huawei.com
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010 October 2010
[RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG
Data Model Documents", RFC 6087, January 2011 Data Model Documents", RFC 6087, January 2011
skipping to change at page 32, line 5 skipping to change at page 34, line 17
rfc7277bis-00, August 2017 rfc7277bis-00, August 2017
[I-D.ietf-netmod-rfc6087bis] Bierman, A., "Guidelines for Authors [I-D.ietf-netmod-rfc6087bis] Bierman, A., "Guidelines for Authors
and Reviewers of YANG Data Model Documents", draft-ietf- and Reviewers of YANG Data Model Documents", draft-ietf-
netmod-rfc6087bis-14, September 2017 netmod-rfc6087bis-14, September 2017
[I-D.acee-netmod-rfc8022bis] L. Lhotka, A. Lindem and Y.Qu, "A YANG [I-D.acee-netmod-rfc8022bis] L. Lhotka, A. Lindem and Y.Qu, "A YANG
Data Model for Routing Management (NDMA Version)", draft- Data Model for Routing Management (NDMA Version)", draft-
acee-netmod-rfc8022bis-02, September 2017 acee-netmod-rfc8022bis-02, September 2017
7.2. Informative References 9.2. Informative References
[RFC1112] Deering, S., "Host extensions for IP multicasting", STD 5, [RFC1112] Deering, S., "Host extensions for IP multicasting", STD 5,
RFC 1112, August 1989. RFC 1112, August 1989.
[RFC2236] Fenner, W., "Internet Group Management Protocol, Version [RFC2236] Fenner, W., "Internet Group Management Protocol, Version
2", RFC 2236, November 1997. 2", RFC 2236, November 1997.
[RFC2710] Deering, S., Fenner, W., and B. Haberman, "Multicast [RFC2710] Deering, S., Fenner, W., and B. Haberman, "Multicast
Listener Discovery (MLD) for IPv6", RFC 2710, October Listener Discovery (MLD) for IPv6", RFC 2710, October
1999. 1999.
skipping to change at page 32, line 34 skipping to change at page 34, line 46
[RFC4541] M. Christensen, K. Kimball and F. Solensky, [RFC4541] M. Christensen, K. Kimball and F. Solensky,
"Considerations for Internet Group Management Protocol "Considerations for Internet Group Management Protocol
(IGMP) and Multicast Listener Discovery (MLD) Snooping (IGMP) and Multicast Listener Discovery (MLD) Snooping
Switches", RFC 4541, May 2006. Switches", RFC 4541, May 2006.
[RFC4605] B. Fenner, H. He, B. Haberman, and H. Sandick, "Internet [RFC4605] B. Fenner, H. He, B. Haberman, and H. Sandick, "Internet
Group Management Protocol (IGMP) / Multicast Listener Group Management Protocol (IGMP) / Multicast Listener
Discovery (MLD)-Based Multicast Forwarding ("IGMP/MLD Discovery (MLD)-Based Multicast Forwarding ("IGMP/MLD
Proxying")", RFC 4605, August 2006. Proxying")", RFC 4605, August 2006.
8. Acknowledgments [RFC5790] H. Liu, W. Cao and H. Asaeda, "Lightweight Internet Group
Management Protocol Version 3 (IGMPv3) and Multicast
The authors would like to thank Steve Baillargeon, Hu Fangwei, Listener Discovery Version 2 (MLDv2) Protocols", RFC 5790,
Robert Kebler, Tanmoy Kundu, Liu Yisong, and Stig Venaas for their February 2010
valuable contributions.
Authors' Addresses Authors' Addresses
Xufeng Liu Xufeng Liu
Jabil Jabil
8281 Greensboro Drive, Suite 200 8281 Greensboro Drive, Suite 200
McLean VA 22102 McLean VA 22102
USA USA
EMail: Xufeng_Liu@jabil.com EMail: Xufeng_Liu@jabil.com
 End of changes. 42 change blocks. 
66 lines changed or deleted 175 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/