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 imp;
import ietf-inet-types {
prefix inet;
}
import ietf-interfaces {
prefix if;
}
import ietf-routing {
prefix rt;
}
import ietf-pim-base {
prefix pim-base;
}
organization
"IETF PIM Working Group";
contact
"WG Web:
WG List:
Editors: Hongji Zhao
Xufeng Liu
Yisong Liu
";
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) 2019 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 Simplified 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 2019-01-23 {
description
"Initial revision.";
reference
"RFC XXXX: A YANG Data Model for IGMP and MLD Proxy";
}
/*
* Features
*/
/*
* Typedefs
*/
/*
* Groupings
*/
grouping per-interface-config-attributes {
description "Config attributes under interface view";
leaf enable {
type boolean;
default false;
description
"Set the value to true to enable IGMP/MLD proxy";
}
} // per-interface-config-attributes
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.";
}
}
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" {
description
"IGMP proxy augmentation to routing control plane protocol
configuration and state.";
container igmp-proxy {
description "IGMP proxy";
container interfaces {
description
"Containing a list of upstream interfaces.";
list interface {
key "interface-name";
description
"List of upstream interfaces.";
leaf interface-name {
type if:interface-ref;
must "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/MLD proxy
should not be configured PIM.";
}
}
leaf version {
type uint8 {
range "1..3";
}
default 2;
description "IGMP version.";
}
uses per-interface-config-attributes;
list group {
key "group-address";
config false;
description
"Multicast group membership information
that joined on the interface.";
leaf group-address {
type inet:ipv4-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;
description
"Multicast source address";
}
uses state-group-attributes;
list downstream-interface {
key "interface-name";
leaf interface-name {
type if:interface-ref;
description
"Downstream interfaces for each upstream-interface";
}
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.";
}
}
description
"Filter mode for a multicast group,
may be either include or exclude.";
}
}
} // list source
} // list group
} // interface
} // interfaces
}
}
/* RPCs */
}