module ietf-pim-sm {
namespace "urn:ietf:params:xml:ns:yang:ietf-pim-sm";
// replace with IANA namespace when assigned
prefix pim-sm;
import ietf-inet-types {
prefix "inet";
}
import ietf-routing {
prefix "rt";
}
import ietf-pim-base {
prefix "pim-base";
}
import ietf-pim-rp {
prefix "pim-rp";
}
organization
"IETF PIM Working Group";
contact
"WG Web:
WG List:
WG Chair: Stig Venaas
WG Chair: Mike McBride
Editors: ";
description
"The YANG module defines a sparse mode PIM model.";
revision 2015-07-01 {
description
"Initial revision.";
reference
"RFC XXXX: A YANG Data Model for PIM";
}
/*
* Features
*/
feature spt-switch-infinity {
description
"This feature indicates that the system supports configuration
choice whether to trigger the switchover from the rpt to the
spt.";
}
feature spt-switch-policy {
description
"This feature indicates that the system supports configuring
policy for the switchover from the rpt to the spt.";
}
/*
* Identities
*/
identity sm {
base pim-rp:rp-mode;
description
"SM (Spars Mode).";
}
/*
* Groupings
*/
/*
* Configuration data nodes
*/
augment "/rt:routing/rt:routing-instance/"
+ "rt:routing-protocols/pim-base:pim/"
+ "pim-base:address-family" {
description "PIM SM augmentation.";
container sm {
description
"PIM SM configuration data.";
container asm {
description
"ASM (Any Source Multicast) attributes.";
container anycast-rp {
presence
"Present to enable anycast RP.";
description
"Anycast RP attributes.";
container ipv4 {
when "../../../../address-family = 'rt:ipv4'" {
description
"Only applicable to ipv4 address family.";
}
description
"IPv4 attributes. Only applicable when
pim-base:address-family is ipv4.";
list ipv4-anycast-rp {
key "anycast-addr rp-addr";
description
"A list of anycast RP setttings.";
leaf anycast-addr {
type inet:ipv4-address;
description
"IP address of the anycast RP set. This IP address
is used by the multicast groups or sources to join
or register.";
}
leaf rp-addr {
type inet:ipv4-address;
description
"IP address of the router configured with anycast
RP. This is the IP address where the Register
messages are forwarded.";
}
}
}
container ipv6 {
when "../../../../address-family = 'rt:ipv6'" {
description
"Only applicable to ipv6 address family.";
}
description
"IPv6 attributes. Only applicable when
pim-base:address-family is ipv6.";
list ipv6-anycast-rip {
key "anycast-addr rp-addr";
description
"A list of anycast RP setttings.";
leaf anycast-addr {
type inet:ipv6-address;
description
"IP address of the anycast RP set. This IP address
is used by the multicast groups or sources to join
or register.";
}
leaf rp-addr {
type inet:ipv6-address;
description
"IP address of the router configured with anycast
RP. This is the IP address where the Register
messages are forwarded.";
}
}
}
}
container spt-switch {
description
"SPT (Shortest Path Tree) switching attributes.";
leaf infinity {
if-feature spt-switch-infinity;
type boolean;
description
"The receiver's dr never triggers the
switchover from the rpt to the spt.";
}
leaf policy-name {
if-feature spt-switch-policy;
type string;
description
"Switch policy.";
}
}
} // asm
container ssm {
presence
"Present to enable SSM (Source-Specific Multicast).";
description
"SSM (Source-Specific Multicast) attributes.";
leaf range-policy {
type string;
description
"Policy used to define SSM address range.";
}
} // ssm
} // sm
} // augment
/*
* Operational state data nodes
*/
augment "/rt:routing-state/rt:routing-instance/"
+ "rt:routing-protocols/pim-base:pim/"
+ "pim-base:address-family" {
description
"PIM SM state.";
container sm {
description
"PIM SM state data.";
} // sm
} // augment
/*
* RPCs
*/
/*
* Notifications
*/
}