idnits 2.17.1 draft-liu-pim-igmp-mld-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 33 instances of too long lines in the document, the longest one being 13 characters in excess of 72. == There are 4 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 201 has weird spacing: '...g-group ine...' == Line 202 has weird spacing: '...g-group ine...' == Line 2367 has weird spacing: '...ication gmp-g...' == Line 2428 has weird spacing: '...ication gmp-g...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (March 22, 2015) is 3316 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: A later version (-25) exists of draft-ietf-netmod-routing-cfg-17 Summary: 1 error (**), 0 flaws (~~), 8 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 March 22, 2015 7 Yang Model for Internet Group Management Protocol (IGMP) and Multicast 8 Listener Discovery (MLD) 9 draft-liu-pim-igmp-mld-yang-01 11 Abstract 13 This document defines a YANG data model that can be used to configure 14 and manage IGMP and MLD. 16 Requirements Language 18 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 19 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 20 document are to be interpreted as described in RFC 2119 [RFC2119]. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at http://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on September 23, 2015. 39 Copyright Notice 41 Copyright (c) 2015 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (http://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 57 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 58 3. Design of Data Model . . . . . . . . . . . . . . . . . . . . 3 59 3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 60 3.2. GMP Per-instance Configuration . . . . . . . . . . . . . 4 61 3.2.1. Per-instance Parameters . . . . . . . . . . . . . . . 4 62 3.2.2. Per-SSM-Mapping Configuration of GMP Instance . . . . 5 63 3.2.3. Per-interface Configuration of GMP Instance . . . . . 5 64 3.3. Operational State . . . . . . . . . . . . . . . . . . . . 7 65 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 10 66 5. GMP Yang Module . . . . . . . . . . . . . . . . . . . . . . . 11 67 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 53 68 7. Security Considerations . . . . . . . . . . . . . . . . . . . 53 69 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 53 70 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 71 9.1. Normative References . . . . . . . . . . . . . . . . . . 53 72 9.2. Informative References . . . . . . . . . . . . . . . . . 54 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 54 75 1. Introduction 77 YANG[RFC6020] is a data definition language that was introduced to 78 define the contents of a conceptual data store that allows networked 79 devices to be managed using NETCONF[RFC6241]. YANG is proving 80 relevant beyond its initial confines, as bindings to other 81 interfaces(e.g. REST) and encoding other than XML (e.g. JSON) are 82 being defined. Furthermore, YANG data models can be used as the 83 basis of implementation for other interface, such as CLI and 84 Programmatic APIs. 86 This document defines a YANG data model that can be used to configure 87 and manage IGMP and MLD. It includes IGMPv1[RFC1112], 88 IGMPv2[RFC2236], IGMPv3[RFC3376] and MLDv1[RFC2710], MLDv2[RFC3810]. 89 In addition, features described in IGMP and MLD standards other than 90 mentioned above RFC are also supported. For convenience, IGMP and 91 MLD are wholly called GMP below. 93 2. Terminology 95 o IGMP: Internet Group Management Protocol 97 o MLD: Multicast Listener Discovery 99 o GMP: Group Management Protocol 101 o SSM: Source-Specific Multicast 103 3. Design of Data Model 105 3.1. Overview 107 The GMP Yang module has only one main container :: 109 o gmp-instances : that contains per-instance writable configuration 110 objects. 112 o gmp-group-infos : provide IGMP or MLD group state for all of the 113 dynamic group members. 115 o gmp-static-group-infos : provide IGMP or MLD static group state 116 for all of the static group members. 118 o gmp-if-infos : provide IGMP or MLD interface state and running 119 parameters for all of the IGMP or MLD interfaces. 121 o gmp-packet-statistics : provide IGMP or MLD packet statistical 122 information for all of the IGMP or MLD protocol packets. 124 The figure below describes the overall structure of the GMP Yang 125 module : 127 module: gmp 128 +--rw gmp 129 +--rw gmp-instances 130 | +--rw gmp-instance* [vrf-name addr-family] 131 | +--... 132 | +--rw gmp-ssm-mappings 133 | | +--rw gmp-ssm-mapping 134 | | +--... 135 | +--rw gmp-interfaces 136 | +--rw gmp-interface* [vrf-name if-name addr-family] 137 | +--... 138 | +--rw gmp-static-groups 139 | +--rw gmp-static-group 140 | +--... 141 +--rw gmp-group-infos 142 | +--ro gmp-group-info* [vrf-name addr-family if-name] 143 | +--... 144 | +--ro gmp-source-infos 145 | +--ro gmp-source-info* [ipv4-source-addr ipv6-source-addr] 146 | +--... 147 +--rw gmp-static-group-infos 148 | +--ro gmp-static-group-info* [vrf-name addr-family if-name] 149 | +--... 150 +--rw gmp-if-infos 151 | +--ro gmp-if-info* [vrf-name if-name addr-family] 152 | +--... 153 +--rw gmp-packet-statistics 154 +--ro gmp-packet-statistic* [vrf-name addr-family if-name] 155 +--... 156 Figure 1 The overview of GMP YANG data model 158 3.2. GMP Per-instance Configuration 160 GMP per-instance configuration container includes parameters of the 161 public GMP instance or the GMP instance binding a specific VRF. GMP 162 per-instance configuration container is divided into: 164 o Per-instance parameters 166 o Per-SSM-Mapping configuration of the GMP instance 168 o Per-interface configuration of the GMP instance 170 3.2.1. Per-instance Parameters 172 The per-instance parameter includes the name of the VRF bound by the 173 GMP instance, and timer parameters such as query interval etc. 175 +--rw gmp-instances 176 | +--rw gmp-instance* [vrf-name addr-family] 177 | +--rw vrf-name string 178 | +--rw addr-family enumeration 179 | +--rw query-interval? uint16 180 | +--rw query-rsp-interval? uint8 181 | +--rw robustness? uint8 182 | +--rw last-member-query-interval? uint8 183 | +--rw require-router-alert? boolean 184 | +--rw send-router-alert? boolean 185 | +--rw other-querier-present-time? uint16 186 | +--ro gmp-entry-limit? uint32 187 | +--rw ipsec-name? string 188 | +--rw ipsec-type? enumeration 190 Figure 2 The YANG data model of GMP instance configuration 192 3.2.2. Per-SSM-Mapping Configuration of GMP Instance 194 Per-SSM-Mapping configuration of the GMP instance includes the SSM 195 Mapping rules.IGMPv1/v2 and MLDv1 reports can use these rules to map 196 SG state for PIM SSM[RFC4607].IGMPv3 and MLDv2 can default use PIM 197 SSM , which is described in [RFC4604]. 199 | +--rw gmp-ssm-mappings 200 | | +--rw gmp-ssm-mapping 201 | | +--rw ipv4-ssm-maping-group inet:ipv4-address 202 | | +--rw ipv6-ssm-maping-group inet:ipv6-address 203 | | +--rw is-ssmap-mask boolean 204 | | +--rw ipv4-ssm-maping-mask? inet:ipv4-address 205 | | +--rw ipv6-ssm-maping-mask? uint8 206 | | +--rw is-masklen boolean 207 | | +--rw masklen? uint8 208 | | +--rw ipv4-source-addr inet:ipv4-address 209 | | +--rw ipv6-source-addr inet:ipv6-address 211 Figure 3 The YANG data model of GMP SSM-Mapping configuration 213 3.2.3. Per-interface Configuration of GMP Instance 215 Per-interface configuration of the GMP instance includes the 216 interface name, timer parameters, policies, static groups etc.GMP 217 per-instance configuration container is divided into two containers: 219 o Per-interface parameters 221 o Per-static-group configuration of the GMP interface 223 3.2.3.1. Per-interface Parameters 225 The per-interface parameter includes the name of the interface, and 226 the VRF name bound by the interface, and time parameters, policies 227 etc. 229 | +--rw gmp-interfaces 230 | +--rw gmp-interface* [vrf-name if-name addr-family] 231 | +--rw vrf-name string 232 | +--rw if-name if-name 233 | +--rw addr-family enumeration 234 | +--rw gmp-enable boolean 235 | +--rw ip-source-ply? boolean 236 | +--rw ip-source-acl-name? string 237 | +--rw ip-source-acl-name-ipv6? string 238 | +--rw query-interval? uint16 239 | +--rw query-rsp-interval? uint8 240 | +--rw robustness? uint8 241 | +--rw version? uint8 242 | +--rw last-member-query-interval? uint8 243 | +--rw require-router-alert? boolean 244 | +--rw send-router-alert? boolean 245 | +--rw other-querier-present-time? uint16 246 | +--rw immediate-leave? boolean 247 | +--rw immediate-leave-acl-name? string 248 | +--rw immediate-leave-acl-name-ipv6? string 249 | +--rw gmp-entry-limit? uint16 250 | +--rw except-acl-name? string 251 | +--rw except-acl-name-ipv6? string 252 | +--rw ssmap-enable? boolean 253 | +--rw group-acl-name? string 254 | +--rw group-acl-name-ipv6? string 255 | +--rw group-acl-gmp-ver? uint8 256 | +--rw query-acl-name? string 257 | +--rw queryaclnameipv6? string 258 | +--rw ipsec-name? string 259 | +--rw ipsec-type? enumeration 261 Figure 4 The YANG data model of GMP interface configuration 263 3.2.3.2. Per-static-group Configuration of GMP interface 265 Per-static-group configuration of the GMP interface includes the 266 static group address, and as a option also includes source address, 267 every static group step, and group numbers on the interface. 269 | +--rw gmp-static-groups 270 | +--rw gmp-static-group 271 | +--rw vrf-name string 272 | +--rw addr-family enumeration 273 | +--rw if-name if-name 274 | +--rw ipv4-static-group inet:ipv4-address 275 | +--rw ipv6-static-group inet:ipv6-address 276 | +--rw is-source-addr boolean 277 | +--rw ipv4-source-addr? inet:ipv4-address 278 | +--rw ipv6-source-addr? inet:ipv6-address 279 | +--rw is-step-grp-mask boolean 280 | +--rw ipv4-inc-step-group-mask? inet:ipv4-address 281 | +--rw ipv6-inc-step-group-mask? inet:ipv6-address 282 | +--rw is-masklen boolean 283 | +--rw masklen? uint8 284 | +--rw total-number? uint16 286 Figure 5 The YANG data model of GMP static group configuration 288 3.3. Operational State 290 "gmp" container provides operational states for IGMP or MLD. This 291 container is divided in four components: 293 o gmp-group-infos : provide IGMP or MLD group state for all of the 294 dynamic group members. 296 o gmp-static-group-infos : provide IGMP or MLD static group state 297 for all of the static group members. 299 o gmp-if-infos : provide IGMP or MLD interface state and running 300 parameters for all of the IGMP or MLD interfaces. 302 o gmp-packet-statistics : provide IGMP or MLD packet statistical 303 information for all of the IGMP or MLD protocol packets. 305 +--rw gmp-group-infos 306 | +--ro gmp-group-info* [vrf-name addr-family if-name] 307 | +--ro vrf-name string 308 | +--ro addr-family enumeration 309 | +--ro if-name if-name 310 | +--ro ipv4-group-addr? inet:ipv4-address 311 | +--ro ipv6-group-addr? inet:ipv6-address 312 | +--ro ipv4-last-report-addr? inet:ipv4-address 313 | +--ro ipv6-last-report-addr? inet:ipv6-address 314 | +--ro up-time? uint32 315 | +--ro expire-time? uint32 316 | +--ro last-member-query-count? uint8 317 | +--ro last-member-query-time? uint8 318 | +--ro source-filter-mode? enumeration 319 | +--ro v1-host-timer? uint32 320 | +--ro v2-host-timer? uint32 321 | +--ro is-ssm-mapping? boolean 322 | +--ro gmp-source-infos 323 | +--ro gmp-source-info* [ipv4-source-addr ipv6-source-addr] 324 | +--ro ipv4-source-addr inet:ipv4-address 325 | +--ro ipv6-source-addr inet:ipv6-address 326 | +--ro source-up-time? uint32 327 | +--ro source-expire-time? uint32 328 | +--ro source-last-member-query-count? uint8 329 | +--ro source-last-member-query-time? uint8 331 The Figure 6 The YANG data model of GMP dynamic group and source information 333 +--rw gmp-static-group-infos 334 | +--ro gmp-static-group-info* [vrf-name addr-family if-name] 335 | +--ro vrf-name string 336 | +--ro addr-family enumeration 337 | +--ro if-name if-name 338 | +--ro ipv4-group-addr? inet:ipv4-address 339 | +--ro ipv6-group-addr? inet:ipv6-address 340 | +--ro ipv4-source-addr? inet:ipv4-address 341 | +--ro ipv6-source-addr? inet:ipv6-address 342 | +--ro multicast-boundary? boolean 344 The Figure 7 The YANG data model of GMP static group and source information 345 +--rw gmp-if-infos 346 | +--ro gmp-if-info* [vrf-name if-name addr-family] 347 | +--ro vrf-name string 348 | +--ro if-name if-name 349 | +--ro addr-family enumeration 350 | +--ro ipv4-if-addr? inet:ipv4-address 351 | +--ro ipv6-if-addr? inet:ipv6-address 352 | +--ro gmp-if-state? enumeration 353 | +--ro negotiate-query-time? uint16 354 | +--ro configure-query-time? uint16 355 | +--ro other-querier-timeout? uint16 356 | +--ro max-query-response-time? uint8 357 | +--ro last-member-query-time? uint8 358 | +--ro startup-query-interval? uint16 359 | +--ro startup-query-count? uint8 360 | +--ro general-query-time? uint16 361 | +--ro ipv4-querier-addr? inet:ipv4-address 362 | +--ro ipv6-querier-addr? inet:ipv6-address 363 | +--ro querier-local? enumeration 364 | +--ro gmp-joins? uint32 365 | +--ro gmp-leaves? uint32 366 | +--ro negotiate-robust? uint8 367 | +--ro configure-robust? uint8 368 | +--ro startup-query-timer-state? enumeration 369 | +--ro other-querier-timer-state? enumeration 370 | +--ro ipsec-name? string 371 | +--ro ipsec-type? enumeration 373 The Figure 8 The YANG data model of GMP interface information 375 +--rw gmp-packet-statistics 376 +--ro gmp-packet-statistic* [vrf-name addr-family if-name] 377 +--ro vrf-name string 378 +--ro if-name if-name 379 +--ro addr-family enumeration 380 +--ro ipv4-if-addr? inet:ipv4-address 381 +--ro ipv6-if-addr? inet:ipv6-address 382 +--ro query-recv-valid-num? uint32 383 +--ro query-recv-invalid-num? uint32 384 +--ro query-recv-ignore-num? uint32 385 +--ro report-v1v2-asm-recv-valid-num? uint32 386 +--ro report-v1v2-asm-recv-invalid-num? uint32 387 +--ro report-v1v2-asm-recv-ignore-num? uint32 388 +--ro report-v1v2-ssm-recv-valid-num? uint32 389 +--ro report-v1v2-ssm-recv-invalid-num? uint32 390 +--ro report-v1v2-ssm-recv-ignore-num? uint32 391 +--ro leave-asm-recv-valid-num? uint32 392 +--ro leave-asm-recv-invalid-num? uint32 393 +--ro leave-asm-recv-ignore-num? uint32 394 +--ro leave-ssm-recv-valid-num? uint32 395 +--ro leave-ssm-recv-invalid-num? uint32 396 +--ro leave-ssm-recv-ignore-num? uint32 397 +--ro report-v3-isin-recv-valid-num? uint32 398 +--ro report-v3-isin-recv-invalid-num? uint32 399 +--ro report-v3-isin-recv-ignore-num? uint32 400 +--ro report-v3-isex-recv-valid-num? uint32 401 +--ro report-v3-isex-recv-invalid-num? uint32 402 +--ro report-v3-isex-recv-ignore-num? uint32 403 +--ro report-v3-toin-recv-valid-num? uint32 404 +--ro report-v3-toin-recv-invalid-num? uint32 405 +--ro report-v3-toin-recv-ignore-num? uint32 406 +--ro report-v3-toex-recv-valid-num? uint32 407 +--ro report-v3-toex-recv-invalid-num? uint32 408 +--ro report-v3-toex-recv-ignore-num? uint32 409 +--ro report-v3-allow-recv-valid-num? uint32 410 +--ro report-v3-allow-recv-invalid-num? uint32 411 +--ro report-v3-allow-recv-ignore-num? uint32 412 +--ro report-v3-block-recv-valid-num? uint32 413 +--ro report-v3-block-recv-invalid-num? uint32 414 +--ro report-v3-block-recv-ignore-num? uint32 415 +--ro source-recv-valid-num? uint32 416 +--ro source-recv-invalid-num? uint32 417 +--ro source-recv-ignore-num? uint32 418 +--ro query-send-num? uint32 419 +--ro report-v1v2-asm-send-num? uint32 420 +--ro report-v1v2-ssm-send-num? uint32 421 +--ro leave-asm-send-num? uint32 422 +--ro leave-ssm-send-num? uint32 423 +--ro query-g-send-num? uint32 424 +--ro query-sg-send-num? uint32 425 +--ro report-v3-isin-send-num? uint32 426 +--ro report-v3-isex-send-num? uint32 427 +--ro report-v3-toin-send-num? uint32 428 +--ro report-v3-toex-send-num? uint32 429 +--ro report-v3-allow-send-num? uint32 430 +--ro report-v3-block-send-num? uint32 431 +--ro source-send-num? uint32 433 The Figure 9 The YANG data model of GMP packet statistics 435 4. Notifications 437 The gmp yang data model introduces some notifications: 439 gmp-group-join : This notification is sent when the system receive a 440 IGMP or MLD group membership report. 442 gmp-group-leave : This notification is sent when the system receive a 443 IGMP or MLD group membership leave. 445 notifications: 446 +---n gmp-group-join 447 | +--ro vrf-name? string 448 | +--ro if-name? if-name 449 | +--ro addr-family? enumeration 450 | +--ro ipv4-group-addr? inet:ipv4-address 451 | +--ro ipv6-group-addr? inet:ipv6-address 452 | +--ro ipv4-source-addr? inet:ipv4-address 453 | +--ro ipv6-source-addr? inet:ipv6-address 454 | +--ro ipv4-sender-addr? inet:ipv4-address 455 | +--ro ipv6-sender-addr? inet:ipv6-address 456 +---n gmp-group-leave 457 +--ro vrf-name? string 458 +--ro if-name? if-name 459 +--ro addr-family? enumeration 460 +--ro ipv4-group-addr? inet:ipv4-address 461 +--ro ipv6-group-addr? inet:ipv6-address 462 +--ro ipv4-source-addr? inet:ipv4-address 463 +--ro ipv6-source-addr? inet:ipv6-address 464 +--ro ipv4-sender-addr? inet:ipv4-address 465 +--ro ipv6-sender-addr? inet:ipv6-address 467 The Figure 10 The YANG data model of GMP notifications 469 5. GMP Yang Module 471 module gmp { 472 namespace "urn:huawei:params:xml:ns:yang:gmp"; 473 // replace with IANA namespace when assigned - 474 // urn:ietf:params:xml:ns:yang:1 475 prefix "gmp"; 476 import ietf-inet-types { 477 prefix inet; 478 } 479 organization 480 "IETF PIM(Protocol Independent Multicast) Working Group"; 481 contact 482 "liuyisong@huawei.com 483 guofeng@huawei.com "; 484 description 485 "This YANG module defines the generic configuration data for GMP, 486 i.e. IGMP and MLD, which is common across all of the vendor 487 implementations of the protocol. It is intended that the module 488 will be extended by vendors to define vendor-specific 489 GMP configuration parameters."; 491 revision 2015-03-09 { 492 description 493 "Add operation and notification contents."; 494 } 495 revision 2014-10-21 { 496 description 497 "Initial revision."; 498 } 500 typedef if-name { 501 description "if-name is like ethernet1/1/1/1"; 502 type string { 503 length "1..63"; 504 } 505 } 507 container gmp { 509 container gmp-instances { 511 list gmp-instance { 513 key "vrf-name addr-family"; 514 max-elements "unbounded"; 515 min-elements "0"; 516 description "Specifies a list of gmp instances."; 518 leaf vrf-name { 519 description 520 "Name of an gmp instance.If the name string is 521 empty the instance means a public instance 522 whose name is _public_."; 523 config "true"; 524 //default "_public_"; 525 type string { 526 length "0..32"; 527 } 528 } 529 leaf addr-family { 530 description 531 "Specify an address family, which determines 532 whether an address is an ipv4 or ipv6 address."; 533 config "true"; 534 mandatory "true"; 535 type enumeration { 536 enum ipv4unicast { 537 value "0"; 538 description 539 "Specify an address family, which 540 determines whether an address is an 541 ipv4 or ipv6 address."; 542 } 543 enum ipv6unicast { 544 value "1"; 545 description 546 "Specify an address family, which 547 determines whether an address is an 548 ipv4 or ipv6 address."; 549 } 550 } 551 } 552 leaf query-interval { 553 description 554 "Specify the interval at which the router sends 555 general query messages. The value is an integer 556 ranging from 1 to 18000, in seconds. The default 557 value for ipv4 is 60, and 125 for ipv6."; 558 config "true"; 559 default "60"; 560 type uint16 { 561 range "1..18000"; 562 } 563 } 564 leaf query-rsp-interval { 565 description 566 "Specify the maximum response time for a query 567 message. The value is an integer ranging from 568 1 to 25, in seconds. The default value is 10."; 569 config "true"; 570 default "10"; 571 type uint8 { 572 range "1..25"; 573 } 574 } 575 leaf robustness { 576 description 577 "Specify the number of times for retransmitting 578 a message to avoid the packet loss. The value is 579 an integer ranging from 2 to 5. The default 580 value is 2."; 581 config "true"; 582 default "2"; 583 type uint8 { 584 range "2..5"; 585 } 587 } 588 leaf last-member-query-interval { 589 description 590 "Specify the interval at which the querier sends 591 last-member query messages. The value is an 592 integer ranging from 1 to 5, in seconds. The 593 default value is 1. This parameter makes sense 594 only when the current querier runs igmpv2, 595 igmpv3 or mld."; 596 config "true"; 597 default "1"; 598 type uint8 { 599 range "1..5"; 600 } 601 } 602 leaf require-router-alert { 603 description 604 "Configure the router to process only the 605 messages whose ip headers contain router-alert 606 options globally. By default, the router does 607 not check whether the received igmp messages 608 contain router-alert options."; 609 config "true"; 610 type boolean; 611 } 612 leaf send-router-alert { 613 description 614 "Configure the router to send the messages with 615 router-alert options in the ip headers globally. 616 By default, the ip headers contain router-alert 617 options. "; 618 config "true"; 619 type boolean; 620 } 621 leaf other-querier-present-time { 622 description 623 "Set the global keepalive period for other 624 queriers. "; 625 config "true"; 626 type uint16 { 627 range "60..300"; 628 } 629 } 630 leaf gmp-entry-limit { 631 description 632 "Set the maximum number of entries that can be 633 created for the current instance. The value is 634 an integer ranging from 1 to 65536. The default 635 value is 49152."; 636 config "false"; 637 type uint32 { 638 range "1..65536"; 639 } 640 } 641 leaf ipsec-name { 642 description 643 "Sa name. The value is a string of 1 to 15 644 characters."; 645 config "true"; 646 type string { 647 length "1..15"; 648 pattern "^[^ ]+$"; 649 } 650 } 651 leaf ipsec-type { 652 description 653 "Ipsec type used as a query option."; 654 config "true"; 655 type enumeration { 656 enum forall { 657 value "0"; 658 description 659 "Ipsec type used as a query option."; 660 } 661 enum forquery { 662 value "1"; 663 description 664 "Ipsec type used as a query option."; 665 } 666 } 667 } 669 container gmp-ssm-mappings { 671 container gmp-ssm-mapping { 673 leaf ipv4-ssm-maping-group { 674 description 675 "Specify the address of a multicast 676 group."; 677 config "true"; 678 mandatory "true"; 679 type inet:ipv4-address; 680 } 681 leaf ipv6-ssm-maping-group { 682 description 683 "Specify the address of a multicast 684 group."; 685 config "true"; 686 mandatory "true"; 687 type inet:ipv6-address; 688 } 689 leaf is-ssmap-mask { 690 description 691 "Whether a mask is configured for a 692 multicast group address."; 693 config "true"; 694 mandatory "true"; 695 type boolean; 696 } 697 leaf ipv4-ssm-maping-mask { 698 description 699 "Specify the mask of a multicast group 700 address."; 701 config "true"; 702 type inet:ipv4-address; 703 } 704 leaf ipv6-ssm-maping-mask { 705 description 706 "Specify the mask of a multicast group 707 address."; 708 config "true"; 709 type uint8 { 710 range "0..128"; 711 } 712 } 713 leaf is-masklen { 714 description 715 "Whether the length is set for the mask 716 of a multicast group address."; 717 config "true"; 718 mandatory "true"; 719 type boolean; 720 } 721 leaf masklen { 722 description 723 "Specify the mask length of a multicast 724 group address. In the case of an ipv4 725 address, the mask length ranges from 4 726 to 32. In the case of an ipv6 address, 727 the mask length is 16/32/64/128."; 728 config "true"; 729 type uint8 { 730 range "4..128"; 732 } 733 } 734 leaf ipv4-source-addr { 735 description 736 "Specify the address of a multicast 737 source."; 738 config "true"; 739 mandatory "true"; 740 type inet:ipv4-address; 741 } 742 leaf ipv6-source-addr { 743 description 744 "Specify the address of a multicast 745 source."; 746 config "true"; 747 mandatory "true"; 748 type inet:ipv6-address; 749 } 750 } 751 } 753 container gmp-interfaces { 755 list gmp-interface { 757 key "vrf-name if-name addr-family"; 758 max-elements "unbounded"; 759 min-elements "0"; 760 description "Specifies an gmp interface."; 762 leaf vrf-name { 763 description 764 "Name of an gmp instance. If the name 765 string is empty the instance means a 766 public instance whose name is _public_."; 767 config "true"; 768 mandatory "true"; 769 //default "_public_"; 770 type string { 771 length "0..32"; 772 } 773 } 774 leaf if-name { 775 description "Interface name."; 776 config "true"; 777 type if-name; 778 } 779 leaf addr-family { 780 description 781 "Specify an address family, which 782 determines whether an address is an 783 ipv4 or ipv6 address."; 784 config "true"; 785 mandatory "true"; 786 type enumeration { 787 enum ipv4unicast { 788 value "0"; 789 description 790 "Specify an address family, which 791 determines whether an address is 792 an ipv4 or ipv6 address."; 793 } 794 enum ipv6unicast { 795 value "1"; 796 description 797 "Specify an address family, which 798 determines whether an address is 799 an ipv4 or ipv6 address."; 800 } 801 } 802 } 803 leaf gmp-enable { 804 description 805 "Enable protocols on an interface."; 806 config "true"; 807 mandatory "true"; 808 type boolean; 809 } 810 leaf ip-source-ply { 811 description 812 "Configure a policy for filtering igmp 813 report messages based on host addresses. 814 By default, no policy is configured for 815 filtering igmp report messages based on 816 host addresses."; 817 config "true"; 818 type boolean; 819 } 820 leaf ip-source-acl-name { 821 description 822 "Configure an acl that defines a host 823 addresses range. The value is an integer 824 ranging from 2000 to 2999, or a 825 case-sensitive string with a maximum of 826 32 characters. By default, the acl is 827 not configured."; 829 config "true"; 830 type string { 831 length "1..32"; 832 pattern "^[^ ]+$"; 833 } 834 } 835 leaf ip-source-acl-name-ipv6 { 836 description 837 "Configure an acl that defines a host 838 addresses range. The value is an integer 839 ranging from 2000 to 2999, or a 840 case-sensitive string with a maximum of 841 32 characters. By default, the acl is 842 not configured."; 843 config "true"; 844 type string { 845 length "1..32"; 846 pattern "^[^ ]+$"; 847 } 848 } 849 leaf query-interval { 850 description 851 "Specify the interval at which the router 852 sends general query messages. The value 853 is an integer ranging from 1 to 18000, 854 in seconds. The default value for ipv4 855 is 60, and 125 for ipv6."; 856 config "true"; 857 default "60"; 858 type uint16 { 859 range "1..18000"; 860 } 861 } 862 leaf query-rsp-interval { 863 description 864 "Specify the maximum response time for a 865 query message. The value is an integer 866 ranging from 1 to 25, in seconds. The 867 default value is 10. This time is used 868 to control the deadline of mainframe 869 feed back the relation-ship of group 870 members."; 871 config "true"; 872 default "10"; 873 type uint8 { 874 range "1..25"; 875 } 876 } 877 leaf robustness { 878 description 879 "Specify the number of times for 880 retransmitting messages to avoid packet 881 loss. The value is an integer ranging 882 from 2 to 5. The default value is 2."; 883 config "true"; 884 default "2"; 885 type uint8 { 886 range "2..5"; 887 } 888 } 889 leaf version { 890 description 891 "Specify the version of igmp or mld 892 running on an interface. By default, 893 igmpv2 or mldv2 is used."; 894 config "true"; 895 default "2"; 896 type uint8 { 897 range "1..3"; 898 } 899 } 900 leaf last-member-query-interval { 901 description 902 "Specify the interval at which the 903 querier sends last-member query messages. 904 The value is an integer ranging from 1 905 to 5, in seconds. The default value is 1. 906 This parameter makes sense only when the 907 current querier runs igmpv2, igmpv3 or 908 mld."; 909 config "true"; 910 default "1"; 911 type uint8 { 912 range "1..5"; 913 } 914 } 915 leaf require-router-alert { 916 description 917 "Configure an interface to process only 918 messages whose ip headers contain 919 router-alert options. By default, the 920 interface does not check whether the 921 received messages contain router-alert 922 options."; 923 config "true"; 924 type boolean; 926 } 927 leaf send-router-alert { 928 description 929 "Configure an interface to send the 930 messages with router-alert options in 931 the ip headers. By default, the ip 932 header contain router-alert options."; 933 config "true"; 934 default "true"; 935 type boolean; 936 } 937 leaf other-querier-present-time { 938 description 939 "Set the keepalive period for other 940 queriers on an interface. The value 941 ranges from 60 to 300, in second. 942 By default, no keepalive period is set 943 for other queriers."; 944 config "true"; 945 type uint16 { 946 range "60..300"; 947 } 948 } 949 leaf immediate-leave { 950 description 951 "Configure an interface that receives a 952 leave message of a certain group to 953 immediately delete the corresponding 954 group records, without sending a 955 last-member query message."; 956 config "true"; 957 type boolean; 958 } 959 leaf immediate-leave-acl-name { 960 description 961 "Configure an acl that defines a 962 multicast group range. the basic acl 963 number ranges from 2000 to 2999, and 964 the advanced acl number ranges from 3000 965 to 3999. The name is a string with a 966 maximum of 32 case-sensitive characters. 967 By default, the acl is not configured"; 968 config "true"; 969 type string { 970 length "1..32"; 971 pattern "^[^ ]+$"; 972 } 973 } 974 leaf immediate-leave-acl-name-ipv6 { 975 description 976 "Configure an acl that defines a 977 multicast group range. The basic acl 978 number ranges from 2000 to 2999, and 979 the advanced acl number ranges from 3000 980 to 3999. The name is a string with a 981 maximum of 32 case-sensitive characters. 982 By default, the acl is not configured"; 983 config "true"; 984 type string { 985 length "1..32"; 986 pattern "^[^ ]+$"; 987 } 988 } 989 leaf gmp-entry-limit { 990 description 991 "Specify the maximum number of entries 992 that the current interface can create. 993 It is an integer ranging from 1 to 994 16384. The default value is 16384."; 995 config "true"; 996 type uint16 { 997 range "1..16384"; 998 } 999 } 1000 leaf except-acl-name { 1001 description 1002 "Specify the range of multicast groups, 1003 the number of igmp entries corresponding 1004 to which needs not be limited. The basic 1005 acl number ranges from 2000 to 2999. The 1006 basic acl filters group addresses only, 1007 without distinguishing (*, g) entries 1008 and (s, g) entries."; 1009 config "true"; 1010 type string { 1011 length "1..32"; 1012 pattern "^[^ ]+$"; 1013 } 1014 } 1015 leaf except-acl-name-ipv6 { 1016 description 1017 "Specify the range of multicast groups, 1018 the number of igmp entries corresponding 1019 to which needs not be limited. The basic 1020 acl number ranges from 2000 to 2999. The 1021 basic acl filters group addresses only, 1022 without distinguishing (*, g) entries 1023 and (s, g) entries"; 1024 config "true"; 1025 type string { 1026 length "1..32"; 1027 pattern "^[^ ]+$"; 1028 } 1029 } 1030 leaf ssmap-enable { 1031 description 1032 "Enable ssm mapping on an interface."; 1033 config "true"; 1034 type boolean; 1035 } 1036 leaf group-acl-name { 1037 description 1038 "Set a filter for multicast groups on an 1039 interface to control the range of 1040 multicast groups that hosts can join. 1041 The basic acl number ranges from 2000 1042 to 2999, and the advanced acl number 1043 ranges from 3000 to 3999. The name is a 1044 string with a maximum of 32 "; 1045 config "true"; 1046 type string { 1047 length "1..32"; 1048 pattern "^[^ ]+$"; 1049 } 1050 } 1051 leaf group-acl-name-ipv6 { 1052 description 1053 "Set a filter for multicast groups on an 1054 interface to control the range of 1055 multicast groups that hosts can join. 1056 The basic acl number ranges from 2000 1057 to 2999, and the advanced acl number 1058 ranges from 3000 to 3999. The name is a 1059 string with a maximum of 32 "; 1060 config "true"; 1061 type string { 1062 length "1..32"; 1063 pattern "^[^ ]+$"; 1064 } 1065 } 1066 leaf group-acl-gmp-ver { 1067 description 1068 "Forbids hosts that use a specified 1069 version to join the multicast group. 1071 The version can be specified in this 1072 command only after a multicast filtering 1073 policy is configured."; 1074 config "true"; 1075 type uint8 { 1076 range "1..3"; 1077 } 1078 } 1079 leaf query-acl-name { 1080 description 1081 "Configure an acl that defines a host 1082 addresses range. The value is an integer 1083 ranging from 2000 to 2999, or a 1084 case-sensitive string with a maximum of 1085 32 characters. By default, the acl is 1086 not configured."; 1087 config "true"; 1088 type string { 1089 length "1..32"; 1090 pattern "^[^ ]+$"; 1091 } 1092 } 1093 leaf queryaclnameipv6 { 1094 description 1095 "Configure an acl that defines a host 1096 addresses range. The value is an integer 1097 ranging from 2000 to 2999, or a 1098 case-sensitive string with a maximum of 1099 32 characters. By default, the acl is 1100 not configured."; 1101 config "true"; 1102 type string { 1103 length "1..32"; 1104 pattern "^[^ ]+$"; 1105 } 1106 } 1107 leaf ipsec-name { 1108 description 1109 "Sa name. The value is a string of 1 to 1110 15 characters."; 1111 config "true"; 1112 type string { 1113 length "1..15"; 1114 pattern "^[^ ]+$"; 1115 } 1116 } 1117 leaf ipsec-type { 1118 description 1119 "Ipsec type used as a query option."; 1120 config "true"; 1121 type enumeration { 1122 enum forall { 1123 value "0"; 1124 description 1125 "Ipsec type used as a query option."; 1126 } 1127 enum forquery { 1128 value "1"; 1129 description 1130 "Ipsec type used as a query option."; 1131 } 1132 } 1133 } 1135 container gmp-static-groups { 1137 container gmp-static-group { 1139 leaf vrf-name { 1140 description 1141 "Name of an gmp instance. If the 1142 name string is empty the instance 1143 means a public instance whose 1144 name is _public_."; 1145 config "true"; 1146 mandatory "true"; 1147 //default "_public_"; 1148 type string { 1149 length "0..32"; 1150 } 1151 } 1152 leaf addr-family { 1153 description 1154 "Specify an address family, which 1155 determines whether an ipv4 or 1156 ipv6 address is used."; 1157 config "true"; 1158 mandatory "true"; 1159 type enumeration { 1160 enum ipv4unicast { 1161 value "0"; 1162 description 1163 "Specify an address family, 1164 which determines whether 1165 an ipv4 or ipv6 address 1166 is used."; 1168 } 1169 enum ipv6unicast { 1170 value "1"; 1171 description 1172 "Specify an address family, 1173 which determines whether 1174 an ipv4 or ipv6 address 1175 is used."; 1176 } 1177 } 1178 } 1179 leaf if-name { 1180 description "Interface name."; 1181 config "true"; 1182 mandatory "true"; 1183 type if-name; 1184 } 1185 leaf ipv4-static-group { 1186 description 1187 "Specifies the address of a 1188 static group."; 1189 config "true"; 1190 mandatory "true"; 1191 type inet:ipv4-address; 1192 } 1193 leaf ipv6-static-group { 1194 description 1195 "Specifies the address of a 1196 static group."; 1197 config "true"; 1198 mandatory "true"; 1199 type inet:ipv6-address; 1200 } 1201 leaf is-source-addr { 1202 description 1203 "Whether an address is configured 1204 for the multicast source."; 1205 config "true"; 1206 mandatory "true"; 1207 type boolean; 1208 } 1209 leaf ipv4-source-addr { 1210 description 1211 "Specifies the ipv4 address of a 1212 remote neighbor."; 1213 config "true"; 1214 type inet:ipv4-address; 1215 } 1216 leaf ipv6-source-addr { 1217 description 1218 "Specifies the ipv6 address of a 1219 remote neighbor."; 1220 config "true"; 1221 type inet:ipv6-address; 1222 } 1223 leaf is-step-grp-mask { 1224 description 1225 "Determine whether to specify the 1226 step mask in batch configuration 1227 mode."; 1228 config "true"; 1229 mandatory "true"; 1230 type boolean; 1231 } 1232 leaf ipv4-inc-step-group-mask { 1233 description 1234 "Specify the step mask of a group 1235 address in batch configuration 1236 mode."; 1237 config "true"; 1238 type inet:ipv4-address; 1239 } 1240 leaf ipv6-inc-step-group-mask { 1241 description 1242 "Specify the step mask of a group 1243 address in batch configuration 1244 mode."; 1245 config "true"; 1246 type inet:ipv6-address; 1247 } 1248 leaf is-masklen { 1249 description 1250 "Determine whether to set the 1251 length for the step mask of a 1252 multicast group address in batch 1253 configuration mode. "; 1254 config "true"; 1255 mandatory "true"; 1256 type boolean; 1257 } 1258 leaf masklen { 1259 description 1260 "Specify the mask length of a 1261 multicast group address. In the 1262 case of an ipv4 address, the 1263 mask length ranges from 4 to 32. 1265 In the case of an ipv6 address, 1266 the mask length is 16/32/64/128."; 1267 config "true"; 1268 type uint8 { 1269 range "4..128"; 1270 } 1271 } 1272 leaf total-number { 1273 description 1274 "Specify the number of multicast 1275 group addresses in batch 1276 configuration mode. It is an 1277 integer ranging from 2 to 512."; 1278 config "true"; 1279 default "2"; 1280 type uint16 { 1281 range "2..512"; 1282 } 1283 } 1284 } 1285 } 1286 } 1288 } 1290 } 1292 } 1294 container gmp-group-infos { 1296 list gmp-group-info { 1298 key "vrf-name addr-family if-name"; 1299 config "false"; 1301 leaf vrf-name { 1302 description "Specify the name of a vpn instance."; 1303 config "false"; 1304 //default "_public_"; 1305 type string { 1306 length "0..32"; 1307 } 1308 } 1309 leaf addr-family { 1310 description 1311 "Specify an address family, which determines 1312 whether an address is an ipv4 or ipv6 address."; 1314 config "false"; 1315 type enumeration { 1316 enum ipv4unicast { 1317 value "0"; 1318 description "ipv4unicast:"; 1319 } 1320 enum ipv6unicast { 1321 value "1"; 1322 description "ipv6unicast:"; 1323 } 1324 } 1325 } 1326 leaf if-name { 1327 description "Specify the name of an interface."; 1328 config "false"; 1329 type if-name; 1330 } 1331 leaf ipv4-group-addr { 1332 description 1333 "Multicast group address. In ipv4 address, the 1334 value ranges from 224.0.0.0 to 239.255.255.255. "; 1335 config "false"; 1336 type inet:ipv4-address; 1337 } 1338 leaf ipv6-group-addr { 1339 description 1340 "Multicast group address. In ipv6, the value is 1341 in hexadecimal notation and in the format of 1342 ffxx:xxxx:xxxx::xxxx "; 1343 config "false"; 1344 type inet:ipv6-address; 1345 } 1346 leaf ipv4-last-report-addr { 1347 description 1348 "Specify the host that sends the last report 1349 message."; 1350 config "false"; 1351 type inet:ipv4-address; 1352 } 1353 leaf ipv6-last-report-addr { 1354 description 1355 "Specify the host that sends the last report 1356 message."; 1357 config "false"; 1358 type inet:ipv6-address; 1359 } 1360 leaf up-time { 1361 description 1362 "Specify the time when a multicast group is 1363 discovered, in seconds."; 1364 config "false"; 1365 type uint32 { 1366 range "0..4294967295"; 1367 } 1368 } 1369 leaf expire-time { 1370 description 1371 "Specify the scheduled time to remove a group 1372 from the group table. The value is expressed in 1373 seconds."; 1374 config "false"; 1375 type uint32 { 1376 range "0..4294967295"; 1377 } 1378 } 1379 leaf last-member-query-count { 1380 description 1381 "Specify the number of times that the last member 1382 query message is transmitted."; 1383 config "false"; 1384 type uint8 { 1385 range "1..5"; 1386 } 1387 } 1388 leaf last-member-query-time { 1389 description 1390 "Specify the timeout period for sending last member 1391 query messages."; 1392 config "false"; 1393 type uint8 { 1394 range "1..25"; 1395 } 1396 } 1397 leaf source-filter-mode { 1398 description 1399 "Specify the group mode, exclude or include."; 1400 config "false"; 1401 type enumeration { 1402 enum include { 1403 value "0"; 1404 description "include:include"; 1405 } 1406 enum exclude { 1407 value "1"; 1408 description "exclude:exclude"; 1409 } 1410 enum na { 1411 value "2"; 1412 description "na:na"; 1413 } 1414 } 1415 } 1416 leaf v1-host-timer { 1417 description 1418 "Specify the timeout period of an v1 host."; 1419 config "false"; 1420 type uint32 { 1421 range "0..4294967295"; 1422 } 1423 } 1424 leaf v2-host-timer { 1425 description 1426 "Specify the timeout period of an v2 host."; 1427 config "false"; 1428 type uint32 { 1429 range "0..4294967295"; 1430 } 1431 } 1432 leaf is-ssm-mapping { 1433 description 1434 "Identifies an ssm mapping-enabled group."; 1435 config "false"; 1436 type boolean; 1437 } 1438 container gmp-source-infos { 1440 list gmp-source-info { 1442 description 1443 "Specify dynamic multicast source information."; 1444 key "ipv4-source-addr ipv6-source-addr"; 1445 config "false"; 1447 leaf ipv4-source-addr { 1448 description 1449 "Specify the address of a multicast source."; 1450 config "false"; 1451 type inet:ipv4-address; 1452 } 1453 leaf ipv6-source-addr { 1454 description 1455 "Specify the address of a multicast source."; 1456 config "false"; 1457 type inet:ipv6-address; 1459 } 1460 leaf source-up-time { 1461 description 1462 "Specify the time when a multicast source 1463 is discovered."; 1464 config "false"; 1465 type uint32 { 1466 range "0..4294967295"; 1467 } 1468 } 1469 leaf source-expire-time { 1470 description 1471 "Specify the time left to delete records 1472 from the source table."; 1473 config "false"; 1474 type uint32 { 1475 range "0..4294967295"; 1476 } 1477 } 1478 leaf source-last-member-query-count { 1479 description 1480 "Specify the number of times that the 1481 last member query message is transmitted."; 1482 config "false"; 1483 type uint8 { 1484 range "1..5"; 1485 } 1486 } 1487 leaf source-last-member-query-time { 1488 description 1489 "Specify the timeout period for sending 1490 last member query messages."; 1491 config "false"; 1492 type uint8 { 1493 range "1..25"; 1494 } 1495 } 1497 } 1499 } 1501 } 1503 } 1505 container gmp-static-group-infos { 1506 list gmp-static-group-info { 1508 description 1509 "Specify static multicast group information."; 1510 key "vrf-name addr-family if-name"; 1511 config "false"; 1513 leaf vrf-name { 1514 description "Specify the name of a vpn instance."; 1515 config "false"; 1516 //default "_public_"; 1517 type string { 1518 length "0..32"; 1519 } 1520 } 1521 leaf addr-family { 1522 description 1523 "Specify an address family, which determines 1524 whether an address is an ipv4 or ipv6 address."; 1525 config "false"; 1526 type enumeration { 1527 enum ipv4unicast { 1528 value "0"; 1529 description "ipv4unicast:"; 1530 } 1531 enum ipv6unicast { 1532 value "1"; 1533 description "ipv6unicast:"; 1534 } 1535 } 1536 } 1537 leaf if-name { 1538 description "Specify the name of an interface."; 1539 config "false"; 1540 type if-name; 1541 } 1542 leaf ipv4-group-addr { 1543 description 1544 "Multicast group address. In ipv4 address, the 1545 value ranges from 239.0.0.0 to 239.255.255.255. "; 1546 config "false"; 1547 type inet:ipv4-address; 1548 } 1549 leaf ipv6-group-addr { 1550 description 1551 "Multicast group address. In ipv6, the value is 1552 in hexadecimal notation and in the format of 1553 ffxx:xxxx:xxxx::xxxx "; 1555 config "false"; 1556 type inet:ipv6-address; 1557 } 1558 leaf ipv4-source-addr { 1559 description 1560 "Specify the address of a multicast source."; 1561 config "false"; 1562 type inet:ipv4-address; 1563 } 1564 leaf ipv6-source-addr { 1565 description 1566 "Specify the address of a multicast source."; 1567 config "false"; 1568 type inet:ipv6-address; 1569 } 1570 leaf multicast-boundary { 1571 description 1572 "Whether the multicast forwarding boundary is 1573 configured."; 1574 config "false"; 1575 type boolean; 1576 } 1577 } 1579 } 1581 container gmp-if-infos { 1583 list gmp-if-info { 1585 description "Specify interface information."; 1586 key "vrf-name if-name addr-family"; 1587 config "false"; 1589 leaf vrf-name { 1590 description "Specify the name of a vpn instance."; 1591 config "false"; 1592 //default "_public_"; 1593 type string { 1594 length "0..32"; 1595 } 1596 } 1597 leaf if-name { 1598 description "Specify the name of an interface."; 1599 config "false"; 1600 type if-name; 1601 } 1602 leaf addr-family { 1603 description 1604 "Specify an address family, which determines 1605 whether an address is an ipv4 or ipv6 address."; 1606 config "false"; 1607 type enumeration { 1608 enum ipv4unicast { 1609 value "0"; 1610 description "ipv4unicast:"; 1611 } 1612 enum ipv6unicast { 1613 value "1"; 1614 description "ipv6unicast:"; 1615 } 1616 } 1617 } 1618 leaf ipv4-if-addr { 1619 description 1620 "Specify the ip address of an interface."; 1621 config "false"; 1622 type inet:ipv4-address; 1623 } 1624 leaf ipv6-if-addr { 1625 description 1626 "Specify the ip address of an interface."; 1627 config "false"; 1628 type inet:ipv6-address; 1629 } 1630 leaf gmp-if-state { 1631 description 1632 "Specify the status of an interface enabled with 1633 a protocol. The value can be up or down."; 1634 config "false"; 1635 type enumeration { 1636 enum down { 1637 value "0"; 1638 description "down:down"; 1639 } 1640 enum up { 1641 value "1"; 1642 description "up:up"; 1643 } 1644 } 1645 } 1646 leaf negotiate-query-time { 1647 description 1648 "Interval negotiated by non-queriers for sending 1649 query messages, in seconds. The negotiated value 1650 is supported by igmpv3 or mldv2 only."; 1652 config "false"; 1653 type uint16 { 1654 range "1..18000"; 1655 } 1656 } 1657 leaf configure-query-time { 1658 description 1659 "Interval configured by non-queriers for sending 1660 query messages, in seconds. "; 1661 config "false"; 1662 type uint16 { 1663 range "1..18000"; 1664 } 1665 } 1666 leaf other-querier-timeout { 1667 description 1668 "Specify the timeout period of other queriers. 1669 The value decreases by one per second. The value 1670 is 0 on the interface that acts as the querier."; 1671 config "false"; 1672 type uint16 { 1673 range "1..65535"; 1674 } 1675 } 1676 leaf max-query-response-time { 1677 description 1678 "Specify the maximum response time carried in a 1679 query message."; 1680 config "false"; 1681 type uint8 { 1682 range "1..25"; 1683 } 1684 } 1685 leaf last-member-query-time { 1686 description 1687 "Specify the timeout period for sending the 1688 last-member query message."; 1689 config "false"; 1690 type uint8 { 1691 range "1..25"; 1692 } 1693 } 1694 leaf startup-query-interval { 1695 description 1696 "Specify the interval at which an interface 1697 functioning as the querier sends query messages 1698 when it is started. "; 1699 config "false"; 1700 type uint16 { 1701 range "1..18000"; 1702 } 1703 } 1704 leaf startup-query-count { 1705 description 1706 "Specify the number of times that an interface 1707 functioning as the querier sends query messages 1708 when it is started. "; 1709 config "false"; 1710 type uint8 { 1711 range "2..5"; 1712 } 1713 } 1714 leaf general-query-time { 1715 description 1716 "Specify the timeout period of a general query 1717 timer."; 1718 config "false"; 1719 type uint16 { 1720 range "1..18000"; 1721 } 1722 } 1723 leaf ipv4-querier-addr { 1724 description 1725 "Specify the address of a querier."; 1726 config "false"; 1727 type inet:ipv4-address; 1728 } 1729 leaf ipv6-querier-addr { 1730 description 1731 "Specify the address of a querier."; 1732 config "false"; 1733 type inet:ipv6-address; 1734 } 1735 leaf querier-local { 1736 description "Whether a query is a local query."; 1737 config "false"; 1738 type enumeration { 1739 enum na { 1740 value "0"; 1741 description "na:na"; 1742 } 1743 enum no_querier { 1744 value "1"; 1745 description "no_querier:no_querier"; 1746 } 1747 enum this_router { 1748 value "2"; 1749 description "this_router:this_router"; 1750 } 1751 enum other_router { 1752 value "3"; 1753 description "other_router:other_router"; 1754 } 1755 } 1756 } 1757 leaf gmp-joins { 1758 description 1759 "Specify the number of groups that an interface 1760 has joined. When the interface joins a new 1761 group, the value increases by one; when the 1762 interface leaves a group, the value remains 1763 unchanged"; 1764 config "false"; 1765 type uint32 { 1766 range "0..4294967295"; 1767 } 1768 } 1769 leaf gmp-leaves { 1770 description 1771 "Specify the number of groups that the interface 1772 leaves. Each time when the interface leaves a 1773 group, the value increases by one."; 1774 config "false"; 1775 type uint32 { 1776 range "0..4294967295"; 1777 } 1778 } 1779 leaf negotiate-robust { 1780 description 1781 "Specify the robustness variable negotiated by 1782 non-queriers. The value is supported by igmpv3 1783 or mldv2 only."; 1784 config "false"; 1785 type uint8 { 1786 range "2..5"; 1787 } 1788 } 1789 leaf configure-robust { 1790 description 1791 "Specify the robustness variable configured by 1792 non-queriers. "; 1793 config "false"; 1794 type uint8 { 1795 range "2..5"; 1797 } 1798 } 1799 leaf startup-query-timer-state { 1800 description 1801 "Specify the status of the timer for the interface 1802 functioning as the querier after being started. 1803 off: the interface immediately sends a query 1804 message after being started. 1805 on: the interface does not send a query message 1806 after being started."; 1807 config "false"; 1808 type enumeration { 1809 enum off { 1810 value "0"; 1811 description "off:off"; 1812 } 1813 enum on { 1814 value "1"; 1815 description "on:on"; 1816 } 1817 enum na { 1818 value "2"; 1819 description "na:na"; 1820 } 1821 } 1822 } 1823 leaf other-querier-timer-state { 1824 description 1825 "Specify the status of the timer identifying 1826 whether another querier is present. 1827 off: the interface considers itself as a querier 1828 and that no other queriers exist. "; 1829 config "false"; 1830 type enumeration { 1831 enum off { 1832 value "0"; 1833 description "off:off"; 1834 } 1835 enum on { 1836 value "1"; 1837 description "on:on"; 1838 } 1839 } 1840 } 1841 leaf ipsec-name { 1842 description 1843 "Sa name. the value is a string of 1 to 15 1844 characters."; 1846 config "false"; 1847 type string { 1848 length "1..15"; 1849 } 1850 } 1851 leaf ipsec-type { 1852 description 1853 "Ipsec type used as a query option."; 1854 config "false"; 1855 type enumeration { 1856 enum forall { 1857 value "0"; 1858 description "ipsec sa for all:"; 1859 } 1860 enum forquery { 1861 value "1"; 1862 description "ipsec sa for query:"; 1863 } 1864 } 1865 } 1866 } 1868 } 1870 container gmp-packet-statistics { 1872 list gmp-packet-statistic { 1874 key "vrf-name addr-family if-name"; 1875 config "false"; 1877 leaf vrf-name { 1878 description "Specify the name of a vpn instance."; 1879 config "false"; 1880 //default "_public_"; 1881 type string { 1882 length "0..32"; 1883 } 1884 } 1885 leaf if-name { 1886 description "Specify the name of an interface."; 1887 config "false"; 1888 type if-name; 1889 } 1890 leaf addr-family { 1891 config "false"; 1892 type enumeration { 1893 enum ipv4unicast { 1894 value "0"; 1895 description "ipv4unicast:"; 1896 } 1897 enum ipv6unicast { 1898 value "1"; 1899 description "ipv6unicast:"; 1900 } 1901 } 1902 } 1903 leaf ipv4-if-addr { 1904 description 1905 "Specify the ip address of an interface."; 1906 config "false"; 1907 type inet:ipv4-address; 1908 } 1909 leaf ipv6-if-addr { 1910 description 1911 "Specify the ip address of an interface."; 1912 config "false"; 1913 type inet:ipv6-address; 1914 } 1915 leaf query-recv-valid-num { 1916 description 1917 "Number of valid general query message received 1918 on the interface."; 1919 config "false"; 1920 type uint32 { 1921 range "0..4294967295"; 1922 } 1923 } 1924 leaf query-recv-invalid-num { 1925 description 1926 "Number of invalid general query message received 1927 on the interface."; 1928 config "false"; 1929 type uint32 { 1930 range "0..4294967295"; 1931 } 1932 } 1933 leaf query-recv-ignore-num { 1934 description 1935 "Number of ignored general query message received 1936 on the interface."; 1937 config "false"; 1938 type uint32 { 1939 range "0..4294967295"; 1940 } 1941 } 1942 leaf report-v1v2-asm-recv-valid-num { 1943 description 1944 "Number of valid asm v1v2 report message received 1945 on the interface."; 1946 config "false"; 1947 type uint32 { 1948 range "0..4294967295"; 1949 } 1950 } 1951 leaf report-v1v2-asm-recv-invalid-num { 1952 description 1953 "Number of invalid asm v1v2 report message received 1954 on the interface."; 1955 config "false"; 1956 type uint32 { 1957 range "0..4294967295"; 1958 } 1959 } 1960 leaf report-v1v2-asm-recv-ignore-num { 1961 description 1962 "Number of ignored asm v1v2 report message received 1963 on the interface."; 1964 config "false"; 1965 type uint32 { 1966 range "0..4294967295"; 1967 } 1968 } 1969 leaf report-v1v2-ssm-recv-valid-num { 1970 description 1971 "Number of valid ssm v1v2 report message received 1972 on the interface."; 1973 config "false"; 1974 type uint32 { 1975 range "0..4294967295"; 1976 } 1977 } 1978 leaf report-v1v2-ssm-recv-invalid-num { 1979 description 1980 "Number of invalid ssm v1v2 report message received 1981 on the interface."; 1982 config "false"; 1983 type uint32 { 1984 range "0..4294967295"; 1985 } 1986 } 1987 leaf report-v1v2-ssm-recv-ignore-num { 1988 description 1989 "Number of ignored ssm v1v2 report message received 1990 on the interface."; 1991 config "false"; 1992 type uint32 { 1993 range "0..4294967295"; 1994 } 1995 } 1996 leaf leave-asm-recv-valid-num { 1997 description 1998 "Number of valid asm leave message received on 1999 the interface."; 2000 config "false"; 2001 type uint32 { 2002 range "0..4294967295"; 2003 } 2004 } 2005 leaf leave-asm-recv-invalid-num { 2006 description 2007 "Number of invalid asm leave message received on 2008 the interface."; 2009 config "false"; 2010 type uint32 { 2011 range "0..4294967295"; 2012 } 2013 } 2014 leaf leave-asm-recv-ignore-num { 2015 description 2016 "Number of ignored asm leave message received on 2017 the interface."; 2018 config "false"; 2019 type uint32 { 2020 range "0..4294967295"; 2021 } 2022 } 2023 leaf leave-ssm-recv-valid-num { 2024 description 2025 "Number of valid ssm leave message received on 2026 the interface."; 2027 config "false"; 2028 type uint32 { 2029 range "0..4294967295"; 2030 } 2031 } 2032 leaf leave-ssm-recv-invalid-num { 2033 description 2034 "Number of invalid ssm leave message received on 2035 the interface."; 2036 config "false"; 2037 type uint32 { 2038 range "0..4294967295"; 2039 } 2040 } 2041 leaf leave-ssm-recv-ignore-num { 2042 description 2043 "Number of ignored ssm leave message received on 2044 the interface."; 2045 config "false"; 2046 type uint32 { 2047 range "0..4294967295"; 2048 } 2049 } 2050 leaf report-v3-isin-recv-valid-num { 2051 description 2052 "Number of valid isin message received on the 2053 interface"; 2054 config "false"; 2055 type uint32 { 2056 range "0..4294967295"; 2057 } 2058 } 2059 leaf report-v3-isin-recv-invalid-num { 2060 description 2061 "Number of invalid isin message received on the 2062 interface."; 2063 config "false"; 2064 type uint32 { 2065 range "0..4294967295"; 2066 } 2067 } 2068 leaf report-v3-isin-recv-ignore-num { 2069 description 2070 "Number of ignored isin message received on the 2071 interface."; 2072 config "false"; 2073 type uint32 { 2074 range "0..4294967295"; 2075 } 2076 } 2077 leaf report-v3-isex-recv-valid-num { 2078 description 2079 "Number of valid isex message received on the 2080 interface."; 2081 config "false"; 2082 type uint32 { 2083 range "0..4294967295"; 2084 } 2085 } 2086 leaf report-v3-isex-recv-invalid-num { 2087 description 2088 "Number of invalid isex message received on the 2089 interface."; 2090 config "false"; 2091 type uint32 { 2092 range "0..4294967295"; 2093 } 2094 } 2095 leaf report-v3-isex-recv-ignore-num { 2096 description 2097 "Number of ignored isex message received on the 2098 interface."; 2099 config "false"; 2100 type uint32 { 2101 range "0..4294967295"; 2102 } 2103 } 2104 leaf report-v3-toin-recv-valid-num { 2105 description 2106 "Number of valid toin message received on the 2107 interface."; 2108 config "false"; 2109 type uint32 { 2110 range "0..4294967295"; 2111 } 2112 } 2113 leaf report-v3-toin-recv-invalid-num { 2114 description 2115 "Number of invalid toin message received on the 2116 interface."; 2117 config "false"; 2118 type uint32 { 2119 range "0..4294967295"; 2120 } 2121 } 2122 leaf report-v3-toin-recv-ignore-num { 2123 description 2124 "Number of ignored toin message received on the 2125 interface."; 2126 config "false"; 2127 type uint32 { 2128 range "0..4294967295"; 2129 } 2130 } 2131 leaf report-v3-toex-recv-valid-num { 2132 description 2133 "Number of valid toex message received on the 2134 interface."; 2135 config "false"; 2136 type uint32 { 2137 range "0..4294967295"; 2138 } 2139 } 2140 leaf report-v3-toex-recv-invalid-num { 2141 description 2142 "Number of invalid toex message received on the 2143 interface."; 2144 config "false"; 2145 type uint32 { 2146 range "0..4294967295"; 2147 } 2148 } 2149 leaf report-v3-toex-recv-ignore-num { 2150 description 2151 "Number of ignored toex message received on the 2152 interface."; 2153 config "false"; 2154 type uint32 { 2155 range "0..4294967295"; 2156 } 2157 } 2158 leaf report-v3-allow-recv-valid-num { 2159 description 2160 "Number of valid allow message received on the 2161 interface."; 2162 config "false"; 2163 type uint32 { 2164 range "0..4294967295"; 2165 } 2166 } 2167 leaf report-v3-allow-recv-invalid-num { 2168 description 2169 "Number of invalid allow message received on the 2170 interface."; 2171 config "false"; 2172 type uint32 { 2173 range "0..4294967295"; 2174 } 2175 } 2176 leaf report-v3-allow-recv-ignore-num { 2177 description 2178 "Number of ignored allow message received on the 2179 interface."; 2180 config "false"; 2181 type uint32 { 2182 range "0..4294967295"; 2183 } 2184 } 2185 leaf report-v3-block-recv-valid-num { 2186 description 2187 "Number of valid block message received on the 2188 interface."; 2189 config "false"; 2190 type uint32 { 2191 range "0..4294967295"; 2192 } 2193 } 2194 leaf report-v3-block-recv-invalid-num { 2195 description 2196 "Number of invalid block message received on the 2197 interface."; 2198 config "false"; 2199 type uint32 { 2200 range "0..4294967295"; 2201 } 2202 } 2203 leaf report-v3-block-recv-ignore-num { 2204 description 2205 "Number of ignored block message received on the 2206 interface."; 2207 config "false"; 2208 type uint32 { 2209 range "0..4294967295"; 2210 } 2211 } 2212 leaf source-recv-valid-num { 2213 description 2214 "Number of valid source received on the interface."; 2215 config "false"; 2216 type uint32 { 2217 range "0..4294967295"; 2218 } 2219 } 2220 leaf source-recv-invalid-num { 2221 description 2222 "Number of invalid source received on the interface."; 2223 config "false"; 2224 type uint32 { 2225 range "0..4294967295"; 2226 } 2227 } 2228 leaf source-recv-ignore-num { 2229 description 2230 "Number of ignored source received on the interface."; 2231 config "false"; 2232 type uint32 { 2233 range "0..4294967295"; 2234 } 2235 } 2236 leaf query-send-num { 2237 description 2238 "Specifies count of send query message on the 2239 interface."; 2240 config "false"; 2241 type uint32 { 2242 range "0..4294967295"; 2243 } 2244 } 2245 leaf report-v1v2-asm-send-num { 2246 description 2247 "Specifies count of send asm v1v2 report message 2248 on the interface."; 2249 config "false"; 2250 type uint32 { 2251 range "0..4294967295"; 2252 } 2253 } 2254 leaf report-v1v2-ssm-send-num { 2255 description 2256 "Specifies count of send ssm v1v2 report message 2257 on the interface."; 2258 config "false"; 2259 type uint32 { 2260 range "0..4294967295"; 2261 } 2262 } 2263 leaf leave-asm-send-num { 2264 description 2265 "Specifies count of send asm leave message on 2266 the interface."; 2267 config "false"; 2268 type uint32 { 2269 range "0..4294967295"; 2270 } 2271 } 2272 leaf leave-ssm-send-num { 2273 description 2274 "Specifies count of send ssm leave message on 2275 the interface."; 2276 config "false"; 2277 type uint32 { 2278 range "0..4294967295"; 2279 } 2280 } 2281 leaf query-g-send-num { 2282 description 2283 "Specifies count of send (g) query message on 2284 the interface."; 2285 config "false"; 2286 type uint32 { 2287 range "0..4294967295"; 2288 } 2289 } 2290 leaf query-sg-send-num { 2291 description 2292 "Specifies count of send (sg) query message on 2293 the interface."; 2294 config "false"; 2295 type uint32 { 2296 range "0..4294967295"; 2297 } 2298 } 2299 leaf report-v3-isin-send-num { 2300 description 2301 "Specifies count of send isin message on the 2302 interface."; 2303 config "false"; 2304 type uint32 { 2305 range "0..4294967295"; 2306 } 2307 } 2308 leaf report-v3-isex-send-num { 2309 description 2310 "Specifies count of send isex message on the 2311 interface."; 2312 config "false"; 2313 type uint32 { 2314 range "0..4294967295"; 2315 } 2316 } 2317 leaf report-v3-toin-send-num { 2318 description 2319 "Specifies count of send toin message on the 2320 interface."; 2321 config "false"; 2322 type uint32 { 2323 range "0..4294967295"; 2324 } 2325 } 2326 leaf report-v3-toex-send-num { 2327 description 2328 "Specifies count of send toex message on the 2329 interface."; 2330 config "false"; 2331 type uint32 { 2332 range "0..4294967295"; 2333 } 2334 } 2335 leaf report-v3-allow-send-num { 2336 description 2337 "Specifies count of send allow message on the 2338 interface."; 2339 config "false"; 2340 type uint32 { 2341 range "0..4294967295"; 2342 } 2343 } 2344 leaf report-v3-block-send-num { 2345 description 2346 "Specifies count of send block message on the 2347 interface."; 2348 config "false"; 2349 type uint32 { 2350 range "0..4294967295"; 2351 } 2352 } 2353 leaf source-send-num { 2354 description 2355 "Specifies count of send source on the interface."; 2356 config "false"; 2357 type uint32 { 2358 range "0..4294967295"; 2359 } 2360 } 2361 } 2363 } 2365 } 2367 notification gmp-group-join { 2369 description "Receive a group membership report"; 2370 leaf vrf-name { 2371 description "Specify the name of a vpn instance."; 2372 //default "_public_"; 2374 type string { 2375 length "0..32"; 2376 } 2377 } 2378 leaf if-name { 2379 description "Specify the name of an interface."; 2380 type if-name; 2381 } 2382 leaf addr-family { 2383 type enumeration { 2384 enum ipv4unicast { 2385 value "0"; 2386 description "ipv4unicast:"; 2387 } 2388 enum ipv6unicast { 2389 value "1"; 2390 description "ipv6unicast:"; 2391 } 2392 } 2393 } 2394 leaf ipv4-group-addr { 2395 description 2396 "Multicast group address. In ipv4 address, the value 2397 ranges from 239.0.0.0 to 239.255.255.255. "; 2398 type inet:ipv4-address; 2399 } 2400 leaf ipv6-group-addr { 2401 description 2402 "Multicast group address. In ipv6, the value is in 2403 hexadecimal notation and in the format of 2404 ffxx:xxxx:xxxx::xxxx "; 2405 type inet:ipv6-address; 2406 } 2407 leaf ipv4-source-addr { 2408 description 2409 "Specify the address of a multicast source."; 2410 type inet:ipv4-address; 2411 } 2412 leaf ipv6-source-addr { 2413 description 2414 "Specify the address of a multicast source."; 2415 type inet:ipv6-address; 2416 } 2417 leaf ipv4-sender-addr { 2418 description "Specify the address of sender."; 2419 type inet:ipv4-address; 2420 } 2421 leaf ipv6-sender-addr { 2422 description "Specify the address of sender."; 2423 type inet:ipv6-address; 2424 } 2426 } 2428 notification gmp-group-leave { 2430 description "Receive a group membership leave"; 2431 leaf vrf-name { 2432 description "specify the name of a vpn instance."; 2433 //default "_public_"; 2434 type string { 2435 length "0..32"; 2436 } 2437 } 2438 leaf if-name { 2439 description "Specify the name of an interface."; 2440 type if-name; 2441 } 2442 leaf addr-family { 2443 type enumeration { 2444 enum ipv4unicast { 2445 value "0"; 2446 description "ipv4unicast:"; 2447 } 2448 enum ipv6unicast { 2449 value "1"; 2450 description "ipv6unicast:"; 2451 } 2452 } 2453 } 2454 leaf ipv4-group-addr { 2455 description 2456 "Multicast group address. In ipv4 address, the value 2457 ranges from 239.0.0.0 to 239.255.255.255. "; 2458 type inet:ipv4-address; 2459 } 2460 leaf ipv6-group-addr { 2461 description 2462 "Multicast group address. In ipv6, the value is in 2463 hexadecimal notation and in the format of 2464 ffxx:xxxx:xxxx::xxxx "; 2465 type inet:ipv6-address; 2466 } 2467 leaf ipv4-source-addr { 2468 description 2469 "Specify the address of a multicast source."; 2471 type inet:ipv4-address; 2472 } 2473 leaf ipv6-source-addr { 2474 description 2475 "Specify the address of a multicast source."; 2476 type inet:ipv6-address; 2477 } 2478 leaf ipv4-sender-addr { 2479 description "Specify the address of sender."; 2480 type inet:ipv4-address; 2481 } 2482 leaf ipv6-sender-addr { 2483 description "Specify the address of sender."; 2484 type inet:ipv6-address; 2485 } 2487 } 2489 } 2491 6. IANA Considerations 2493 This draft includes no request to IANA. 2495 7. Security Considerations 2497 The data model defined does not create any security implications. 2498 This draft does not change any underlying security issues inherent in 2499 [I-D.ietf-netmod-routing-cfg]. 2501 8. Acknowledgements 2503 TBD 2505 9. References 2507 9.1. Normative References 2509 [I-D.ietf-netmod-routing-cfg] 2510 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 2511 Management", draft-ietf-netmod-routing-cfg-17 (work in 2512 progress), March 2015. 2514 [RFC1112] Deering, S., "Host extensions for IP multicasting", STD 5, 2515 RFC 1112, August 1989. 2517 [RFC2236] Fenner, W., "Internet Group Management Protocol, Version 2518 2", RFC 2236, November 1997. 2520 [RFC2710] Deering, S., Fenner, W., and B. Haberman, "Multicast 2521 Listener Discovery (MLD) for IPv6", RFC 2710, October 2522 1999. 2524 [RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A. 2525 Thyagarajan, "Internet Group Management Protocol, Version 2526 3", RFC 3376, October 2002. 2528 [RFC3810] Vida, R. and L. Costa, "Multicast Listener Discovery 2529 Version 2 (MLDv2) for IPv6", RFC 3810, June 2004. 2531 [RFC4604] Holbrook, H., Cain, B., and B. Haberman, "Using Internet 2532 Group Management Protocol Version 3 (IGMPv3) and Multicast 2533 Listener Discovery Protocol Version 2 (MLDv2) for Source- 2534 Specific Multicast", RFC 4604, August 2006. 2536 [RFC4607] Holbrook, H. and B. Cain, "Source-Specific Multicast for 2537 IP", RFC 4607, August 2006. 2539 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 2540 Network Configuration Protocol (NETCONF)", RFC 6020, 2541 October 2010. 2543 [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. 2544 Bierman, "Network Configuration Protocol (NETCONF)", RFC 2545 6241, June 2011. 2547 9.2. Informative References 2549 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2550 Requirement Levels", BCP 14, RFC 2119, March 1997. 2552 Authors' Addresses 2554 Yisong Liu 2555 Huawei 2556 Huawei Bld., No.156 Beiqing Rd. 2557 Beijing 100095 2558 China 2560 Email: liuyisong@huawei.com 2561 Feng Guo 2562 Huawei 2563 Huawei Bld., No.156 Beiqing Rd. 2564 Beijing 100095 2565 China 2567 Email: guofeng@huawei.com