| < draft-ietf-lime-yang-connectionless-oam-methods-01.txt | draft-ietf-lime-yang-connectionless-oam-methods-02.txt > | |||
|---|---|---|---|---|
| Network Working Group D. Kumar | Network Working Group D. Kumar | |||
| Internet-Draft Cisco | Internet-Draft Cisco | |||
| Intended status: Standards Track M. Wang | Intended status: Standards Track M. Wang | |||
| Expires: August 27, 2017 Q. Wu | Expires: November 16, 2017 Q. Wu | |||
| Huawei | Huawei | |||
| R. Rahman | R. Rahman | |||
| S. Raghavan | S. Raghavan | |||
| Cisco | Cisco | |||
| February 23, 2017 | May 15, 2017 | |||
| Retrieval Methods YANG Data Model for Connectionless Operations, | Retrieval Methods YANG Data Model for Connectionless Operations, | |||
| Administration, and Maintenance(OAM) protocols | Administration, and Maintenance(OAM) protocols | |||
| draft-ietf-lime-yang-connectionless-oam-methods-01 | draft-ietf-lime-yang-connectionless-oam-methods-02 | |||
| Abstract | Abstract | |||
| This document presents a retrieval method YANG Data model for | This document presents a retrieval method YANG Data model for | |||
| connectionless OAM protocols. It provides a technology-independent | connectionless OAM protocols. It provides a technology-independent | |||
| RPC commands for connectionless OAM protocols. The retrieval methods | RPC commands for connectionless OAM protocols. The retrieval methods | |||
| model presented here can be extended to include technology specific | model presented here can be extended to include technology specific | |||
| details. This is leading to uniformity between OAM protocols and | details. This is leading to uniformity between OAM protocols and | |||
| support both nested OAM workflows (i.e., performing OAM functions at | support both nested OAM workflows (i.e., performing OAM functions at | |||
| different levels through a unified interface) and interactive OAM | different levels through a unified interface) and interactive OAM | |||
| skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 27, 2017. | This Internet-Draft will expire on November 16, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Conventions used in this document . . . . . . . . . . . . . . 3 | 2. Conventions used in this document . . . . . . . . . . . . . . 3 | |||
| 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Overview of the Connectionless OAM retrieval methods Model . 4 | 3. Overview of the Connectionless OAM retrieval methods Model . 5 | |||
| 3.1. RPC definitions . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. RPC definitions . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. OAM Retrieval Methods Hierarchy . . . . . . . . . . . . . 8 | 3.2. OAM Retrieval Methods Hierarchy . . . . . . . . . . . . . 8 | |||
| 4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 19 | 4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 9 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 34 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 35 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 36 | 7.2. Informative References . . . . . . . . . . . . . . . . . 15 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36 | Appendix A. Appendix . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| A.1. OAM Retrieval Persistent Methods YANG Module . . . . . . 16 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | ||||
| 1. Introduction | 1. Introduction | |||
| Operations, Administration, and Maintenance (OAM) are important | Operations, Administration, and Maintenance (OAM) are important | |||
| networking functions that allow operators to: | networking functions that allow operators to: | |||
| 1. Monitor reachability of destinations (Reachability Verification, | 1. Monitor reachability of destinations (Reachability Verification, | |||
| Continuity Check). | Continuity Check). | |||
| 2. Troubleshoot failures (Fault verification and localization). | 2. Troubleshoot failures (Fault verification and localization). | |||
| skipping to change at page 5, line 32 ¶ | skipping to change at page 5, line 41 ¶ | |||
| [RFC4379]), the base building block should be extended with | [RFC4379]), the base building block should be extended with | |||
| corresponding technology specific parameters. To facilitate this and | corresponding technology specific parameters. To facilitate this and | |||
| for future enhancements to data retrieval methods, the RPCs are | for future enhancements to data retrieval methods, the RPCs are | |||
| captured under a separate module. | captured under a separate module. | |||
| The generic 'path-discovery-data' and 'continuity-check-data' are | The generic 'path-discovery-data' and 'continuity-check-data' are | |||
| used as data outputs from the different RPCs described in the | used as data outputs from the different RPCs described in the | |||
| document. Similar methods including other RPCs can retrieve the data | document. Similar methods including other RPCs can retrieve the data | |||
| using the same data model. | using the same data model. | |||
| The persistent method RPCs are commands to trigger persistent | ||||
| continuity check or path discovery OAM while specifying the options | ||||
| for data-export from the device. Internet Protocol Flow Information | ||||
| Export (IPFIX) [RFC7011] or yang-push [I-D.ietf-netconf-yang-push]. | ||||
| are currently outlined here as data export options and more can be | ||||
| added in future. It should be noted that the persistent methods are | ||||
| used to trigger create, modify and delete the persistent state | ||||
| associated with the data export options. The data export specific | ||||
| configurations are beyond the scope of this document. | ||||
| rpc continuity-check { | rpc continuity-check { | |||
| if-feature coam:continuity-check; | if-feature coam:continuity-check; | |||
| description | description | |||
| "Generates continuity-check as per RFC7276."; | "Generates continuity-check as per RFC7276."; | |||
| input { | input { | |||
| container destination-tp { | container destination-tp { | |||
| uses coam:tp-address; | uses coam:tp-address; | |||
| description | description | |||
| "destination test point."; | "destination test point."; | |||
| } | } | |||
| skipping to change at page 8, line 37 ¶ | skipping to change at page 9, line 5 ¶ | |||
| } | } | |||
| } | } | |||
| Snippet of data hierarchy related to RPC calls | Snippet of data hierarchy related to RPC calls | |||
| 3.2. OAM Retrieval Methods Hierarchy | 3.2. OAM Retrieval Methods Hierarchy | |||
| The complete data hierarchy related to the Connectionless OAM | The complete data hierarchy related to the Connectionless OAM | |||
| Retrieval Methods YANG model is presented below. | Retrieval Methods YANG model is presented below. | |||
| module: ietf-connectionless-oam-methods | module: ietf-connectionless-oam-methods | |||
| rpcs: | ||||
| rpcs: | +---x continuity-check {coam:continuity-check}? | |||
| +---x continuity-check {coam:continuity-check}? | | +---w input | |||
| | +---w input | | | +---w destination-tp | |||
| | | +---w destination-tp | | | +---w source-interface? if:interface-ref | |||
| | | | +---w tp-location-type-value? identityref | | | +---w outbound-interface? if:interface-ref | |||
| | | | +---w (tp-address)? | | | +---w count? uint32 | |||
| | | | +--:(mac-address) | | | +---w vrf? coam:routing-instance-ref | |||
| | | | | +---w mac-address? yang:mac-address | | | +---w ttl? uint8 | |||
| | | | +--:(ipv4-address) | | | +---w packet-size? uint32 | |||
| | | | | +---w ipv4-address? inet:ipv4-address | | +--ro output | |||
| | | | +--:(ipv6-address) | | +--ro error-code-list* [response-index] | |||
| | | | | +---w ipv6-address? inet:ipv6-address | | +--ro response-index uint32 | |||
| | | | +--:(tp-attribute) | | +--ro status-code? int32 | |||
| | | | | +---w tp-attribute-type? fec-type | | +--ro status-sub-code? uint8 | |||
| | | | | +---w (tp-attribute-value)? | +---x path-discovery {coam:path-discovery}? | |||
| | | | | +--:(ip-prefix) | +---w input | |||
| | | | | | +---w ip-prefix? inet:ip-prefix | | +---w destination-tp | |||
| | | | | +--:(bgp) | | +---w source-interface? if:interface-ref | |||
| | | | | | +---w bgp inet:ip-prefix | | +---w outbound-interface? if:interface-ref | |||
| | | | | +--:(tunnel) | | +---w vrf? coam:routing-instance-ref | |||
| | | | | | +---w tunnel-interface? uint32 | | +---w max-ttl? uint8 | |||
| | | | | +--:(pw) | +--ro output | |||
| | | | | | +---w remote-pe-address? inet:ip-address | +--ro response-list* [response-index] | |||
| | | | | | +---w pw-id? uint32 | +--ro response-index uint32 | |||
| | | | | +--:(vpls) | +--ro status-code? int32 | |||
| | | | | | +---w route-distinguisher? uint32 | +--ro status-sub-code? uint8 | |||
| | | | | | +---w sender-ve-id? uint32 | ||||
| | | | | | +---w receiver-ve-id? uint32 | ||||
| | | | | +--:(mpls-mldp) | ||||
| | | | | +---w (root-address)? | ||||
| | | | | +--:(ip-address) | ||||
| | | | | | +---w source-address? inet:ip-address | ||||
| | | | | | +---w group-ip-address? IP-Multicast | ||||
| -Group-Address | ||||
| | | | | +--:(vpn) | ||||
| | | | | | +---w as-number inet:as-number | ||||
| | | | | +--:(global-id) | ||||
| | | | | +---w lsp-id? string | ||||
| | | | +--:(system-info) | ||||
| | | | +---w system-id? router-id | ||||
| | | +---w session-type-enum? enumeration | ||||
| | | +---w source-interface? if:interface-ref | ||||
| | | +---w outbound-interface? if:interface-ref | ||||
| | | +---w count? uint32 | ||||
| | | +---w vrf? coam:routing-instance-ref | ||||
| | | +---w ttl? uint8 | ||||
| | | +---w packet-size? uint32 | ||||
| | +--ro output | ||||
| | +--ro error-code-list* [response-index] | ||||
| | | +--ro response-index uint32 | ||||
| | | +--ro status-code? int32 | ||||
| | | +--ro status-sub-code? uint8 | ||||
| | +--ro src-test-point | ||||
| | | +--ro vrf? routing-instance-ref | ||||
| | | +--ro tp-location-type-value? identityref | ||||
| | | +--ro (tp-address)? | ||||
| | | | +--:(mac-address) | ||||
| | | | | +--ro mac-address? yang:mac-address | ||||
| | | | +--:(ipv4-address) | ||||
| | | | | +--ro ipv4-address? inet:ipv4-address | ||||
| | | | +--:(ipv6-address) | ||||
| | | | | +--ro ipv6-address? inet:ipv6-address | ||||
| | | | +--:(tp-attribute) | ||||
| | | | | +--ro tp-attribute-type? fec-type | ||||
| | | | | +--ro (tp-attribute-value)? | ||||
| | | | | +--:(ip-prefix) | ||||
| | | | | | +--ro ip-prefix? inet:ip-prefix | ||||
| | | | | +--:(bgp) | ||||
| | | | | | +--ro bgp? inet:ip-prefix | ||||
| | | | | +--:(tunnel) | ||||
| | | | | | +--ro tunnel-interface? uint32 | ||||
| | | | | +--:(pw) | ||||
| | | | | | +--ro remote-pe-address? inet:ip-address | ||||
| | | | | | +--ro pw-id? uint32 | ||||
| | | | | +--:(vpls) | ||||
| | | | | | +--ro route-distinguisher? uint32 | ||||
| | | | | | +--ro sender-ve-id? uint32 | ||||
| | | | | | +--ro receiver-ve-id? uint32 | ||||
| | | | | +--:(mpls-mldp) | ||||
| | | | | +--ro (root-address)? | ||||
| | | | | +--:(ip-address) | ||||
| | | | | | +--ro source-address? inet:ip-address | ||||
| | | | | | +--ro group-ip-address? IP-Multicast | ||||
| -Group-Address | ||||
| | | | | +--:(vpn) | ||||
| | | | | | +--ro as-number? inet:as-number | ||||
| | | | | +--:(global-id) | ||||
| | | | | +--ro lsp-id? string | ||||
| | | | +--:(system-info) | ||||
| | | | +--ro system-id? router-id | ||||
| | | +--ro egress-intf-name? if:interface-ref | ||||
| | +--ro dest-test-point | ||||
| | | +--ro vrf? routing-instance-ref | ||||
| | | +--ro tp-location-type-value? identityref | ||||
| | | +--ro (tp-address)? | ||||
| | | | +--:(mac-address) | ||||
| | | | | +--ro mac-address? yang:mac-address | ||||
| | | | +--:(ipv4-address) | ||||
| | | | | +--ro ipv4-address? inet:ipv4-address | ||||
| | | | +--:(ipv6-address) | ||||
| | | | | +--ro ipv6-address? inet:ipv6-address | ||||
| | | | +--:(tp-attribute) | ||||
| | | | | +--ro tp-attribute-type? fec-type | ||||
| | | | | +--ro (tp-attribute-value)? | ||||
| | | | | +--:(ip-prefix) | ||||
| | | | | | +--ro ip-prefix inet:ip-prefix | ||||
| | | | | +--:(bgp) | ||||
| | | | | | +--ro bgp? inet:ip-prefix | ||||
| | | | | +--:(tunnel) | ||||
| | | | | | +--ro tunnel-interface? uint32 | ||||
| | | | | +--:(pw) | ||||
| | | | | | +--ro remote-pe-address? inet:ip-address | ||||
| | | | | | +--ro pw-id? uint32 | ||||
| | | | | +--:(vpls) | ||||
| | | | | | +--ro route-distinguisher? uint32 | ||||
| | | | | | +--ro sender-ve-id? uint32 | ||||
| | | | | | +--ro receiver-ve-id? uint32 | ||||
| | | | | +--:(mpls-mldp) | ||||
| | | | | +--ro (root-address)? | ||||
| | | | | +--:(ip-address) | ||||
| | | | | | +--ro source-address? inet:ip-address | ||||
| | | | | | +--ro group-ip-address? IP-Multicast- | ||||
| Group-Address | ||||
| | | | | +--:(vpn) | ||||
| | | | | | +--ro as-number? inet:as-number | ||||
| | | | | +--:(global-id) | ||||
| | | | | +--ro lsp-id? string | ||||
| | | | +--:(system-info) | ||||
| | | | +--ro system-id? router-id | ||||
| | | +--ro ingress-intf-name? if:interface-ref | ||||
| | +--ro sequence-number? uint64 | ||||
| | +--ro hop-cnt? uint8 | ||||
| | +--ro session-packet-statistics | ||||
| | | +--ro rx-packet-count? uint32 | ||||
| | | +--ro tx-packet-count? uint32 | ||||
| | | +--ro rx-bad-packet? uint32 | ||||
| | | +--ro tx-packet-failed? uint32 | ||||
| | +--ro session-error-statistics | ||||
| | | +--ro packet-drops-count? uint32 | ||||
| | | +--ro packet-reorder-count? uint32 | ||||
| | | +--ro packets-out-of-seq-count? uint32 | ||||
| | | +--ro packets-dup-count? uint32 | ||||
| | +--ro session-delay-statistics | ||||
| | | +--ro time-resolution-value? identityref | ||||
| | | +--ro min-delay-value? uint32 | ||||
| | | +--ro max-delay-value? uint32 | ||||
| | | +--ro average-delay-value? uint32 | ||||
| | +--ro session-jitter-statistics | ||||
| | +--ro time-resolution-value? identityref | ||||
| | +--ro min-jitter-value? uint32 | ||||
| | +--ro max-jitter-value? uint32 | ||||
| | +--ro average-jitter-value? uint32 | ||||
| +---x cc-persistent-create {coam:continuity-check}? | ||||
| | +---w input | ||||
| | | +---w destination-tp | ||||
| | | | +---w tp-location-type-value? identityref | ||||
| | | | +---w (tp-address)? | ||||
| | | | +--:(mac-address) | ||||
| | | | | +---w mac-address? yang:mac-address | ||||
| | | | +--:(ipv4-address) | ||||
| | | | | +---w ipv4-address? inet:ipv4-address | ||||
| | | | +--:(ipv6-address) | ||||
| | | | | +---w ipv6-address? inet:ipv6-address | ||||
| | | | +--:(tp-attribute) | ||||
| | | | | +---w tp-attribute-type? fec-type | ||||
| | | | | +---w (tp-attribute-value)? | ||||
| | | | | +--:(ip-prefix) | ||||
| | | | | | +---w ip-prefix? inet:ip-prefix | ||||
| | | | | +--:(bgp) | ||||
| | | | | | +---w bgp? inet:ip-prefix | ||||
| | | | | +--:(tunnel) | ||||
| | | | | | +---w tunnel-interface? uint32 | ||||
| | | | | +--:(pw) | ||||
| | | | | | +---w remote-pe-address? inet:ip-address | ||||
| | | | | | +---w pw-id? uint32 | ||||
| | | | | +--:(vpls) | ||||
| | | | | | +---w route-distinguisher? uint32 | ||||
| | | | | | +---w sender-ve-id? uint32 | ||||
| | | | | | +---w receiver-ve-id? uint32 | ||||
| | | | | +--:(mpls-mldp) | ||||
| | | | | +---w (root-address)? | ||||
| | | | | +--:(ip-address) | ||||
| | | | | | +---w source-address? inet:ip-address | ||||
| | | | | | +---w group-ip-address? IP-Multicast- | ||||
| Group-Address | ||||
| | | | | +--:(vpn) | ||||
| | | | | | +---w as-number? inet:as-number | ||||
| | | | | +--:(global-id) | ||||
| | | | | +---w lsp-id? string | ||||
| | | | +--:(system-info) | ||||
| | | | +---w system-id? router-id | ||||
| | | +---w session-type-enum? enumeration | ||||
| | | +---w source-interface? if:interface-ref | ||||
| | | +---w outbound-interface? if:interface-ref | ||||
| | | +---w vrf? coam:routing-instance-ref | ||||
| | | +---w ttl? uint8 | ||||
| | | +---w data-export-method? export-method | ||||
| | | +---w (cc-trigger)? | ||||
| | | +--:(periodic) | ||||
| | | | +---w period? yang:timeticks | ||||
| | | | +---w start-time? yang:date-and-time | ||||
| | | +--:(on-change) | ||||
| | | +---w all-data-on-start? boolean | ||||
| | | +---w excluded-change* change-type | ||||
| | +--ro output | ||||
| | +--ro error-code-list* [response-index] | ||||
| | | +--ro response-index uint32 | ||||
| | | +--ro status-code? int32 | ||||
| | | +--ro status-sub-code? uint8 | ||||
| | +--ro cc-persistent-id? string | ||||
| +---x cc-persistent-modify {coam:continuity-check}? | ||||
| | +---w input | ||||
| | | +---w cc-persistent-id? string | ||||
| | | +---w data-export-method? export-method | ||||
| | | +---w (cc-trigger)? | ||||
| | | +--:(periodic) | ||||
| | | | +---w period? yang:timeticks | ||||
| | | | +---w start-time? yang:date-and-time | ||||
| | | +--:(on-change) | ||||
| | | +---w all-data-on-start? boolean | ||||
| | | +---w excluded-change* change-type | ||||
| | +--ro output | ||||
| | +--ro error-code-list* [response-index] | ||||
| | | +--ro response-index uint32 | ||||
| | | +--ro status-code? int32 | ||||
| | | +--ro status-sub-code? uint8 | ||||
| | +--ro cc-persistent-id? string | ||||
| +---x cc-persistent-delete {coam:continuity-check}? | ||||
| | +---w input | ||||
| | | +---w cc-persistent-id? string | ||||
| | +--ro output | ||||
| | +--ro error-code-list* [response-index] | ||||
| | +--ro response-index uint32 | ||||
| | +--ro status-code? int32 | ||||
| | +--ro status-sub-code? uint8 | ||||
| +---x path-discovery | ||||
| | +---w input | ||||
| | | +---w destination-tp | ||||
| | | | +---w tp-location-type-value? identityref | ||||
| | | | +---w (tp-address)? | ||||
| | | | +--:(mac-address) | ||||
| | | | | +---w mac-address? yang:mac-address | ||||
| | | | +--:(ipv4-address) | ||||
| | | | | +---w ipv4-address? inet:ipv4-address | ||||
| | | | +--:(ipv6-address) | ||||
| | | | | +---w ipv6-address? inet:ipv6-address | ||||
| | | | +--:(tp-attribute) | ||||
| | | | | +---w tp-attribute-type? fec-type | ||||
| | | | | +---w (tp-attribute-value)? | ||||
| | | | | +--:(ip-prefix) | ||||
| | | | | | +---w ip-prefix? inet:ip-prefix | ||||
| | | | | +--:(bgp) | ||||
| | | | | | +---w bgp inet:ip-prefix | ||||
| | | | | +--:(tunnel) | ||||
| | | | | | +---w tunnel-interface? uint32 | ||||
| | | | | +--:(pw) | ||||
| | | | | | +---w remote-pe-address? inet:ip-address | ||||
| | | | | | +---w pw-id? uint32 | ||||
| | | | | +--:(vpls) | ||||
| | | | | | +---w route-distinguisher? uint32 | ||||
| | | | | | +---w sender-ve-id? uint32 | ||||
| | | | | | +---w receiver-ve-id? uint32 | ||||
| | | | | +--:(mpls-mldp) | ||||
| | | | | +---w (root-address)? | ||||
| | | | | +--:(ip-address) | ||||
| | | | | | +---w source-address? inet:ip-address | ||||
| | | | | | +---w group-ip-address? IP-Multicast | ||||
| -Group-Address | ||||
| | | | | +--:(vpn) | ||||
| | | | | | +---w as-number? inet:as-number | ||||
| | | | | +--:(global-id) | ||||
| | | | | +---w lsp-id? string | ||||
| | | | +--:(system-info) | ||||
| | | | +---w system-id? router-id | ||||
| | | +---w session-type-enum? enumeration | ||||
| | | +---w source-interface? if:interface-ref | ||||
| | | +---w outbound-interface? if:interface-ref | ||||
| | | +---w vrf? coam:routing-instance-ref | ||||
| | | +---w max-ttl? uint8 | ||||
| | +--ro output | ||||
| | +--ro response-list* [response-index] | ||||
| | | +--ro response-index uint32 | ||||
| | | +--ro status-code? int32 | ||||
| | | +--ro status-sub-code? uint8 | ||||
| | +--ro src-test-point | ||||
| | | +--ro vrf? routing-instance-ref | ||||
| | | +--ro tp-location-type-value? identityref | ||||
| | | +--ro (tp-address)? | ||||
| | | +--:(mac-address) | ||||
| | | | +--ro mac-address? yang:mac-address | ||||
| | | +--:(ipv4-address) | ||||
| | | | +--ro ipv4-address? inet:ipv4-address | ||||
| | | +--:(ipv6-address) | ||||
| | | | +--ro ipv6-address? inet:ipv6-address | ||||
| | | +--:(tp-attribute) | ||||
| | | | +--ro tp-attribute-type? fec-type | ||||
| | | | +--ro (tp-attribute-value)? | ||||
| | | | +--:(ip-prefix) | ||||
| | | | | +--ro ip-prefix? inet:ip-prefix | ||||
| | | | +--:(bgp) | ||||
| | | | | +--ro bgp? inet:ip-prefix | ||||
| | | | +--:(tunnel) | ||||
| | | | | +--ro tunnel-interface? uint32 | ||||
| | | | +--:(pw) | ||||
| | | | | +--ro remote-pe-address? inet:ip-address | ||||
| | | | | +--ro pw-id? uint32 | ||||
| | | | +--:(vpls) | ||||
| | | | | +--ro route-distinguisher? uint32 | ||||
| | | | | +--ro sender-ve-id? uint32 | ||||
| | | | | +--ro receiver-ve-id? uint32 | ||||
| | | | +--:(mpls-mldp) | ||||
| | | | +--ro (root-address)? | ||||
| | | | +--:(ip-address) | ||||
| | | | | +--ro source-address? inet:ip-address | ||||
| | | | | +--ro group-ip-address? IP-Multicast | ||||
| -Group-Address | ||||
| | | | +--:(vpn) | ||||
| | | | | +--ro as-number? inet:as-number | ||||
| | | | +--:(global-id) | ||||
| | | | +--ro lsp-id? string | ||||
| | | +--:(system-info) | ||||
| | | +--ro system-id? router-id | ||||
| | +--ro dest-test-point | ||||
| | | +--ro vrf? routing-instance-ref | ||||
| | | +--ro tp-location-type-value? identityref | ||||
| | | +--ro (tp-address)? | ||||
| | | +--:(mac-address) | ||||
| | | | +--ro mac-address? yang:mac-address | ||||
| | | +--:(ipv4-address) | ||||
| | | | +--ro ipv4-address? inet:ipv4-address | ||||
| | | +--:(ipv6-address) | ||||
| | | | +--ro ipv6-address? inet:ipv6-address | ||||
| | | +--:(tp-attribute) | ||||
| | | | +--ro tp-attribute-type? fec-type | ||||
| | | | +--ro (tp-attribute-value)? | ||||
| | | | +--:(ip-prefix) | ||||
| | | | | +--ro ip-prefix inet:ip-prefix | ||||
| | | | +--:(bgp) | ||||
| | | | | +--ro bgp? inet:ip-prefix | ||||
| | | | +--:(tunnel) | ||||
| | | | | +--ro tunnel-interface? uint32 | ||||
| | | | +--:(pw) | ||||
| | | | | +--ro remote-pe-address? inet:ip-address | ||||
| | | | | +--ro pw-id? uint32 | ||||
| | | | +--:(vpls) | ||||
| | | | | +--ro route-distinguisher? uint32 | ||||
| | | | | +--ro sender-ve-id? uint32 | ||||
| | | | | +--ro receiver-ve-id? uint32 | ||||
| | | | +--:(mpls-mldp) | ||||
| | | | +--ro (root-address)? | ||||
| | | | +--:(ip-address) | ||||
| | | | | +--ro source-address? inet:ip-address | ||||
| | | | | +--ro group-ip-address? IP-Multicast | ||||
| -Group-Address | ||||
| | | | +--:(vpn) | ||||
| | | | | +--ro as-number? inet:as-number | ||||
| | | | +--:(global-id) | ||||
| | | | +--ro lsp-id? string | ||||
| | | +--:(system-info) | ||||
| | | +--ro system-id? router-id | ||||
| | +--ro sequence-number? uint64 | ||||
| | +--ro hop-cnt? uint8 | ||||
| | +--ro session-packet-statistics | ||||
| | | +--ro rx-packet-count? uint32 | ||||
| | | +--ro tx-packet-count? uint32 | ||||
| | | +--ro rx-bad-packet? uint32 | ||||
| | | +--ro tx-packet-failed? uint32 | ||||
| | +--ro session-error-statistics | ||||
| | | +--ro packet-drops-count? uint32 | ||||
| | | +--ro packet-reorder-count? uint32 | ||||
| | | +--ro packets-out-of-seq-count? uint32 | ||||
| | | +--ro packets-dup-count? uint32 | ||||
| | +--ro session-delay-statistics | ||||
| | | +--ro time-resolution-value? identityref | ||||
| | | +--ro min-delay-value? uint32 | ||||
| | | +--ro max-delay-value? uint32 | ||||
| | | +--ro average-delay-value? uint32 | ||||
| | +--ro session-jitter-statistics | ||||
| | | +--ro time-resolution-value? identityref | ||||
| | | +--ro min-jitter-value? uint32 | ||||
| | | +--ro max-jitter-value? uint32 | ||||
| | | +--ro average-jitter-value? uint32 | ||||
| | +--ro path-verification | ||||
| | | +--ro flow-info? string | ||||
| | | +--ro session-path-verification-statistics | ||||
| | | +--ro verified-count? uint32 | ||||
| | | +--ro failed-count? uint32 | ||||
| | +--ro path-trace-info | ||||
| | +--ro path-trace-info-list* [index] | ||||
| | +--ro index uint32 | ||||
| | +--ro vrf? routing-instance-ref | ||||
| | +--ro tp-location-type-value? identityref | ||||
| | +--ro (tp-address)? | ||||
| | | +--:(mac-address) | ||||
| | | | +--ro mac-address? yang:mac-address | ||||
| | | +--:(ipv4-address) | ||||
| | | | +--ro ipv4-address? inet:ipv4-address | ||||
| | | +--:(ipv6-address) | ||||
| | | | +--ro ipv6-address? inet:ipv6-address | ||||
| | | +--:(tp-attribute) | ||||
| | | | +--ro tp-attribute-type? fec-type | ||||
| | | | +--ro (tp-attribute-value)? | ||||
| | | | +--:(ip-prefix) | ||||
| | | | | +--ro ip-prefix? inet:ip-prefix | ||||
| | | | +--:(bgp) | ||||
| | | | | +--ro bgp? inet:ip-prefix | ||||
| | | | +--:(tunnel) | ||||
| | | | | +--ro tunnel-interface? uint32 | ||||
| | | | +--:(pw) | ||||
| | | | | +--ro remote-pe-address? inet:ip-address | ||||
| | | | | +--ro pw-id? uint32 | ||||
| | | | +--:(vpls) | ||||
| | | | | +--ro route-distinguisher? uint32 | ||||
| | | | | +--ro sender-ve-id? uint32 | ||||
| | | | | +--ro receiver-ve-id? uint32 | ||||
| | | | +--:(mpls-mldp) | ||||
| | | | +--ro (root-address)? | ||||
| | | | +--:(ip-address) | ||||
| | | | | +--ro source-address? inet:ip-address | ||||
| | | | | +--ro group-ip-address? IP-Multicast | ||||
| -Group-Address | ||||
| | | | +--:(vpn) | ||||
| | | | | +--ro as-number? inet:as-number | ||||
| | | | +--:(global-id) | ||||
| | | | +--ro lsp-id? string | ||||
| | | +--:(system-info) | ||||
| | | +--ro system-id? router-id | ||||
| | +--ro timestamp-sec? yang:timestamp | ||||
| | +--ro timestamp-nanosec? yang:timestamp | ||||
| | +--ro ingress-intf-name? if:interface-ref | ||||
| | +--ro egress-intf-name? if:interface-ref | ||||
| | +--ro queue-depth? uint32 | ||||
| | +--ro transit-delay? uint32 | ||||
| | +--ro app-meta-data? uint64 | ||||
| | +--ro opaque-tlvs | ||||
| | +--ro opaque-tlvs-list* | ||||
| | +--ro type? opaque-tlv-type | ||||
| | +--ro length? uint16 | ||||
| | +--ro value? yang:hex-string | ||||
| +---x pd-persistent-create | ||||
| | +---w input | ||||
| | | +---w destination-tp | ||||
| | | | +---w tp-location-type-value? identityref | ||||
| | | | +---w (tp-address)? | ||||
| | | | +--:(mac-address) | ||||
| | | | | +---w mac-address? yang:mac-address | ||||
| | | | +--:(ipv4-address) | ||||
| | | | | +---w ipv4-address? inet:ipv4-address | ||||
| | | | +--:(ipv6-address) | ||||
| | | | | +---w ipv6-address? inet:ipv6-address | ||||
| | | | +--:(tp-attribute) | ||||
| | | | | +---w tp-attribute-type? fec-type | ||||
| | | | | +---w (tp-attribute-value)? | ||||
| | | | | +--:(ip-prefix) | ||||
| | | | | | +---w ip-prefix? inet:ip-prefix | ||||
| | | | | +--:(bgp) | ||||
| | | | | | +---w bgp? inet:ip-prefix | ||||
| | | | | +--:(tunnel) | ||||
| | | | | | +---w tunnel-interface? uint32 | ||||
| | | | | +--:(pw) | ||||
| | | | | | +---w remote-pe-address? inet:ip-address | ||||
| | | | | | +---w pw-id? uint32 | ||||
| | | | | +--:(vpls) | ||||
| | | | | | +---w route-distinguisher? uint32 | ||||
| | | | | | +---w sender-ve-id? uint32 | ||||
| | | | | | +---w receiver-ve-id? uint32 | ||||
| | | | | +--:(mpls-mldp) | ||||
| | | | | +---w (root-address)? | ||||
| | | | | +--:(ip-address) | ||||
| | | | | | +---w source-address inet:ip-address | ||||
| | | | | | +---w group-ip-address? IP-Multicast | ||||
| -Group-Address | ||||
| | | | | +--:(vpn) | ||||
| | | | | | +---w as-number? inet:as-number | ||||
| | | | | +--:(global-id) | ||||
| | | | | +---w lsp-id? string | ||||
| | | | +--:(system-info) | ||||
| | | | +---w system-id? router-id | ||||
| | | +---w session-type-enum? enumeration | ||||
| | | +---w source-interface? if:interface-ref | ||||
| | | +---w outbound-interface? if:interface-ref | ||||
| | | +---w vrf? coam:routing-instance-ref | ||||
| | | +---w max-ttl? uint8 | ||||
| | | +---w data-export-method? export-method | ||||
| | | +---w (pd-trigger)? | ||||
| | | +--:(periodic) | ||||
| | | | +---w period? yang:timeticks | ||||
| | | | +---w start-time? yang:date-and-time | ||||
| | | +--:(on-change) | ||||
| | | +---w all-data-on-start? boolean | ||||
| | | +---w excluded-change* change-type | ||||
| | +--ro output | ||||
| | +--ro response-list* [response-index] | ||||
| | +--ro response-index uint32 | ||||
| | +--ro status-code? int32 | ||||
| | +--ro status-sub-code? uint8 | ||||
| | +--ro pd-persistent-id? string | ||||
| +---x pd-persistent-modify | ||||
| | +---w input | ||||
| | | +---w pd-persistent-id? string | ||||
| | | +---w data-export-method? export-method | ||||
| | | +---w (pd-trigger)? | ||||
| | | +--:(periodic) | ||||
| | | | +---w period? yang:timeticks | ||||
| | | | +---w start-time? yang:date-and-time | ||||
| | | +--:(on-change) | ||||
| | | +---w all-data-on-start? boolean | ||||
| | | +---w excluded-change* change-type | ||||
| | +--ro output | ||||
| | +--ro response-list* [response-index] | ||||
| | +--ro response-index uint32 | ||||
| | +--ro status-code? int32 | ||||
| | +--ro status-sub-code? uint8 | ||||
| | +--ro pd-persistent-id? string | ||||
| +---x pd-persistent-delete | ||||
| +---w input | ||||
| | +---w pd-persistent-id? string | ||||
| +--ro output | ||||
| +--ro response-list* [response-index] | ||||
| +--ro response-index uint32 | ||||
| +--ro status-code? int32 | ||||
| +--ro status-sub-code? uint8 | ||||
| data hierarchy of OAM Retrieval Methods | data hierarchy of OAM Retrieval Methods | |||
| 4. OAM Retrieval Methods YANG Module | 4. OAM Retrieval Methods YANG Module | |||
| <CODE BEGINS> file "ietf-connectionless-oam-methods.yang" | <CODE BEGINS> file "ietf-connectionless-oam-methods.yang" | |||
| module ietf-connectionless-oam-methods { | module ietf-connectionless-oam-methods { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods"; | namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods"; | |||
| prefix coam-methods; | prefix coam-methods; | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix if; | prefix if; | |||
| } | } | |||
| import ietf-connectionless-oam { | import ietf-connectionless-oam { | |||
| prefix coam; | prefix coam; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| } | } | |||
| organization | ||||
| "IETF LIME Working Group"; | ||||
| contact | ||||
| "Deepak Kumar dekumar@cisco.com | ||||
| Qin Wu bill.wu@huawei.com | ||||
| S Raghavan srihari@cisco.com | ||||
| Zitao Wang wangzitao@huawei.com | ||||
| R Rahman rrahman@cisco.com"; | ||||
| description | ||||
| "This YANG module defines the RPCs for , | ||||
| connectionless OAM to be used within IETF | ||||
| in a protocol Independent manner. | ||||
| Functional level abstraction is indendent with | ||||
| YANG modeling. It is assumed that each protocol maps | ||||
| corresponding abstracts to its native format. | ||||
| Each protocol may extend the YANG model defined | ||||
| here to include protocol specific extensions"; | ||||
| organization "IETF LIME Working Group"; | revision 2017-02-15 { | |||
| contact | ||||
| "Deepak Kumar dekumar@cisco.com | ||||
| Qin Wu bill.wu@huawei.com | ||||
| S Raghavan srihari@cisco.com | ||||
| Zitao Wang wangzitao@huawei.com | ||||
| R Rahman rrahman@cisco.com"; | ||||
| description | description | |||
| "This YANG module defines the RPCs for , | "02 version"; | |||
| connectionless OAM to be used within IETF | reference "draft-ietf-lime-yang-connectionless-oam-methods"; | |||
| in a protocol Independent manner. | } | |||
| Functional level abstraction is indendent with | ||||
| YANG modeling. It is assumed that each protocol maps | ||||
| corresponding abstracts to its native format. | ||||
| Each protocol may extend the YANG model defined | ||||
| here to include protocol specific extensions"; | ||||
| revision 2017-02-15 { | ||||
| description | ||||
| "02 version"; | ||||
| reference | ||||
| "draft-ietf-lime-yang-connectionless-oam-methods"; | ||||
| } | ||||
| rpc continuity-check { | ||||
| if-feature coam:continuity-check; | ||||
| description | ||||
| "Generates continuity-check as per RFC7276."; | ||||
| input { | ||||
| container destination-tp { | ||||
| uses coam:tp-address; | ||||
| description | ||||
| "Destination test point."; | ||||
| } | ||||
| uses coam:session-type; | ||||
| leaf source-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Source interface."; | ||||
| } | ||||
| leaf outbound-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Outbound interface."; | ||||
| } | ||||
| leaf count { | ||||
| type uint32; | ||||
| default "5"; | ||||
| description | ||||
| "Specifies the number of | ||||
| packets that will be sent."; | ||||
| } | ||||
| leaf vrf { | ||||
| type coam:routing-instance-ref; | ||||
| description | ||||
| "VRF instance."; | ||||
| } | ||||
| leaf ttl { | rpc continuity-check { | |||
| type uint8; | if-feature "coam:continuity-check"; | |||
| default "255"; | description | |||
| description | "Generates continuity-check as per RFC7276."; | |||
| "Time to live (TTL)."; | input { | |||
| } | container destination-tp { | |||
| leaf packet-size { | uses coam:tp-address; | |||
| type uint32 { | description | |||
| range "64..10000"; | "Destination test point."; | |||
| } | ||||
| default "64"; | ||||
| description | ||||
| "Size of ping echo request | ||||
| packets, in octets"; | ||||
| } | ||||
| } | } | |||
| output { | uses coam:session-type; | |||
| list error-code-list { | leaf source-interface { | |||
| key "response-index"; | type if:interface-ref; | |||
| leaf response-index { | description | |||
| type uint32; | "Source interface."; | |||
| description | ||||
| "Response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "Error code is "; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "Sub code."; | ||||
| } | ||||
| description | ||||
| "Error code list."; | ||||
| } | ||||
| uses coam:continuity-check-data; | ||||
| } | } | |||
| } | leaf outbound-interface { | |||
| type if:interface-ref; | ||||
| identity export-method { | description | |||
| description | "Outbound interface."; | |||
| "Base identity to represent a conceptual export-method."; | ||||
| } | ||||
| identity ipfix-export { | ||||
| base export-method; | ||||
| description | ||||
| "IPFIX based export. Configuration provided separately."; | ||||
| } | ||||
| identity yang-push-export { | ||||
| base export-method; | ||||
| description | ||||
| "Yang-push from draft-ietf-netconf-yang-push"; | ||||
| } | ||||
| typedef export-method { | ||||
| type identityref { | ||||
| base export-method; | ||||
| } | } | |||
| description | leaf count { | |||
| "Export method type."; | type uint32; | |||
| } | default "5"; | |||
| typedef change-type { | ||||
| type enumeration { | ||||
| enum "create" { | ||||
| description | description | |||
| "Change due to a create."; | "Specifies the number of | |||
| } | packets that will be sent."; | |||
| enum "delete" { | } | |||
| leaf vrf { | ||||
| type coam:routing-instance-ref; | ||||
| description | description | |||
| "Change due to a delete."; | "VRF instance."; | |||
| } | } | |||
| enum "modify" { | leaf ttl { | |||
| type uint8; | ||||
| default "255"; | ||||
| description | description | |||
| "Change due to an update."; | "Time to live (TTL)."; | |||
| } | ||||
| leaf packet-size { | ||||
| type uint32 { | ||||
| range "64..10000"; | ||||
| } | } | |||
| default "64"; | ||||
| description | ||||
| "Size of ping echo request | ||||
| packets, in octets"; | ||||
| } | } | |||
| description | ||||
| "Different types of changes that may occur."; | ||||
| } | } | |||
| output { | ||||
| rpc cc-persistent-create { | list error-code-list { | |||
| if-feature coam:continuity-check; | key "response-index"; | |||
| description | leaf response-index { | |||
| "Generates persistent continuity-check."; | type uint32; | |||
| input { | ||||
| container destination-tp { | ||||
| uses coam:tp-address; | ||||
| description | description | |||
| "Destination test point."; | "Response index."; | |||
| } | ||||
| uses coam:session-type; | ||||
| leaf source-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Source interface."; | ||||
| } | ||||
| leaf outbound-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Outbound interface."; | ||||
| } | } | |||
| leaf status-code { | ||||
| leaf vrf { | type int32; | |||
| type coam:routing-instance-ref; | ||||
| description | description | |||
| "VRF instance."; | "Error code is "; | |||
| } | } | |||
| leaf status-sub-code { | ||||
| leaf ttl { | ||||
| type uint8; | type uint8; | |||
| default "255"; | ||||
| description | ||||
| "Time to live (TTL)."; | ||||
| } | ||||
| leaf data-export-method { | ||||
| type export-method; | ||||
| description | ||||
| "Type of export."; | ||||
| } | ||||
| choice cc-trigger { | ||||
| description | ||||
| "Defines necessary conditions for | ||||
| periodic or on-change trigger."; | ||||
| case periodic { | ||||
| description "Periodic reports."; | ||||
| leaf period { | ||||
| type yang:timeticks; | ||||
| description "Time interval between reports."; | ||||
| } | ||||
| leaf start-time { | ||||
| type yang:date-and-time; | ||||
| description | ||||
| "Timestamp from which reports are started."; | ||||
| } | ||||
| } | ||||
| case on-change { | ||||
| description | ||||
| "On-change trigger and not periodic."; | ||||
| leaf all-data-on-start { | ||||
| type boolean; | ||||
| description | ||||
| "Full update needed on start or not."; | ||||
| } | ||||
| leaf-list excluded-change { | ||||
| type change-type; | ||||
| description | ||||
| "Restrict which changes trigger an update."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| output { | ||||
| list error-code-list { | ||||
| key "response-index"; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "Response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "Error code."; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "Sub code."; | ||||
| } | ||||
| description | description | |||
| "Error code list."; | "Sub code."; | |||
| } | ||||
| leaf cc-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Id to act as a cookie."; | ||||
| } | } | |||
| description | ||||
| "Error code list."; | ||||
| } | } | |||
| uses coam:continuity-check-data; | ||||
| } | } | |||
| rpc cc-persistent-modify { | } | |||
| if-feature coam:continuity-check; | ||||
| description | ||||
| "Modifies persistent continuity-check | ||||
| as per RFC7276."; | ||||
| input { | ||||
| leaf cc-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Cookie Id to be used for modifications."; | ||||
| } | ||||
| leaf data-export-method { | ||||
| type export-method; | ||||
| description | ||||
| "Type of export to use."; | ||||
| } | ||||
| choice cc-trigger { | rpc path-discovery { | |||
| description | if-feature "coam:path-discovery"; | |||
| "Defines necessary conditions for | description | |||
| periodic or on-change trigger."; | "Generates path discovery as per RFC7276."; | |||
| case periodic { | input { | |||
| description "Periodic reports."; | container destination-tp { | |||
| leaf period { | uses coam:tp-address; | |||
| type yang:timeticks; | description | |||
| description | "Destination test point."; | |||
| "Time interval between reports."; | ||||
| } | ||||
| leaf start-time { | ||||
| type yang:date-and-time; | ||||
| description | ||||
| "Timestamp from which reports are started."; | ||||
| } | ||||
| } | ||||
| case on-change { | ||||
| description | ||||
| "On-change trigger and not periodic."; | ||||
| leaf all-data-on-start { | ||||
| type boolean; | ||||
| description | ||||
| "Full update needed on start or not."; | ||||
| } | ||||
| leaf-list excluded-change { | ||||
| type change-type; | ||||
| description | ||||
| "Restrict which changes trigger an update."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | } | |||
| output { | uses coam:session-type; | |||
| list error-code-list { | leaf source-interface { | |||
| key "response-index"; | type if:interface-ref; | |||
| leaf response-index { | description | |||
| type uint32; | "Source interface."; | |||
| description | ||||
| "Response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "Error code"; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "Sub code."; | ||||
| } | ||||
| description | ||||
| "Error code list."; | ||||
| } | ||||
| leaf cc-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Id to represent a cookie."; | ||||
| } | ||||
| } | } | |||
| } | leaf outbound-interface { | |||
| type if:interface-ref; | ||||
| rpc cc-persistent-delete { | description | |||
| if-feature coam:continuity-check; | "Outbound interface."; | |||
| description | ||||
| "Deletes persistent continuity-check as per RFC7276."; | ||||
| input { | ||||
| leaf cc-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Cookie Id to be used in deletion."; | ||||
| } | ||||
| } | } | |||
| output { | leaf vrf { | |||
| list error-code-list { | type coam:routing-instance-ref; | |||
| key "response-index"; | description | |||
| leaf response-index { | "VRF"; | |||
| type uint32; | ||||
| description | ||||
| "Response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "Error code."; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "Sub code."; | ||||
| } | ||||
| description | ||||
| "Error code list."; | ||||
| } | ||||
| } | } | |||
| } | leaf max-ttl { | |||
| type uint8; | ||||
| rpc path-discovery { | default "255"; | |||
| description | description | |||
| "Generates path discovery as per RFC7276."; | "Max ttl."; | |||
| input { | ||||
| container destination-tp { | ||||
| uses coam:tp-address; | ||||
| description | ||||
| "Destination test point."; | ||||
| } | ||||
| uses coam:session-type; | ||||
| leaf source-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Source interface."; | ||||
| } | ||||
| leaf outbound-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Outbound interface."; | ||||
| } | ||||
| leaf vrf { | ||||
| type coam:routing-instance-ref; | ||||
| description | ||||
| "VRF"; | ||||
| } | ||||
| leaf max-ttl { | ||||
| type uint8; | ||||
| default "255"; | ||||
| description | ||||
| "Max ttl."; | ||||
| } | ||||
| } | } | |||
| output { | ||||
| list response-list { | ||||
| key "response-index"; | ||||
| description | ||||
| "Path discovery response list."; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "Response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "Error code is "; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "Sub code is "; | ||||
| } | ||||
| } | ||||
| uses coam:path-discovery-data; | ||||
| } | ||||
| } | } | |||
| output { | ||||
| rpc pd-persistent-create { | list response-list { | |||
| description | key "response-index"; | |||
| "Generates persistent path discovery."; | description | |||
| input { | "Path discovery response list."; | |||
| container destination-tp { | leaf response-index { | |||
| uses coam:tp-address; | type uint32; | |||
| description | ||||
| "Destination test point."; | ||||
| } | ||||
| uses coam:session-type; | ||||
| leaf source-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Source interface."; | ||||
| } | ||||
| leaf outbound-interface { | ||||
| type if:interface-ref; | ||||
| description | description | |||
| "Outbound interface."; | "Response index."; | |||
| } | } | |||
| leaf status-code { | ||||
| leaf vrf { | type int32; | |||
| type coam:routing-instance-ref; | ||||
| description | description | |||
| "VRF"; | "Error code is "; | |||
| } | } | |||
| leaf status-sub-code { | ||||
| leaf max-ttl { | ||||
| type uint8; | type uint8; | |||
| default "255"; | ||||
| description | ||||
| "Max ttl."; | ||||
| } | ||||
| leaf data-export-method { | ||||
| type export-method; | ||||
| description | ||||
| "Type of export."; | ||||
| } | ||||
| choice pd-trigger { | ||||
| description | ||||
| "Defines necessary conditions | ||||
| for periodic or on-change | ||||
| trigger."; | ||||
| case periodic { | ||||
| description | ||||
| "Periodic reports."; | ||||
| leaf period { | ||||
| type yang:timeticks; | ||||
| description | ||||
| "Time interval between reports."; | ||||
| } | ||||
| leaf start-time { | ||||
| type yang:date-and-time; | ||||
| description | ||||
| "Timestamp from which reports are started."; | ||||
| } | ||||
| } | ||||
| case on-change { | ||||
| description | ||||
| "On-change trigger and not periodic."; | ||||
| leaf all-data-on-start { | ||||
| type boolean; | ||||
| description | ||||
| "Full update needed on start or not."; | ||||
| } | ||||
| leaf-list excluded-change { | ||||
| type change-type; | ||||
| description | ||||
| "Restrict which changes trigger an update."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| output { | ||||
| list response-list { | ||||
| key "response-index"; | ||||
| description | description | |||
| "Path discovery response list."; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "Response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "Error code is "; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "Sub code is "; | "Sub code is "; | |||
| } | ||||
| leaf pd-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Id to act as a cookie."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| rpc pd-persistent-modify { | ||||
| description | ||||
| "Modifies persistent path discovery."; | ||||
| input { | ||||
| leaf pd-persistent-id { | ||||
| type string; | ||||
| description "Cookie Id to be used for modifications."; | ||||
| } | ||||
| leaf data-export-method { | ||||
| type export-method; | ||||
| description "Type of export."; | ||||
| } | ||||
| choice pd-trigger { | ||||
| description | ||||
| "Defines necessary conditions for periodic or on-change | ||||
| trigger."; | ||||
| case periodic { | ||||
| description "Periodic reports."; | ||||
| leaf period { | ||||
| type yang:timeticks; | ||||
| description | ||||
| "Time interval between reports."; | ||||
| } | ||||
| leaf start-time { | ||||
| type yang:date-and-time; | ||||
| description | ||||
| "Timestamp from which reports are started."; | ||||
| } | ||||
| } | ||||
| case on-change { | ||||
| description | ||||
| "On-change trigger and not periodic."; | ||||
| leaf all-data-on-start { | ||||
| type boolean; | ||||
| description | ||||
| "Full update needed on start or not."; | ||||
| } | ||||
| leaf-list excluded-change { | ||||
| type change-type; | ||||
| description | ||||
| "Restrict which changes trigger an update."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| output { | ||||
| list response-list { | ||||
| key "response-index"; | ||||
| description | ||||
| "path discovery response list."; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "error code is "; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "sub code is "; | ||||
| } | ||||
| leaf pd-persistent-id { | ||||
| type string; | ||||
| description "Id to act as a cookie."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| rpc pd-persistent-delete { | ||||
| description | ||||
| "Deletes persistent path discovery."; | ||||
| input { | ||||
| leaf pd-persistent-id { | ||||
| type string; | ||||
| description "Cookie Id to be used in deletion."; | ||||
| } | ||||
| } | ||||
| output { | ||||
| list response-list { | ||||
| key "response-index"; | ||||
| description | ||||
| "path discovery response list."; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "error code is "; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "sub code is "; | ||||
| } | ||||
| } | } | |||
| } | } | |||
| uses coam:path-discovery-data; | ||||
| } | } | |||
| } | ||||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 5. Security Considerations | 5. Security Considerations | |||
| The YANG modules defined in this memo are designed to be accessed via | The YANG modules defined in this memo are designed to be accessed via | |||
| the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the | the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the | |||
| secure transport layer and the mandatory to implement secure | secure transport layer and the mandatory to implement secure | |||
| transport is SSH [RFC6242]. The NETCONF access control model | transport is SSH [RFC6242]. The NETCONF access control model | |||
| skipping to change at page 35, line 4 ¶ | skipping to change at page 14, line 15 ¶ | |||
| name: ietf-connectionless-oam-methods | name: ietf-connectionless-oam-methods | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam- | namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam- | |||
| methods | methods | |||
| prefix: coam-methods | prefix: coam-methods | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [I-D.ietf-lime-yang-connectionless-oam] | [I-D.ietf-lime-yang-connectionless-oam] | |||
| Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | |||
| "Generic YANG Data Model for Connectionless Operations, | "Generic YANG Data Model for Connectionless Operations, | |||
| Administration, and Maintenance(OAM) protocols", draft- | Administration, and Maintenance(OAM) protocols", draft- | |||
| ietf-lime-yang-connectionless-oam-03 (work in progress), | ietf-lime-yang-connectionless-oam-04 (work in progress), | |||
| December 2016. | February 2017. | |||
| [I-D.ietf-netconf-yang-push] | [I-D.ietf-netconf-yang-push] | |||
| Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- | Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- | |||
| Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to | Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to | |||
| YANG datastore push updates", draft-ietf-netconf-yang- | YANG datastore push updates", draft-ietf-netconf-yang- | |||
| push-04 (work in progress), October 2016. | push-06 (work in progress), April 2017. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <http://www.rfc-editor.org/info/rfc3688>. | <http://www.rfc-editor.org/info/rfc3688>. | |||
| skipping to change at page 36, line 31 ¶ | skipping to change at page 15, line 42 ¶ | |||
| [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | |||
| <http://www.rfc-editor.org/info/rfc5880>. | <http://www.rfc-editor.org/info/rfc5880>. | |||
| [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. | [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. | |||
| Weingarten, "An Overview of Operations, Administration, | Weingarten, "An Overview of Operations, Administration, | |||
| and Maintenance (OAM) Tools", RFC 7276, | and Maintenance (OAM) Tools", RFC 7276, | |||
| DOI 10.17487/RFC7276, June 2014, | DOI 10.17487/RFC7276, June 2014, | |||
| <http://www.rfc-editor.org/info/rfc7276>. | <http://www.rfc-editor.org/info/rfc7276>. | |||
| Authors' Addresses | Appendix A. Appendix | |||
| The following are some examples of extensions possible to the yang | ||||
| model. The example discusses persistent methods. | ||||
| The persistent method RPCs are commands to trigger persistent | ||||
| continuity check or path discovery OAM while specifying the options | ||||
| for data-export from the device. Internet Protocol Flow Information | ||||
| Export (IPFIX) [RFC7011] or yang-push [I-D.ietf-netconf-yang-push]. | ||||
| are currently outlined here as data export options and more can be | ||||
| added in future. It should be noted that the persistent methods are | ||||
| used to trigger create, modify and delete the persistent state | ||||
| associated with the data export options. The data export specific | ||||
| configurations are beyond the scope of this document. | ||||
| A.1. OAM Retrieval Persistent Methods YANG Module | ||||
| <CODE BEGINS> file "ietf-connectionless-oam-persistent-methods.yang" | ||||
| identity export-method { | ||||
| description | ||||
| "Base identity to represent a conceptual export-method."; | ||||
| } | ||||
| identity ipfix-export { | ||||
| base export-method; | ||||
| description | ||||
| "IPFIX based export. Configuration provided separately."; | ||||
| } | ||||
| identity yang-push-export { | ||||
| base export-method; | ||||
| description | ||||
| "Yang-push from draft-ietf-netconf-yang-push"; | ||||
| } | ||||
| typedef export-method { | ||||
| type identityref { | ||||
| base export-method; | ||||
| } | ||||
| description | ||||
| "Export method type."; | ||||
| } | ||||
| typedef change-type { | ||||
| type enumeration { | ||||
| enum "create" { | ||||
| description | ||||
| "Change due to a create."; | ||||
| } | ||||
| enum "delete" { | ||||
| description | ||||
| "Change due to a delete."; | ||||
| } | ||||
| enum "modify" { | ||||
| description | ||||
| "Change due to an update."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Different types of changes that may occur."; | ||||
| } | ||||
| rpc cc-persistent-create { | ||||
| if-feature "coam:continuity-check"; | ||||
| description | ||||
| "Generates persistent continuity-check."; | ||||
| input { | ||||
| container destination-tp { | ||||
| uses coam:tp-address; | ||||
| description | ||||
| "Destination test point."; | ||||
| } | ||||
| uses coam:session-type; | ||||
| leaf source-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Source interface."; | ||||
| } | ||||
| leaf outbound-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Outbound interface."; | ||||
| } | ||||
| leaf vrf { | ||||
| type coam:routing-instance-ref; | ||||
| description | ||||
| "VRF instance."; | ||||
| } | ||||
| leaf ttl { | ||||
| type uint8; | ||||
| default "255"; | ||||
| description | ||||
| "Time to live (TTL)."; | ||||
| } | ||||
| leaf data-export-method { | ||||
| type export-method; | ||||
| description | ||||
| "Type of export."; | ||||
| } | ||||
| choice cc-trigger { | ||||
| description | ||||
| "Defines necessary conditions for | ||||
| periodic or on-change trigger."; | ||||
| case periodic { | ||||
| description | ||||
| "Periodic reports."; | ||||
| leaf period { | ||||
| type yang:timeticks; | ||||
| description | ||||
| "Time interval between reports."; | ||||
| } | ||||
| leaf start-time { | ||||
| type yang:date-and-time; | ||||
| description | ||||
| "Timestamp from which reports are started."; | ||||
| } | ||||
| } | ||||
| case on-change { | ||||
| description | ||||
| "On-change trigger and not periodic."; | ||||
| leaf all-data-on-start { | ||||
| type boolean; | ||||
| description | ||||
| "Full update needed on start or not."; | ||||
| } | ||||
| leaf-list excluded-change { | ||||
| type change-type; | ||||
| description | ||||
| "Restrict which changes trigger an update."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| output { | ||||
| list error-code-list { | ||||
| key "response-index"; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "Response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "Error code."; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "Sub code."; | ||||
| } | ||||
| description | ||||
| "Error code list."; | ||||
| } | ||||
| leaf cc-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Id to act as a cookie."; | ||||
| } | ||||
| } | ||||
| } | ||||
| rpc cc-persistent-modify { | ||||
| if-feature "coam:continuity-check"; | ||||
| description | ||||
| "Modifies persistent continuity-check | ||||
| as per RFC7276."; | ||||
| input { | ||||
| leaf cc-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Cookie Id to be used for modifications."; | ||||
| } | ||||
| leaf data-export-method { | ||||
| type export-method; | ||||
| description | ||||
| "Type of export to use."; | ||||
| } | ||||
| choice cc-trigger { | ||||
| description | ||||
| "Defines necessary conditions for | ||||
| periodic or on-change trigger."; | ||||
| case periodic { | ||||
| description | ||||
| "Periodic reports."; | ||||
| leaf period { | ||||
| type yang:timeticks; | ||||
| description | ||||
| "Time interval between reports."; | ||||
| } | ||||
| leaf start-time { | ||||
| type yang:date-and-time; | ||||
| description | ||||
| "Timestamp from which reports are started."; | ||||
| } | ||||
| } | ||||
| case on-change { | ||||
| description | ||||
| "On-change trigger and not periodic."; | ||||
| leaf all-data-on-start { | ||||
| type boolean; | ||||
| description | ||||
| "Full update needed on start or not."; | ||||
| } | ||||
| leaf-list excluded-change { | ||||
| type change-type; | ||||
| description | ||||
| "Restrict which changes trigger an update."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| output { | ||||
| list error-code-list { | ||||
| key "response-index"; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "Response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "Error code"; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "Sub code."; | ||||
| } | ||||
| description | ||||
| "Error code list."; | ||||
| } | ||||
| leaf cc-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Id to represent a cookie."; | ||||
| } | ||||
| } | ||||
| } | ||||
| rpc cc-persistent-delete { | ||||
| if-feature "coam:continuity-check"; | ||||
| description | ||||
| "Deletes persistent continuity-check as per RFC7276."; | ||||
| input { | ||||
| leaf cc-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Cookie Id to be used in deletion."; | ||||
| } | ||||
| } | ||||
| output { | ||||
| list error-code-list { | ||||
| key "response-index"; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "Response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "Error code."; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "Sub code."; | ||||
| } | ||||
| description | ||||
| "Error code list."; | ||||
| } | ||||
| } | ||||
| } | ||||
| rpc pd-persistent-create { | ||||
| description | ||||
| "Generates persistent path discovery."; | ||||
| input { | ||||
| container destination-tp { | ||||
| uses coam:tp-address; | ||||
| description | ||||
| "Destination test point."; | ||||
| } | ||||
| uses coam:session-type; | ||||
| leaf source-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Source interface."; | ||||
| } | ||||
| leaf outbound-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Outbound interface."; | ||||
| } | ||||
| leaf vrf { | ||||
| type coam:routing-instance-ref; | ||||
| description | ||||
| "VRF"; | ||||
| } | ||||
| leaf max-ttl { | ||||
| type uint8; | ||||
| default "255"; | ||||
| description | ||||
| "Max ttl."; | ||||
| } | ||||
| leaf data-export-method { | ||||
| type export-method; | ||||
| description | ||||
| "Type of export."; | ||||
| } | ||||
| choice pd-trigger { | ||||
| description | ||||
| "Defines necessary conditions | ||||
| for periodic or on-change | ||||
| trigger."; | ||||
| case periodic { | ||||
| description | ||||
| "Periodic reports."; | ||||
| leaf period { | ||||
| type yang:timeticks; | ||||
| description | ||||
| "Time interval between reports."; | ||||
| } | ||||
| leaf start-time { | ||||
| type yang:date-and-time; | ||||
| description | ||||
| "Timestamp from which reports are started."; | ||||
| } | ||||
| } | ||||
| case on-change { | ||||
| description | ||||
| "On-change trigger and not periodic."; | ||||
| leaf all-data-on-start { | ||||
| type boolean; | ||||
| description | ||||
| "Full update needed on start or not."; | ||||
| } | ||||
| leaf-list excluded-change { | ||||
| type change-type; | ||||
| description | ||||
| "Restrict which changes trigger an update."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| output { | ||||
| list response-list { | ||||
| key "response-index"; | ||||
| description | ||||
| "Path discovery response list."; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "Response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "Error code is "; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "Sub code is "; | ||||
| } | ||||
| leaf pd-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Id to act as a cookie."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| rpc pd-persistent-modify { | ||||
| description | ||||
| "Modifies persistent path discovery."; | ||||
| input { | ||||
| leaf pd-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Cookie Id to be used for modifications."; | ||||
| } | ||||
| leaf data-export-method { | ||||
| type export-method; | ||||
| description | ||||
| "Type of export."; | ||||
| } | ||||
| choice pd-trigger { | ||||
| description | ||||
| "Defines necessary conditions for periodic or on-change | ||||
| trigger."; | ||||
| case periodic { | ||||
| description | ||||
| "Periodic reports."; | ||||
| leaf period { | ||||
| type yang:timeticks; | ||||
| description | ||||
| "Time interval between reports."; | ||||
| } | ||||
| leaf start-time { | ||||
| type yang:date-and-time; | ||||
| description | ||||
| "Timestamp from which reports are started."; | ||||
| } | ||||
| } | ||||
| case on-change { | ||||
| description | ||||
| "On-change trigger and not periodic."; | ||||
| leaf all-data-on-start { | ||||
| type boolean; | ||||
| description | ||||
| "Full update needed on start or not."; | ||||
| } | ||||
| leaf-list excluded-change { | ||||
| type change-type; | ||||
| description | ||||
| "Restrict which changes trigger an update."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| output { | ||||
| list response-list { | ||||
| key "response-index"; | ||||
| description | ||||
| "path discovery response list."; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "error code is "; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "sub code is "; | ||||
| } | ||||
| leaf pd-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Id to act as a cookie."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| rpc pd-persistent-delete { | ||||
| description | ||||
| "Deletes persistent path discovery."; | ||||
| input { | ||||
| leaf pd-persistent-id { | ||||
| type string; | ||||
| description | ||||
| "Cookie Id to be used in deletion."; | ||||
| } | ||||
| } | ||||
| output { | ||||
| list response-list { | ||||
| key "response-index"; | ||||
| description | ||||
| "path discovery response list."; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "response index."; | ||||
| } | ||||
| leaf status-code { | ||||
| type int32; | ||||
| description | ||||
| "error code is "; | ||||
| } | ||||
| leaf status-sub-code { | ||||
| type uint8; | ||||
| description | ||||
| "sub code is "; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| <CODE ENDS> | ||||
| Authors' Addresses | ||||
| Deepak Kumar | Deepak Kumar | |||
| CISCO Systems | CISCO Systems | |||
| 510 McCarthy Blvd | 510 McCarthy Blvd | |||
| Milpitas, CA 95035 | Milpitas, CA 95035 | |||
| USA | USA | |||
| Email: dekumar@cisco.com | Email: dekumar@cisco.com | |||
| Michael Wang | Michael Wang | |||
| Huawei Technologies,Co.,Ltd | Huawei Technologies,Co.,Ltd | |||
| End of changes. 53 change blocks. | ||||
| 1178 lines changed or deleted | 655 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||