idnits 2.17.1 draft-ietf-pim-msdp-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 : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** There are 3 instances of too long lines in the document, the longest one being 10 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (September 4, 2017) is 2426 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) == Unused Reference: 'RFC4624' is defined on line 965, but no explicit reference was found in the text == Unused Reference: 'RFC6087' is defined on line 969, but no explicit reference was found in the text ** Downref: Normative reference to an Experimental RFC: RFC 3618 ** Downref: Normative reference to an Experimental RFC: RFC 4624 ** Obsolete normative reference: RFC 6087 (Obsoleted by RFC 8407) Summary: 6 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 PIM WG Xufeng. Liu 3 Internet-Draft Jabil 4 Intended status: Standards Track Zheng. Zhang 5 Expires: March 8, 2018 ZTE Corporation 6 Anish. Peter 7 Individual contributor 8 Mahesh. Sivakumar 9 Cisco Systems 10 Feng. Guo 11 Huawei Technologies 12 Pete. McAllister 13 Metaswitch Networks 14 September 4, 2017 16 MSDP YANG Model 17 draft-ietf-pim-msdp-yang-01 19 Abstract 21 This document defines a YANG data model for the configuration and 22 management of MSDP Protocol. 24 Status of This Memo 26 This Internet-Draft is submitted in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF). Note that other groups may also distribute 31 working documents as Internet-Drafts. The list of current Internet- 32 Drafts is at https://datatracker.ietf.org/drafts/current/. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 This Internet-Draft will expire on March 8, 2018. 41 Copyright Notice 43 Copyright (c) 2017 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents 48 (https://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with respect 51 to this document. Code Components extracted from this document must 52 include Simplified BSD License text as described in Section 4.e of 53 the Trust Legal Provisions and are provided without warranty as 54 described in the Simplified BSD License. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 59 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 2 60 3. MSDP configuration . . . . . . . . . . . . . . . . . . . . . 4 61 4. MSDP State . . . . . . . . . . . . . . . . . . . . . . . . . 5 62 5. MSDP RPC . . . . . . . . . . . . . . . . . . . . . . . . . . 5 63 6. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 5 64 7. MSDP YANG model . . . . . . . . . . . . . . . . . . . . . . . 5 65 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 20 66 9. Normative References . . . . . . . . . . . . . . . . . . . . 20 67 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 69 1. Introduction 71 [RFC3618] introduces the protocol definition of MSDP. This document 72 defines a YANG data model that can be used to configure and manage 73 the MSDP protocol. The operational state data and statistics can 74 also be retrieved by this model. 76 This model is designed to be used along with other multicast YANG 77 models such as PIM, which are not covered in this document. 79 2. Design of the Data Model 81 This model imports and augments ietf-routing YANG model defined in 82 [I-D.ietf-netmod-routing-cfg]. Both configuration branch and state 83 branch of [I-D.ietf-netmod-routing-cfg] are augmented. The 84 configuration branch covers global configuration attributes and per 85 peer configuration attributes. The state branch includes global, per 86 peer, and source-active information. The container "msdp" is the top 87 level container in this data model. The presence of this container 88 is expected to enable MSDP protocol functionality. 90 module: ietf-msdp 91 augment /rt:routing/rt:control-plane-protocols: 92 +--rw msdp! 93 +--rw global 94 | +--rw connect-source? if:interface-ref 95 | +--rw default-peer! {global-default-peer}? 96 | | +--rw peer-addr -> ../../../peers/peer/address 97 | | +--rw prefix-policy? string {global-default-peer-policy}? 98 | +--rw originating-rp 99 | | +--rw interface? if:interface-ref 100 | +--rw sa-filter 101 | | +--rw in? string 102 | | +--rw out? string 103 | +--rw sa-limit? uint32 {global-sa-limit}? 104 | +--rw ttl-threshold? uint8 105 +--rw peers 106 | +--rw peer* [address] 107 | +--rw address inet:ipv4-address 108 | +--rw authentication 109 | | +--rw (authentication-type)? 110 | | +--:(key-chain) {peer-key-chain}? 111 | | | +--rw key-chain? key-chain:key-chain-ref 112 | | +--:(password) {peer-key-chain}? 113 | | +--rw key? string 114 | | +--rw crypto-algorithm? identityref 115 | +--rw enable? boolean {peer-admin-enable}? 116 | +--rw connect-source? if:interface-ref 117 | +--rw description? string {peer-description}? 118 | +--rw mesh-group? string 119 | +--rw peer-as? string {peer-as}? 120 | +--rw sa-filter 121 | | +--rw in? string 122 | | +--rw out? string 123 | +--rw sa-limit? uint32 {peer-sa-limit}? 124 | +--rw timer 125 | | +--rw connect-retry-interval? uint16 {peer-timer-connect-retry}? 126 | | +--rw holdtime-interval? uint16 {peer-timer-holdtime}? 127 | | +--rw keepalive-interval? uint16 {peer-timer-keepalive}? 128 | +--rw ttl-threshold? uint8 129 | +--ro session-state? enumeration 130 | +--ro elapsed-time? uint32 131 | +--ro connect-retry-expire? uint32 132 | +--ro hold-expire? uint32 133 | +--ro is-default-peer? boolean 134 | +--ro keepalive-expire? uint32 135 | +--ro reset-count? uint32 136 | +--ro statistics 137 | +--ro discontinuity-time? yang:date-and-time 138 | +--ro error 139 | | +--ro rpf-failure? uint32 140 | +--ro queue 141 | | +--ro size-in? uint32 142 | | +--ro size-out? uint32 143 | +--ro received 144 | | +--ro keepalive? yang:counter64 145 | | +--ro notification? yang:counter64 146 | | +--ro sa-message? yang:counter64 147 | | +--ro sa-response? yang:counter64 148 | | +--ro sa-request? yang:counter64 149 | | +--ro total? yang:counter64 150 | +--ro sent 151 | +--ro keepalive? yang:counter64 152 | +--ro notification? yang:counter64 153 | +--ro sa-message? yang:counter64 154 | +--ro sa-response? yang:counter64 155 | +--ro sa-request? yang:counter64 156 | +--ro total? yang:counter64 157 +--ro sa-cache 158 +--ro entry* [group source-addr] 159 +--ro group inet:ipv4-address 160 +--ro source-addr union 161 +--ro origin-rp* [rp-address] 162 | +--ro rp-address inet:ip-address 163 | +--ro is-local-rp? boolean 164 | +--ro sa-adv-expire? uint32 165 +--ro up-time? uint32 166 +--ro expire? uint32 167 +--ro holddown-interval? uint32 168 +--ro peer-learned-from? inet:ipv4-address 169 +--ro rpf-peer? inet:ipv4-address 171 rpcs: 172 +---x msdp-clear-peer 173 | +---w input 174 | +---w peer-address? inet:ipv4-address 175 +---x msdp-clear-sa-cache {rpc-clear-sa-cache}? 176 +---w input 177 +---w entry! 178 | +---w group inet:ipv4-address 179 | +---w source-addr? union 180 +---w peer-address? inet:ipv4-address 181 +---w peer-as? string 183 3. MSDP configuration 185 MSDP configurations require peer configurations. Several peers may 186 be configured in a mesh-group. The Source-Active information may be 187 filtered by peers. 189 The configuration modeling branch is composed of MSDP global and peer 190 configurations. The two parts are the most important parts of MSDP. 192 Besides the fundamental features of MSDP protocol, several optional 193 features are included in the model. These features help the control 194 of MSDP protocol. The peer features and SA features make the 195 deployment and control easier. The connection parameters can be used 196 to control the TCP connection because MSDP protocol is based on TCP. 197 The authentication features make the protocol more secure. The 198 filter features allow operators to avoid the irrelevant information. 200 4. MSDP State 202 MSDP states are composed of MSDP global state, MSDP peer state, 203 statistics information and Sa-cache information. The statistics 204 information and Sa-cache information helps the operator to retrieve 205 the protocol condition. 207 5. MSDP RPC 209 The part is used to define some useful and ordinary operations of 210 protocol management. 212 6. Notifications 214 This part will be updated in later version. 216 7. MSDP YANG model 218 file "ietf-msdp@2017-08-30.yang" 219 module ietf-msdp { 220 namespace "urn:ietf:params:xml:ns:yang:ietf-msdp"; 221 prefix msdp; 223 import ietf-yang-types { 224 prefix "yang"; 225 } 227 import ietf-inet-types { 228 prefix "inet"; 229 } 231 import ietf-routing { 232 prefix "rt"; 233 } 235 import ietf-interfaces { 236 prefix "if"; 237 } 239 import ietf-ip { 240 prefix "ip"; 241 } 243 import ietf-key-chain { 244 prefix "key-chain"; 245 } 247 organization 248 "IETF PIM( Protocols for IP Multicast ) Working Group"; 250 contact 251 "WG Web: 252 WG List: 253 WG Chair: Stig Venaas 254 255 WG Chair: Mike McBride 256 258 Editor: Xufeng Liu 259 261 Editor: Zheng Zhang 262 264 Editor: Anish Peter 265 267 Editor: Mahesh Sivakumar 268 270 Editor: Feng Guo 271 "; 273 description 274 "The module defines the YANG definitions for MSDP."; 276 revision 2017-08-30 { 277 description 278 "Initial revision."; 279 reference 280 "RFC XXXX: A YANG Data Model for MSDP. 281 RFC 3618: Multicast Source Discovery Protocol (MSDP). 282 RFC 4624: Multicast Source Discovery Protocol (MSDP) MIB"; 283 } 285 /* 286 * Features 287 */ 289 feature global-connect-source { 290 description 291 "Support configuration of global connect-source."; 292 } 294 feature global-default-peer { 295 description 296 "Support configuration of global default peer."; 297 } 299 feature global-default-peer-policy { 300 description 301 "Support configuration of global default peer."; 302 } 304 feature global-sa-filter { 305 description 306 "Support configuration of global SA filter."; 307 } 309 feature global-sa-limit { 310 description 311 "Support configuration of global limit on SA entries."; 312 } 314 feature global-ttl-threshold { 315 description 316 "Support configuration of global ttl-threshold."; 317 } 319 feature rpc-clear-sa-cache { 320 description 321 "Support the rpc to clear SA cache."; 322 } 324 feature peer-admin-enable { 325 description 326 "Support configuration of peer administrative enabling."; 327 } 329 feature peer-as { 330 description 331 "Support configuration of peer AS number."; 332 } 334 feature peer-connect-source { 335 description 336 "Support configuration of global connect-source."; 338 } 340 feature peer-description { 341 description 342 "Support configuration of peer description."; 343 } 345 feature peer-key-chain { 346 description 347 "Support configuration of peer key-chain."; 348 } 350 feature peer-password { 351 description 352 "Support configuration of peer key-chain."; 353 } 355 feature peer-sa-limit { 356 description 357 "Support configuration of per peer limit on SA entries."; 358 } 360 feature peer-timer-connect-retry { 361 description 362 "Support configuration of peer timer for connect-retry."; 363 } 365 feature peer-timer-keepalive { 366 description 367 "Support configuration of peer timer for keepalive."; 368 } 370 feature peer-timer-holdtime { 371 description 372 "Support configuration of peer timer for holdtime."; 373 } 375 /* 376 * Groupings 377 */ 378 grouping authentication-container { 379 description 380 "A container defining authentication attributes."; 381 container authentication { 382 description 383 "A container defining authentication attributes."; 384 choice authentication-type { 385 case key-chain { 386 if-feature peer-key-chain; 387 leaf key-chain { 388 type key-chain:key-chain-ref; 389 description 390 "Reference to a key-chain."; 391 } 392 } 393 case password { 394 if-feature peer-key-chain; 395 leaf key { 396 type string; 397 description 398 "This leaf describes the authentication key."; 399 } 400 leaf crypto-algorithm { 401 type identityref { 402 base key-chain:crypto-algorithm; 403 } 404 description 405 "Cryptographic algorithm associated with key."; 406 } 407 } 408 description 409 "Choice of authentication."; 410 } 411 } 412 } // authentication-container 414 grouping connect-source { 415 description "Attribute to configure connect-source."; 416 leaf connect-source { 417 type if:interface-ref; 418 must "/if:interfaces/if:interface[if:name = current()]/" 419 + "ip:ipv4" { 420 description 421 "The interface must have IPv4 enabled."; 422 } 423 description 424 "The interface is to be the source for the TCP connection. 425 It is a reference to an entry in the global interface 426 list."; 427 } 428 } // connect-source 430 grouping global-config-attributes { 431 description "Global MSDP configuration."; 433 uses connect-source { 434 if-feature global-connect-source; 435 } 436 container default-peer { 437 if-feature global-default-peer; 438 presence "Present if the default peer is configured."; 439 description 440 "The default peer accepts all MSDP SA messages. 441 A default peer is needed in topologies where MSDP peers do 442 not coexist with BGP peers. The reverse path forwarding 443 (RPF) check on SA messages can fail, and no SA messages are 444 accepted. In these cases, you can configure the peer as a 445 default peer and bypass RPF checks."; 446 leaf peer-addr { 447 type leafref { 448 path "../../../peers/peer/address"; 449 } 450 mandatory true; 451 description 452 "Reference to a peer that is in the peer list."; 453 } 454 leaf prefix-policy { 455 if-feature global-default-peer-policy; 456 type string; 457 description 458 "If specified, only those SA entries whose RP is permitted 459 in the prefix list are allowed; 460 if not specified, all SA messages from the default peer 461 are accepted."; 462 } 463 } // default-peer 465 container originating-rp { 466 description 467 "The container of originating-rp."; 468 leaf interface { 469 type if:interface-ref; 470 must "/if:interfaces/if:interface[if:name = current()]/" 471 + "ip:ipv4" { 472 description 473 "The interface must have IPv4 enabled."; 474 } 475 description 476 "Reference to an entry in the global interface 477 list. 478 IP address of the interface is used in the RP field of an 479 SA message entry. When Anycast RPs are used, all RPs use 480 the same IP address. This parameter can be used to define 481 a unique IP address for the RP of each MSDP peer. 483 By default, the software uses the RP address of the 484 local system."; 485 } 486 } // originating-rp 488 uses sa-filter-container { 489 if-feature global-sa-filter; 490 } 491 leaf sa-limit { 492 if-feature global-sa-limit; 493 type uint32; 494 description 495 "A limit on the number of SA entries accepted. By default, 496 there is no limit."; 497 } 498 uses ttl-threshold { 499 if-feature global-ttl-threshold; 500 } 501 } // global-config-attributes 503 grouping global-state-attributes { 504 description "Global MSDP state attributes."; 505 } // global-state-attributes 507 grouping peer-config-attributes { 508 description "Per peer configuration for MSDP."; 510 uses authentication-container; 511 leaf enable { 512 if-feature peer-admin-enable; 513 type boolean; 514 description 515 "true to enable peer; 516 false to disable peer."; 517 } 518 uses connect-source { 519 if-feature peer-connect-source; 520 } 521 leaf description { 522 if-feature peer-description; 523 type string; 524 description 525 "The peer description."; 526 } 527 leaf mesh-group { 528 type string; 529 description 530 "Configure this peer to be a member of a mesh group"; 532 } 533 leaf peer-as { 534 if-feature peer-as; 535 type string; 536 description 537 "Peer's autonomous system number (ASN)."; 538 } 539 uses sa-filter-container; 540 leaf sa-limit { 541 if-feature peer-sa-limit; 542 type uint32; 543 description 544 "A limit on the number of SA entries accepted from this peer. 545 By default, there is no limit."; 546 } 547 container timer { 548 description "Timer attributes."; 549 leaf connect-retry-interval { 550 if-feature peer-timer-connect-retry; 551 type uint16; 552 units seconds; 553 default 30; 554 description "SHOULD be set to 30 seconds. "; 555 } 556 leaf holdtime-interval { 557 if-feature peer-timer-holdtime; 558 type uint16; 559 units seconds; 560 must ". > 3"; 561 default 75; 562 description "The SA-Hold-Down-Period of this msdp peer."; 563 } 564 leaf keepalive-interval { 565 if-feature peer-timer-keepalive; 566 type uint16; 567 units seconds; 568 must ". > 1 and . < ../holdtime-interval"; 569 default 60; 570 description "The keepalive timer of this msdp peer."; 571 } 572 } // timer 573 uses ttl-threshold; 574 } // peer-config-attributes 576 grouping peer-state-attributes { 577 description "Per peer state attributes for MSDP."; 579 leaf session-state { 580 type enumeration { 581 enum disabled { 582 description "Disabled."; 583 } 584 enum inactive { 585 description "Inactive."; 586 } 587 enum listen { 588 description "Listen."; 589 } 590 enum connecting { 591 description "Connecting."; 592 } 593 enum established { 594 description "Established."; 595 } 596 } 597 config false; 598 description 599 "Peer session state."; 600 reference 601 "RFC3618: Multicast Source Discovery Protocol (MSDP)."; 602 } 603 leaf elapsed-time { 604 type uint32; 605 units seconds; 606 config false; 607 description "Elapsed time for being in a state."; 608 } 609 leaf connect-retry-expire { 610 type uint32; 611 units seconds; 612 config false; 613 description "Connect retry expire time of peer connection."; 614 } 615 leaf hold-expire { 616 type uint32; 617 units seconds; 618 config false; 619 description "Hold expire time of peer connection."; 620 } 621 leaf is-default-peer { 622 type boolean; 623 config false; 624 description "If this peer is default peer."; 625 } 626 leaf keepalive-expire { 627 type uint32; 628 units seconds; 629 config false; 630 description "Keepalive expire time of this peer."; 631 } 632 leaf reset-count { 633 type uint32; 634 config false; 635 description "The reset count of this peer."; 636 } 637 uses statistics-container; 638 } // peer-config-attributes 640 grouping sa-cache-state-attributes { 641 description "SA cache state attributes for MSDP."; 643 leaf up-time { 644 type uint32; 645 units seconds; 646 description "The up time of this sa cache."; 647 } 648 leaf expire { 649 type uint32; 650 units seconds; 651 description "If this cache has expired."; 652 } 653 leaf holddown-interval { 654 type uint32; 655 units seconds; 656 description "Holddown timer value for SA forwarding."; 657 } 658 leaf peer-learned-from { 659 type inet:ipv4-address; 660 description 661 "The address of peer that we learned this SA from ."; 662 } 663 leaf rpf-peer { 664 type inet:ipv4-address; 665 description "RPF peer."; 666 } 667 } // sa-cache-state-attributes 669 grouping sa-filter-container { 670 description "A container defining SA filters."; 671 container sa-filter { 672 description 673 "Specifies an access control list (ACL) to filter source 674 active (SA) messages coming in to or going out of the 675 peer."; 677 leaf in { 678 type string; 679 description 680 "Filters incoming SA messages only."; 681 } 682 leaf out { 683 type string; 684 description 685 "Filters outgoing SA messages only."; 686 } 687 } // sa-filter 688 } // sa-filter-container 690 grouping ttl-threshold { 691 description "Attribute to configure TTL threshold."; 692 leaf ttl-threshold { 693 type uint8 { 694 range 1..255; 695 } 696 description 697 "Maximum number of hops data packets can traverse before 698 being dropped."; 699 } 700 } // sa-ttl-threshold 702 grouping statistics-container { 703 description 704 "A container defining statistics attributes."; 705 container statistics { 706 config false; 707 description "Container of statistic objects."; 708 leaf discontinuity-time { 709 type yang:date-and-time; 710 description 711 "The time on the most recent occasion at which any one 712 or more of the statistic counters suffered a 713 discontinuity. If no such discontinuities have occurred 714 since the last re-initialization of the local 715 management subsystem, then this node contains the time 716 the local management subsystem re-initialized itself."; 717 } 718 container error { 719 description "Error counters."; 720 uses statistics-error; 721 } 722 container queue { 723 description "Queue counters."; 724 uses statistics-queue; 726 } 727 container received { 728 description "Received message counters."; 729 uses statistics-sent-received; 730 } 731 container sent { 732 description "Sent message counters."; 733 uses statistics-sent-received; 734 } 735 } 736 } // statistics-container 738 grouping statistics-error { 739 description 740 "A grouping defining error statistics 741 attributes."; 742 leaf rpf-failure { 743 type uint32; 744 description "Number of RPF failures."; 745 } 746 } // statistics-error 748 grouping statistics-queue { 749 description 750 "A grouping defining queue statistics 751 attributes."; 752 leaf size-in { 753 type uint32; 754 description 755 "The size of the input queue."; 756 } 757 leaf size-out { 758 type uint32; 759 description 760 "The size of the output queue."; 761 } 762 } // statistics-queue 764 grouping statistics-sent-received { 765 description 766 "A grouping defining sent and received statistics 767 attributes."; 768 leaf keepalive { 769 type yang:counter64; 770 description 771 "The number of keepalive messages."; 772 } 773 leaf notification { 774 type yang:counter64; 775 description 776 "The number of notification messages."; 777 } 778 leaf sa-message { 779 type yang:counter64; 780 description 781 "The number of SA messages."; 782 } 783 leaf sa-response { 784 type yang:counter64; 785 description 786 "The number of SA response messages."; 787 } 788 leaf sa-request { 789 type yang:counter64; 790 description 791 "The number of SA request messages."; 792 } 793 leaf total { 794 type yang:counter64; 795 description 796 "The number of total messages."; 797 } 798 } // statistics-sent-received 800 /* 801 * Data nodes 802 */ 803 augment "/rt:routing/rt:control-plane-protocols" { 804 description 805 "MSDP augmentation to routing instance."; 807 container msdp { 808 presence "Container for MSDP protocol."; 809 description 810 "MSDP configuration data."; 812 container global { 813 description 814 "Global attributes."; 815 uses global-config-attributes; 816 uses global-state-attributes; 817 } 819 container peers { 820 description 821 "Containing a list of peers."; 823 list peer { 824 key "address"; 825 description 826 "List of MSDP peers."; 827 leaf address { 828 type inet:ipv4-address; 829 description 830 "The address of peer"; 831 } 832 uses peer-config-attributes; 833 uses peer-state-attributes; 834 } // peer 835 } // peers 837 container sa-cache { 838 config false; 839 description 840 "The sa cache information."; 841 list entry { 842 key "group source-addr"; 843 description "A list of sa cache entries."; 844 leaf group { 845 type inet:ipv4-address; 846 description "The group address of this sa cache."; 847 } 848 leaf source-addr { 849 type union { 850 type enumeration { 851 enum '*' { 852 description "Any source address."; 853 } 854 } 855 type inet:ipv4-address; 856 } 857 description "Source IPv4 address."; 858 } 859 list origin-rp { 860 key "rp-address"; 861 description 862 "Origin RP address."; 863 leaf rp-address { 864 type inet:ip-address; 865 description "The RP address."; 866 } 867 leaf is-local-rp { 868 type boolean; 869 description "The RP is local."; 870 } 871 leaf sa-adv-expire { 872 type uint32; 873 units seconds; 874 description 875 "Periodic SA advertisement timer exipiring time on 876 a local RP."; 877 } 878 } 879 uses sa-cache-state-attributes; 880 } // entry 881 } // sa-cache 882 } // msdp 883 } // augment 885 /* 886 * RPCs 887 */ 888 rpc msdp-clear-peer { 889 description 890 "Clears the session to the peer."; 891 input { 892 leaf peer-address { 893 type inet:ipv4-address; 894 description 895 "Address of peer to be cleared. If this is not provided 896 then all peers are cleared."; 897 } 898 } 899 } 901 rpc msdp-clear-sa-cache { 902 if-feature rpc-clear-sa-cache; 903 description 904 "Clears MSDP source active (SA) cache entries."; 905 input { 906 container entry { 907 presence "Present if a particular is cleared."; 908 description 909 "The SA cache (S,G) or (*,G) entry to be cleared. If this 910 is not provided, all entries are cleared."; 911 leaf group { 912 type inet:ipv4-address; 913 mandatory true; 914 description "The group address"; 915 } 916 leaf source-addr { 917 type union { 918 type enumeration { 919 enum '*' { 920 description "Any source address."; 921 } 922 } 923 type inet:ipv4-address; 924 } 925 description "Source IPv4 address."; 926 } 927 } // s-g 928 leaf peer-address { 929 type inet:ipv4-address; 930 description 931 "Peer IP address from which MSDP SA cache entries have been 932 learned. If this is not provided, entries learned from all 933 peers are cleared."; 934 } 935 leaf peer-as { 936 type string; 937 description 938 "ASN from which MSDP SA cache entries have been learned. 939 If this is not provided, entries learned from all AS's 940 are cleared."; 941 } 942 } 943 } 944 } 945 947 8. Contributors 949 The authors would like to thank Yisong Liu (liuyisong@huawei.com), 950 Benchong Xu (xu.benchong@zte.com.cn), Tanmoy Kundu 951 (tanmoy.kundu@alcatel-lucent.com) for their valuable contributions. 953 9. Normative References 955 [I-D.ietf-netmod-routing-cfg] 956 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 957 Management", draft-ietf-netmod-routing-cfg-25 (work in 958 progress), November 2016. 960 [RFC3618] Fenner, B., Ed. and D. Meyer, Ed., "Multicast Source 961 Discovery Protocol (MSDP)", RFC 3618, 962 DOI 10.17487/RFC3618, October 2003, 963 . 965 [RFC4624] Fenner, B. and D. Thaler, "Multicast Source Discovery 966 Protocol (MSDP) MIB", RFC 4624, DOI 10.17487/RFC4624, 967 October 2006, . 969 [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG 970 Data Model Documents", RFC 6087, DOI 10.17487/RFC6087, 971 January 2011, . 973 Authors' Addresses 975 Xufeng Liu 976 Jabil 977 8281 Greensboro Drive, Suite 200 978 McLean VA 22102 979 USA 981 Email: Xufeng_Liu@jabil.com 983 Zheng Zhang 984 ZTE Corporation 985 No. 50 Software Ave, Yuhuatai Distinct 986 Nanjing 987 China 989 Email: zhang.zheng@zte.com.cn 991 Anish Peter 992 Individual contributor 994 Email: anish.ietf@gmail.com 996 Mahesh Sivakumar 997 Cisco Systems 998 510 McCarthy Boulevard 999 Milpitas, California 1000 USA 1002 Email: masivaku@cisco.com 1003 Feng Guo 1004 Huawei Technologies 1005 Huawei Bld., No.156 Beiqing Rd. 1006 Beijing 100095 1007 China 1009 Email: guofeng@huawei.com 1011 Pete McAllister 1012 Metaswitch Networks 1013 100 Church Street 1014 Enfield EN2 6BQ 1015 UK 1017 Email: pete.mcallister@metaswitch.com