idnits 2.17.00 (12 Aug 2021) /tmp/idnits47913/draft-liu-pim-yang-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 89 instances of too long lines in the document, the longest one being 28 characters in excess of 72. == There are 11 instances of lines with multicast IPv4 addresses in the document. If these are generic example addresses, they should be changed to use the 233.252.0.x range defined in RFC 5771 Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 460 has weird spacing: '...address ine...' == Line 461 has weird spacing: '...address ine...' == Line 472 has weird spacing: '...address ine...' == Line 473 has weird spacing: '...address ine...' == Line 598 has weird spacing: '...nd-addr ine...' == (2 more instances...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (March 22, 2015) is 2610 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: draft-ietf-netmod-routing-cfg has been published as RFC 8022 ** Downref: Normative reference to an Experimental RFC: RFC 3973 ** Obsolete normative reference: RFC 4601 (Obsoleted by RFC 7761) Summary: 3 errors (**), 0 flaws (~~), 10 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group Y. Liu 3 Internet-Draft F. Guo 4 Intended status: Standards Track Huawei 5 Expires: September 23, 2015 M. Sivakumar 6 Cisco 7 March 22, 2015 9 YANG Data Model for PIM 10 draft-liu-pim-yang-01 12 Abstract 14 This document defines a YANG data model that can be used to configure 15 and manage PIM. 17 Requirements Language 19 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 20 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 21 document are to be interpreted as described in RFC 2119 [RFC2119]. 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on September 23, 2015. 40 Copyright Notice 42 Copyright (c) 2015 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 58 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 59 3. Design of Data Model . . . . . . . . . . . . . . . . . . . . 3 60 3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 61 3.2. PIM BSR Configuration . . . . . . . . . . . . . . . . . . 5 62 3.2.1. Per-instance C-BSR Configuration of PIM BSR Instance 5 63 3.2.2. Per-instance C-RP Configuration of PIM BSR Instance . 6 64 3.3. PIM BSR Operation State . . . . . . . . . . . . . . . . . 6 65 3.4. PIM SM Configuration . . . . . . . . . . . . . . . . . . 8 66 3.4.1. Per-instance Parameters . . . . . . . . . . . . . . . 8 67 3.4.2. Per-static-RP configuration of the PIM SM instance . 9 68 3.4.3. Per-SPT-switch configuration of the PIM SM instance . 10 69 3.4.4. Per-Anycast-RP configuration of the PIM SM instance . 10 70 3.4.5. Per-interface configuration of the PIM SM instance . 11 71 3.5. PIM SM Operation State . . . . . . . . . . . . . . . . . 12 72 4. Notification . . . . . . . . . . . . . . . . . . . . . . . . 18 73 5. PIM Yang Module . . . . . . . . . . . . . . . . . . . . . . . 21 74 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 101 75 7. Security Considerations . . . . . . . . . . . . . . . . . . . 101 76 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 101 77 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 101 78 9.1. Normative References . . . . . . . . . . . . . . . . . . 101 79 9.2. Informative References . . . . . . . . . . . . . . . . . 102 80 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 102 82 1. Introduction 84 YANG[RFC6020] is a data definition language that was introduced to 85 define the contents of a conceptual data store that allows networked 86 devices to be managed using NETCONF[RFC6241]. YANG is proving 87 relevant beyond its initial confines, as bindings to other 88 interfaces(e.g. REST) and encoding other than XML (e.g. JSON) are 89 being defined. Furthermore, YANG data models can be used as the 90 basis of implementation for other interface, such as CLI and 91 Programmatic APIs. 93 This document defines a YANG data model that can be used to configure 94 and manage PIM. It includes PIM SM[RFC4601], PIM 95 SSM[RFC4607][RFC4608],PIM BSR[RFC5059]. In addition, It can extend 96 PIM DM[RFC3973], BIDIR PIM[RFC5015] etc. features described in PIM 97 standards other than mentioned above RFC in future version. 99 2. Terminology 101 o PIM: Protocol Independent Multicast 103 o SM: Sparse Mode 105 o SSM: Source-specific Multicast 107 o DM: Dense Mode 109 o BSR: Bootstrap Router 111 o RP: Rendezvous Point 113 o SPT: shortest-path tree 115 o RPT: Rendezvous Point Tree 117 o RPF: Reverse Path Forwarding 119 3. Design of Data Model 121 3.1. Overview 123 Because PIM SSM is a subset of PIM SM, it is not necessary to assign 124 a separate container for PIM SSM. The PIM Yang module is divided 125 into two main containers : 127 o pim-bsr : that contains all pim bsr&rp writable configuration 128 objects and operation states. 130 o pim-sm : that contains all pim sm writable configuration objects 131 and operation states. 133 The figure below describes the overall structure of the PIM Yang 134 module : 136 module: pim 137 +--rw pim 138 +--rw pim-bsr 139 | +--rw pim-bsr-instances 140 | | +--rw c-bsr-instance* [vrf-name address-family] 141 | | | +--... 142 | | +--rw c-rp-instance* [vrf-name address-family] 143 | | +--... 145 | +--rw pim-bsr-ebsr-infos 146 | | +--ro pim-bsr-ebsr-info* [vrf-name address-family] 147 | | +--... 148 | +--rw pim-bsr-cbsr-infos 149 | | +--ro pim-bsr-cbsr-info* [vrf-name address-family] 150 | | +--... 151 | +--rw pim-bsr-ebsr-rps 152 | +--ro pim-bsr-ebsr-rp* [vrf-name address-family] 153 | +--... 154 +--rw pim-sm 155 +--rw pim-sm-instances 156 | +--rw pim-sm-instance* [vrf-name address-family] 157 | +--... 158 | +--rw pim-static-rps 159 | | +--rw pim-static-rp 160 | | +--... 161 | +--rw pim-spt-switchs 162 | | +--rw pim-spt-switch* [spt-threshhold] 163 | | +--... 164 | +--rw pim-sm-anycast-rps 165 | | +--rw pim-sm-anycast-rp 166 | | +--... 167 | | +--rw pim-sm-rp-peers 168 | | +--rw pim-sm-rp-peer 169 | | +--... 170 | +--rw pim-sm-interfaces 171 | +--rw pim-sm-interface* [vrf-name address-family if-name] 172 | +--... 173 +--rw pim-sm-if-infos 174 | +--ro pim-sm-if-info* [vrf-name address-family if-name] 175 | +--... 176 +--rw pim-nbr-infos 177 | +--ro pim-nbr-info* [vrf-name address-family if-name] 178 | +--... 179 | +--ro pim-second-addrs 180 | +--ro pim-second-addr* [second-addr] 181 | +--... 182 +--rw pim-routes 183 | +--ro pim-route* [vrf-name address-family] 184 | +--... 185 | +--ro pim-route-downstreams 186 | +--ro pim-route-downstream* [sg-ds-oif-name] 187 | +--... 188 | +--ro pim-route-downstream-vectors 189 | +--ro pim-route-downstream-vector* 190 | +--... 191 +--rw pim-rpf-routes 192 | +--ro pim-rpf-route* [vrf-name address-family] 193 | +--... 194 | +--ro pim-claim-route-sgs 195 | +--ro pim-claim-route-sg* [ipv4-source-addr ipv6-source-addr i 196 pv4-group-addr ipv6-group-addr] 197 | +--... 198 +--rw pim-embedded-rp-infos 199 | +--ro pim-embedded-rp-info* [vrf-name] 200 | +--... 201 +--rw pim-rp-group-infos 202 | +--ro pim-rp-group-info* [vrf-name address-family] 203 | +--... 204 +--rw pim-bfd-infos 205 | +--ro pim-bfd-info* [vrf-name address-family if-name] 206 | +--... 207 +--rw pim-vrf-packet-statistics 208 +--ro pim-vrf-packet-statistic* [vrf-name address-family] 209 +--... 210 +--ro pim-if-packet-statistics 211 +--ro pim-if-packet-statistic* [if-name] 212 +--... 213 Figure 1 The overview of PIM YANG data model 215 3.2. PIM BSR Configuration 217 PIM BSR configuration container has only one main container: 219 o pim-bsr-instances : that contains all pim c-bsr and c-rp writable 220 configuration objects. 222 PIM BSR per-instance configuration container includes c-bsr and c-rp 223 parameters of the public PIM instance or the PIM instance binding a 224 specific VRF. PIM BSR per-instance configuration container is 225 divided into: 227 o Per-instance c-bsr configuration of the pim-bsr instance. 229 o Per-instance c-rp configuration of the pim-bsr instance. 231 3.2.1. Per-instance C-BSR Configuration of PIM BSR Instance 233 The per-instance C-BSR configuration includes the name of the VRF 234 bound by the pim bsr instance, and timer parameters , policies etc. 235 it also includes administratively scoped BSR configuration. 237 | +--rw pim-bsr-instances 238 | | +--rw c-bsr-instance* [vrf-name address-family] 239 | | | +--rw vrf-name string 240 | | | +--rw address-family enumeration 241 | | | +--rw c-bsr-if-name if-name 242 | | | +--rw ipv4-c-bsr-if-addr? inet:ipv4-address 243 | | | +--rw ipv6-c-bsr-if-addr inet:ipv6-address 244 | | | +--rw c-bsr-holdtime? uint32 245 | | | +--rw c-bsr-interval? uint32 246 | | | +--rw c-bsr-hashlen? uint32 247 | | | +--rw c-bsr-priority? uint8 248 | | | +--rw c-bsr-ply-name? string 249 | | | +--rw c-bsr-ply-ipv6? string 250 | | | +--rw c-bsr-adminscope? boolean 251 | | | +--rw c-bsr-global-enable? boolean 252 | | | +--rw c-bsr-global-hashlength? uint32 253 | | | +--rw c-bsr-global-priority? uint32 254 | | | +--rw is-fragable boolean 256 Figure 2 The YANG data model of PIM C-BSR configuration 258 3.2.2. Per-instance C-RP Configuration of PIM BSR Instance 260 The per-instance C-RP configuration includes the name of the VRF 261 bound by the pim bsr instance, specific interface or address for c-rp 262 and timer parameters , policies etc. 264 | | +--rw c-rp-instance* [vrf-name address-family] 265 | | +--rw vrf-name string 266 | | +--rw address-family enumeration 267 | | +--rw c-rp-if-name if-name 268 | | +--rw c-rp-grpply-name? string 269 | | +--rw c-rp-priority? uint8 270 | | +--rw c-rp-holdtime? uint16 271 | | +--rw c-rp-adv-interval? uint16 272 | | +--rw ipv4-c-rp-addr? inet:ipv4-address 273 | | +--rw ipv6-c-rp-addr inet:ipv6-address 275 Figure 3 The YANG data model of PIM C-RP configuration 277 3.3. PIM BSR Operation State 279 PIM BSR container provides operational states for BSR and RP 280 information. This container is divided in three components: 282 o pim-bsr-ebsr-infos : provide elected bsr state information. 284 o pim-bsr-cbsr-infos : provide candidate bsr state information. 286 o pim-bsr-ebsr-rps : provide rp and group mapping information from 287 the elected bsr. 289 | +--rw pim-bsr-ebsr-infos 290 | | +--ro pim-bsr-ebsr-info* [vrf-name address-family] 291 | | +--ro vrf-name string 292 | | +--ro address-family enumeration 293 | | +--ro ipv4-bsr-addr? inet:ipv4-address 294 | | +--ro ipv6-bsr-addr? inet:ipv6-address 295 | | +--ro bsr-scope? enumeration 296 | | +--ro ipv4-group-addr? inet:ipv4-address 297 | | +--ro ipv6-group-addr? inet:ipv6-address 298 | | +--ro ipv4-group-masklen? uint8 299 | | +--ro ipv6-group-masklen? uint8 300 | | +--ro priority? uint8 301 | | +--ro hash-length? uint8 302 | | +--ro fsm-state? enumeration 303 | | +--ro up-time? uint32 304 | | +--ro expire-time? uint32 305 | | +--ro c-rp-count? uint32 307 Figure 4 The YANG data model of PIM EBSR information 309 | +--rw pim-bsr-cbsr-infos 310 | | +--ro pim-bsr-cbsr-info* [vrf-name address-family] 311 | | +--ro vrf-name string 312 | | +--ro address-family enumeration 313 | | +--ro ipv4-cbsr-addr? inet:ipv4-address 314 | | +--ro ipv6-cbsr-addr? inet:ipv6-address 315 | | +--ro bsr-scope? enumeration 316 | | +--ro ipv4-group-addr? inet:ipv4-address 317 | | +--ro ipv6-group-addr? inet:ipv6-address 318 | | +--ro ipv4-group-masklen? uint8 319 | | +--ro ipv6-group-masklen? uint8 320 | | +--ro priority? uint8 321 | | +--ro hash-length? uint8 322 | | +--ro fsm-state? enumeration 323 | | +--ro is-wait-to-bsr? enumeration 325 Figure 5 The YANG data model of PIM CBSR information 327 | +--rw pim-bsr-ebsr-rps 328 | +--ro pim-bsr-ebsr-rp* [vrf-name address-family] 329 | +--ro vrf-name string 330 | +--ro address-family enumeration 331 | +--ro ipv4-rp-addr? inet:ipv4-address 332 | +--ro ipv6-rp-addr? inet:ipv6-address 333 | +--ro rp-addr-is-local? boolean 334 | +--ro ipv4-group-addr? inet:ipv4-address 335 | +--ro ipv6-group-addr? inet:ipv6-address 336 | +--ro ipv4-group-masklen? uint8 337 | +--ro ipv6-group-masklen? uint8 338 | +--ro priority? uint8 339 | +--ro up-time? uint32 340 | +--ro expiry-time? uint32 342 Figure 6 The YANG data model of PIM RP information 344 3.4. PIM SM Configuration 346 PIM SM configuration container has only one main container: 348 o pim-sm-instances : that contains all pim sm writable configuration 349 objects. 351 PIM SM per-instance configuration container includes pim sm protocol 352 parameters of the public PIM instance or the PIM instance binding a 353 specific VRF. PIM SM per-instance configuration container is divided 354 into: 356 o Per-instance parameters 358 o Per-static-rp configuration of the pim-sm instance 360 o Per-spt-switch configuration of the pim-sm instance 362 o Per-anycast-rp configuration of the pim-sm instance 364 o Per-interface configuration of the pim-sm instance 366 3.4.1. Per-instance Parameters 368 The per-instance parameter includes the name of the VRF bound by the 369 PIM SM instance, and timer parameters such as hello interval etc., 370 and varied policies etc 371 +--rw pim-sm-instances 372 | +--rw pim-sm-instance* [vrf-name address-family] 373 | +--rw vrf-name string 374 | +--rw address-family enumeration 375 | +--rw assert-holdtime? uint16 376 | +--rw jp-holdtime? uint16 377 | +--rw probe-interval? uint16 378 | +--rw jp-timer-interval? uint16 379 | +--rw dr-priority? uint32 380 | +--rw hello-holdtime? uint16 381 | +--rw hello-lan-delay? uint16 382 | +--rw hello-interval? uint16 383 | +--rw hello-override? uint16 384 | +--rw reg-checksum? boolean 385 | +--rw reg-suppress-interval? uint16 386 | +--rw embedded-rp? boolean 387 | +--rw nbr-check-recv? boolean 388 | +--rw nbr-check-send? boolean 389 | +--rw reg-ply-name? string 390 | +--rw reg-ply-ipv6? string 391 | +--rw ssm-ply-name? string 392 | +--rw ssm-ply-ipv6? string 393 | +--rw src-ply-name? string 394 | +--rw src-ply-ipv6? string 395 | +--rw bsr-ply-name? string 396 | +--rw bsr-ply-ipv6? string 397 | +--rw emb-rp-ply-name? string 398 | +--rw source-lifetime? uint16 399 | +--rw ipsec-name? string 400 | +--rw ipsec-type? enumeration 401 | +--rw uni-ipsec-name? string 403 Figure 7 The YANG data model of PIM SM instance configuration 405 3.4.2. Per-static-RP configuration of the PIM SM instance 407 Per-static-RP configuration of the PIM SM instance includes static RP 408 address, preference and policy for group range. For simply 409 deployment, sometimes it is not necessary to deploy dynamic BSR/RP 410 mechanism, and static RP mechanism is also satisfied. 412 | +--rw pim-static-rps 413 | | +--rw pim-static-rp 414 | | +--rw ipv4-static-rp-addr inet:ipv4-address 415 | | +--rw ipv6-static-rp-addr inet:ipv6-address 416 | | +--rw static-rp-ply-name? string 417 | | +--rw static-rp-ply-name-ipv6? string 418 | | +--rw preference? enumeration 420 Figure 8 The YANG data mode of PIM static-RP configuration 422 3.4.3. Per-SPT-switch configuration of the PIM SM instance 424 Per-SPT-switch configuration of the PIM SM instance includes spt 425 switch threshold, group range by policy.PIM SM SPT switch process as 426 described in [RFC4601] makes multicast flows from RPT to SPT in order 427 to optimizing the forwarding paths. 429 | +--rw pim-spt-switchs 430 | | +--rw pim-spt-switch* [spt-threshhold] 431 | | +--rw infinity? boolean 432 | | +--rw spt-threshhold uint32 433 | | +--rw is-acl-enable boolean 434 | | +--rw spt-grp-ply-name? string 435 | | +--rw spt-grp-ply-order? uint32 437 Figure 9 The YANG data model of PIM SPT switch configuration 439 3.4.4. Per-Anycast-RP configuration of the PIM SM instance 441 Anycast-RP as described in [RFC4610] is a mechanism that pim sm 442 register packets have been used to exchange multicast source 443 information and get fast convergence when a PIM Rendezvous Point (RP) 444 router fails. Per-Anycast-RP configuration container is divided into 445 : 447 o Per-anycast-rp parameters 449 o Per-rp-peer configuration of PIM SM Anycast RP 451 3.4.4.1. Per-Anycast-RP Parameters 453 Per-Anycast-RP parameter includes the RP for anycast address, and the 454 local address to establish RP peer link. 456 | +--rw pim-sm-anycast-rps 457 | | +--rw pim-sm-anycast-rp 458 | | +--rw ipv4-rp-address inet:ipv4-address 459 | | +--rw ipv6-rp-address inet:ipv6-address 460 | | +--rw local-ipv4-address inet:ipv4-address 461 | | +--rw local-ipv6-address inet:ipv6-address 463 Figure 10 The YANG data model of PIM SM anycast-RP configuration 465 3.4.4.2. Per-RP-peer Configuration of PIM SM Anycast RP 467 Per-RP-peer configuration of PIM SM anycast RP includes the peer 468 address, source information forwarding policy etc. 470 | | +--rw pim-sm-rp-peers 471 | | +--rw pim-sm-rp-peer 472 | | +--rw ipv4-rp-peer-address inet:ipv4-address 473 | | +--rw ipv6-rp-peer-address inet:ipv6-address 474 | | +--rw fwd-sa-swt? boolean 475 | | +--rw fwd-policy? string 476 | | +--rw fwd-policy-ipv6? string 478 Figure 11 The YANG data model of PIM SM anycast-RP peer configuration 480 3.4.5. Per-interface configuration of the PIM SM instance 482 Per-interface configuration of the PIM SM instance includes the 483 interface name, and the VRF name bound by the interface, and time 484 parameters, policies etc. 486 | +--rw pim-sm-interfaces 487 | +--rw pim-sm-interface* [vrf-name address-family if-name] 488 | +--rw vrf-name string 489 | +--rw address-family enumeration 490 | +--rw if-name if-name 491 | +--rw pim-sm-enable boolean 492 | +--rw dr-priority? uint32 493 | +--rw hello-interval? uint16 494 | +--rw hello-holdtime? uint16 495 | +--rw hello-override? uint16 496 | +--rw hello-lan-delay? uint16 497 | +--rw jp-timer-interval? uint16 498 | +--rw jp-holdtime? uint16 499 | +--rw jp-ply-name? string 500 | +--rw jp-ply-ipv6? string 501 | +--rw jp-asm-ply-name? string 502 | +--rw jp-asm-ply-ipv6? string 503 | +--rw jp-ssm-ply-name? string 504 | +--rw jp-ssm-ply-ipv6? string 505 | +--rw nbr-ply-name? string 506 | +--rw nbr-ply-ipv6? string 507 | +--rw assert-holdtime? uint16 508 | +--rw require-gen-id? boolean 509 | +--rw pim-bsr-boundary? enumeration 510 | +--rw bfd-enable? boolean 511 | +--rw bfd-min-tx? uint16 512 | +--rw bfdminrx? uint16 513 | +--rw bfd-multiplier? uint8 514 | +--rw is-silent? boolean 515 | +--rw is-dr-swt-delay? boolean 516 | +--rw dr-swt-delay-interval? uint16 517 | +--rw ipsec-name? string 518 | +--rw ipsec-type? enumeration 520 Figure 12 The YANG data model of PIM SM interface configuration 522 3.5. PIM SM Operation State 524 PIM SM container provides operational states for interface, 525 neighbor,routing etc. information. This container is divided in 526 multiple components: 528 o pim-sm-if-infos : provide interface state and running parameters 529 information for all of the PIM SM interfaces. 531 o pim-nbr-infos : provide neighbor state information for all of the 532 PIM SM neighbors. 534 o pim-routes : provide routing state information for all of the PIM 535 SM routing entries. 537 o pim-rpf-routes : provide RPF routing state information for all of 538 the PIM SM routing entries. 540 o pim-embedded-rp-infos : provide embedded RP information for all of 541 the PIM SM ipv6 groups. 543 o pim-rp-group-infos : provide group RP mapping information for all 544 of the PIM SM groups. 546 o pim-bfd-infos : provide BFD session information for all of the BFD 547 sessions created by PIM SM. 549 o pim-vrf-packet-statistics : provide PIM SM packet statistical 550 information for all of the PIM SM protocol packets. 552 +--rw pim-sm-if-infos 553 | +--ro pim-sm-if-info* [vrf-name address-family if-name] 554 | +--ro vrf-name string 555 | +--ro address-family enumeration 556 | +--ro if-name if-name 557 | +--ro if-up-state? enumeration 558 | +--ro neighbor-count? uint32 559 | +--ro dr-priority? uint32 560 | +--ro ipv4-dr-addr? inet:ipv4-address 561 | +--ro ipv6-dr-addr? inet:ipv6-address 562 | +--ro hello-interval? uint16 563 | +--ro hello-holdtime? uint16 564 | +--ro assert-holdtime? uint16 565 | +--ro jp-interval? uint16 566 | +--ro jp-holdtime? uint16 567 | +--ro lan-delay-neg? uint16 568 | +--ro hello-over-interval-neg? uint16 569 | +--ro gen-id? uint32 570 | +--ro non-dr-neighbor-num? uint32 571 | +--ro non-lan-delay-neighbor-num? uint32 572 | +--ro non-join-attribute-neighbor-num? uint32 573 | +--ro join-attribute? boolean 574 | +--ro ipsec-name? string 575 | +--ro ipsec-type? enumeration 577 The Figure 13 The YANG data model of PIM SM interface information 578 +--rw pim-nbr-infos 579 | +--ro pim-nbr-info* [vrf-name address-family if-name] 580 | +--ro vrf-name string 581 | +--ro address-family enumeration 582 | +--ro if-name if-name 583 | +--ro ipv4-nbr-addr? inet:ipv4-address 584 | +--ro ipv6-nbr-addr? inet:ipv6-address 585 | +--ro up-time? uint32 586 | +--ro expire-time? uint32 587 | +--ro dr-priority-present? boolean 588 | +--ro dr-priority? uint32 589 | +--ro gen-id-present? boolean 590 | +--ro gen-id? uint32 591 | +--ro holdtime? uint16 592 | +--ro lan-delay-present? boolean 593 | +--ro lan-delay? uint16 594 | +--ro override-interval? uint16 595 | +--ro join-attribute? boolean 596 | +--ro pim-second-addrs 597 | +--ro pim-second-addr* [second-addr] 598 | +--ro second-addr inet:ipv6-address 600 The Figure 14 The YANG data model of PIM SM neighbor information 602 +--rw pim-routes 603 | +--ro pim-route* [vrf-name address-family] 604 | +--ro vrf-name string 605 | +--ro address-family enumeration 606 | +--ro ipv4-source-addr? inet:ipv4-address 607 | +--ro ipv6-source-addr? inet:ipv6-address 608 | +--ro ipv4-group-addr? inet:ipv4-address 609 | +--ro ipv6-group-addr? inet:ipv6-address 610 | +--ro sg-up-protocl-type? enumeration 611 | +--ro rp-mode-type? enumeration 612 | +--ro ipv4-rp-addr? inet:ipv4-address 613 | +--ro ipv6-rp-addr? inet:ipv6-address 614 | +--ro rp-addr-is-local? boolean 615 | +--ro sg-flag? string 616 | +--ro sg-up-time? uint32 617 | +--ro sg-iif-name? string 618 | +--ro sg-vector-rd? string 619 | +--ro ipv4-sg-vector-addr? inet:ipv4-address 620 | +--ro ipv6-sg-vector-addr? inet:ipv6-address 621 | +--ro sg-elect-vector-rd? string 622 | +--ro ipv4-sg-elect-vector-addr? inet:ipv4-address 623 | +--ro ipv6-sg-elect-vector-addr? inet:ipv6-address 624 | +--ro ipv4-sg-up-nbr-addr? inet:ipv4-address 625 | +--ro ipv6-sg-up-nbr-addr? inet:ipv6-address 626 | +--ro ipv4-sg-rpf-addr? inet:ipv4-address 627 | +--ro ipv6-sg-rpf-addr? inet:ipv6-address 628 | +--ro ipv4-sg-refer-addr? inet:ipv4-address 629 | +--ro ipv6-sg-refer-addr? inet:ipv6-address 630 | +--ro sg-rpf-masklen? uint8 631 | +--ro sg-rpf-metric? uint16 632 | +--ro sg-rpf-metric-preference? uint16 633 | +--ro backup-sg-iif-name? string 634 | +--ro ipv4-backup-sg-up-nbr-addr? inet:ipv4-address 635 | +--ro ipv6-backup-sg-up-nbr-addr? inet:ipv6-address 636 | +--ro ipv4-backup-sg-rpf-addr? inet:ipv4-address 637 | +--ro ipv6-backup-sg-rpf-addr? inet:ipv6-address 638 | +--ro sg-up-state? enumeration 639 | +--ro sg-up-exp-time? uint32 640 | +--ro sg-up-rp-tstate? enumeration 641 | +--ro sg-up-rpt-overtime? uint32 642 | +--ro sg-reg-state? enumeration 643 | +--ro sg-reg-stop-time? uint32 644 | +--ro pim-route-downstreams 645 | +--ro pim-route-downstream* [sg-ds-oif-name] 646 | +--ro sg-ds-oif-name string 647 | +--ro sg-ds-protocol-type? string 648 | +--ro sg-ds-up-time? uint32 649 | +--ro sg-ds-expire-time? uint32 650 | +--ro sg-ds-dr-state? boolean 651 | +--ro sg-ds-state? enumeration 652 | +--ro sg-ds-ppt-time? uint32 653 | +--ro sg-ds-assert-state? enumeration 654 | +--ro sg-ds-assert-time? uint32 655 | +--ro ipv4-sg-ds-assert-win-addr? inet:ipv4-address 656 | +--ro ipv6-sg-ds-assert-win-addr? inet:ipv6-address 657 | +--ro sg-ds-assert-win-metric? uint16 658 | +--ro sg-ds-ast-win-metric-pre? uint16 659 | +--ro sg-ds-local-member? boolean 660 | +--ro sg-ds-rpt-state? enumeration 661 | +--ro sg-ds-rpt-ppt-time? uint32 662 | +--ro sg-ds-rpt-expire-time? uint32 663 | +--ro sg-vector-num? uint16 664 | +--ro pim-route-downstream-vectors 665 | +--ro pim-route-downstream-vector* 666 | +--ro ipv4-neighbor-addr? inet:ipv4-address 667 | +--ro ipv6-neighbor-addr? inet:ipv6-address 668 | +--ro neighbor-vector-rd? string 669 | +--ro ipv4-neighbor-vector-addr? inet:ipv4-address 670 | +--ro ipv6-neighbor-vector-addr? inet:ipv6-address 671 | +--ro neighbor-expire-time? uint32 673 Figure 15 The YANG data model of PIM SM routing information 674 +--rw pim-rpf-routes 675 | +--ro pim-rpf-route* [vrf-name address-family] 676 | +--ro vrf-name string 677 | +--ro address-family enumeration 678 | +--ro ipv4-dest-addr? inet:ipv4-address 679 | +--ro ipv6-dest-addr? inet:ipv6-address 680 | +--ro if-name? if-name 681 | +--ro ipv4-rpf-addr? inet:ipv4-address 682 | +--ro ipv6-rpf-addr? inet:ipv6-address 683 | +--ro ipv4-refer-route-addr? inet:ipv4-address 684 | +--ro ipv6-refer-route-addr? inet:ipv6-address 685 | +--ro ipv4-refer-route-masklen? uint8 686 | +--ro ipv6-refer-route-masklen? uint8 687 | +--ro refer-route-type? enumeration 688 | +--ro pim-claim-route-sgs 689 | +--ro pim-claim-route-sg* [ipv4-source-addr ipv6-source-addr i 690 pv4-group-addr ipv6-group-addr] 691 | +--ro ipv4-source-addr inet:ipv4-address 692 | +--ro ipv6-source-addr inet:ipv6-address 693 | +--ro ipv4-group-addr inet:ipv4-address 694 | +--ro ipv6-group-addr inet:ipv6-address 696 The Figure 16 The YANG data model of PIM SM RPF routing information 698 +--rw pim-embedded-rp-infos 699 | +--ro pim-embedded-rp-info* [vrf-name] 700 | +--ro vrf-name string 701 | +--ro ipv6-group-addr? inet:ipv6-address 702 | +--ro embedded-rp-addr? inet:ipv6-address 704 The Figure 17 The YANG data model of PIM SM embedded RP information 706 +--rw pim-rp-group-infos 707 | +--ro pim-rp-group-info* [vrf-name address-family] 708 | +--ro vrf-name string 709 | +--ro address-family enumeration 710 | +--ro ipv4-group-addr? inet:ipv4-address 711 | +--ro ipv6-group-addr? inet:ipv6-address 712 | +--ro ipv4-bsr-rp-addr? inet:ipv4-address 713 | +--ro ipv6-bsr-rp-addr? inet:ipv6-address 714 | +--ro ipv4-static-rp-addr? inet:ipv4-address 715 | +--ro ipv6-static-rp-addr? inet:ipv6-address 716 | +--ro embedded-rp-addr? inet:ipv6-address 717 | +--ro ipv4-map-rp-addr? inet:ipv4-address 718 | +--ro ipv6-map-rp-addr? inet:ipv6-address 720 Figure 18 The YANG data model of PIM SM group RP mapping information 721 +--rw pim-bfd-infos 722 | +--ro pim-bfd-info* [vrf-name address-family if-name] 723 | +--ro vrf-name string 724 | +--ro address-family enumeration 725 | +--ro if-name if-name 726 | +--ro ipv4-neighbor-addr? inet:ipv4-address 727 | +--ro ipv6-neighbor-addr? inet:ipv6-address 728 | +--ro act-tx? uint32 729 | +--ro act-rx? uint32 730 | +--ro act-multi? uint32 731 | +--ro local-port? uint32 732 | +--ro remote-port? uint32 733 | +--ro bfd-status? enumeration 735 Figure 19 The YANG data model of PIM SM BFD session information 736 +--rw pim-vrf-packet-statistics 737 +--ro pim-vrf-packet-statistic* [vrf-name address-family] 738 +--ro vrf-name string 739 +--ro address-family enumeration 740 +--ro register-recv-num? uint32 741 +--ro register-send-num? uint32 742 +--ro register-invalid-num? uint32 743 +--ro register-filter-num? uint32 744 +--ro register-stop-recv-num? uint32 745 +--ro register-stop-send-num? uint32 746 +--ro register-stop-invalid-num? uint32 747 +--ro register-stop-filter-num? uint32 748 +--ro probe-recv-num? uint32 749 +--ro probe-send-num? uint32 750 +--ro probe-invalid-num? uint32 751 +--ro probe-filter-num? uint32 752 +--ro crp-recv-num? uint32 753 +--ro crp-send-num? uint32 754 +--ro crp-invalid-num? uint32 755 +--ro crp-filter-num? uint32 756 +--ro pim-if-packet-statistics 757 +--ro pim-if-packet-statistic* [if-name] 758 +--ro if-name if-name 759 +--ro assert-recv-num? uint32 760 +--ro assert-send-num? uint32 761 +--ro assert-invalid-num? uint32 762 +--ro assert-filter-num? uint32 763 +--ro hello-recv-num? uint32 764 +--ro hello-send-num? uint32 765 +--ro hello-invalid-num? uint32 766 +--ro hello-filter-num? uint32 767 +--ro jp-recv-num? uint32 768 +--ro jp-send-num? uint32 769 +--ro jp-invalid-num? uint32 770 +--ro jp-filter-num? uint32 771 +--ro bsr-recv-num? uint32 772 +--ro bsr-send-num? uint32 773 +--ro bsr-invalid-num? uint32 774 +--ro bsr-filter-num? uint32 776 Figure 20 The YANG data model of PIM SM packet statistics 778 4. Notification 780 The pim yang data model introduces some notifications: 782 pim-neighbor-loss : This notification is sent when an adjacency with 783 a neighbor was lost. 785 pim-invalid-register : This notification is sent when an invalid PIM 786 Register message was received. 788 pim-invalid-join-prune : This notification is sent when an invalid 789 PIM Join/Prune message was received. 791 pim-rp-mapping-change : This notification is sent when the active RP 792 mapping has been changed. 794 pim-interface-election : This notification is sent when a new PIM DR 795 has been elected on a network. 797 notifications: 798 +---n pim-neighbor-loss 799 | +--ro vrf-name? string 800 | +--ro address-family? enumeration 801 | +--ro if-name? if-name 802 | +--ro ipv4-neighbor-addr? inet:ipv4-address 803 | +--ro ipv6-neighbor-addr? inet:ipv6-address 804 | +--ro neighbor-up-time? uint32 805 +---n pim-invalid-register 806 | +--ro vrf-name? string 807 | +--ro address-family? enumeration 808 | +--ro ipv4-invalid-register-origin? inet:ipv4-address 809 | +--ro ipv6-invalid-register-origin? inet:ipv6-address 810 | +--ro ipv4-invalid-register-group? inet:ipv4-address 811 | +--ro ipv6-invalid-register-group? inet:ipv6-address 812 | +--ro ipv4-invalid-register-rp? inet:ipv4-address 813 | +--ro ipv6-invalid-register-rp? inet:ipv6-address 814 +---n pim-invalid-join-prune 815 | +--ro vrf-name? string 816 | +--ro address-family? enumeration 817 | +--ro ipv4-invalid-join-prune-origin? inet:ipv4-address 818 | +--ro ipv6-invalid-join-prune-origin? inet:ipv6-address 819 | +--ro ipv4-invalid-join-prune-group? inet:ipv4-address 820 | +--ro ipv6-invalid-join-prune-group? inet:ipv6-address 821 | +--ro ipv4-invalid-join-prune-rp? inet:ipv4-address 822 | +--ro ipv6-invalid-join-prune-rp? inet:ipv6-address 823 | +--ro neighbor-up-time? uint32 824 +---n pim-rp-mapping-change 825 | +--ro vrf-name? string 826 | +--ro address-family? enumeration 827 | +--ro group-mapping-origin? enumeration 828 | +--ro ipv4-group-mapping-group-address? inet:ipv4-address 829 | +--ro ipv6-group-mapping-group-address? inet:ipv6-address 830 | +--ro group-mapping-group-prefix-length? uint8 831 | +--ro ipv4-group-mapping-rp-address? inet:ipv4-address 832 | +--ro ipv6-group-mapping-rp-address? inet:ipv6-address 833 | +--ro group-mapping-precedence? uint32 834 +---n pim-interface-election 835 +--ro vrf-name? string 836 +--ro address-family? enumeration 837 +--ro if-name? if-name 838 +--ro ipv4-if-addr? inet:ipv4-address 839 +--ro ipv6-if-addr? inet:ipv6-address 841 Figure 21 The YANG data model of PIM SM notifications 843 5. PIM Yang Module 845 module pim { 846 namespace "urn:huawei:params:xml:ns:yang:pim"; 847 // replace with IANA namespace when assigned - 848 // urn:ietf:params:xml:ns:yang:1 849 prefix "pim"; 850 import ietf-inet-types { 851 prefix inet; 852 } 853 organization 854 "IETF PIM(Protocol Independent Multicast) Working Group"; 855 contact 856 "liuyisong@huawei.com 857 guofeng@huawei.com 858 masivaku@cisco.com"; 859 description 860 "This YANG module defines the generic configuration 861 data for PIM, which is common across all of the vendor 862 implementations of the protocol. It is intended that the module 863 will be extended by vendors to define vendor-specific 864 PIM configuration parameters."; 865 revision 2015-03-09 { 866 description 867 "Add operation and notification content."; 868 } 869 revision 2014-10-21 { 870 description 871 "Initial revision."; 872 } 874 typedef if-name { 875 description "if-name is like ethernet1/1/1/1"; 876 type string { 877 length "1..63"; 878 } 879 } 881 container pim { 883 container pim-bsr { 885 container pim-bsr-instances { 887 list c-bsr-instance { 889 key "vrf-name address-family"; 890 max-elements "unbounded"; 891 min-elements "0"; 892 description "Specifies an pim bsr instance."; 894 leaf vrf-name { 895 description "Name of a vpn instance."; 896 config "true"; 897 //default "_public_"; 898 type string { 899 length "0..32"; 900 } 901 } 902 leaf address-family { 903 config "true"; 904 mandatory "true"; 905 type enumeration { 906 enum ipv4unicast { 907 value "0"; 908 description 909 "Address family, which 910 determines whether an address belongs 911 to ipv4 or ipv6."; 912 } 913 enum ipv6unicast { 914 value "1"; 915 description 916 "Address family, which determines 917 whether an address belongs to ipv4 918 or ipv6."; 919 } 920 } 921 } 922 leaf c-bsr-if-name { 923 description "interface name."; 924 config "true"; 925 mandatory "true"; 926 type if-name; 927 } 929 leaf ipv4-c-bsr-if-addr { 930 description 931 "Global ipv4 unicast address of the c-bsr."; 932 config "true"; 933 type inet:ipv4-address; 934 } 935 leaf ipv6-c-bsr-if-addr { 936 description 937 "Global ipv6 unicast address of the c-bsr."; 938 config "true"; 939 mandatory "true"; 940 type inet:ipv6-address; 941 } 942 leaf c-bsr-holdtime { 943 description 944 "Timeout period (called holdtime) during which 945 c-bsrs wait to receive bootstrap messages 946 from the bsr. The value is an integer ranging 947 from 1 to 214748364, in seconds. The default 948 value is 130.To prevent frequent bsr elections, 949 set the same holdtime for all c-bsrs in the 950 same domain. If an interval (called bs_interval) 951 at which bootstrap messages are sent has been 952 set for c-bsrs, ensure that the specified 953 holdtime is larger than the bs_interval."; 954 config "true"; 955 default "130"; 956 type uint32 { 957 range "1..214748364"; 958 } 959 } 960 leaf c-bsr-interval { 961 description 962 "Interval (called bs_interval) at which a bsr 963 continuously sends bootstrap messages. The 964 value is an integer ranging from 1 to 965 107374177, in seconds. the default value is 966 60.To prevent frequent bsr elections, set 967 the same bs_interval for all c-bsrs in the 968 same domain.If a timeout period (called 969 holdtime) during which c-bsrs wait to 970 receive bootstrap messages from the bsr has 971 been set for c-bsrs, ensure that the 972 specified bs_interval is smaller than the 973 holdtime."; 974 config "true"; 975 default "60"; 976 type uint32 { 977 range "1..107374177"; 978 } 979 } 980 leaf c-bsr-hashlen { 981 description 982 "Global hash mask length for a c-bsr. the 983 value is an integer ranging from 0 to 32. 984 The default value is 30. in ipv4, the value 985 is an integer ranging from 0 to 32, and the 986 default value is 30. in ipv6, the value is 987 an integer ranging from 0 to 128, and the 988 default value is 126."; 989 config "true"; 990 default "126"; 991 type uint32 { 992 range "0..128"; 993 } 994 } 995 leaf c-bsr-priority { 996 description 997 "Globally specify a priority for all c-bsrs 998 on the router. The greater the value, the 999 higher the priority. The value is an integer 1000 ranging from 0 to 255. the default value is 0."; 1001 config "true"; 1002 default "0"; 1003 type uint8 { 1004 range "0..255"; 1005 } 1006 } 1007 leaf c-bsr-ply-name { 1008 description 1009 "Policy for limiting the range of valid bsr 1010 addresses so that a router discards the 1011 messages received from the bsrs not in the 1012 specified address range. The value is an 1013 integer ranging from 2000 to 2999, or a 1014 string of 1 to 32 case-sensitive characters. 1015 By default, the range of valid bsr addresses 1016 is not limited."; 1017 config "true"; 1018 type string { 1019 length "1..255"; 1020 pattern "^[^ ]+$"; 1021 } 1022 } 1023 leaf c-bsr-ply-ipv6 { 1024 description 1025 "Policy for limiting the range of valid bsr 1026 addresses so that a router discards the 1027 messages received from the bsrs not in the 1028 specified address range. The value is an 1029 integer ranging from 2000 to 2999, or a 1030 string of 1 to 32 case-sensitive characters. 1031 By default, the range of valid bsr addresses 1032 is not limited."; 1033 config "true"; 1034 type string { 1035 length "1..255"; 1036 pattern "^[^ ]+$"; 1037 } 1038 } 1039 leaf c-bsr-adminscope { 1040 description 1041 "One pim-sm domain is divided into multiple 1042 bsr administrative domains to implement 1043 rp-set advertisement. by default, there is 1044 only one bsr in the entire pim-sm domain."; 1045 config "true"; 1046 type boolean 1047 { 1048 } 1049 } 1050 leaf c-bsr-global-enable { 1051 description 1052 "The router is a c-bsr in the global domain. 1053 By default, no c-bsr is configured in the 1054 global domain."; 1055 config "true"; 1056 type boolean 1057 { 1058 } 1059 } 1060 leaf c-bsr-global-hashlength { 1061 description 1062 "Hash mask length for the c-bsr in the global 1063 domain. The value is an integer ranging 1064 from 0 to 32. The default value is 30."; 1065 config "true"; 1066 default "30"; 1067 type uint32 { 1068 range "0..32"; 1069 } 1070 } 1071 leaf c-bsr-global-priority { 1072 description 1073 "Priority for the c-bsr in the global domain. 1074 The greater the value, the higher the 1075 priority. The value is an integer ranging 1076 from 0 to 255. the default value is 0."; 1077 config "true"; 1078 default "0"; 1079 type uint32 { 1080 range "0..255"; 1081 } 1082 } 1083 leaf is-fragable { 1084 description 1085 "Enable the c-bsr message fragmentation 1086 function. By default, this function is 1087 disabled."; 1088 config "true"; 1089 mandatory "true"; 1090 type boolean 1091 { 1092 } 1093 } 1094 } 1096 list c-rp-instance { 1098 key "vrf-name address-family"; 1099 max-elements "unbounded"; 1100 min-elements "0"; 1101 description "specifies a c-rp instance."; 1103 leaf vrf-name { 1104 description "Name of a vpn name."; 1105 config "true"; 1106 //default "_public_"; 1107 type string { 1108 length "0..32"; 1109 } 1110 } 1111 leaf address-family { 1112 config "true"; 1113 mandatory "true"; 1114 type enumeration { 1115 enum ipv4unicast { 1116 value "0"; 1117 description 1118 "Address family, which determines 1119 whether an address belongs to ipv4 1120 or ipv6."; 1121 } 1122 enum ipv6unicast { 1123 value "1"; 1124 description 1125 "Address family, which determines 1126 whether an address belongs to ipv4 1127 or ipv6."; 1128 } 1129 } 1130 } 1131 leaf c-rp-if-name { 1132 description "interface name."; 1133 config "true"; 1134 mandatory "true"; 1135 type if-name; 1136 } 1137 leaf c-rp-grpply-name { 1138 description 1139 "Policy for limiting the range of valid group 1140 addresses. With this policy, a router 1141 discards messages received from the addresses 1142 not in the specified range. The value is an 1143 integer ranging from 2000 to 2999, or a 1144 string of 1 to 32 case-sensitive characters."; 1145 config "true"; 1146 type string { 1147 length "1..255"; 1148 pattern "^[^ ]+$"; 1149 } 1150 } 1151 leaf c-rp-priority { 1152 description 1153 "Priority of a c-rp. The greater the value, 1154 the lower the priority. The value is an 1155 integer ranging from 0 to 255. The default 1156 value is 0."; 1157 config "true"; 1158 default "0"; 1159 type uint8 { 1160 range "0..255"; 1161 } 1162 } 1163 leaf c-rp-holdtime { 1164 description 1165 "Timeout period during which a bsr waits to 1166 receive advertisement messages from a c-rp. 1167 The value is an integer ranging from 1 to 1168 65535, in seconds. The default value is 150."; 1169 config "true"; 1170 default "150"; 1171 type uint16 { 1172 range "1..65535"; 1173 } 1174 } 1175 leaf c-rp-adv-interval { 1176 description 1177 "Interval at which a c-rp sends advertisement 1178 messages. The value is an integer ranging 1179 from 1 to 65535, in seconds. The default 1180 value is 60."; 1181 config "true"; 1182 default "60"; 1183 type uint16 { 1184 range "1..65535"; 1185 } 1186 } 1187 leaf ipv4-c-rp-addr { 1188 description "specifies a c-rp address."; 1189 config "true"; 1190 type inet:ipv4-address; 1191 } 1192 leaf ipv6-c-rp-addr { 1193 description "specifies a c-rp address."; 1194 config "true"; 1195 mandatory "true"; 1196 type inet:ipv6-address; 1197 } 1198 } 1199 } 1201 container pim-bsr-ebsr-infos { 1203 list pim-bsr-ebsr-info { 1205 key "vrf-name address-family"; 1206 config "false"; 1208 leaf vrf-name { 1209 description "Name of a vpn instance."; 1210 config "false"; 1211 //default "_public_"; 1212 type string { 1213 length "0..32"; 1214 } 1215 } 1216 leaf address-family { 1217 config "false"; 1218 type enumeration { 1219 enum ipv4unicast { 1220 value "0"; 1221 description "ipv4unicast:ipv4unicast"; 1222 } 1223 enum ipv6unicast { 1224 value "1"; 1225 description "ipv6unicast:ipv6unicast"; 1227 } 1228 } 1229 } 1230 leaf ipv4-bsr-addr { 1231 description "address of an elected bsr."; 1232 config "false"; 1233 type inet:ipv4-address; 1234 } 1235 leaf ipv6-bsr-addr { 1236 description "address of an elected bsr."; 1237 config "false"; 1238 type inet:ipv6-address; 1239 } 1240 leaf bsr-scope { 1241 description 1242 "whether the bsr is a bsr in an 1243 administrative domain."; 1244 config "false"; 1245 type enumeration { 1246 enum notscoped { 1247 value "0"; 1248 description "notscoped:notscoped"; 1249 } 1250 enum global { 1251 value "1"; 1252 description "global:global"; 1253 } 1254 enum adminscope { 1255 value "2"; 1256 description "adminscope:adminscope"; 1257 } 1258 } 1259 } 1260 leaf ipv4-group-addr { 1261 description 1262 "Multicast group address. In ipv4 address, 1263 the value ranges from 239.0.0.0 to 1264 239.255.255.255. "; 1265 config "false"; 1266 type inet:ipv4-address; 1267 } 1268 leaf ipv6-group-addr { 1269 description 1270 "Multicast group address. In ipv6, the value 1271 is in hexadecimal notation and in the format 1272 of ffxx:xxxx:xxxx::xxxx "; 1273 config "false"; 1274 type inet:ipv6-address; 1276 } 1277 leaf ipv4-group-masklen { 1278 description 1279 "Mask length of a group address. The value is 1280 an integer ranging from 4 to 32."; 1281 config "false"; 1282 type uint8 { 1283 range "4..32"; 1284 } 1285 } 1286 leaf ipv6-group-masklen { 1287 description 1288 "Mask length of a group address. the value is 1289 an integer ranging from 8 to 128."; 1290 config "false"; 1291 type uint8 { 1292 range "8..128"; 1293 } 1294 } 1295 leaf priority { 1296 description 1297 "Priority for a c-bsr to participate in bsr 1298 election. The greater the value, the higher 1299 the priority. The value is an integer 1300 ranging from 0 to 255. The default value is 1301 0."; 1302 config "false"; 1303 type uint8 { 1304 range "0..255"; 1305 } 1306 } 1307 leaf hash-length { 1308 description 1309 "Hash length used by an elected bsr to perform 1310 rp calculation. The value is an integer 1311 ranging from 0 to 32."; 1312 config "false"; 1313 type uint8 { 1314 range "0..32"; 1315 } 1316 } 1317 leaf fsm-state { 1318 description "status of an elected bsr."; 1319 config "false"; 1320 type enumeration { 1321 enum unknown { 1322 value "0"; 1323 description "unknown:unknown"; 1325 } 1326 enum acceptany { 1327 value "1"; 1328 description "acceptany:acceptany"; 1329 } 1330 enum acceptpreferred { 1331 value "2"; 1332 description "acceptpreferred:acceptpreferred"; 1333 } 1334 enum candidate { 1335 value "3"; 1336 description "candidate:candidate"; 1337 } 1338 enum pending { 1339 value "4"; 1340 description "pending:pending"; 1341 } 1342 enum elected { 1343 value "5"; 1344 description "elected:elected"; 1345 } 1346 } 1347 } 1348 leaf up-time { 1349 description 1350 "time since the c-bsr was elected as the bsr."; 1351 config "false"; 1352 type uint32 { 1353 range "0..4294967295"; 1354 } 1355 } 1356 leaf expire-time { 1357 description 1358 "period after which the elected bsr on the 1359 lan sends the next bootstrap message."; 1360 config "false"; 1361 type uint32 { 1362 range "0..4294967295"; 1363 } 1364 } 1365 leaf c-rp-count { 1366 description "number of candidate rps."; 1367 config "false"; 1368 type uint32 { 1369 range "0..4294967295"; 1370 } 1371 } 1373 } 1375 } 1377 container pim-bsr-cbsr-infos { 1379 list pim-bsr-cbsr-info { 1381 key "vrf-name address-family"; 1382 config "false"; 1384 leaf vrf-name { 1385 description "Name of a vpn instance."; 1386 config "false"; 1387 //default "_public_"; 1388 type string { 1389 length "0..32"; 1390 } 1391 } 1392 leaf address-family { 1393 config "false"; 1394 type enumeration { 1395 enum ipv4unicast { 1396 value "0"; 1397 description "ipv4unicast:ipv4unicast"; 1398 } 1399 enum ipv6unicast { 1400 value "1"; 1401 description "ipv6unicast:ipv6unicast"; 1402 } 1403 } 1404 } 1405 leaf ipv4-cbsr-addr { 1406 description "address of a c-bsr."; 1407 config "false"; 1408 type inet:ipv4-address; 1409 } 1410 leaf ipv6-cbsr-addr { 1411 description "address of a c-bsr."; 1412 config "false"; 1413 type inet:ipv6-address; 1414 } 1415 leaf bsr-scope { 1416 description 1417 "whether the bsr is a bsr in an administrative 1418 domain."; 1419 config "false"; 1420 type enumeration { 1421 enum notscoped { 1422 value "0"; 1423 description "notscoped:notscoped"; 1424 } 1425 enum global { 1426 value "1"; 1427 description "global:global"; 1428 } 1429 enum adminscope { 1430 value "2"; 1431 description "adminscope:adminscope"; 1432 } 1433 } 1434 } 1435 leaf ipv4-group-addr { 1436 description 1437 "Multicast group address. In ipv4 address, 1438 the value ranges from 239.0.0.0 to 1439 239.255.255.255. "; 1440 config "false"; 1441 type inet:ipv4-address; 1442 } 1443 leaf ipv6-group-addr { 1444 description 1445 "Multicast group address. In ipv6, the value 1446 is in hexadecimal notation and in the format 1447 of ffxx:xxxx:xxxx::xxxx "; 1448 config "false"; 1449 type inet:ipv6-address; 1450 } 1451 leaf ipv4-group-masklen { 1452 description 1453 "Mask length of a group address. The value is 1454 an integer ranging from 4 to 32."; 1455 config "false"; 1456 type uint8 { 1457 range "4..32"; 1458 } 1459 } 1460 leaf ipv6-group-masklen { 1461 description 1462 "Mask length of a group address. the value is 1463 an integer ranging from 8 to 128."; 1464 config "false"; 1465 type uint8 { 1466 range "8..128"; 1467 } 1468 } 1469 leaf priority { 1470 description 1471 "Priority for a c-bsr to participate in bsr 1472 election. The greater the value, the higher 1473 the priority. The value is an integer 1474 ranging from 0 to 255. the default value is 1475 0."; 1476 config "false"; 1477 type uint8 { 1478 range "0..255"; 1479 } 1480 } 1481 leaf hash-length { 1482 description 1483 "Hash length used by an elected bsr to 1484 perform rp calculation. The value is an 1485 integer ranging from 0 to 32."; 1486 config "false"; 1487 type uint8 { 1488 range "0..32"; 1489 } 1490 } 1491 leaf fsm-state { 1492 description "status of a c-bsr."; 1493 config "false"; 1494 type enumeration { 1495 enum unknown { 1496 value "0"; 1497 description "unknown:unknown"; 1498 } 1499 enum acceptany { 1500 value "1"; 1501 description "acceptany:acceptany"; 1502 } 1503 enum acceptpreferred { 1504 value "2"; 1505 description "acceptpreferred:acceptpreferred"; 1506 } 1507 enum candidate { 1508 value "3"; 1509 description "candidate:candidate"; 1510 } 1511 enum pending { 1512 value "4"; 1513 description "pending:pending"; 1514 } 1515 enum elected { 1516 value "5"; 1517 description "elected:elected"; 1518 } 1519 } 1520 } 1521 leaf is-wait-to-bsr { 1522 description 1523 "whether the current c-bsr is valid 1524 (0: valid; 1: invalid)."; 1525 config "false"; 1526 type enumeration { 1527 enum join { 1528 value "0"; 1529 description "join:join"; 1530 } 1531 enum notjoin { 1532 value "1"; 1533 description "notjoin:notjoin"; 1534 } 1535 } 1536 } 1537 } 1539 } 1541 container pim-bsr-ebsr-rps { 1543 list pim-bsr-ebsr-rp { 1545 key "vrf-name address-family"; 1546 config "false"; 1548 leaf vrf-name { 1549 description "Name of a vpn instance."; 1550 config "false"; 1551 //default "_public_"; 1552 type string { 1553 length "0..32"; 1554 } 1555 } 1556 leaf address-family { 1557 config "false"; 1558 type enumeration { 1559 enum ipv4unicast { 1560 value "0"; 1561 description "ipv4unicast:ipv4unicast"; 1562 } 1563 enum ipv6unicast { 1564 value "1"; 1565 description "ipv6unicast:ipv6unicast"; 1566 } 1567 } 1568 } 1569 leaf ipv4-rp-addr { 1570 description "rp address."; 1571 config "false"; 1572 type inet:ipv4-address; 1573 } 1574 leaf ipv6-rp-addr { 1575 description "rp address."; 1576 config "false"; 1577 type inet:ipv6-address; 1578 } 1579 leaf rp-addr-is-local { 1580 description 1581 "whether the rp address is a local address."; 1582 config "false"; 1583 type boolean; 1584 } 1585 leaf ipv4-group-addr { 1586 description 1587 "Multicast group address. In ipv4 address, 1588 the value ranges from 239.0.0.0 to 1589 239.255.255.255. "; 1590 config "false"; 1591 type inet:ipv4-address; 1592 } 1593 leaf ipv6-group-addr { 1594 description 1595 "Multicast group address. in ipv6, the value 1596 is in hexadecimal notation and in the format 1597 of ffxx:xxxx:xxxx::xxxx "; 1598 config "false"; 1599 type inet:ipv6-address; 1600 } 1601 leaf ipv4-group-masklen { 1602 description 1603 "Mask length of a group address. The value is 1604 an integer ranging from 4 to 32."; 1605 config "false"; 1606 type uint8 { 1607 range "4..32"; 1608 } 1609 } 1610 leaf ipv6-group-masklen { 1611 description 1612 "Mask length of a group address. The value is 1613 an integer ranging from 8 to 128."; 1614 config "false"; 1615 type uint8 { 1616 range "8..128"; 1617 } 1618 } 1619 leaf priority { 1620 description 1621 "Priority of an rp. The greater the value, 1622 the higher the priority. The value is an 1623 integer ranging from 0 to 255. the default 1624 value is 0."; 1625 config "false"; 1626 type uint8 { 1627 range "0..255"; 1628 } 1629 } 1630 leaf up-time { 1631 description 1632 "time since the c-rp was elected as the rp."; 1633 config "false"; 1634 type uint32 { 1635 range "0..4294967295"; 1636 } 1637 } 1638 leaf expiry-time { 1639 description 1640 "time after which an rp will expire, in 1641 seconds."; 1642 config "false"; 1643 type uint32 { 1644 range "0..4294967295"; 1645 } 1646 } 1648 } 1650 } 1652 } 1654 container pim-sm { 1656 container pim-sm-instances { 1658 list pim-sm-instance { 1660 key "vrf-name address-family"; 1661 max-elements "unbounded"; 1662 min-elements "0"; 1663 description "Specifies an pim-sm instance."; 1665 leaf vrf-name { 1666 description "Name of a vpn instance."; 1667 config "true"; 1668 //default "_public_"; 1669 type string { 1670 length "0..32"; 1671 } 1672 } 1674 leaf address-family { 1675 config "true"; 1676 mandatory "true"; 1677 type enumeration { 1678 enum ipv4unicast { 1679 value "0"; 1680 description 1681 "Address family, which determines 1682 whether an address belongs to ipv4 1683 or ipv6."; 1684 } 1685 enum ipv6unicast { 1686 value "1"; 1687 description 1688 "Address family, which determines 1689 whether an address belongs to ipv4 1690 or ipv6."; 1691 } 1692 } 1693 } 1694 leaf assert-holdtime { 1695 description 1696 "Timeout period during which pim interfaces 1697 wait to receive assert messages from the 1698 forwarder. The value is an integer ranging 1699 from 0 to 65535, in seconds. The default 1700 value is 180. "; 1701 config "true"; 1702 default "180"; 1703 type uint16 { 1704 range "0..65535"; 1705 } 1706 } 1707 leaf jp-holdtime { 1708 description 1709 "Holdtime for a join/prune message sent by a 1710 pim interface. The value is an integer 1711 ranging from 1 to 65535, in seconds. The 1712 default value is 210. Commonly, the holdtime 1713 is 3.5 times longer than the interval for 1714 all the interfaces to send join/prune messages."; 1715 config "true"; 1716 default "210"; 1717 type uint16 { 1718 range "1..65535"; 1719 } 1720 } 1721 leaf probe-interval { 1722 description 1723 "Interval at which probe messages are sent 1724 to an rp. The value is an integer ranging 1725 from 1 to 3600, in seconds. The default 1726 value is 5."; 1727 config "true"; 1728 default "5"; 1729 type uint16 { 1730 range "1..3600"; 1731 } 1732 } 1733 leaf jp-timer-interval { 1734 description 1735 "Interval at which join/prune messages are 1736 sent. The value is an integer ranging from 1737 1 to 2147483647, in seconds. It must be 1738 shorter than the holdtime of join/prune 1739 messages. The default value is 60. "; 1740 config "true"; 1741 default "60"; 1742 type uint16 { 1743 range "1..18000"; 1744 } 1745 } 1746 leaf dr-priority { 1747 description 1748 "Dr election priority for a router. The 1749 greater the value, the higher the priority. 1750 The value is an integer ranging from 0 to 1751 4294967295. The default value is 1."; 1752 config "true"; 1753 default "1"; 1754 type uint32 { 1755 range "0..4294967295"; 1756 } 1758 } 1759 leaf hello-holdtime { 1760 description 1761 "Timeout period during which a pim interface 1762 waits to receive hello messages from its 1763 neighbors. The value is an integer that 1764 ranging from 1 to 65535, in seconds. It must 1765 be longer than the interval for pim neighbors 1766 to send hello messages. The default value 1767 is 105. "; 1768 config "true"; 1769 default "105"; 1770 type uint16 { 1771 range "1..65535"; 1772 } 1773 } 1774 leaf hello-lan-delay { 1775 description 1776 "Delay for transmitting prune messages on a 1777 shared network segment. The value is an 1778 integer ranging from 1 to 32767, in 1779 milliseconds. The default value is 500."; 1780 config "true"; 1781 default "500"; 1782 type uint16 { 1783 range "1..32767"; 1784 } 1785 } 1786 leaf hello-interval { 1787 description 1788 "Specifies the interval at which hello 1789 messages are sent. The value is an integer 1790 ranging from 1 to 18000, in seconds. 1791 It must be shorter than the timeout period 1792 of pim neighbors. The default value is 30."; 1793 config "true"; 1794 default "30"; 1795 type uint16 { 1796 range "1..18000"; 1797 } 1798 } 1799 leaf hello-override { 1800 description 1801 "Interval at which the prune action in a hello 1802 message is overridden. The value is an 1803 integer ranging from 1 to 65535, in 1804 milliseconds. The default value is 2500."; 1805 config "true"; 1806 default "2500"; 1807 type uint16 { 1808 range "1..65535"; 1809 } 1810 } 1811 leaf reg-checksum { 1812 description 1813 "Configure a router to calculate the checksum 1814 based on all contents of a register message. 1815 By default, the checksum is calculated based 1816 on the header of a register message only."; 1817 config "true"; 1818 default "false"; 1819 type boolean { 1820 } 1821 } 1822 leaf reg-suppress-interval { 1823 description 1824 "Timeout period during which a router remains 1825 in the registration suppression state. The 1826 value is an integer ranging from 0 to 65535, 1827 in seconds. The default value is 60."; 1828 config "true"; 1829 default "60"; 1830 type uint16 { 1831 range "0..65535"; 1832 } 1833 } 1834 leaf embedded-rp { 1835 description 1836 "Enable the embedded rp function. By default, 1837 the embedded rp function is enabled."; 1838 config "true"; 1839 default "true"; 1840 type boolean { 1841 } 1842 } 1843 leaf nbr-check-recv { 1844 description 1845 "Enable the pim neighbor check function to 1846 check whether received join/prune and assert 1847 messages are sent from a pim neighbor. If 1848 not, these messages are discarded. By 1849 default, the pim neighbor check function is 1850 disabled."; 1851 config "true"; 1852 type boolean { 1853 } 1855 } 1856 leaf nbr-check-send { 1857 description 1858 "Enable the pim neighbor check function to 1859 check whether join/prune and assert messages 1860 are to be sent to an ipv4/v6 pim neighbor. 1861 If not, these messages are not sent. By 1862 default, the pim neighbor check function is 1863 disabled for join/prune and assert messages 1864 to be sent."; 1865 config "true"; 1866 type boolean { 1867 } 1868 } 1869 leaf reg-ply-name { 1870 description 1871 "Policy for filtering register messages. The 1872 value is an integer ranging from 3000 to 1873 3999, or a string of 1 to 32 case-sensitive 1874 characters."; 1875 config "true"; 1876 type string { 1877 length "1..32"; 1878 pattern "^[^ ]+$"; 1879 } 1880 } 1881 leaf reg-ply-ipv6 { 1882 description 1883 "Policy for filtering register messages. The 1884 value is an integer ranging from 3000 to 1885 3999, or a string of 1 to 32 case-sensitive 1886 characters."; 1887 config "true"; 1888 type string { 1889 length "1..32"; 1890 pattern "^[^ ]+$"; 1891 } 1892 } 1893 leaf ssm-ply-name { 1894 description 1895 "Policy for limiting the range of valid ssm 1896 group addresses. The value is an integer 1897 ranging from 2000 to 2999, or a string of 1 1898 to 32 case-sensitive characters."; 1899 config "true"; 1900 type string { 1901 length "1..32"; 1902 pattern "^[^ ]+$"; 1904 } 1905 } 1906 leaf ssm-ply-ipv6 { 1907 description 1908 "Range of ssm group addresses. The value is 1909 an integer ranging from 2000 to 2999, or a 1910 string of 1 to 32 case-sensitive characters."; 1911 config "true"; 1912 type string { 1913 length "1..32"; 1914 pattern "^[^ ]+$"; 1915 } 1916 } 1917 leaf src-ply-name { 1918 description 1919 "Policy for filtering multicast entries based 1920 on source addresses or based on both source 1921 and group addresses. The value is an integer 1922 ranging from 2000 to 3999, or a string of 1 1923 to 32 case-sensitive characters."; 1924 config "true"; 1925 type string { 1926 length "1..32"; 1927 pattern "^[^ ]+$"; 1928 } 1929 } 1930 leaf src-ply-ipv6 { 1931 description 1932 "Policy for filtering multicast entries based 1933 on source addresses or based on both source 1934 and group addresses. The value is an integer 1935 ranging from 2000 to 3999, or a string of 1 1936 to 32 case-sensitive characters."; 1937 config "true"; 1938 type string { 1939 length "1..32"; 1940 pattern "^[^ ]+$"; 1941 } 1942 } 1943 leaf bsr-ply-name { 1944 description 1945 "Policy for limiting the range of valid bsr 1946 addresses so that a router discards the 1947 messages received from the bsrs not in the 1948 specified address range. The value is an 1949 integer ranging from 2000 to 2999, or a 1950 string of 1 to 32 case-sensitive characters. 1951 By default, the range of valid bsr addresses 1952 is not limited."; 1953 config "true"; 1954 type string { 1955 length "1..32"; 1956 pattern "^[^ ]+$"; 1957 } 1958 } 1959 leaf bsr-ply-ipv6 { 1960 description 1961 "Policy for limiting the range of valid bsr 1962 addresses so that a router discards the 1963 messages received from the bsrs not in the 1964 specified address range. The value is an 1965 integer ranging from 2000 to 2999, or a 1966 string of 1 to 32 case-sensitive characters. 1967 By default, the range of valid bsr addresses 1968 is not limited."; 1969 config "true"; 1970 type string { 1971 length "1..32"; 1972 pattern "^[^ ]+$"; 1973 } 1974 } 1975 leaf emb-rp-ply-name { 1976 description 1977 "Policy for limiting the range of multicast 1978 groups to which an embedded-rp applies. The 1979 value is an integer ranging from 2000 to 1980 2999, or a string of 1 to 32 case-sensitive 1981 characters."; 1982 config "true"; 1983 type string { 1984 length "1..32"; 1985 pattern "^[^ ]+$"; 1986 } 1987 } 1988 leaf source-lifetime { 1989 description 1990 "Timeout period for (s, g) entries on a 1991 router. The value is an integer ranging from 1992 60 to 65535, in seconds. The default value 1993 is 210."; 1994 config "true"; 1995 default "210"; 1996 type uint16 { 1997 range "60..65535"; 1998 } 1999 } 2000 leaf ipsec-name { 2001 description 2002 "Description of an sa. The value is a string 2003 of 1 to 15 characters."; 2004 config "true"; 2005 type string { 2006 length "1..15"; 2007 pattern "^[^ ]+$"; 2008 } 2009 } 2010 leaf ipsec-type { 2011 description 2012 "Hello options based on the ipsec type."; 2013 config "true"; 2014 type enumeration { 2015 enum forall { 2016 value "0"; 2017 description 2018 "hello options based on the ipsec type."; 2019 } 2020 enum forhello { 2021 value "1"; 2022 description 2023 "hello options based on the ipsec type."; 2024 } 2025 } 2026 } 2027 leaf uni-ipsec-name { 2028 description 2029 "Description of an sa. the value is a string 2030 of 1 to 15 characters."; 2031 config "true"; 2032 type string { 2033 length "1..15"; 2034 pattern "^[^ ]+$"; 2035 } 2036 } 2037 container pim-static-rps { 2039 container pim-static-rp { 2041 leaf ipv4-static-rp-addr { 2042 description "Specifies a static rp address."; 2043 config "true"; 2044 mandatory "true"; 2045 type inet:ipv4-address; 2046 } 2047 leaf ipv6-static-rp-addr { 2048 description "Specifies a static rp address."; 2049 config "true"; 2050 mandatory "true"; 2051 type inet:ipv6-address; 2052 } 2053 leaf static-rp-ply-name { 2054 description 2055 "Static rp policy. The value is an 2056 integer ranging from 2000 to 2999, 2057 or a string of 1 to 32 2058 case-sensitive characters."; 2059 config "true"; 2060 type string { 2061 length "1..32"; 2062 pattern "^[^ ]+$"; 2063 } 2064 } 2065 leaf static-rp-ply-name-ipv6 { 2066 description 2067 "Static rp policy. the value is an 2068 integer ranging from 2000 to 2999, 2069 or a string of 1 to 32 2070 case-sensitive characters."; 2071 config "true"; 2072 type string { 2073 length "1..32"; 2074 pattern "^[^ ]+$"; 2075 } 2076 } 2077 leaf preference { 2078 description 2079 "Whether the static rp is preferred. 2080 The value can be: 0: the static rp 2081 is not preferred. 1: the static rp 2082 is preferred. the default value is 0."; 2083 config "true"; 2084 default "notprefer"; 2085 type enumeration { 2086 enum notprefer { 2087 value "0"; 2088 description 2089 "Whether the static rp is 2090 preferred. the value can be: 2091 0: the static rp is not 2092 preferred. 2093 1: the static rp is preferred. 2094 The default value is 0."; 2095 } 2096 enum prefer { 2097 value "1"; 2098 description 2099 "Whether the static rp is 2100 preferred. the value can be: 2101 0: the static rp is not preferred. 2102 1: the static rp is preferred. 2103 The default value is 0."; 2104 } 2105 } 2106 } 2108 } 2110 } 2112 container pim-spt-switchs { 2114 list pim-spt-switch { 2116 key "spt-threshhold"; 2117 max-elements "unbounded"; 2118 min-elements "0"; 2119 description 2120 "Rate threshold of multicast packets that 2121 can trigger a receiver's dr to send a 2122 join message to a multicast source to 2123 set up an spt. By default, the receiver's 2124 dr performs the switchover from the rpt 2125 to the spt after receiving the first 2126 multicast data packet."; 2128 leaf infinity { 2129 description 2130 "The receiver's dr never triggers the 2131 switchover from the rpt to the spt."; 2132 config "true"; 2133 type boolean { 2134 } 2135 } 2136 leaf spt-threshhold { 2137 description 2138 "Multicast packet rate threshold that 2139 triggers the switchover from the rpt 2140 to the spt. The value is an integer 2141 ranging from 1 to 4194304, in kbit/s. "; 2142 config "true"; 2143 type uint32 { 2144 range "1..4194304"; 2145 } 2146 } 2147 leaf is-acl-enable { 2148 description 2149 "Whether to enable a group policy. "; 2150 config "true"; 2151 mandatory "true"; 2152 type boolean { 2153 } 2154 } 2155 leaf spt-grp-ply-name { 2156 description 2157 "Name of a named acl. The value is an 2158 integer ranging from 2000 to 2999, 2159 or a string of 1 to 32 case-sensitive 2160 characters. If the parameter is not 2161 set, the threshold is applied to all 2162 multicast groups. \"0\" means that 2163 no acl is specified."; 2164 config "true"; 2165 type string { 2166 length "1..32"; 2167 pattern "^[^ ]+$"; 2168 } 2169 } 2170 leaf spt-grp-ply-order { 2171 description 2172 "Adjust the order of the acls in the 2173 group-policy list. If a group matches 2174 multiple acls, the threshold is 2175 selected in the order specified by 2176 the order-value parameter. 2177 Order-value specifies the updated 2178 number. It is an integer. The value 2179 is any value other than original one 2180 in the current group-policy list. If 2181 the parameter is not set, the order 2182 of the acls in the group-policy list 2183 does not change."; 2184 config "true"; 2185 default "4294967295"; 2186 type uint32 { 2187 range "1..4294967295"; 2188 } 2189 } 2190 } 2192 } 2194 container pim-sm-anycast-rps { 2196 container pim-sm-anycast-rp { 2198 leaf ipv4-rp-address { 2199 description 2200 "Address of an ipv4 anycast-rp peer"; 2201 config "true"; 2202 mandatory "true"; 2203 type inet:ipv4-address; 2204 } 2206 leaf ipv6-rp-address { 2207 description 2208 "Address of an ipv6 anycast-rp peer"; 2209 config "true"; 2210 mandatory "true"; 2211 type inet:ipv6-address; 2212 } 2214 leaf local-ipv4-address { 2215 description 2216 "Address of an ipv4 anycast-rp peer"; 2217 config "true"; 2218 mandatory "true"; 2219 type inet:ipv4-address; 2220 } 2222 leaf local-ipv6-address { 2223 description 2224 "Address of an ipv4 anycast-rp peer"; 2225 config "true"; 2226 mandatory "true"; 2227 type inet:ipv6-address; 2228 } 2230 container pim-sm-rp-peers { 2232 container pim-sm-rp-peer { 2234 leaf ipv4-rp-peer-address { 2235 description 2236 "Address of an ipv4 anycast-rp peer"; 2237 config "true"; 2238 mandatory "true"; 2239 type inet:ipv4-address; 2241 } 2242 leaf ipv6-rp-peer-address { 2243 description 2244 "Address of an ipv6 anycast-rp peer"; 2245 config "true"; 2246 mandatory "true"; 2247 type inet:ipv6-address; 2248 } 2249 leaf fwd-sa-swt { 2250 description 2251 "Whether to forward to 2252 anycast-rp peers source 2253 information learned through 2254 sa messages."; 2255 config "true"; 2256 type boolean { 2257 } 2258 } 2259 leaf fwd-policy { 2260 description 2261 "Policy for filtering sa 2262 messages to be forwarded to 2263 anycast-rp peers. The value 2264 is an integer ranging from 2265 2000 to 2999, or a string of 2266 1 to 32 case-sensitive 2267 characters."; 2268 config "true"; 2269 type string { 2270 length "1..32"; 2271 pattern "^[^ ]+$"; 2272 } 2273 } 2274 leaf fwd-policy-ipv6 { 2275 description 2276 "Policy for filtering sa 2277 messages to be forwarded to 2278 anycast-rp peers. The value 2279 is an integer ranging from 2280 2000 to 2999, or a string of 2281 1 to 32 case-sensitive 2282 characters."; 2283 config "true"; 2284 type string { 2285 length "1..32"; 2286 pattern "^[^ ]+$"; 2287 } 2288 } 2290 } 2292 } 2294 } 2296 } 2298 container pim-sm-interfaces { 2300 list pim-sm-interface { 2302 key "vrf-name address-family if-name"; 2303 max-elements "unbounded"; 2304 min-elements "0"; 2305 description "Specifies an pim sm interface."; 2307 leaf vrf-name { 2308 description 2309 "Name of an pim sm instance. If the 2310 name string is empty the instance 2311 means a public instance whose name 2312 is _public_."; 2313 config "true"; 2314 mandatory "true"; 2315 //default "_public_"; 2316 type string { 2317 length "0..32"; 2318 } 2319 } 2320 leaf address-family { 2321 config "true"; 2322 mandatory "true"; 2323 type enumeration { 2324 enum ipv4unicast { 2325 value "0"; 2326 description 2327 "Address family, which 2328 determines whether an 2329 address belongs to ipv4 2330 or ipv6."; 2331 } 2332 enum ipv6unicast { 2333 value "1"; 2334 description 2335 "Address family, which 2336 determines whether an 2337 address belongs to ipv4 2338 or ipv6."; 2339 } 2340 } 2341 } 2342 leaf if-name { 2343 description "Interface name."; 2344 config "true"; 2345 mandatory "true"; 2346 type if-name; 2347 } 2348 leaf pim-sm-enable { 2349 description 2350 "Enable pim-sm on an interface."; 2351 config "true"; 2352 mandatory "true"; 2353 type boolean { 2354 } 2355 } 2356 leaf dr-priority { 2357 description 2358 "Dr priority. The greater the value, 2359 the higher the priority. The value 2360 is an integer ranging from 0 to 2361 4294967295. The default value is 1."; 2362 config "true"; 2363 default "1"; 2364 type uint32 { 2365 range "0..4294967295"; 2366 } 2367 } 2368 leaf hello-interval { 2369 description 2370 "Interval at which hello messages are 2371 sent. The value is an integer ranging 2372 from 1 to 2147483647, in seconds. It 2373 must be shorter than the timeout 2374 period of pim neighbors. The default 2375 value is 30."; 2376 config "true"; 2377 default "30"; 2378 type uint16 { 2379 range "1..18000"; 2380 } 2381 } 2382 leaf hello-holdtime { 2383 description 2384 "Timeout period during which a router 2385 waits for hello messages sent from 2386 its pim neighbors. The value is an 2387 integer ranging from 1 to 65535, in 2388 seconds. It must be longer than the 2389 interval for pim neighbors to send 2390 hello messages. The default value 2391 is 105."; 2392 config "true"; 2393 default "105"; 2394 type uint16 { 2395 range "1..65535"; 2396 } 2397 } 2398 leaf hello-override { 2399 description 2400 "Interval at which the prune action 2401 in a hello message is overridden. 2402 The value is an integer ranging from 2403 1 to 65535, in milliseconds. The 2404 default value is 2500."; 2405 config "true"; 2406 default "2500"; 2407 type uint16 { 2408 range "1..65535"; 2409 } 2410 } 2411 leaf hello-lan-delay { 2412 description 2413 "Period from the time when a router 2414 receives a prune message from a 2415 downstream device to the time when 2416 the router performs the prune action. 2417 The value is an integer ranging from 2418 1 to 32767, in milliseconds. The 2419 default value is 500."; 2420 config "true"; 2421 default "500"; 2422 type uint16 { 2423 range "1..32767"; 2424 } 2425 } 2426 leaf jp-timer-interval { 2427 description 2428 "Interval at which join/prune messages 2429 are sent. The value is an integer 2430 ranging from 1 to 2147483647, in 2431 seconds. the default value is 60. 2432 The interval must be shorter than 2433 the holdtime of join/prune messages."; 2435 config "true"; 2436 default "60"; 2437 type uint16 { 2438 range "1..18000"; 2439 } 2440 } 2441 leaf jp-holdtime { 2442 description 2443 "Holdtime for join/prune messages 2444 sent by a router. The value is an 2445 integer ranging from 1 to 65535, in 2446 seconds. The default value is 210. 2447 The holdtime must be longer than the 2448 interval at which join/prune 2449 messages are sent."; 2450 config "true"; 2451 default "210"; 2452 type uint16 { 2453 range "1..65535"; 2454 } 2455 } 2456 leaf jp-ply-name { 2457 description 2458 "Policy for filtering join/prune 2459 messages. The value is an integer 2460 ranging from 2000 to 2999, or a 2461 string of 1 to 32 case-sensitive 2462 characters. By default, no policy 2463 is configured to filter join/prune 2464 messages."; 2465 config "true"; 2466 type string { 2467 length "1..32"; 2468 pattern "^[^ ]+$"; 2469 } 2470 } 2471 leaf jp-ply-ipv6 { 2472 description 2473 "Policy for filtering join/prune 2474 messages. The value is an integer 2475 ranging from 2000 to 2999, or a 2476 string of 1 to 32 case-sensitive 2477 characters. By default, no policy 2478 is configured to filter join/prune 2479 messages."; 2480 config "true"; 2481 type string { 2482 length "1..32"; 2483 pattern "^[^ ]+$"; 2484 } 2485 } 2486 leaf jp-asm-ply-name { 2487 description 2488 "Policy for filtering asm join/prune 2489 messages. The value is an integer 2490 ranging from 2000 to 2999, or a 2491 string of 1 to 32 case-sensitive 2492 characters. By default, no policy is 2493 configured to filter asm join/prune 2494 messages."; 2495 config "true"; 2496 type string { 2497 length "1..32"; 2498 pattern "^[^ ]+$"; 2499 } 2500 } 2501 leaf jp-asm-ply-ipv6 { 2502 description 2503 "Policy for filtering asm join/prune 2504 messages. The value is an integer 2505 ranging from 2000 to 2999, or a 2506 string of 1 to 32 case-sensitive 2507 characters. By default, no policy is 2508 configured to filter asm join/prune 2509 messages."; 2510 config "true"; 2511 type string { 2512 length "1..32"; 2513 pattern "^[^ ]+$"; 2514 } 2515 } 2516 leaf jp-ssm-ply-name { 2517 description 2518 "Policy for filtering ssm join/prune 2519 messages. The value is an integer 2520 ranging from 3000 to 3999, or a 2521 string of 1 to 32 case-sensitive 2522 characters. By default, no policy is 2523 configured to filter ssm join/prune 2524 messages."; 2525 config "true"; 2526 type string { 2527 length "1..32"; 2528 pattern "^[^ ]+$"; 2529 } 2530 } 2531 leaf jp-ssm-ply-ipv6 { 2532 description 2533 "Policy for filtering ssm join/prune 2534 messages. The value is an integer 2535 ranging from 3000 to 3999, or a 2536 string of 1 to 32 case-sensitive 2537 characters. By default, no policy is 2538 configured to filter ssm join/prune 2539 messages."; 2540 config "true"; 2541 type string { 2542 length "1..32"; 2543 pattern "^[^ ]+$"; 2544 } 2545 } 2546 leaf nbr-ply-name { 2547 description 2548 "Policy for filtering pim neighbors. 2549 The value is an integer ranging from 2550 2000 to 2999, or a string of 1 to 32 2551 case-sensitive characters. By default, 2552 no policy is configured to filter 2553 pim neighbors."; 2554 config "true"; 2555 type string { 2556 length "1..32"; 2557 pattern "^[^ ]+$"; 2558 } 2559 } 2560 leaf nbr-ply-ipv6 { 2561 description 2562 "Policy for filtering pim neighbors. 2563 The value is an integer ranging from 2564 2000 to 2999, or a string of 1 to 32 2565 case-sensitive characters. By default, 2566 no policy is configured to filter 2567 pim neighbors."; 2568 config "true"; 2569 type string { 2570 length "1..32"; 2571 pattern "^[^ ]+$"; 2572 } 2573 } 2574 leaf assert-holdtime { 2575 description 2576 "Timeout period during which pim 2577 interfaces wait to receive assert 2578 messages from the forwarder. The 2579 value is an integer ranging from 0 2580 to 65535, in seconds.The default 2581 value is 180."; 2582 config "true"; 2583 default "180"; 2584 type uint16 { 2585 range "0..65535"; 2586 } 2587 } 2588 leaf require-gen-id { 2589 description 2590 "Configure a pim interface to deny 2591 hello messages that do not carry 2592 generation ids. By default, a pim 2593 interface receives hello messages 2594 that do not carry generation ids."; 2595 config "true"; 2596 type boolean { 2597 } 2598 } 2599 leaf pim-bsr-boundary { 2600 description 2601 "Boundary for a pim domain. 2602 The value can be: 2603 0: no boundary; 2604 1: bidirectional domain boundary; 2605 2: inbound unidirectional domain boundary."; 2606 config "true"; 2607 default "none"; 2608 type enumeration { 2609 enum none { 2610 value "0"; 2611 description 2612 "Boundary for a pim domain. 2613 The value can be: 2614 0: no boundary; 2615 1: bidirectional domain boundary; 2616 2: inbound unidirectional domain boundary."; 2617 } 2618 enum both { 2619 value "1"; 2620 description 2621 "Boundary for a pim domain. 2622 The value can be: 2623 0: no boundary; 2624 1: bidirectional domain boundary; 2625 2: inbound unidirectional domain boundary."; 2626 } 2627 enum incoming { 2628 value "2"; 2629 description 2630 "Boundary for a pim domain. 2631 The value can be: 2632 0: no boundary; 2633 1: bidirectional domain boundary; 2634 2: inbound unidirectional domain boundary."; 2635 } 2636 } 2637 } 2638 leaf bfd-enable { 2639 description 2640 "Enable pim bfd on an interface. 2641 By default, pim bfd is not enabled 2642 on an interface."; 2643 config "true"; 2644 type boolean { 2645 } 2646 } 2647 leaf bfd-min-tx { 2648 description 2649 "Minimum interval at which bfd 2650 messages are sent. The value is an 2651 integer ranging from 3 to 1000, 2652 in milliseconds. "; 2653 config "true"; 2654 default "0"; 2655 type uint16 { 2656 range "0..1000"; 2657 } 2658 } 2659 leaf bfdminrx { 2660 description 2661 "Minimum interval at which bfd 2662 messages are received. The value is 2663 an integer ranging from 3 to 1000, 2664 in milliseconds. "; 2665 config "true"; 2666 default "0"; 2667 type uint16 { 2668 range "0..1000"; 2669 } 2670 } 2671 leaf bfd-multiplier { 2672 description 2673 "Local detect multiplier for bfd 2674 messages. The value is an integer 2675 ranging from 3 to 50. The default 2676 value is 3."; 2677 config "true"; 2678 default "3"; 2679 type uint8 { 2680 range "3..50"; 2681 } 2682 } 2683 leaf is-silent { 2684 description 2685 "Enable the pim silent function on an 2686 interface. By default, pim silent is 2687 disabled on an interface. "; 2688 config "true"; 2689 default "false"; 2690 type boolean { 2691 } 2692 } 2693 leaf is-dr-swt-delay { 2694 description 2695 "Enable dr switchover delay on an 2696 interface. By default, this function 2697 is disabled on an interface."; 2698 config "true"; 2699 default "false"; 2700 type boolean { 2701 } 2702 } 2703 leaf dr-swt-delay-interval { 2704 description 2705 "Delay for a dr switchover. The value 2706 is an integer ranging from 10 to 3600. 2707 The default value is 10. The setting 2708 is ineffective if the dr switchover 2709 delay function is not enabled."; 2710 config "true"; 2711 default "10"; 2712 type uint16 { 2713 range "10..3600"; 2714 } 2715 } 2716 leaf ipsec-name { 2717 description 2718 "Description of an sa. The value is a 2719 string of 1 to 15 characters."; 2720 config "true"; 2721 type string { 2722 length "1..15"; 2723 pattern "^[^ ]+$"; 2724 } 2725 } 2726 leaf ipsec-type { 2727 description 2728 "Hello options based on the ipsec type."; 2729 config "true"; 2730 type enumeration { 2731 enum forall { 2732 value "0"; 2733 description 2734 "Hello options based on the ipsec type."; 2735 } 2736 enum forhello { 2737 value "1"; 2738 description 2739 "Hello options based on the ipsec type."; 2740 } 2741 } 2742 } 2743 } 2744 } 2746 } 2748 } 2750 container pim-sm-if-infos { 2752 list pim-sm-if-info { 2754 key "vrf-name address-family if-name"; 2755 config "false"; 2757 leaf vrf-name { 2758 description "Name of a vpn instance."; 2759 config "false"; 2760 //default "_public_"; 2761 type string { 2762 length "0..32"; 2763 } 2764 } 2765 leaf address-family { 2766 config "false"; 2767 type enumeration { 2768 enum ipv4unicast { 2769 value "0"; 2770 description "ipv4unicast:ipv4unicast"; 2772 } 2773 enum ipv6unicast { 2774 value "1"; 2775 description "ipv6unicast:ipv6unicast"; 2776 } 2777 } 2778 } 2779 leaf if-name { 2780 description "Interface name."; 2781 config "false"; 2782 type if-name; 2783 } 2784 leaf if-up-state { 2785 description 2786 "Status of an interface: up or down."; 2787 config "false"; 2788 type enumeration { 2789 enum down { 2790 value "0"; 2791 description "down:down"; 2792 } 2793 enum up { 2794 value "1"; 2795 description "up:up"; 2796 } 2797 } 2798 } 2799 leaf neighbor-count { 2800 description 2801 "Number of pim neighbors on an interface."; 2802 config "false"; 2803 type uint32 { 2804 range "0..4294967295"; 2805 } 2806 } 2807 leaf dr-priority { 2808 description "Dr priority."; 2809 config "false"; 2810 type uint32 { 2811 range "0..4294967295"; 2812 } 2813 } 2814 leaf ipv4-dr-addr { 2815 description "Dr address."; 2816 config "false"; 2817 type inet:ipv4-address; 2818 } 2819 leaf ipv6-dr-addr { 2820 description "Dr address."; 2821 config "false"; 2822 type inet:ipv6-address; 2823 } 2825 leaf hello-interval { 2826 description 2827 "Interval at which hello messages are sent."; 2828 config "false"; 2829 type uint16 { 2830 range "1..18000"; 2831 } 2832 } 2833 leaf hello-holdtime { 2834 description 2835 "Timeout period during which a router waits 2836 to receive hello messages from its neighbors."; 2837 config "false"; 2838 type uint16 { 2839 range "1..65535"; 2840 } 2841 } 2842 leaf assert-holdtime { 2843 description 2844 "Timeout period during which pim interfaces 2845 wait to receive assert messages from the 2846 forwarder. "; 2847 config "false"; 2848 type uint16 { 2849 range "0..65535"; 2850 } 2851 } 2852 leaf jp-interval { 2853 description 2854 "Interval at which join/prune messages are 2855 sent."; 2856 config "false"; 2857 type uint16 { 2858 range "1..18000"; 2859 } 2860 } 2861 leaf jp-holdtime { 2862 description 2863 "Holdtime for join/prune messages sent by a 2864 router."; 2865 config "false"; 2866 type uint16 { 2867 range "1..65535"; 2869 } 2870 } 2871 leaf lan-delay-neg { 2872 description 2873 "Negotiated delay of the messages transmitted 2874 on an interface."; 2875 config "false"; 2876 type uint16 { 2877 range "1..32767"; 2878 } 2879 } 2880 leaf hello-over-interval-neg { 2881 description 2882 "Negotiated overriding interval on an interface."; 2883 config "false"; 2884 type uint16 { 2885 range "1..65535"; 2886 } 2887 } 2888 leaf gen-id { 2889 description "Generation id on an interface."; 2890 config "false"; 2891 type uint32 { 2892 range "0..4294967295"; 2893 } 2894 } 2895 leaf non-dr-neighbor-num { 2896 description "Number of non-dr neighbors."; 2897 config "false"; 2898 type uint32 { 2899 range "0..4294967295"; 2900 } 2901 } 2902 leaf non-lan-delay-neighbor-num { 2903 description 2904 "Number of neighbors that do not use lan delay."; 2905 config "false"; 2906 type uint32 { 2907 range "0..4294967295"; 2908 } 2909 } 2910 leaf non-join-attribute-neighbor-num { 2911 description 2912 "Number of neighbors that do not use the 2913 join attribute."; 2914 config "false"; 2915 type uint32 { 2916 range "0..4294967295"; 2918 } 2919 } 2920 leaf join-attribute { 2921 description 2922 "Negotiated join attribute of the messages 2923 transmitted on an interface."; 2924 config "false"; 2925 type boolean; 2926 } 2927 leaf ipsec-name { 2928 description 2929 "Description of an sa. The value is a string 2930 of 1 to 15 characters."; 2931 config "false"; 2932 type string { 2933 length "1..15"; 2934 } 2935 } 2936 leaf ipsec-type { 2937 description 2938 "Hello options based on the ipsec type."; 2939 config "false"; 2940 type enumeration { 2941 enum forall { 2942 value "0"; 2943 description "Ipsec sa for all:"; 2944 } 2945 enum forhello { 2946 value "1"; 2947 description "Ipsec sa for hello:"; 2948 } 2949 } 2950 } 2952 } 2954 } 2956 container pim-nbr-infos { 2958 list pim-nbr-info { 2960 key "vrf-name address-family if-name"; 2961 config "false"; 2963 leaf vrf-name { 2964 description "Name of a vpn instance."; 2965 config "false"; 2966 //default "_public_"; 2967 type string { 2968 length "0..32"; 2969 } 2970 } 2971 leaf address-family { 2972 config "false"; 2973 type enumeration { 2974 enum ipv4unicast { 2975 value "0"; 2976 description "ipv4unicast:ipv4unicast"; 2977 } 2978 enum ipv6unicast { 2979 value "1"; 2980 description "ipv6unicast:ipv6unicast"; 2981 } 2982 } 2983 } 2984 leaf if-name { 2985 description "Interface name."; 2986 config "false"; 2987 type if-name; 2988 } 2989 leaf ipv4-nbr-addr { 2990 description "Address of a pim neighbor."; 2991 config "false"; 2992 type inet:ipv4-address; 2993 } 2994 leaf ipv6-nbr-addr { 2995 description "Address of a pim neighbor."; 2996 config "false"; 2997 type inet:ipv6-address; 2998 } 2999 leaf up-time { 3000 description 3001 "Time since the pim neighbor relationship 3002 was established."; 3003 config "false"; 3004 type uint32 { 3005 range "0..4294967295"; 3006 } 3007 } 3008 leaf expire-time { 3009 description 3010 "Time when a pim neighbor relationship expires."; 3011 config "false"; 3012 type uint32 { 3013 range "0..4294967295"; 3015 } 3016 } 3017 leaf dr-priority-present { 3018 description "Whether a dr priority exists."; 3019 config "false"; 3020 type boolean; 3021 } 3022 leaf dr-priority { 3023 description "Dr priority."; 3024 config "false"; 3025 type uint32 { 3026 range "0..4294967295"; 3027 } 3028 } 3029 leaf gen-id-present { 3030 description "Whether a generation id exists."; 3031 config "false"; 3032 type boolean; 3033 } 3034 leaf gen-id { 3035 description 3036 "Random number of the pim neighbor status."; 3037 config "false"; 3038 type uint32 { 3039 range "0..4294967295"; 3040 } 3041 } 3042 leaf holdtime { 3043 description 3044 "Ttl of a pim neighbor relationship. The value 3045 65535 indicates that the pim neighbor 3046 relationship never times out."; 3047 config "false"; 3048 type uint16 { 3049 range "1..65535"; 3050 } 3051 } 3052 leaf lan-delay-present { 3053 description 3054 "Whether a lan delay for transmitting prune 3055 messages exists."; 3056 config "false"; 3057 type boolean; 3058 } 3059 leaf lan-delay { 3060 description 3061 "Lan delay for transmitting prune messages."; 3062 config "false"; 3063 type uint16 { 3064 range "1..32767"; 3065 } 3066 } 3067 leaf override-interval { 3068 description 3069 "Interval for overriding the prune action."; 3070 config "false"; 3071 type uint16 { 3072 range "1..65535"; 3073 } 3074 } 3075 leaf join-attribute { 3076 description 3077 "Whether the join attribute function is 3078 enabled on a pim neighbor."; 3079 config "false"; 3080 type boolean; 3081 } 3082 container pim-second-addrs { 3084 list pim-second-addr { 3086 description 3087 "List of secondary address information."; 3088 key "second-addr"; 3089 config "false"; 3091 leaf second-addr { 3092 description 3093 "Secondary address of a pim neighbor."; 3094 config "false"; 3095 type inet:ipv6-address; 3096 } 3098 } 3100 } 3102 } 3104 } 3106 container pim-routes { 3108 list pim-route { 3110 key "vrf-name address-family"; 3111 config "false"; 3113 leaf vrf-name { 3114 description "Name of a vpn instance."; 3115 config "false"; 3116 //default "_public_"; 3117 type string { 3118 length "0..32"; 3119 } 3120 } 3121 leaf address-family { 3122 config "false"; 3123 type enumeration { 3124 enum ipv4unicast { 3125 value "0"; 3126 description "ipv4unicast:ipv4unicast"; 3127 } 3128 enum ipv6unicast { 3129 value "1"; 3130 description "ipv6unicast:ipv6unicast"; 3131 } 3132 } 3133 } 3134 leaf ipv4-source-addr { 3135 description "Multicast source address."; 3136 config "false"; 3137 type inet:ipv4-address; 3138 } 3139 leaf ipv6-source-addr { 3140 description "Multicast source address."; 3141 config "false"; 3142 type inet:ipv6-address; 3143 } 3144 leaf ipv4-group-addr { 3145 description 3146 "Multicast group address. In ipv4 address, 3147 the value ranges from 224.0.0.0 to 3148 239.255.255.255. "; 3149 config "false"; 3150 type inet:ipv4-address; 3151 } 3152 leaf ipv6-group-addr { 3153 description 3154 "Multicast group address. In ipv6, the value 3155 is in hexadecimal notation and in the format 3156 of ffxx:xxxx:xxxx::xxxx "; 3157 config "false"; 3158 type inet:ipv6-address; 3160 } 3161 leaf sg-up-protocl-type { 3162 description "Pim protocol type."; 3163 config "false"; 3164 type enumeration { 3165 enum none { 3166 value "0"; 3167 description "none:none"; 3168 } 3169 enum asm { 3170 value "1"; 3171 description "asm:asm"; 3172 } 3173 enum ssm { 3174 value "2"; 3175 description "ssm:ssm"; 3176 } 3177 enum bidir { 3178 value "3"; 3179 description "bidir:bidir"; 3180 } 3181 enum other { 3182 value "4"; 3183 description "other:other"; 3184 } 3185 } 3186 } 3187 leaf rp-mode-type { 3188 description "Rp type."; 3189 config "false"; 3190 type enumeration { 3191 enum fixed { 3192 value "0"; 3193 description "fixed:fixed"; 3194 } 3195 enum static { 3196 value "1"; 3197 description "static:static"; 3198 } 3199 enum configssm { 3200 value "2"; 3201 description "config-ssm:config-ssm"; 3202 } 3203 enum bsr { 3204 value "3"; 3205 description "bsr:bsr"; 3206 } 3207 enum autorp { 3208 value "4"; 3209 description "autorp:autorp"; 3210 } 3211 enum embedded { 3212 value "5"; 3213 description "embedded:embedded"; 3214 } 3215 enum other { 3216 value "6"; 3217 description "other:other"; 3218 } 3219 } 3220 } 3221 leaf ipv4-rp-addr { 3222 description "Rp address."; 3223 config "false"; 3224 type inet:ipv4-address; 3225 } 3226 leaf ipv6-rp-addr { 3227 description "Rp address."; 3228 config "false"; 3229 type inet:ipv6-address; 3230 } 3231 leaf rp-addr-is-local { 3232 description 3233 "Whether the rp address is a local address."; 3234 config "false"; 3235 type boolean; 3236 } 3237 leaf sg-flag { 3238 description "Flag of the pim (s, g) entry."; 3239 config "false"; 3240 type string { 3241 length "1..50"; 3242 } 3243 } 3244 leaf sg-up-time { 3245 description 3246 "Time since the pim (s, g) entry was generated."; 3247 config "false"; 3248 type uint32 { 3249 range "0..4294967295"; 3250 } 3251 } 3252 leaf sg-iif-name { 3253 description 3254 "Inbound interface of the (s, g) entry."; 3255 config "false"; 3256 type string { 3257 length "0..48"; 3258 } 3259 } 3260 leaf sg-vector-rd { 3261 description "Rd of the rpf vector."; 3262 config "false"; 3263 type string { 3264 length "1..255"; 3265 } 3266 } 3267 leaf ipv4-sg-vector-addr { 3268 description "Address of the rpf vector."; 3269 config "false"; 3270 type inet:ipv4-address; 3271 } 3272 leaf ipv6-sg-vector-addr { 3273 description "Address of the rpf vector."; 3274 config "false"; 3275 type inet:ipv6-address; 3276 } 3277 leaf sg-elect-vector-rd { 3278 description "Rd of the elected vector."; 3279 config "false"; 3280 type string { 3281 length "1..255"; 3282 } 3283 } 3284 leaf ipv4-sg-elect-vector-addr { 3285 description "Address of elected vector."; 3286 config "false"; 3287 type inet:ipv4-address; 3288 } 3289 leaf ipv6-sg-elect-vector-addr { 3290 description "Address of elected vector."; 3291 config "false"; 3292 type inet:ipv6-address; 3293 } 3294 leaf ipv4-sg-up-nbr-addr { 3295 description 3296 "Upstream neighbor address of the (s, g) entry."; 3297 config "false"; 3298 type inet:ipv4-address; 3299 } 3300 leaf ipv6-sg-up-nbr-addr { 3301 description 3302 "Upstream neighbor address of the (s, g) entry."; 3303 config "false"; 3304 type inet:ipv6-address; 3305 } 3306 leaf ipv4-sg-rpf-addr { 3307 description "Rpf address of the (s, g) entry."; 3308 config "false"; 3309 type inet:ipv4-address; 3310 } 3311 leaf ipv6-sg-rpf-addr { 3312 description "Rpf address of the (s, g) entry."; 3313 config "false"; 3314 type inet:ipv6-address; 3315 } 3316 leaf ipv4-sg-refer-addr { 3317 description "Reference address of the (s,g) entry."; 3318 config "false"; 3319 type inet:ipv4-address; 3320 } 3321 leaf ipv6-sg-refer-addr { 3322 description "Reference address of the (s,g) entry."; 3323 config "false"; 3324 type inet:ipv6-address; 3325 } 3326 leaf sg-rpf-masklen { 3327 description "Mask length of an rpf route."; 3328 config "false"; 3329 type uint8 { 3330 range "0..32"; 3331 } 3332 } 3333 leaf sg-rpf-metric { 3334 description "Metric of an rpf route."; 3335 config "false"; 3336 type uint16 { 3337 range "0..65535"; 3338 } 3339 } 3340 leaf sg-rpf-metric-preference { 3341 description "Metric priority of an rpf route."; 3342 config "false"; 3343 type uint16 { 3344 range "0..65535"; 3345 } 3346 } 3347 leaf backup-sg-iif-name { 3348 description "backup inbound interface of the (s, g) entry."; 3349 config "false"; 3350 type string { 3351 length "1..48"; 3353 } 3354 } 3355 leaf ipv4-backup-sg-up-nbr-addr { 3356 description 3357 "Backup upstream neighbor address of the 3358 (s, g) entry."; 3359 config "false"; 3360 type inet:ipv4-address; 3361 } 3362 leaf ipv6-backup-sg-up-nbr-addr { 3363 description 3364 "Backup upstream neighbor address of the 3365 (s, g) entry."; 3366 config "false"; 3367 type inet:ipv6-address; 3368 } 3369 leaf ipv4-backup-sg-rpf-addr { 3370 description 3371 "Backup rpf address of the (s, g) entry."; 3372 config "false"; 3373 type inet:ipv4-address; 3374 } 3375 leaf ipv6-backup-sg-rpf-addr { 3376 description 3377 "Backup rpf address of the (s, g) entry."; 3378 config "false"; 3379 type inet:ipv6-address; 3380 } 3381 leaf sg-up-state { 3382 description 3383 "Upstream up status of the (s, g) entry."; 3384 config "false"; 3385 type enumeration { 3386 enum notjoined { 3387 value "0"; 3388 description "notjoined:notjoined"; 3389 } 3390 enum joined { 3391 value "1"; 3392 description "joined:joined"; 3393 } 3394 } 3395 } 3396 leaf sg-up-exp-time { 3397 description 3398 "Upstream up expiration time of the (s, g) entry."; 3399 config "false"; 3400 type uint32 { 3401 range "0..4294967295"; 3402 } 3403 } 3404 leaf sg-up-rp-tstate { 3405 description "Rpt status."; 3406 config "false"; 3407 type enumeration { 3408 enum notjoined { 3409 value "0"; 3410 description "notjoined:notjoined"; 3411 } 3412 enum pruned { 3413 value "1"; 3414 description "pruned:pruned"; 3415 } 3416 enum notpruned { 3417 value "2"; 3418 description "notpruned:notpruned"; 3419 } 3420 enum max { 3421 value "3"; 3422 description "max:max"; 3423 } 3424 } 3425 } 3426 leaf sg-up-rpt-overtime { 3427 description "Rpt timeout period."; 3428 config "false"; 3429 type uint32 { 3430 range "0..4294967295"; 3431 } 3432 } 3433 leaf sg-reg-state { 3434 description "Registration status."; 3435 config "false"; 3436 type enumeration { 3437 enum noinfo { 3438 value "0"; 3439 description "noinfo:noinfo"; 3440 } 3441 enum join { 3442 value "1"; 3443 description "join:join"; 3444 } 3445 enum joinpending { 3446 value "2"; 3447 description "joinpending:joinpending"; 3448 } 3449 enum prune { 3450 value "3"; 3451 description "prune:prune"; 3452 } 3453 } 3454 } 3455 leaf sg-reg-stop-time { 3456 description "Time when the registration stops."; 3457 config "false"; 3458 type uint32 { 3459 range "0..4294967295"; 3460 } 3461 } 3463 container pim-route-downstreams { 3465 list pim-route-downstream { 3467 key "sg-ds-oif-name"; 3468 config "false"; 3470 description "Downstream information."; 3472 leaf sg-ds-oif-name { 3473 description 3474 "Name of the downstream interface."; 3475 config "false"; 3476 type string { 3477 length "1..48"; 3478 } 3479 } 3480 leaf sg-ds-protocol-type { 3481 description 3482 "Type of pim protocol configured on 3483 the downstream interface."; 3484 config "false"; 3485 type string { 3486 length "1..50"; 3487 } 3488 } 3489 leaf sg-ds-up-time { 3490 description 3491 "Time since the interface was added 3492 to the downstream interface list."; 3493 config "false"; 3494 type uint32 { 3495 range "0..4294967295"; 3496 } 3498 } 3499 leaf sg-ds-expire-time { 3500 description 3501 "Timeout period of the downstream 3502 interface."; 3503 config "false"; 3504 type uint32 { 3505 range "0..4294967295"; 3506 } 3507 } 3508 leaf sg-ds-dr-state { 3509 description "Dr status."; 3510 config "false"; 3511 type boolean; 3512 } 3513 leaf sg-ds-state { 3514 description "Downstream status."; 3515 config "false"; 3516 type enumeration { 3517 enum noinfo { 3518 value "0"; 3519 description "noinfo:noinfo"; 3520 } 3521 enum joined { 3522 value "1"; 3523 description "joined:joined"; 3524 } 3525 enum prunepending { 3526 value "2"; 3527 description "prunepending:prunepending"; 3528 } 3529 } 3530 } 3531 leaf sg-ds-ppt-time { 3532 description 3533 "Timeout period of the downstream ppt."; 3534 config "false"; 3535 type uint32 { 3536 range "0..4294967295"; 3537 } 3538 } 3539 leaf sg-ds-assert-state { 3540 description "Assert state machine."; 3541 config "false"; 3542 type enumeration { 3543 enum noinfo { 3544 value "0"; 3545 description "noinfo:noinfo"; 3547 } 3548 enum winner { 3549 value "1"; 3550 description "winner:winner"; 3551 } 3552 enum loser { 3553 value "2"; 3554 description "loser:loser"; 3555 } 3556 } 3557 } 3558 leaf sg-ds-assert-time { 3559 description "Assert timeout period."; 3560 config "false"; 3561 type uint32 { 3562 range "0..4294967295"; 3563 } 3564 } 3565 leaf ipv4-sg-ds-assert-win-addr { 3566 description "Address of an assert winner."; 3567 config "false"; 3568 type inet:ipv4-address; 3569 } 3570 leaf ipv6-sg-ds-assert-win-addr { 3571 description "Address of an assert winner."; 3572 config "false"; 3573 type inet:ipv6-address; 3574 } 3575 leaf sg-ds-assert-win-metric { 3576 description "Metric of an assert winner."; 3577 config "false"; 3578 type uint16 { 3579 range "0..65535"; 3580 } 3581 } 3582 leaf sg-ds-ast-win-metric-pre { 3583 description 3584 "Metric priority of an assert winner."; 3585 config "false"; 3586 type uint16 { 3587 range "0..65535"; 3588 } 3589 } 3590 leaf sg-ds-local-member { 3591 description "Whether local receivers exist."; 3592 config "false"; 3593 type boolean; 3594 } 3595 leaf sg-ds-rpt-state { 3596 description "Rpt status."; 3597 config "false"; 3598 type enumeration { 3599 enum noinfo { 3600 value "0"; 3601 description "noinfo:noinfo"; 3602 } 3603 enum pruned { 3604 value "1"; 3605 description "pruned:pruned"; 3606 } 3607 enum prunepending { 3608 value "2"; 3609 description "prunepending:prunepending"; 3610 } 3611 enum max { 3612 value "3"; 3613 description "max:max"; 3614 } 3615 } 3616 } 3617 leaf sg-ds-rpt-ppt-time { 3618 description 3619 "Ppt time of the rpt state machine."; 3620 config "false"; 3621 type uint32 { 3622 range "0..4294967295"; 3623 } 3624 } 3625 leaf sg-ds-rpt-expire-time { 3626 description "Rpt timeout period."; 3627 config "false"; 3628 type uint32 { 3629 range "0..4294967295"; 3630 } 3631 } 3632 leaf sg-vector-num { 3633 description "Number of vectors."; 3634 config "false"; 3635 type uint16 { 3636 range "0..65535"; 3637 } 3638 } 3639 container pim-route-downstream-vectors { 3641 list pim-route-downstream-vector { 3642 leaf ipv4-neighbor-addr { 3643 description "Neighbor address."; 3644 config "false"; 3645 type inet:ipv4-address; 3646 } 3647 leaf ipv6-neighbor-addr { 3648 description "Neighbor address."; 3649 config "false"; 3650 type inet:ipv6-address; 3651 } 3652 leaf neighbor-vector-rd { 3653 description "Vector rds of neighbors."; 3654 config "false"; 3655 type string { 3656 length "1..255"; 3657 } 3658 } 3659 leaf ipv4-neighbor-vector-addr { 3660 description 3661 "Address of a neighbor's elected vector."; 3662 config "false"; 3663 type inet:ipv4-address; 3664 } 3665 leaf ipv6-neighbor-vector-addr { 3666 description 3667 "Address of a neighbor's elected vector."; 3668 config "false"; 3669 type inet:ipv6-address; 3670 } 3671 leaf neighbor-expire-time { 3672 description 3673 "Timeout period of the vector."; 3674 config "false"; 3675 type uint32 { 3676 range "0..4294967295"; 3677 } 3678 } 3680 } 3682 } 3684 } 3686 } 3688 } 3690 } 3692 container pim-rpf-routes { 3694 list pim-rpf-route { 3696 key "vrf-name address-family"; 3697 config "false"; 3699 leaf vrf-name { 3700 description "Name of a vpn instance."; 3701 config "false"; 3702 //default "_public_"; 3703 type string { 3704 length "0..32"; 3705 } 3706 } 3707 leaf address-family { 3708 config "false"; 3709 type enumeration { 3710 enum ipv4unicast { 3711 value "0"; 3712 description "ipv4unicast:ipv4unicast"; 3713 } 3714 enum ipv6unicast { 3715 value "1"; 3716 description "ipv6unicast:ipv6unicast"; 3717 } 3718 } 3719 } 3720 leaf ipv4-dest-addr { 3721 description "Destination address."; 3722 config "false"; 3723 type inet:ipv4-address; 3724 } 3725 leaf ipv6-dest-addr { 3726 description "Destination address."; 3727 config "false"; 3728 type inet:ipv6-address; 3729 } 3730 leaf if-name { 3731 description "Name of an rpf interface."; 3732 config "false"; 3733 type if-name; 3734 } 3735 leaf ipv4-rpf-addr { 3736 description "Rpf neighbor."; 3737 config "false"; 3738 type inet:ipv4-address; 3739 } 3740 leaf ipv6-rpf-addr { 3741 description "Rpf neighbor."; 3742 config "false"; 3743 type inet:ipv6-address; 3744 } 3745 leaf ipv4-refer-route-addr { 3746 description "Referenced route."; 3747 config "false"; 3748 type inet:ipv4-address; 3749 } 3750 leaf ipv6-refer-route-addr { 3751 description "Referenced route."; 3752 config "false"; 3753 type inet:ipv6-address; 3754 } 3755 leaf ipv4-refer-route-masklen { 3756 description "Mask of the referenced route."; 3757 config "false"; 3758 type uint8 { 3759 range "0..32"; 3760 } 3761 } 3762 leaf ipv6-refer-route-masklen { 3763 description "Mask of the referenced route."; 3764 config "false"; 3765 type uint8 { 3766 range "0..128"; 3767 } 3768 } 3769 leaf refer-route-type { 3770 description "Type of the referenced route."; 3771 config "false"; 3772 type enumeration { 3773 enum unicast { 3774 value "0"; 3775 description "unicast:unicast"; 3776 } 3777 enum direct { 3778 value "1"; 3779 description "direct:direct"; 3780 } 3781 enum mbgp { 3782 value "2"; 3783 description "mbgp:mbgp"; 3784 } 3785 enum multicaststatic { 3786 value "3"; 3787 description "multicaststatic:multicaststatic"; 3788 } 3789 } 3790 } 3791 container pim-claim-route-sgs { 3793 list pim-claim-route-sg { 3795 description "Claim routing entry."; 3796 key "ipv4-source-addr ipv6-source-addr ipv4-group-addr ipv6-group-addr"; 3797 config "false"; 3799 leaf ipv4-source-addr { 3800 description "Multicast source address."; 3801 config "false"; 3802 type inet:ipv4-address; 3803 } 3804 leaf ipv6-source-addr { 3805 description "Multicast source address."; 3806 config "false"; 3807 type inet:ipv6-address; 3808 } 3809 leaf ipv4-group-addr { 3810 description 3811 "Multicast group address. In ipv4 3812 address, the value ranges from 3813 224.0.0.0 to 239.255.255.255. "; 3814 config "false"; 3815 type inet:ipv4-address; 3816 } 3817 leaf ipv6-group-addr { 3818 description 3819 "Multicast group address. In ipv6, 3820 the value is in hexadecimal notation 3821 and in the format of 3822 ffxx:xxxx:xxxx::xxxx "; 3823 config "false"; 3824 type inet:ipv6-address; 3825 } 3827 } 3829 } 3831 } 3833 } 3834 container pim-embedded-rp-infos { 3836 list pim-embedded-rp-info { 3838 key "vrf-name"; 3839 config "false"; 3841 leaf vrf-name { 3842 description "Name of a vpn instance."; 3843 config "false"; 3844 //default "_public_"; 3845 type string { 3846 length "0..32"; 3847 } 3848 } 3849 leaf ipv6-group-addr { 3850 description 3851 "Multicast group address. In ipv6, the value 3852 is in hexadecimal notation and in the format 3853 of ffxx:xxxx:xxxx::xxxx "; 3854 config "false"; 3855 type inet:ipv6-address; 3856 } 3857 leaf embedded-rp-addr { 3858 description "Address of an embedded rp."; 3859 config "false"; 3860 type inet:ipv6-address; 3861 } 3863 } 3865 } 3867 container pim-rp-group-infos { 3869 list pim-rp-group-info { 3871 key "vrf-name address-family"; 3872 config "false"; 3874 leaf vrf-name { 3875 description "Name of a vpn instance."; 3876 config "false"; 3877 //default "_public_"; 3878 type string { 3879 length "0..32"; 3880 } 3881 } 3882 leaf address-family { 3883 config "false"; 3884 type enumeration { 3885 enum ipv4unicast { 3886 value "0"; 3887 description "ipv4unicast:ipv4unicast"; 3888 } 3889 enum ipv6unicast { 3890 value "1"; 3891 description "ipv6unicast:ipv6unicast"; 3892 } 3893 } 3894 } 3895 leaf ipv4-group-addr { 3896 description 3897 "Multicast group address. In ipv4 address, 3898 the value ranges from 224.0.0.0 to 3899 239.255.255.255. "; 3900 config "false"; 3901 type inet:ipv4-address; 3902 } 3903 leaf ipv6-group-addr { 3904 description 3905 "Multicast group address. In ipv6, the value 3906 is in hexadecimal notation and in the format 3907 of ffxx:xxxx:xxxx::xxxx "; 3908 config "false"; 3909 type inet:ipv6-address; 3910 } 3911 leaf ipv4-bsr-rp-addr { 3912 description "Address of a candidate rp."; 3913 config "false"; 3914 type inet:ipv4-address; 3915 } 3916 leaf ipv6-bsr-rp-addr { 3917 description "Address of a candidate rp."; 3918 config "false"; 3919 type inet:ipv6-address; 3920 } 3921 leaf ipv4-static-rp-addr { 3922 description "Address of a static rp."; 3923 config "false"; 3924 type inet:ipv4-address; 3925 } 3926 leaf ipv6-static-rp-addr { 3927 description "Address of a static rp."; 3928 config "false"; 3929 type inet:ipv6-address; 3931 } 3932 leaf embedded-rp-addr { 3933 description "Address of an embedded rp."; 3934 config "false"; 3935 type inet:ipv6-address; 3936 } 3937 leaf ipv4-map-rp-addr { 3938 description "Address of the designated rp."; 3939 config "false"; 3940 type inet:ipv4-address; 3941 } 3942 leaf ipv6-map-rp-addr { 3943 description "Address of the designated rp."; 3944 config "false"; 3945 type inet:ipv6-address; 3946 } 3948 } 3950 } 3952 container pim-bfd-infos { 3954 list pim-bfd-info { 3956 description "Information about a pim bfd session."; 3957 key "vrf-name address-family if-name"; 3958 config "false"; 3960 leaf vrf-name { 3961 description "Name of a vpn instance."; 3962 config "false"; 3963 //default "_public_"; 3964 type string { 3965 length "0..32"; 3966 } 3967 } 3968 leaf address-family { 3969 description 3970 "Address family, which determines whether an 3971 address belongs to ipv4 or ipv6."; 3972 config "false"; 3973 type enumeration { 3974 enum ipv4unicast { 3975 value "0"; 3976 description "ipv4unicast:ipv4unicast"; 3977 } 3978 enum ipv6unicast { 3979 value "1"; 3980 description "ipv6unicast:ipv6unicast"; 3981 } 3982 } 3983 } 3984 leaf if-name { 3985 description 3986 "Name of the interface to which a pim 3987 neighbor relationship belongs."; 3988 config "false"; 3989 type if-name; 3990 } 3991 leaf ipv4-neighbor-addr { 3992 description "Address of a neighbor."; 3993 config "false"; 3994 type inet:ipv4-address; 3995 } 3996 leaf ipv6-neighbor-addr { 3997 description "Address of a neighbor."; 3998 config "false"; 3999 type inet:ipv6-address; 4000 } 4001 leaf act-tx { 4002 description 4003 "Actual minimum interval at which bfd packets 4004 are sent, in milliseconds."; 4005 config "false"; 4006 type uint32 { 4007 range "0..4294967295"; 4008 } 4009 } 4010 leaf act-rx { 4011 description 4012 "Actual minimum interval at which bfd packets 4013 are received, in milliseconds."; 4014 config "false"; 4015 type uint32 { 4016 range "0..4294967295"; 4017 } 4018 } 4019 leaf act-multi { 4020 description "Actual local detection multiplier."; 4021 config "false"; 4022 type uint32 { 4023 range "0..4294967295"; 4024 } 4025 } 4026 leaf local-port { 4027 description 4028 "Local discriminator of a bfd session."; 4029 config "false"; 4030 type uint32 { 4031 range "0..4294967295"; 4032 } 4033 } 4034 leaf remote-port { 4035 description 4036 "Remote discriminator of a bfd session."; 4037 config "false"; 4038 type uint32 { 4039 range "0..4294967295"; 4040 } 4041 } 4042 leaf bfd-status { 4043 description "Status of a pim bfd session."; 4044 config "false"; 4045 type enumeration { 4046 enum admindown { 4047 value "0"; 4048 description "admin down:admin down"; 4049 } 4050 enum down { 4051 value "1"; 4052 description "down:down"; 4053 } 4054 enum init { 4055 value "2"; 4056 description "init:init"; 4057 } 4058 enum up { 4059 value "3"; 4060 description "up:up"; 4061 } 4062 enum bfd_session_number_exceed { 4063 value "4"; 4064 description "bfd session number exceed:bfd session number exceed"; 4065 } 4066 } 4067 } 4068 } 4070 } 4072 container pim-vrf-packet-statistics { 4074 list pim-vrf-packet-statistic { 4075 key "vrf-name address-family"; 4076 config "false"; 4078 leaf vrf-name { 4079 description "Name of a vpn instance."; 4080 config "false"; 4081 //default "_public_"; 4082 type string { 4083 length "0..32"; 4084 } 4085 } 4086 leaf address-family { 4087 config "false"; 4088 type enumeration { 4089 enum ipv4unicast { 4090 value "0"; 4091 description "ipv4unicast:ipv4unicast"; 4092 } 4093 enum ipv6unicast { 4094 value "1"; 4095 description "ipv6unicast:ipv6unicast"; 4096 } 4097 } 4098 } 4099 leaf register-recv-num { 4100 description 4101 "Number of register messages received."; 4102 config "false"; 4103 type uint32 { 4104 range "0..4294967295"; 4105 } 4106 } 4107 leaf register-send-num { 4108 description 4109 "Number of register messages sent."; 4110 config "false"; 4111 type uint32 { 4112 range "0..4294967295"; 4113 } 4114 } 4115 leaf register-invalid-num { 4116 description 4117 "Number of invalid register messages received."; 4118 config "false"; 4119 type uint32 { 4120 range "0..4294967295"; 4121 } 4122 } 4123 leaf register-filter-num { 4124 description 4125 "Number of register messages filtered."; 4126 config "false"; 4127 type uint32 { 4128 range "0..4294967295"; 4129 } 4130 } 4131 leaf register-stop-recv-num { 4132 description 4133 "Number of register-stop messages received."; 4134 config "false"; 4135 type uint32 { 4136 range "0..4294967295"; 4137 } 4138 } 4139 leaf register-stop-send-num { 4140 description 4141 "Number of register-stop messages sent."; 4142 config "false"; 4143 type uint32 { 4144 range "0..4294967295"; 4145 } 4146 } 4147 leaf register-stop-invalid-num { 4148 description 4149 "Number of invalid register-stop messages 4150 received."; 4151 config "false"; 4152 type uint32 { 4153 range "0..4294967295"; 4154 } 4155 } 4156 leaf register-stop-filter-num { 4157 description 4158 "Number of register-stop messages filtered."; 4159 config "false"; 4160 type uint32 { 4161 range "0..4294967295"; 4162 } 4163 } 4164 leaf probe-recv-num { 4165 description 4166 "Number of null register messages received."; 4167 config "false"; 4168 type uint32 { 4169 range "0..4294967295"; 4170 } 4172 } 4173 leaf probe-send-num { 4174 description 4175 "Number of the null register messages sent."; 4176 config "false"; 4177 type uint32 { 4178 range "0..4294967295"; 4179 } 4180 } 4181 leaf probe-invalid-num { 4182 description 4183 "Number of the invalid null register 4184 messages."; 4185 config "false"; 4186 type uint32 { 4187 range "0..4294967295"; 4188 } 4189 } 4190 leaf probe-filter-num { 4191 description 4192 "Number of null register messages filtered."; 4193 config "false"; 4194 type uint32 { 4195 range "0..4294967295"; 4196 } 4197 } 4198 leaf crp-recv-num { 4199 description 4200 "Number of c-rp messages received."; 4201 config "false"; 4202 type uint32 { 4203 range "0..4294967295"; 4204 } 4205 } 4206 leaf crp-send-num { 4207 description 4208 "Number of c-rp messages sent."; 4209 config "false"; 4210 type uint32 { 4211 range "0..4294967295"; 4212 } 4213 } 4214 leaf crp-invalid-num { 4215 description 4216 "Number of invalid c-rp messages."; 4217 config "false"; 4218 type uint32 { 4219 range "0..4294967295"; 4221 } 4222 } 4223 leaf crp-filter-num { 4224 description 4225 "Number of c-rp messages filtered."; 4226 config "false"; 4227 type uint32 { 4228 range "0..4294967295"; 4229 } 4230 } 4231 container pim-if-packet-statistics { 4233 list pim-if-packet-statistic { 4235 key "if-name"; 4236 config "false"; 4238 leaf if-name { 4239 description "Name of the interface."; 4240 config "false"; 4241 type if-name; 4242 } 4243 leaf assert-recv-num { 4244 description 4245 "Number of assert messages received 4246 on the current interface."; 4247 config "false"; 4248 type uint32 { 4249 range "0..4294967295"; 4250 } 4251 } 4252 leaf assert-send-num { 4253 description 4254 "Number of assert messages sent on 4255 the current interface."; 4256 config "false"; 4257 type uint32 { 4258 range "0..4294967295"; 4259 } 4260 } 4261 leaf assert-invalid-num { 4262 description 4263 "Number of invalid assert messages."; 4264 config "false"; 4265 type uint32 { 4266 range "0..4294967295"; 4267 } 4268 } 4269 leaf assert-filter-num { 4270 description 4271 "Number of assert messages filtered 4272 on the current interface."; 4273 config "false"; 4274 type uint32 { 4275 range "0..4294967295"; 4276 } 4277 } 4278 leaf hello-recv-num { 4279 description 4280 "Number of hello messages received 4281 on the current interface."; 4282 config "false"; 4283 type uint32 { 4284 range "0..4294967295"; 4285 } 4286 } 4287 leaf hello-send-num { 4288 description 4289 "Number of hello messages sent on 4290 the current interface."; 4291 config "false"; 4292 type uint32 { 4293 range "0..4294967295"; 4294 } 4295 } 4296 leaf hello-invalid-num { 4297 description 4298 "Number of invalid hello messages."; 4299 config "false"; 4300 type uint32 { 4301 range "0..4294967295"; 4302 } 4303 } 4304 leaf hello-filter-num { 4305 description 4306 "Number of hello messages filtered 4307 on the current interface."; 4308 config "false"; 4309 type uint32 { 4310 range "0..4294967295"; 4311 } 4312 } 4313 leaf jp-recv-num { 4314 description 4315 "Number of join/prune messages 4316 received on the current interface."; 4318 config "false"; 4319 type uint32 { 4320 range "0..4294967295"; 4321 } 4322 } 4323 leaf jp-send-num { 4324 description 4325 "Number of join/prune messages sent 4326 on the current interface."; 4327 config "false"; 4328 type uint32 { 4329 range "0..4294967295"; 4330 } 4331 } 4332 leaf jp-invalid-num { 4333 description 4334 "Number of invalid join/prune 4335 messages."; 4336 config "false"; 4337 type uint32 { 4338 range "0..4294967295"; 4339 } 4340 } 4341 leaf jp-filter-num { 4342 description 4343 "Number of join/prune messages 4344 filtered on the current interface."; 4345 config "false"; 4346 type uint32 { 4347 range "0..4294967295"; 4348 } 4349 } 4350 leaf bsr-recv-num { 4351 description 4352 "Number of bsr messages received on 4353 the current interface."; 4354 config "false"; 4355 type uint32 { 4356 range "0..4294967295"; 4357 } 4358 } 4359 leaf bsr-send-num { 4360 description 4361 "Number of bsr messages sent on the 4362 current interface."; 4363 config "false"; 4364 type uint32 { 4365 range "0..4294967295"; 4367 } 4368 } 4369 leaf bsr-invalid-num { 4370 description 4371 "Number of invalid bsr messages."; 4372 config "false"; 4373 type uint32 { 4374 range "0..4294967295"; 4375 } 4376 } 4377 leaf bsr-filter-num { 4378 description 4379 "Number of bsr messages filtered on 4380 the current interface."; 4381 config "false"; 4382 type uint32 { 4383 range "0..4294967295"; 4384 } 4385 } 4387 } 4389 } 4391 } 4393 } 4394 } 4395 } 4397 notification pim-neighbor-loss { 4399 description 4400 "A pim-neighbor-loss notification signifies the loss of an 4401 adjacency with a neighbor. This notification should be 4402 generated when the neighbor timer expires, and the router 4403 has no other neighbors on the same interface with the same 4404 ip version and a lower ip address than itself. "; 4406 leaf vrf-name { 4407 description "Name of a vpn instance."; 4408 //default "_public_"; 4409 type string { 4410 length "0..32"; 4411 } 4412 } 4413 leaf address-family { 4414 type enumeration { 4415 enum ipv4unicast { 4416 value "0"; 4417 description "ipv4unicast:ipv4unicast"; 4418 } 4419 enum ipv6unicast { 4420 value "1"; 4421 description "ipv6unicast:ipv6unicast"; 4422 } 4423 } 4424 } 4425 leaf if-name { 4426 description "Name of the interface."; 4427 type if-name; 4428 } 4429 leaf ipv4-neighbor-addr { 4430 description "pim neighbor address."; 4431 type inet:ipv4-address; 4432 } 4433 leaf ipv6-neighbor-addr { 4434 description "pim neighbor address."; 4435 type inet:ipv6-address; 4436 } 4437 leaf neighbor-up-time { 4438 description "pim neighbor up time."; 4439 type uint32 { 4440 range "0..4294967295"; 4441 } 4442 } 4443 } 4445 notification pim-invalid-register { 4447 description 4448 "A pim-invalid-register notification signifies that an invalid 4449 pim register message was received by this device. "; 4451 leaf vrf-name { 4452 description "Name of a vpn instance."; 4453 //default "_public_"; 4454 type string { 4455 length "0..32"; 4456 } 4457 } 4458 leaf address-family { 4459 type enumeration { 4460 enum ipv4unicast { 4461 value "0"; 4462 description "ipv4unicast:ipv4unicast"; 4464 } 4465 enum ipv6unicast { 4466 value "1"; 4467 description "ipv6unicast:ipv6unicast"; 4468 } 4469 } 4470 } 4471 leaf ipv4-invalid-register-origin { 4472 description 4473 "The source address of the last invalid register message."; 4474 type inet:ipv4-address; 4475 } 4476 leaf ipv6-invalid-register-origin { 4477 description 4478 "The source address of the last invalid register message."; 4479 type inet:ipv6-address; 4480 } 4481 leaf ipv4-invalid-register-group { 4482 description 4483 "The multicast group address of the last invalid register 4484 message."; 4485 type inet:ipv4-address; 4486 } 4487 leaf ipv6-invalid-register-group { 4488 description 4489 "The multicast group address of the last invalid register 4490 message."; 4491 type inet:ipv6-address; 4492 } 4493 leaf ipv4-invalid-register-rp { 4494 description 4495 "The rp address of the last invalid register message."; 4496 type inet:ipv4-address; 4497 } 4498 leaf ipv6-invalid-register-rp { 4499 description 4500 "The rp address of the last invalid register message."; 4501 type inet:ipv6-address; 4502 } 4503 } 4505 notification pim-invalid-join-prune { 4507 description 4508 "A pim-invalid-join-prune notification signifies that an 4509 invalid pim join/prune message was received by this device."; 4511 leaf vrf-name { 4512 description "Name of a vpn instance."; 4513 //default "_public_"; 4514 type string { 4515 length "0..32"; 4516 } 4517 } 4518 leaf address-family { 4519 type enumeration { 4520 enum ipv4unicast { 4521 value "0"; 4522 description "ipv4unicast:ipv4unicast"; 4523 } 4524 enum ipv6unicast { 4525 value "1"; 4526 description "ipv6unicast:ipv6unicast"; 4527 } 4528 } 4529 } 4530 leaf ipv4-invalid-join-prune-origin { 4531 description 4532 "The source address of the last invalid join/prune 4533 message."; 4534 type inet:ipv4-address; 4535 } 4536 leaf ipv6-invalid-join-prune-origin { 4537 description 4538 "The source address of the last invalid join/prune 4539 message."; 4540 type inet:ipv6-address; 4541 } 4542 leaf ipv4-invalid-join-prune-group { 4543 description 4544 "The multicast group address of the last invalid 4545 join/prune message."; 4546 type inet:ipv4-address; 4547 } 4548 leaf ipv6-invalid-join-prune-group { 4549 description 4550 "The multicast group address of the last invalid 4551 join/prune message."; 4552 type inet:ipv6-address; 4553 } 4554 leaf ipv4-invalid-join-prune-rp { 4555 description 4556 "The rp address of the last invalid join/prune message."; 4557 type inet:ipv4-address; 4558 } 4559 leaf ipv6-invalid-join-prune-rp { 4560 description 4561 "The rp address of the last invalid join/prune message."; 4562 type inet:ipv6-address; 4563 } 4564 leaf neighbor-up-time { 4565 description "pim neighbor up time."; 4566 type uint32 { 4567 range "0..4294967295"; 4568 } 4569 } 4570 } 4572 notification pim-rp-mapping-change { 4574 description 4575 "A pim-rp-mapping-change notification signifies a change to 4576 the active rp mapping on this device."; 4578 leaf vrf-name { 4579 description "Name of a vpn instance."; 4580 //default "_public_"; 4581 type string { 4582 length "0..32"; 4583 } 4584 } 4585 leaf address-family { 4586 type enumeration { 4587 enum ipv4unicast { 4588 value "0"; 4589 description "ipv4unicast:ipv4unicast"; 4590 } 4591 enum ipv6unicast { 4592 value "1"; 4593 description "ipv6unicast:ipv6unicast"; 4594 } 4595 } 4596 } 4597 leaf group-mapping-origin { 4598 description 4599 "The mechanism by which this group mapping was learned."; 4600 type enumeration { 4601 enum fixed { 4602 value "1"; 4603 description "fixed:fixed"; 4604 } 4605 enum staticrp { 4606 value "2"; 4607 description " staticrp:staticrp"; 4609 } 4610 enum ssm { 4611 value "3"; 4612 description " ssm:ssm"; 4613 } 4614 enum bsr { 4615 value "4"; 4616 description " bsr:bsr"; 4617 } 4618 enum autorp { 4619 value "5"; 4620 description " autorp:autorp"; 4621 } 4622 enum embeddedrp { 4623 value "6"; 4624 description " embeddedrp:embeddedrp"; 4625 } 4626 enum other { 4627 value "7"; 4628 description " other:other"; 4629 } 4630 } 4631 } 4632 leaf ipv4-group-mapping-group-address { 4633 description "Multicast group address for group mapping."; 4634 type inet:ipv4-address; 4635 } 4636 leaf ipv6-group-mapping-group-address { 4637 description "Multicast group address for group mapping."; 4638 type inet:ipv6-address; 4639 } 4640 leaf group-mapping-group-prefix-length { 4641 description 4642 "Multicast group prefix length.For ipv4, it is in the 4643 range 4-32.for ipv6, it is in the range 8-128."; 4644 type uint8 { 4645 range "4..128"; 4646 } 4647 } 4648 leaf ipv4-group-mapping-rp-address { 4649 description "The rp address for group mapping."; 4650 type inet:ipv4-address; 4651 } 4652 leaf ipv6-group-mapping-rp-address { 4653 description "The rp address for group mapping."; 4654 type inet:ipv6-address; 4655 } 4656 leaf group-mapping-precedence { 4657 description 4658 "Numerically higher values indicate lower precedences, 4659 with the value zero denoting the highest precedence."; 4660 type uint32 { 4661 range "0..4294967295"; 4662 } 4663 } 4664 } 4666 notification pim-interface-election { 4668 description 4669 "A pim-interface-election notification signifies that a new 4670 dr or df has been elected on a network. "; 4672 leaf vrf-name { 4673 description "Name of a vpn instance."; 4674 //default "_public_"; 4675 type string { 4676 length "0..32"; 4677 } 4678 } 4679 leaf address-family { 4680 type enumeration { 4681 enum ipv4unicast { 4682 value "0"; 4683 description "ipv4unicast:ipv4unicast"; 4684 } 4685 enum ipv6unicast { 4686 value "1"; 4687 description "ipv6unicast:ipv6unicast"; 4688 } 4689 } 4690 } 4691 leaf if-name { 4692 description "Name of the interface."; 4693 type if-name; 4694 } 4695 leaf ipv4-if-addr { 4696 description "The address of the interface."; 4697 type inet:ipv4-address; 4698 } 4699 leaf ipv6-if-addr { 4700 description "The address of the interface."; 4701 type inet:ipv6-address; 4702 } 4703 } 4705 } 4707 6. IANA Considerations 4709 This draft includes no request to IANA. 4711 7. Security Considerations 4713 The data model defined does not create any security implications. 4714 This draft does not change any underlying security issues inherent in 4715 [I-D.ietf-netmod-routing-cfg]. 4717 8. Acknowledgements 4719 TBD 4721 9. References 4723 9.1. Normative References 4725 [I-D.ietf-netmod-routing-cfg] 4726 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 4727 Management", draft-ietf-netmod-routing-cfg-17 (work in 4728 progress), March 2015. 4730 [RFC3973] Adams, A., Nicholas, J., and W. Siadak, "Protocol 4731 Independent Multicast - Dense Mode (PIM-DM): Protocol 4732 Specification (Revised)", RFC 3973, January 2005. 4734 [RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas, 4735 "Protocol Independent Multicast - Sparse Mode (PIM-SM): 4736 Protocol Specification (Revised)", RFC 4601, August 2006. 4738 [RFC4607] Holbrook, H. and B. Cain, "Source-Specific Multicast for 4739 IP", RFC 4607, August 2006. 4741 [RFC4608] Meyer, D., Rockell, R., and G. Shepherd, "Source-Specific 4742 Protocol Independent Multicast in 232/8", BCP 120, RFC 4743 4608, August 2006. 4745 [RFC4610] Farinacci, D. and Y. Cai, "Anycast-RP Using Protocol 4746 Independent Multicast (PIM)", RFC 4610, August 2006. 4748 [RFC5015] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano, 4749 "Bidirectional Protocol Independent Multicast (BIDIR- 4750 PIM)", RFC 5015, October 2007. 4752 [RFC5059] Bhaskar, N., Gall, A., Lingard, J., and S. Venaas, 4753 "Bootstrap Router (BSR) Mechanism for Protocol Independent 4754 Multicast (PIM)", RFC 5059, January 2008. 4756 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 4757 Network Configuration Protocol (NETCONF)", RFC 6020, 4758 October 2010. 4760 [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. 4761 Bierman, "Network Configuration Protocol (NETCONF)", RFC 4762 6241, June 2011. 4764 9.2. Informative References 4766 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 4767 Requirement Levels", BCP 14, RFC 2119, March 1997. 4769 Authors' Addresses 4771 Yisong Liu 4772 Huawei 4773 Huawei Bld., No.156 Beiqing Rd. 4774 Beijing 100095 4775 China 4777 Email: liuyisong@huawei.com 4779 Feng Guo 4780 Huawei 4781 Huawei Bld., No.156 Beiqing Rd. 4782 Beijing 100095 4783 China 4785 Email: guofeng@huawei.com 4787 Mahesh Sivakumar 4788 Cisco 4789 510 McCarthy Blvd 4790 Milpitas, California 95035 4791 USA 4793 Email: masivaku@cisco.com