3 namespace "http://frrouting.org/yang/pim";
15 import ietf-routing-types {
19 import ietf-inet-types {
27 "FRR Users List: <mailto:frog@lists.frrouting.org>
28 FRR Development List: <mailto:dev@lists.frrouting.org>";
31 "The module defines a collection of YANG definitions common for
32 PIM (Protocol Independent Multicast) model.";
38 "RFC XXXX: A YANG Data Model for PIM";
42 base frr-rt:routing-protocol;
44 "'Pim' routing pseudo-protocol.";
55 grouping global-pim-config-attributes {
57 "A grouping defining pim global attributes.";
68 "Enable PIM ECMP Rebalance.";
71 leaf join-prune-interval {
77 "Join Prune Send Interval in seconds.";
80 leaf keep-alive-timer {
86 "Keep alive Timer in seconds.";
89 leaf rp-keep-alive-timer {
95 "RP keep alive Timer in seconds.";
104 "Number of packets to process at one time per fd.";
107 leaf register-suppress-time {
113 "Register Suppress Timer.";
117 grouping per-af-global-pim-config-attributes {
119 "A grouping defining per address family pim global attributes";
121 leaf send-v6-secondary {
122 when "../frr-pim:address-family = 'frr-rt:ipv4'" {
124 "Only applicable to IPv4 address family.";
128 "Send v6 secondary addresses.";
131 container spt-switchover {
137 enum "PIM_SPT_IMMEDIATE" {
140 "Immediate switch to SPT Tree.";
142 enum "PIM_SPT_INFINITY" {
145 "Never switch to SPT Tree.";
148 default "PIM_SPT_IMMEDIATE";
150 "SPT-Switchover action";
153 leaf spt-infinity-prefix-list {
154 when "../spt-action = 'PIM_SPT_INFINITY'" {
156 "This leaf is only valid when the spt action
157 is PIM_SPT_INFINITY.";
161 "Prefix-List to control which groups to switch.";
165 leaf ssm-prefix-list {
168 "Prefix-list used to define Source-Specific Multicast address range.";
171 leaf-list ssm-pingd-source-ip {
172 type inet:ip-address;
174 "Enable ssmpingd operation.";
177 container msdp-mesh-group {
179 "Configure MSDP mesh-group.";
181 leaf mesh-group-name {
184 "MSDP mesh group name.";
187 leaf-list member-ip {
188 type inet:ip-address;
194 type inet:ip-address;
196 "Source ip address for the TCP connection.";
203 "Configure MSDP peer.";
206 type inet:ip-address;
208 "MSDP peer IP address.";
212 type inet:ip-address;
214 "MSDP source IP address.";
220 "Multi-chassis link aggregation.";
223 type frr-interface:interface-ref;
225 "Outgoing interface name.";
229 type inet:ip-address;
236 enum "MLAG_ROLE_NONE" {
241 enum "MLAG_ROLE_PRIMARY" {
244 "MLAG role primary.";
247 enum "MLAG_ROLE_SECONDARY" {
250 "MLAG role secondary.";
253 default "MLAG_ROLE_NONE";
266 leaf register-accept-list {
269 "Only accept registers from a specific source prefix list.";
271 } // per-af-global-pim-config-attributes
273 grouping interface-pim-config-attributes {
275 "A grouping defining pim interface attributes.";
280 "Enable PIM flag on the interface.";
285 range "1..4294967295";
289 "DR (Designated Router) priority";
292 leaf hello-interval {
301 leaf hello-holdtime {
311 "Enable BFD support on the interface.";
313 leaf min-rx-interval {
319 "Required min receive interval";
322 leaf min-tx-interval {
328 "Desired min transmit interval";
344 "Enables BSM support on the interface.";
350 "Accept/Send unicast BSM on the interface.";
356 "Mark interface as Active-Active for MLAG operations.";
358 } // interface-pim-config-attributes
360 grouping per-af-interface-pim-config-attributes {
362 "A grouping defining pim interface attributes per address family.";
365 type inet:ip-address;
367 "Primary address of the interface set by user.";
370 leaf multicast-boundary-oil {
373 "Prefix-List to define multicast boundary";
377 key "source-addr group-addr";
379 "Add multicast route.";
382 type frr-interface:interface-ref;
384 "Outgoing interface name.";
388 type inet:ip-address;
390 "Multicast source address.";
394 type rt-types:ip-multicast-group-address;
396 "Multicast group address.";
399 } // per-af-interface-pim-config-attributes
402 * Global Configuration data nodes
404 augment "/frr-rt:routing/frr-rt:control-plane-protocols/"
405 + "frr-rt:control-plane-protocol" {
407 when "../frr-rt:type = 'frr-pim:pimd'" {
409 "This container is only valid for the 'pim' routing
413 "PIM configuration data.";
415 uses global-pim-config-attributes;
417 list address-family {
418 key "address-family";
420 "Each list entry for one address family.";
421 uses frr-rt:address-family;
422 uses per-af-global-pim-config-attributes;
429 * Per-interface configuration data
431 augment "/frr-interface:lib/frr-interface:interface" {
434 "PIM interface parameters.";
435 uses interface-pim-config-attributes;
436 list address-family {
437 key "address-family";
439 "Each list entry for one address family.";
440 uses frr-rt:address-family;
441 uses per-af-interface-pim-config-attributes;