idnits 2.17.1 draft-ietf-netconf-netconf-event-notifications-07.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 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.) ** The abstract seems to contain references ([I-D.draft-ietf-netconf-subscribed-notifications], [I-D.ietf-netconf-yang-push]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. == There are 4 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (February 8, 2018) is 2240 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 (-26) exists of draft-ietf-netconf-subscribed-notifications-10 ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) Summary: 3 errors (**), 0 flaws (~~), 4 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 NETCONF A. Gonzalez Prieto 3 Internet-Draft VMware 4 Intended status: Standards Track E. Voit 5 Expires: August 12, 2018 Cisco Systems 6 A. Clemm 7 Huawei 8 E. Nilsen-Nygaard 9 A. Tripathy 10 Cisco Systems 11 February 8, 2018 13 NETCONF Support for Event Notifications 14 draft-ietf-netconf-netconf-event-notifications-07 16 Abstract 18 This document provides a NETCONF binding for 19 [I-D.draft-ietf-netconf-subscribed-notifications] and 20 [I-D.ietf-netconf-yang-push]. Included are: 22 o transport mappings for subscription RPCs, state change 23 notifications, and notification messages, 24 o functional requirements, and 25 o examples 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at https://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on August 12, 2018. 44 Copyright Notice 46 Copyright (c) 2018 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (https://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 63 3. Interleave Capability . . . . . . . . . . . . . . . . . . . . 3 64 4. Mandatory XML, stream and datastore support . . . . . . . . . 3 65 5. Transport connectivity . . . . . . . . . . . . . . . . . . . 3 66 5.1. Dynamic Subscriptions . . . . . . . . . . . . . . . . . . 3 67 5.2. Configured Subscriptions . . . . . . . . . . . . . . . . 4 68 6. Notification Messages . . . . . . . . . . . . . . . . . . . . 4 69 7. Dynamic Subscriptions and RPC Error Responses . . . . . . . . 4 70 8. Security Considerations . . . . . . . . . . . . . . . . . . . 5 71 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6 72 10. Normative References . . . . . . . . . . . . . . . . . . . . 6 73 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 7 74 A.1. Event Stream Discovery . . . . . . . . . . . . . . . . . 7 75 A.2. Dynamic Subscriptions . . . . . . . . . . . . . . . . . . 7 76 A.3. Configured Subscriptions . . . . . . . . . . . . . . . . 14 77 A.4. Subscription State Notifications . . . . . . . . . . . . 19 78 Appendix B. Changes between revisions . . . . . . . . . . . . . 21 79 B.1. v06 to v07 . . . . . . . . . . . . . . . . . . . . . . . 21 80 B.2. v05 to v06 . . . . . . . . . . . . . . . . . . . . . . . 21 81 B.3. v03 to v04 . . . . . . . . . . . . . . . . . . . . . . . 21 82 B.4. v01 to v03 . . . . . . . . . . . . . . . . . . . . . . . 22 83 B.5. v00 to v01 . . . . . . . . . . . . . . . . . . . . . . . 22 84 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 86 1. Introduction 88 This document defines a binding for events streamed over the NETCONF 89 protocol [RFC6241] as per 90 [I-D.draft-ietf-netconf-subscribed-notifications]. In addition, as 91 [I-D.ietf-netconf-yang-push] is itself built upon 92 [I-D.draft-ietf-netconf-subscribed-notifications], this document 93 enables a NETCONF client to request and receive updates from a YANG 94 datastore located on a NETCONF server. 96 2. Terminology 98 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 99 "SHOULD", SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 100 document are to be interpreted as described in RFC 2119 [RFC2119]. 102 The following terms are defined in 103 [I-D.draft-ietf-netconf-subscribed-notifications]: notification 104 message, stream, publisher, receiver, subscriber, subscription, 105 configured subscription. 107 3. Interleave Capability 109 To support multiple subscriptions on a single session, a NETCONF 110 publisher MUST support the :interleave capability as defined in 111 [RFC5277]. Such support MUST be indicated by the following 112 capability: "urn:ietf:params:netconf:capability:interleave:1.0". 113 Advertisement of this capability along with support 114 [I-D.draft-ietf-netconf-subscribed-notifications] will indicate that 115 a NETCONF publisher is able to receive, process, and respond to 116 NETCONF requests and 117 [I-D.draft-ietf-netconf-subscribed-notifications] subscription 118 operations on a session with active subscriptions. 120 4. Mandatory XML, stream and datastore support 122 A NETCONF publisher MUST support XML encoding of RPCs and 123 Notifications. 125 A NETCONF publisher supporting 126 [I-D.draft-ietf-netconf-subscribed-notifications] MUST support the 127 "NETCONF" event stream identified in that draft. 129 A NETCONF publisher supporting [I-D.ietf-netconf-yang-push] MUST 130 support the operational state datastore as defined by 131 [I.D.draft-ietf-netmod-revised-datastores]. 133 5. Transport connectivity 135 5.1. Dynamic Subscriptions 137 For dynamic subscriptions, if the NETCONF session involved with the 138 "establish-subscription" terminates, the subscription MUST be 139 deleted. 141 5.2. Configured Subscriptions 143 For a configured subscription, there is no guarantee a transport 144 session is currently in place with each associated receiver. In 145 cases where a configured subscription has a receiver in the 146 connecting state and the protocol configured as NETCONF, but no 147 NETCONF transport session exists to that receiver, the publisher MUST 148 initiate a transport session via NETCONF call home [RFC8071], section 149 4.1 to that receiver. Until NETCONF connectivity is established and 150 a subscription-started state change notification is successfully 151 sent, that receiver MUST remain in a status of either "connecting" or 152 "timeout". 154 If the call home fails because the publisher receives receiver 155 credentials which are subsequently declined per [RFC8071], 156 Section 4.1, step S5 authentication, then that receiver MUST be 157 assigned a "timeout" status. 159 If the call home fails to establish for any other reason, the 160 publisher MUST NOT progress the receiver to the "active" state. 161 Additionally, the publisher SHOULD place the receiver into a 162 "timeout" status after a predetermined number of either failed call 163 home attempts or NETCONF sessions remotely terminated by the 164 receiver. 166 NETCONF Transport session connectivity SHOULD be verified via 167 Section 4.1, step S7. 169 If an active NETCONF session is disconnected but the stop-time of a 170 subscription has not been reached, the publisher MUST restart the 171 call home process and return the receiver to the "connecting" state. 173 6. Notification Messages 175 Notification messages transported over NETCONF will be identical in 176 format and content to those encoded using one-way operations defined 177 within [RFC5277], section 4. 179 7. Dynamic Subscriptions and RPC Error Responses 181 Management of dynamic subscriptions occurs via RPCs as defined in 182 [I-D.ietf-netconf-yang-push] and 183 [I-D.draft-ietf-netconf-subscribed-notifications]. When an RPC error 184 occurs, the NETCONF RPC reply MUST include an "rpc-error" element per 185 [RFC6241] with the error information populated as follows: 187 o "error-type" of "application". 188 o "error-tag" of "operation-failed". 190 o Optionally, an "error-severity" of "error" (this MAY but does not 191 have to be included). 192 o "error-app-tag" with the value being a string that corresponds to 193 an identity associated with the error, as defined in 194 [I-D.draft-ietf-netconf-subscribed-notifications] section 2.4.6 195 for general subscriptions, and [I-D.ietf-netconf-yang-push] 196 Appendix A.1, for datastore (YANG-Push) subscriptions. The tag to 197 use depends on the RPC for which the error occurred. Applicable 198 are identities with a base identity of "establish-subscription- 199 error" (for error responses to an establish-subscription request), 200 "modify- subscription-error" (for error responses to a modify- 201 subscription request), "delete-subscription-error" (for error 202 responses to a delete-subscription request), "resynch- 203 subscription-error" (for error responses to resynch-subscription 204 request), or "kill- subscription-error" (for error responses to a 205 kill-subscription request), respectively. 206 o In case of error responses to an establish-subscription or modify- 207 subscription request: optionally, "error-info" containing XML- 208 encoded data with hints regarding parameter settings that might 209 lead to successful requests in the future, per yang-data 210 definitions "establish-subscription-error-datastore" (for error 211 responses to an establish-subscription request) or "modify- 212 subscription-error-datastore (for error responses to a modify- 213 subscription request), respectively. 215 These yang-data that is included in "error-info" SHOULD NOT 216 include the optional leaf "error-reason", as such a leaf would be 217 redundant with the information that is already placed within the 218 error-app-tag. 220 In case of an rpc error as a result of a delete-subscription, or a 221 kill-subscription, or a resynch-subscription request, no error- 222 info needs to be included, as the subscription-id is the only RPC 223 input parameter and no hints regarding RPC input parameters need 224 to be provided. 226 Note that "error-path" does not need to be included with the "rpc- 227 error" element, as subscription errors are generally not associated 228 with nodes in the datastore but with the choice of RPC input 229 parameters. 231 8. Security Considerations 233 Notification messages (including state change notifications) are 234 never sent before the NETCONF capabilities exchange has completed. 236 If a malicious or buggy NETCONF subscriber sends a number of 237 "establish-subscription" requests, then these subscriptions 238 accumulate and may use up system resources. In such a situation, 239 subscriptions MAY be terminated by terminating the underlying NETCONF 240 session. The publisher MAY also suspend or terminate a subset of the 241 active subscriptions on that NETCONF session. 243 The NETCONF Authorization Control Model [RFC6536] SHOULD be used to 244 control and restrict authorization of subscription configuration. 246 9. Acknowledgments 248 We wish to acknowledge the helpful contributions, comments, and 249 suggestions that were received from: Andy Bierman, Yan Gang, Sharon 250 Chisholm, Hector Trevino, Peipei Guo, Susan Hares, Tim Jenkins, 251 Balazs Lengyel, Kent Watsen, and Guangying Zheng. 253 10. Normative References 255 [I-D.draft-ietf-netconf-subscribed-notifications] 256 Voit, E., Clemm, A., Gonzalez Prieto, A., Tripathy, A., 257 and E. Nilsen-Nygaard, "Custom Subscription to Event 258 Streams", draft-ietf-netconf-subscribed-notifications-10 259 (work in progress), January 2018. 261 [I-D.ietf-netconf-yang-push] 262 Clemm, Alexander., Voit, Eric., Gonzalez Prieto, Alberto., 263 Tripathy, A., Nilsen-Nygaard, E., Bierman, A., and B. 264 Lengyel, "YANG Datastore Subscription", February 2018, 265 . 268 [I.D.draft-ietf-netmod-revised-datastores] 269 Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 270 and R. Wilton, "Network Management Datastore 271 Architecture", draft-ietf-netmod-revised-datastores-10 272 (work in progress), January 2018. 274 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 275 Requirement Levels", BCP 14, RFC 2119, 276 DOI 10.17487/RFC2119, March 1997, 277 . 279 [RFC5277] Chisholm, S. and H. Trevino, "NETCONF Event 280 Notifications", RFC 5277, DOI 10.17487/RFC5277, July 2008, 281 . 283 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 284 and A. Bierman, Ed., "Network Configuration Protocol 285 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 286 . 288 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 289 Protocol (NETCONF) Access Control Model", RFC 6536, 290 DOI 10.17487/RFC6536, March 2012, 291 . 293 [RFC8071] Watsen, K., "NETCONF Call Home and RESTCONF Call Home", 294 RFC 8071, DOI 10.17487/RFC8071, February 2017, 295 . 297 Appendix A. Examples 299 A.1. Event Stream Discovery 301 As defined in [I-D.draft-ietf-netconf-subscribed-notifications] an 302 event stream exposes a continuous set of events available for 303 subscription. A NETCONF client can retrieve the list of available 304 event streams from a NETCONF publisher using the "get" operation 305 against the top-level container "/streams" defined in 306 [I-D.draft-ietf-netconf-subscribed-notifications]. 308 The following example illustrates the retrieval of the list of 309 available event streams using the "get" operation. 311 313 314 315 317 318 319 321 Figure 1: Get streams request 323 After such a request, the NETCONF publisher returns a list of event 324 streams available. 326 A.2. Dynamic Subscriptions 327 A.2.1. Establishing Dynamic Subscriptions 329 The following figure shows two successful "establish-subscription" 330 RPC requests as per 331 [I-D.draft-ietf-netconf-subscribed-notifications]. The first request 332 is given a subscription identifier of 22, the second, an identifier 333 of 23. 335 +------------+ +-----------+ 336 | Subscriber | | Publisher | 337 +------------+ +-----------+ 338 | | 339 | Capability Exchange | 340 |<---------------------------->| 341 | | 342 | | 343 | establish-subscription | 344 |----------------------------->| (a) 345 | RPC Reply: OK, id = 22 | 346 |<-----------------------------| (b) 347 | | 348 | notification message (for 22)| 349 |<-----------------------------| 350 | | 351 | | 352 | establish-subscription | 353 |----------------------------->| 354 | RPC Reply: OK, id = 23 | 355 |<-----------------------------| 356 | | 357 | | 358 | notification message (for 22)| 359 |<-----------------------------| 360 | notification message (for 23)| 361 |<-----------------------------| 362 | | 364 Figure 2: Multiple subscriptions over a NETCONF session 366 To provide examples of the information being transported, example 367 messages for interactions (a) and (b) in Figure 2 are detailed below: 369 371 373 374 NETCONF 375 376 /ex:foo 377 378 379 380 10 381 382 383 385 Figure 3: establish-subscription request (a) 387 As NETCONF publisher was able to fully satisfy the request (a), the 388 publisher sends the subscription identifier of the accepted 389 subscription within message (b): 391 393 395 22 396 397 399 Figure 4: establish-subscription success (b) 401 If the NETCONF publisher had not been able to fully satisfy the 402 request, or subscriber has no authorization to establish the 403 subscription, the publisher would have sent an RPC error response. 404 For instance, if the "dscp" value of 10 asserted by the subscriber in 405 Figure 3 proved unacceptable, the publisher may have returned: 407 409 410 application 411 operation-failed 412 error 413 414 dscp-unavailable 415 416 417 419 420 100 421 422 423 424 426 Figure 5: an unsuccessful establish subscription 428 The subscriber can use this information in future attempts to 429 establish a subscription. 431 A.2.2. Modifying Dynamic Subscriptions 433 An existing subscription may be modified. The following exchange 434 shows a negotiation of such a modification via several exchanges 435 between a subscriber and a publisher. This negotiation consists of a 436 failed RPC modification request/response, followed by a successful 437 one. 439 +------------+ +-----------+ 440 | Subscriber | | Publisher | 441 +------------+ +-----------+ 442 | | 443 | notification message (for 23)| 444 |<-----------------------------| 445 | | 446 | modify-subscription (id = 23)| 447 |----------------------------->| (c) 448 | RPC error (with hint) | 449 |<-----------------------------| (d) 450 | | 451 | modify-subscription (id = 23)| 452 |----------------------------->| 453 | RPC Reply: OK | 454 |<-----------------------------| 455 | | 456 | notification message (for 23)| 457 |<-----------------------------| 458 | | 460 Figure 6: Interaction model for successful subscription modification 462 If the subscription being modified in Figure 6 is a datastore 463 subscription as per [I-D.ietf-netconf-yang-push], the modification 464 request made in (c) may look like that shown in Figure 7. As can be 465 seen, the modifications being attempted are the application of a new 466 xpath filter as well as the setting of a new periodic time interval. 468 470 473 474 475 /interfaces-state/interface/oper-status 476 477 478 500 479 480 481 482 23 483 484 485 487 Figure 7: Subscription modification request (c) 489 If the NETCONF publisher can satisfy both changes, the publisher 490 sends a positive result for the RPC. If the NETCONF publisher cannot 491 satisfy either of the proposed changes, the publisher sends an RPC 492 error response (d). The following is an example RPC error response 493 for (d) which includes a hint. This hint is an alternative time 494 period value which might have resulted in a successful modification: 496 498 499 application 500 operation-failed 501 error 502 503 period-unsupported 504 505 507 508 509 3000 510 511 512 513 514 516 Figure 8: Modify subscription failure with Hint (d) 518 A.2.3. Deleting Dynamic Subscriptions 520 The following demonstrates deleting a subscription. 522 524 526 22 527 528 530 Figure 9: Delete subscription 532 If the NETCONF publisher can satisfy the request, the publisher 533 replies with success to the RPC request. 535 If the NETCONF publisher cannot satisfy the request, the publisher 536 sends an error-rpc element indicating the modification didn't work. 537 Figure 10 shows a valid response for existing valid subscription 538 identifier, but that subscription identifier was created on a 539 different NETCONF transport session: 541 543 544 application 545 operation-failed 546 error 547 548 no-such-subscription 549 550 551 553 Figure 10: Unsuccessful delete subscription 555 A.3. Configured Subscriptions 557 Configured subscriptions may be established, modified, and deleted 558 using configuration operations against the top-level subtree of 559 [I-D.draft-ietf-netconf-subscribed-notifications] or 560 [I-D.ietf-netconf-yang-push]. 562 In this section, we present examples of how to manage the 563 configuration subscriptions using a NETCONF client. 565 A.3.1. Creating Configured Subscriptions 567 For subscription creation, a NETCONF client may send: 569 572 573 574 575 576 578 579 22 580 encode-xml 581 582 NETCONF 583 584
1.2.3.4
585 1234 586
587
588
589
590
591
593 Figure 11: Create a configured subscription 595 If the request is accepted, the publisher will indicate this. If the 596 request is not accepted because the publisher cannot serve it, no 597 configuration is changed. In this case the publisher may reply: 599 601 602 application 603 resource-denied 604 error 605 606 Temporarily the publisher cannot serve this 607 subscription due to the current workload. 608 609 610 612 Figure 12: Response to a failed configured subscription establishment 614 After a subscription has been created, NETCONF connectivity to each 615 receiver's IP address and port will be established if it does not 616 already exist. This will be accomplished via [RFC8071]. 618 The following figure shows the interaction model for the successful 619 creation of a configured subscription. 621 +----------+ +-----------+ +---------+ 622 |Config Ops| | Publisher | | 1.2.3.4 | 623 +----------+ +-----------+ +---------+ 624 | | | 625 | Capability Exchange | | 626 |<-------------------------->| | 627 | | | 628 | | | 629 | Edit-config | | 630 |--------------------------->| | 631 | RPC Reply: OK | | 632 |<---------------------------| | 633 | | Call Home | 634 | |<-------------->| 635 | | | 636 | | subscription- | 637 | | started | 638 | |--------------->| 639 | | | 640 | | notification | 641 | | message | 642 | |--------------->| 644 Figure 13: Interaction model for configured subscription 645 establishment 647 A.3.2. Modifying Configured Subscriptions 649 Configured subscriptions can be modified using configuration 650 operations against the top-level container "/subscriptions". 652 For example, the subscription established in the previous section 653 could be modified as follows, here a adding a second receiver: 655 658 659 660 661 662 664 665 666 1922 667 668 669
670 1.2.3.5 671
672 673 1234 674 675
676
677
678
679
681 Figure 14: Modify configured subscription 683 If the request is accepted, the publisher will indicate success. The 684 result is that the interaction model described in Figure 13 may be 685 extended as follows. 687 +----------+ +-----------+ +---------+ +---------+ 688 |Config Ops| | Publisher | | 1.2.3.4 | | 1.2.3.5 | 689 +----------+ +-----------+ +---------+ +---------+ 690 | | notification | | 691 | | message | | 692 | |--------------->| | 693 | Edit-config | | | 694 |--------------------------->| | | 695 | RPC Reply: OK | | | 696 |<---------------------------| | | 697 | | subscription- | | 698 | | started | | 699 | |---------------------------->| 700 | | | | 701 | | notification | | 702 | | message | | 703 | |--------------->| | 704 | |---------------------------->| 705 | | | | 707 Figure 15: Interaction model for configured subscription modification 709 Note in the above that in the specific example above, modifying a 710 configured subscription actually resulted in "subscription-started" 711 notification. And because of an existing NETCONF session, no 712 additional call home was needed. Also note that if the edit of the 713 configuration had impacted the filter, a separate modify-subscription 714 would have been required for the original receiver. 716 A.3.3. Deleting Configured Subscriptions 718 Configured subscriptions can be deleted using configuration 719 operations against the top-level container "/subscriptions". 720 Deleting the subscription above would result in the following flow 721 impacting all active receivers. 723 +----------+ +-----------+ +---------+ +---------+ 724 |Config Ops| | Publisher | | 1.2.3.4 | | 1.2.3.5 | 725 +----------+ +-----------+ +---------+ +---------+ 726 | | | | 727 | | notification | | 728 | | message | | 729 | |--------------->| | 730 | |---------------------------->| 731 | | | | 732 | Edit-config | | | 733 |--------------------------->| | | 734 | RPC Reply: OK | | | 735 |<---------------------------| | | 736 | | subscription- | | 737 | | terminated | | 738 | |--------------->| | 739 | |---------------------------->| 740 | | | | 742 Figure 16: Interaction model for configured subscription deletion 744 A.4. Subscription State Notifications 746 A publisher will send subscription state notifications according to 747 the definitions within 748 [I-D.draft-ietf-netconf-subscribed-notifications]). 750 A.4.1. subscription-started and subscription-modified 752 A "subscription-started" over NETCONF encoded in XML would look like: 754 756 2007-09-01T10:00:00Z 757 759 39 760 encode-xml 761 762 NETCONF 763 764 /ex:foo 765 766 767 768 770 Figure 17: subscription-started subscription state notification 772 The "subscription-modified" is identical to Figure 17, with just the 773 word "started" being replaced by "modified". 775 A.4.2. subscription-completed, subscription-resumed, and replay- 776 complete 778 A "subscription-completed" would look like: 780 782 2007-09-01T10:00:00Z 783 785 39 786 787 789 Figure 18: subscription-completed notification in XML 791 The "subscription-resumed" and "replay-complete" are virtually 792 identical, with "subscription-completed" simply being replaced by 793 "subscription-resumed" and "replay-complete" in both encodings. 795 A.4.3. subscription-terminated and subscription-suspended 797 A "subscription-terminated" would look like: 799 801 2007-09-01T10:00:00Z 802 804 39 805 806 suspension-timeout 807 808 809 811 Figure 19: subscription-terminated subscription state notification 813 The "subscription-suspended" is virtually identical, with 814 "subscription-terminated" simply being replaced by "subscription- 815 suspended". 817 Appendix B. Changes between revisions 819 (To be removed by RFC editor prior to publication) 821 B.1. v06 to v07 823 o XML encoding and operational datastore mandatory. 824 o Error mechanisms and examples updated. 826 B.2. v05 to v06 828 o Moved examples to appendices 829 o All examples rewritten based on namespace learnings 830 o Normative text consolidated in front 831 o Removed all mention of JSON 832 o Call home process detailed 833 o Note: this is a major revision attempting to cover those comments 834 received from two week review. 836 B.3. v03 to v04 838 o Added additional detail to "configured subscriptions" 839 o Added interleave capability 840 o Adjusted terminology to that in draft-ietf-netconf-subscribed- 841 notifications 842 o Corrected namespaces in examples 844 B.4. v01 to v03 846 o Text simplifications throughout 847 o v02 had no meaningful changes 849 B.5. v00 to v01 851 o Added Call Home in solution for configured subscriptions. 852 o Clarified support for multiple subscription on a single session. 853 No need to support multiple create-subscription. 854 o Added mapping between terminology in yang-push and [RFC6241] (the 855 one followed in this document). 856 o Editorial improvements. 858 Authors' Addresses 860 Alberto Gonzalez Prieto 861 VMware 863 Email: agonzalezpri@vmware.com 865 Eric Voit 866 Cisco Systems 868 Email: evoit@cisco.com 870 Alexander Clemm 871 Huawei 873 Email: ludwig@clemm.org 875 Einar Nilsen-Nygaard 876 Cisco Systems 878 Email: einarnn@cisco.com 880 Ambika Prasad Tripathy 881 Cisco Systems 883 Email: ambtripa@cisco.com