| < draft-ietf-lime-yang-connectionless-oam-methods-09.txt | draft-ietf-lime-yang-connectionless-oam-methods-10.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: April 14, 2018 Q. Wu | Expires: April 26, 2018 Q. Wu | |||
| Huawei | Huawei | |||
| R. Rahman | R. Rahman | |||
| S. Raghavan | S. Raghavan | |||
| Cisco | Cisco | |||
| October 11, 2017 | October 23, 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-09 | draft-ietf-lime-yang-connectionless-oam-methods-10 | |||
| 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 technology-independent RPC | connectionless OAM protocols. It provides technology-independent RPC | |||
| operations for connectionless OAM protocols. The retrieval methods | operations 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 interacting OAM | different levels through a unified interface) and interacting 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 April 14, 2018. | This Internet-Draft will expire on April 26, 2018. | |||
| 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 | |||
| skipping to change at page 2, line 32 ¶ | skipping to change at page 2, line 32 ¶ | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 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 . 4 | |||
| 3.1. RPC operation definitions . . . . . . . . . . . . . . . . 5 | 3.1. RPC operation definitions . . . . . . . . . . . . . . . . 5 | |||
| 3.2. OAM Retrieval Methods Hierarchy . . . . . . . . . . . . . 8 | 3.2. OAM Retrieval Methods Hierarchy . . . . . . . . . . . . . 8 | |||
| 4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 15 | 4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 15 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 22 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 23 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 23 | 7.2. Informative References . . . . . . . . . . . . . . . . . 24 | |||
| Appendix A. Appdendix A.1 Extending Connectionless OAM Method | Appendix A. Appdendix A.1 Extending Connectionless OAM Method | |||
| Module Example . . . . . . . . . . . . . . . . . . . 24 | Module Example . . . . . . . . . . . . . . . . . . . 24 | |||
| Appendix B. Appendix A.2 Example of new retrieval procedures | Appendix B. Appendix A.2 Example of new retrieval procedures | |||
| Model . . . . . . . . . . . . . . . . . . . . . . . 25 | Model . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 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: | |||
| skipping to change at page 5, line 34 ¶ | skipping to change at page 5, line 34 ¶ | |||
| corresponding technology specific parameters. To facilitate this for | corresponding technology specific parameters. To facilitate this for | |||
| future enhancements to data retrieval methods, the RPCs are captured | future enhancements to data retrieval methods, the RPCs are captured | |||
| under a separate module. | under a separate module. | |||
| The generic 'path-discovery-data' and 'continuity-check-data' | The generic 'path-discovery-data' and 'continuity-check-data' | |||
| groupings are used as data outputs from different RPCs described in | groupings are used as data outputs from different RPCs described in | |||
| this document. Similar methods including other RPCs can retrieve the | this document. Similar methods including other RPCs can retrieve the | |||
| data using the same data model. | data using the same data model. | |||
| rpc continuity-check { | rpc continuity-check { | |||
| if-feature coam:continuity-check; | if-feature cl-oam:continuity-check; | |||
| description | description | |||
| "Continuity-check RPC operation as per RFC7276."; | "Continuity-check RPC operation as per RFC7276."; | |||
| input { | input { | |||
| uses rpc-input-parameters; | uses rpc-input-parameters; | |||
| .... | .... | |||
| } | } | |||
| output { | output { | |||
| container error-code { | container error-code { | |||
| leaf protocol-id { | leaf protocol-id { | |||
| type identityref { | type identityref { | |||
| base protocol-id; | base protocol-id; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Protocol used in CC. This could be a standard | "Protocol used in CC. This could be a standard | |||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | protocol (e.g., TCP/IP protocols, MPLS etc.,) | |||
| or a proprietary protocol as identified by | or a proprietary protocol as identified by | |||
| this field."; | this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "An optional meta-data related to the protocol ID. | "An optional meta-data related to the protocol ID. | |||
| For eg., this could be the Internet Protocol number | For e.g., this could be the Internet Protocol number | |||
| for standard Internet Protocols for help in protocol | for standard Internet Protocols for help in protocol | |||
| processing."; | processing."; | |||
| } | } | |||
| leaf status-code { | leaf status-code { | |||
| type identityref{ | type identityref{ | |||
| base status-code; | base status-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Error code for CC."; | "Error code for CC."; | |||
| skipping to change at page 6, line 33 ¶ | skipping to change at page 6, line 33 ¶ | |||
| type identityref{ | type identityref{ | |||
| base status-sub-code; | base status-sub-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Sub code for CC."; | "Sub code for CC."; | |||
| } | } | |||
| description | description | |||
| "Error code and Sub Code for CC."; | "Error code and Sub Code for CC."; | |||
| } | } | |||
| uses coam:continuity-check-data; | uses cl-oam:continuity-check-data; | |||
| } | } | |||
| } | } | |||
| rpc path-discovery { | rpc path-discovery { | |||
| description | description | |||
| "path discovery RPC operation as per RFC7276."; | "path discovery RPC operation as per RFC7276."; | |||
| input { | input { | |||
| uses rpc-input-parameters; | uses rpc-input-parameters; | |||
| ..... | ..... | |||
| } | } | |||
| skipping to change at page 7, line 13 ¶ | skipping to change at page 7, line 13 ¶ | |||
| description | description | |||
| "Response index."; | "Response index."; | |||
| } | } | |||
| leaf protocol-id { | leaf protocol-id { | |||
| type identityref { | type identityref { | |||
| base protocol-id; | base protocol-id; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Protocol used in PD. This could be a standard | "Protocol used in PD. This could be a standard | |||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | protocol (e.g., TCP/IP protocols, MPLS etc.,) | |||
| or a proprietary protocol as identified by | or a proprietary protocol as identified by | |||
| this field."; | this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "An optional meta-data related to the protocol ID. | "An optional meta-data related to the protocol ID. | |||
| For eg., this could be the Internet Protocol number | For e.g., this could be the Internet Protocol number | |||
| for standard Internet Protocols for help in protocol | for standard Internet Protocols for help in protocol | |||
| processing."; | processing."; | |||
| } | } | |||
| leaf status-code { | leaf status-code { | |||
| type identityref{ | type identityref{ | |||
| base status-code; | base status-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Error code for Path Discovery. "; | "Error code for Path Discovery. "; | |||
| } | } | |||
| leaf status-sub-code { | leaf status-sub-code { | |||
| type identityref{ | type identityref{ | |||
| base status-sub-code; | base status-sub-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Sub code for Path Discovery. "; | "Sub code for Path Discovery. "; | |||
| } | } | |||
| } | } | |||
| uses coam:path-discovery-data; | uses cl-oam:path-discovery-data; | |||
| } | } | |||
| } | } | |||
| Snippet of data hierarchy related to RPC operations | Snippet of data hierarchy related to RPC operations | |||
| 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 {cl-oam:continuity-check}? | |||
| | +---w input | | +---w input | |||
| | | +---w destination-tp | | | +---w destination-tp | |||
| | | | +---w tp-location-type identityref | | | | +---w tp-location-type identityref | |||
| | | | +---w mac-address | | | | +---w mac-address | |||
| | | | | +---w mac-address yang:mac-address | | | | | +---w mac-address yang:mac-address | |||
| | | | +---w ipv4-address | | | | +---w ipv4-address | |||
| | | | | +---w ipv4-address inet:ipv4-address | | | | | +---w ipv4-address inet:ipv4-address | |||
| | | | +---w ipv6-address | | | | +---w ipv6-address | |||
| | | | | +---w ipv6-address inet:ipv6-address | | | | | +---w ipv6-address inet:ipv6-address | |||
| | | | +---w tp-attribute | | | | +---w tp-attribute | |||
| skipping to change at page 8, line 51 ¶ | skipping to change at page 8, line 51 ¶ | |||
| | | | | | +---w source-address? inet:ip-address | | | | | | +---w source-address? inet:ip-address | |||
| | | | | | +---w group-ip-address? inet:ip-address | | | | | | +---w group-ip-address? inet:ip-address | |||
| | | | | +--:(vpn) | | | | | +--:(vpn) | |||
| | | | | | +---w as-number? inet:as-number | | | | | | +---w as-number? inet:as-number | |||
| | | | | +--:(global-id) | | | | | +--:(global-id) | |||
| | | | | +---w lsp-id? string | | | | | +---w lsp-id? string | |||
| | | | +---w system-info | | | | +---w system-info | |||
| | | | +---w system-id? rt:router-id | | | | +---w system-id? rt:router-id | |||
| | | +---w source-interface if:interface-ref | | | +---w source-interface if:interface-ref | |||
| | | +---w outbound-interface if:interface-ref | | | +---w outbound-interface if:interface-ref | |||
| | | +---w vrf? coam:routing-instance-ref | | | +---w vrf? cl-oam:routing-instance-ref | |||
| | | +---w session-type? enumeration | | | +---w session-type? enumeration | |||
| | | +---w count? uint32 | | | +---w count? uint32 | |||
| | | +---w ttl? uint8 | | | +---w ttl? uint8 | |||
| | | +---w packet-size? uint32 | | | +---w packet-size? uint32 | |||
| | +--ro output | | +--ro output | |||
| | +--ro error-code | | +--ro error-code | |||
| | | +--ro protocol-id identityref | | | +--ro protocol-id identityref | |||
| | | +--ro protocol-id-meta-data uint64 | | | +--ro protocol-id-meta-data? uint64 | |||
| | | +--ro status-code identityref | | | +--ro status-code identityref | |||
| | | +--ro status-sub-code identityref | | | +--ro status-sub-code identityref | |||
| | +--ro src-test-point | | +--ro src-test-point | |||
| | | +--ro ni? routing-instance-ref | | | +--ro ni? routing-instance-ref | |||
| | | +--ro tp-location-type identityref | | | +--ro tp-location-type identityref | |||
| | | +--ro mac-address | | | +--ro mac-address | |||
| | | | +--ro mac-address yang:mac-address | | | | +--ro mac-address yang:mac-address | |||
| | | +--ro ipv4-address | | | +--ro ipv4-address | |||
| | | | +--ro ipv4-address inet:ipv4-address | | | | +--ro ipv4-address inet:ipv4-address | |||
| | | +--ro ipv6-address | | | +--ro ipv6-address | |||
| | | | +--ro ipv6-address inet:ipv6-address | | | | +--ro ipv6-address inet:ipv6-address | |||
| | | +--ro tp-attribute | | | +--ro tp-attribute | |||
| skipping to change at page 10, line 47 ¶ | skipping to change at page 10, line 47 ¶ | |||
| | | | +--ro system-id? rt:router-id | | | | +--ro system-id? rt:router-id | |||
| | | +--ro ingress-intf-name? if:interface-ref | | | +--ro ingress-intf-name? if:interface-ref | |||
| | +--ro sequence-number? uint64 | | +--ro sequence-number? uint64 | |||
| | +--ro hop-cnt? uint8 | | +--ro hop-cnt? uint8 | |||
| | +--ro session-packet-statistics | | +--ro session-packet-statistics | |||
| | | +--ro rx-packet-count? uint32 | | | +--ro rx-packet-count? uint32 | |||
| | | +--ro tx-packet-count? uint32 | | | +--ro tx-packet-count? uint32 | |||
| | | +--ro rx-bad-packet? uint32 | | | +--ro rx-bad-packet? uint32 | |||
| | | +--ro tx-packet-failed? uint32 | | | +--ro tx-packet-failed? uint32 | |||
| | +--ro session-error-statistics | | +--ro session-error-statistics | |||
| | | +--ro packet-drops-count? uint32 | | | +--ro packet-loss-count? uint32 | |||
| | | +--ro loss-ratio? uint8 | ||||
| | | +--ro packet-reorder-count? uint32 | | | +--ro packet-reorder-count? uint32 | |||
| | | +--ro packets-out-of-seq-count? uint32 | | | +--ro packets-out-of-seq-count? uint32 | |||
| | | +--ro packets-dup-count? uint32 | | | +--ro packets-dup-count? uint32 | |||
| | +--ro session-delay-statistics | | +--ro session-delay-statistics | |||
| | | +--ro time-resolution-value? identityref | | | +--ro time-interval-value? identityref | |||
| | | +--ro min-delay-value? uint32 | | | +--ro min-delay-value? uint32 | |||
| | | +--ro max-delay-value? uint32 | | | +--ro max-delay-value? uint32 | |||
| | | +--ro average-delay-value? uint32 | | | +--ro average-delay-value? uint32 | |||
| | +--ro session-jitter-statistics | | +--ro session-jitter-statistics | |||
| | +--ro time-resolution-value? identityref | | +--ro interval-value? identityref | |||
| | +--ro min-jitter-value? uint32 | | +--ro min-jitter-value? uint32 | |||
| | +--ro max-jitter-value? uint32 | | +--ro max-jitter-value? uint32 | |||
| | +--ro average-jitter-value? uint32 | | +--ro average-jitter-value? uint32 | |||
| +---x path-discovery {coam:path-discovery}? | +---x path-discovery {cl-oam:path-discovery}? | |||
| +---w input | +---w input | |||
| | +---w destination-tp | | +---w destination-tp | |||
| | | +---w tp-location-type identityref | | | +---w tp-location-type identityref | |||
| | | +---w mac-address | | | +---w mac-address | |||
| | | | +---w mac-address yang:mac-address | | | | +---w mac-address yang:mac-address | |||
| | | +---w ipv4-address | | | +---w ipv4-address | |||
| | | | +---w ipv4-address inet:ipv4-address | | | | +---w ipv4-address inet:ipv4-address | |||
| | | +---w ipv6-address | | | +---w ipv6-address | |||
| | | | +---w ipv6-address inet:ipv6-address | | | | +---w ipv6-address inet:ipv6-address | |||
| | | +---w tp-attribute | | | +---w tp-attribute | |||
| skipping to change at page 12, line 4 ¶ | skipping to change at page 12, line 5 ¶ | |||
| | | | | +---w source-address? inet:ip-address | | | | | +---w source-address? inet:ip-address | |||
| | | | | +---w group-ip-address? inet:ip-address | | | | | +---w group-ip-address? inet:ip-address | |||
| | | | +--:(vpn) | | | | +--:(vpn) | |||
| | | | | +---w as-number? inet:as-number | | | | | +---w as-number? inet:as-number | |||
| | | | +--:(global-id) | | | | +--:(global-id) | |||
| | | | +---w lsp-id? string | | | | +---w lsp-id? string | |||
| | | +---w system-info | | | +---w system-info | |||
| | | +---w system-id? rt:router-id | | | +---w system-id? rt:router-id | |||
| | +---w source-interface if:interface-ref | | +---w source-interface if:interface-ref | |||
| | +---w outbound-interface if:interface-ref | | +---w outbound-interface if:interface-ref | |||
| | +---w vrf? coam:routing-instance-ref | | +---w vrf? cl-oam:routing-instance-ref | |||
| | +---w session-type? enumeration | | +---w session-type? enumeration | |||
| | +---w max-ttl? uint8 | | +---w max-ttl? uint8 | |||
| +--ro output | +--ro output | |||
| +--ro response-list* [response-index] | +--ro response-list* [response-index] | |||
| | +--ro response-index uint32 | | +--ro response-index uint32 | |||
| | +--ro protocol-id identityref | | +--ro protocol-id identityref | |||
| | +--ro protocol-id-meta-data uint64 | | +--ro protocol-id-meta-data? uint64 | |||
| | +--ro status-code identityref | | +--ro status-code identityref | |||
| | +--ro status-sub-code identityref | | +--ro status-sub-code identityref | |||
| +--ro src-test-point | +--ro src-test-point | |||
| | +--ro ni? routing-instance-ref | | +--ro ni? routing-instance-ref | |||
| | +--ro tp-location-type identityref | | +--ro tp-location-type identityref | |||
| | +--ro mac-address | | +--ro mac-address | |||
| | | +--ro mac-address yang:mac-address | | | +--ro mac-address yang:mac-address | |||
| | +--ro ipv4-address | | +--ro ipv4-address | |||
| | | +--ro ipv4-address inet:ipv4-address | | | +--ro ipv4-address inet:ipv4-address | |||
| | +--ro ipv6-address | | +--ro ipv6-address | |||
| | | +--ro ipv6-address inet:ipv6-address | | | +--ro ipv6-address inet:ipv6-address | |||
| | +--ro tp-attribute | | +--ro tp-attribute | |||
| skipping to change at page 13, line 46 ¶ | skipping to change at page 13, line 47 ¶ | |||
| | +--ro system-info | | +--ro system-info | |||
| | +--ro system-id? rt:router-id | | +--ro system-id? rt:router-id | |||
| +--ro sequence-number? uint64 | +--ro sequence-number? uint64 | |||
| +--ro hop-cnt? uint8 | +--ro hop-cnt? uint8 | |||
| +--ro session-packet-statistics | +--ro session-packet-statistics | |||
| | +--ro rx-packet-count? uint32 | | +--ro rx-packet-count? uint32 | |||
| | +--ro tx-packet-count? uint32 | | +--ro tx-packet-count? uint32 | |||
| | +--ro rx-bad-packet? uint32 | | +--ro rx-bad-packet? uint32 | |||
| | +--ro tx-packet-failed? uint32 | | +--ro tx-packet-failed? uint32 | |||
| +--ro session-error-statistics | +--ro session-error-statistics | |||
| | +--ro packet-drops-count? uint32 | | +--ro packet-loss-count? uint32 | |||
| | +--ro loss-ratio? uint8 | ||||
| | +--ro packet-reorder-count? uint32 | | +--ro packet-reorder-count? uint32 | |||
| | +--ro packets-out-of-seq-count? uint32 | | +--ro packets-out-of-seq-count? uint32 | |||
| | +--ro packets-dup-count? uint32 | | +--ro packets-dup-count? uint32 | |||
| +--ro session-delay-statistics | +--ro session-delay-statistics | |||
| | +--ro time-resolution-value? identityref | | +--ro time-interval-value? identityref | |||
| | +--ro min-delay-value? uint32 | | +--ro min-delay-value? uint32 | |||
| | +--ro max-delay-value? uint32 | | +--ro max-delay-value? uint32 | |||
| | +--ro average-delay-value? uint32 | | +--ro average-delay-value? uint32 | |||
| +--ro session-jitter-statistics | +--ro session-jitter-statistics | |||
| | +--ro time-resolution-value? identityref | | +--ro interval-value? identityref | |||
| | +--ro min-jitter-value? uint32 | | +--ro min-jitter-value? uint32 | |||
| | +--ro max-jitter-value? uint32 | | +--ro max-jitter-value? uint32 | |||
| | +--ro average-jitter-value? uint32 | | +--ro average-jitter-value? uint32 | |||
| +--ro path-verification | +--ro path-verification | |||
| | +--ro flow-info? string | | +--ro flow-info? string | |||
| | +--ro session-path-verification-statistics | | +--ro session-path-verification-statistics | |||
| | +--ro verified-count? uint32 | | +--ro verified-count? uint32 | |||
| | +--ro failed-count? uint32 | | +--ro failed-count? uint32 | |||
| +--ro path-trace-info | +--ro path-trace-info | |||
| +--ro path-trace-info-list* [index] | +--ro path-trace-info-list* [index] | |||
| +--ro index uint32 | +--ro index uint32 | |||
| +--ro ni? routing-instance-ref | +--ro ni? routing-instance-ref | |||
| +--ro tp-location-type identityref | +--ro tp-location-type identityref | |||
| +--ro mac-address | +--ro mac-address | |||
| | +--ro mac-address yang:mac-address | | +--ro mac-address yang:mac-address | |||
| +--ro ipv4-address | +--ro ipv4-address | |||
| | +--ro ipv4-address inet:ipv4-address | | +--ro ipv4-address inet:ipv4-address | |||
| +--ro ipv6-address | +--ro ipv6-address | |||
| | +--ro ipv6-address inet:ipv6-address | | +--ro ipv6-address inet:ipv6-address | |||
| +--ro tp-attribute | +--ro tp-attribute | |||
| | +--ro tp-attribute-type? address-attribute-type | | +--ro tp-attribute-type? address-attribute-type | |||
| | +--ro (tp-attribute-value)? | | +--ro (tp-attribute-value)? | |||
| | +--:(ip-prefix) | | +--:(ip-prefix) | |||
| skipping to change at page 15, line 7 ¶ | skipping to change at page 15, line 9 ¶ | |||
| | +--ro (root-address)? | | +--ro (root-address)? | |||
| | +--:(ip-address) | | +--:(ip-address) | |||
| | | +--ro source-address? inet:ip-address | | | +--ro source-address? inet:ip-address | |||
| | | +--ro group-ip-address? inet:ip-address | | | +--ro group-ip-address? inet:ip-address | |||
| | +--:(vpn) | | +--:(vpn) | |||
| | | +--ro as-number? inet:as-number | | | +--ro as-number? inet:as-number | |||
| | +--:(global-id) | | +--:(global-id) | |||
| | +--ro lsp-id? string | | +--ro lsp-id? string | |||
| +--ro system-info | +--ro system-info | |||
| | +--ro system-id? rt:router-id | | +--ro system-id? rt:router-id | |||
| +--ro timestamp-type? uint32 | +--ro timestamp-type? identityref | |||
| +--ro timestamp-sec? uint32 | +--ro timestamp-64bit | |||
| +--ro timestamp-nanosec? uint32 | | +--ro timestamp-sec? uint32 | |||
| +--ro ingress-intf-name? if:interface-ref | | +--ro timestamp-nanosec? uint32 | |||
| +--ro egress-intf-name? if:interface-ref | +--ro timestamp-80bit {ptp-long-format}? | |||
| +--ro queue-depth? uint32 | | +--ro timestamp-sec? uint64 | |||
| +--ro transit-delay? uint32 | | +--ro timestamp-nanosec? uint32 | |||
| +--ro app-meta-data? uint64 | +--ro ntp-timestamp-32bit {ntp-short-format}? | |||
| | +--ro timestamp-sec? uint16 | ||||
| | +--ro timestamp-nanosec? uint16 | ||||
| +--ro icmp-timestamp-32bit {icmp-timestamp}? | ||||
| | +--ro timestamp-millisec? uint32 | ||||
| +--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 | ||||
| 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@2017-09-06.yang" | <CODE BEGINS> file "ietf-connectionless-oam-methods@2017-09-06.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 cloam-methods; | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix if; | prefix if; | |||
| } | } | |||
| import ietf-connectionless-oam { | import ietf-connectionless-oam { | |||
| prefix coam; | prefix cl-oam; | |||
| } | } | |||
| organization | organization | |||
| "IETF LIME Working Group"; | "IETF LIME Working Group"; | |||
| contact | contact | |||
| "Deepak Kumar dekumar@cisco.com | "Deepak Kumar dekumar@cisco.com | |||
| Qin Wu bill.wu@huawei.com | Qin Wu bill.wu@huawei.com | |||
| S Raghavan srihari@cisco.com | S Raghavan srihari@cisco.com | |||
| Zitao Wang wangzitao@huawei.com | Zitao Wang wangzitao@huawei.com | |||
| R Rahman rrahman@cisco.com"; | R Rahman rrahman@cisco.com"; | |||
| description | description | |||
| skipping to change at page 16, line 4 ¶ | skipping to change at page 16, line 15 ¶ | |||
| in a protocol Independent manner. | in a protocol Independent manner. | |||
| It is assumed that each protocol maps | It is assumed that each protocol maps | |||
| corresponding abstracts to its native format. | corresponding abstracts to its native format. | |||
| Each protocol may extend the YANG model defined | Each protocol may extend the YANG model defined | |||
| here to include protocol specific extensions"; | here to include protocol specific extensions"; | |||
| revision 2017-09-06{ | revision 2017-09-06{ | |||
| description | description | |||
| "08 version"; | "08 version"; | |||
| reference "draft-ietf-lime-yang-connectionless-oam-methods"; | reference "draft-ietf-lime-yang-connectionless-oam-methods"; | |||
| } | } | |||
| identity protocol-id { | identity protocol-id { | |||
| description | description | |||
| "A generic protocol identifier."; | "A generic protocol identifier."; | |||
| } | } | |||
| identity protocol-id-internet { | identity protocol-id-internet { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "Internet Protocols."; | "Internet Protocols."; | |||
| } | } | |||
| identity protocol-id-propreitary { | identity protocol-id-propreitary { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "Propreitary protocol (eg.,IP SLA)."; | "Propreitary protocol (e.g.,IP SLA)."; | |||
| } | } | |||
| identity protocol-id-sfc { | identity protocol-id-sfc { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "Service Function Chaining."; | "Service Function Chaining."; | |||
| } | } | |||
| identity protocol-id-mpls { | identity protocol-id-mpls { | |||
| base protocol-id; | base protocol-id; | |||
| skipping to change at page 17, line 28 ¶ | skipping to change at page 17, line 40 ¶ | |||
| "Indicates that the path discovery message is invalid"; | "Indicates that the path discovery message is invalid"; | |||
| } | } | |||
| identity status-sub-code { | identity status-sub-code { | |||
| description | description | |||
| "Base status sub code"; | "Base status sub code"; | |||
| } | } | |||
| grouping rpc-input-parameters { | grouping rpc-input-parameters { | |||
| container destination-tp { | container destination-tp { | |||
| uses coam:tp-address; | uses cl-oam:tp-address; | |||
| description | description | |||
| "Destination test point."; | "Destination test point."; | |||
| } | } | |||
| leaf source-interface { | leaf source-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Source interface."; | "Source interface."; | |||
| } | } | |||
| leaf outbound-interface { | leaf outbound-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Outbound interface."; | "Outbound interface."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type coam:routing-instance-ref; | type cl-oam:routing-instance-ref; | |||
| description | description | |||
| "VRF instance."; | "VRF instance."; | |||
| } | } | |||
| description | description | |||
| "Grouping for RPC input parameters"; | "Grouping for RPC input parameters"; | |||
| } | } | |||
| rpc continuity-check { | rpc continuity-check { | |||
| if-feature "coam:continuity-check"; | if-feature "cl-oam:continuity-check"; | |||
| description | description | |||
| "Continuity-check RPC operation as per RFC7276."; | "Continuity-check RPC operation as per RFC7276."; | |||
| input { | input { | |||
| uses rpc-input-parameters; | uses rpc-input-parameters; | |||
| uses coam:session-type { | uses cl-oam:session-type { | |||
| description "If session-type is specified, then session-type | description "If session-type is specified, then session-type | |||
| must be set to on-demand"; | must be set to on-demand"; | |||
| } | } | |||
| leaf count { | leaf count { | |||
| type uint32 { | type uint32 { | |||
| range 1..4294967295 { | range 0..4294967295 { | |||
| description | description | |||
| "The overall number of packet to be transmitted | "The overall number of packet to be transmitted | |||
| by the sender. If the count is set to 4294967295, | by the sender. If the count is set to 4294967295, | |||
| it indicates that the session will be run forever"; | it indicates that the session will be run forever"; | |||
| } | } | |||
| } | } | |||
| default "5"; | default "5"; | |||
| description | description | |||
| "Specifies the number of | "Specifies the number of | |||
| packets that will be sent. By | packets that will be sent. By | |||
| skipping to change at page 19, line 11 ¶ | skipping to change at page 19, line 23 ¶ | |||
| } | } | |||
| output { | output { | |||
| container error-code { | container error-code { | |||
| leaf protocol-id { | leaf protocol-id { | |||
| type identityref { | type identityref { | |||
| base protocol-id; | base protocol-id; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Protocol used in CC. This could be a standard | "Protocol used in CC. This could be a standard | |||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | protocol (e.g., TCP/IP protocols, MPLS etc.,) | |||
| or a proprietary protocol as identified by | or a proprietary protocol as identified by | |||
| this field."; | this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "An optional meta-data related to the protocol ID. | "An optional meta-data related to the protocol ID. | |||
| For eg., this could be the Internet Protocol number | For e.g., this could be the Internet Protocol number | |||
| for standard Internet Protocols for help in protocol | for standard Internet Protocols for help in protocol | |||
| processing."; | processing."; | |||
| } | } | |||
| leaf status-code { | leaf status-code { | |||
| type identityref{ | type identityref{ | |||
| base status-code; | base status-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Error code for continuity-check message, that is | "Error code for continuity-check message, that is | |||
| skipping to change at page 19, line 47 ¶ | skipping to change at page 20, line 11 ¶ | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Error sub code for continuity-check message, that is | "Error sub code for continuity-check message, that is | |||
| relevant to the error-code reported of the protocol | relevant to the error-code reported of the protocol | |||
| that is used for CC."; | that is used for CC."; | |||
| } | } | |||
| description | description | |||
| "Error code and Sub Code for continuity-check message."; | "Error code and Sub Code for continuity-check message."; | |||
| } | } | |||
| uses coam:continuity-check-data; | uses cl-oam:continuity-check-data; | |||
| } | } | |||
| } | } | |||
| rpc path-discovery { | rpc path-discovery { | |||
| if-feature "coam:path-discovery"; | if-feature "cl-oam:path-discovery"; | |||
| description | description | |||
| "Path discovery RPC operation as per RFC7276."; | "Path discovery RPC operation as per RFC7276."; | |||
| input { | input { | |||
| uses rpc-input-parameters; | uses rpc-input-parameters; | |||
| uses coam:session-type { | uses cl-oam:session-type { | |||
| description "If session-type is specified, then session-type | description "If session-type is specified, then session-type | |||
| must be set to on-demand"; | must be set to on-demand"; | |||
| } | } | |||
| leaf max-ttl { | leaf max-ttl { | |||
| type uint8; | type uint8; | |||
| default "255"; | default "255"; | |||
| description | description | |||
| "Maximum TTL indicates the maixmum number of hops that | "Maximum TTL indicates the maixmum number of hops that | |||
| a packet is permitted to travel before being discarded | a packet is permitted to travel before being discarded | |||
| by a router. By default, the maximimum TTL is set to 255."; | by a router. By default, the maximimum TTL is set to 255."; | |||
| skipping to change at page 20, line 40 ¶ | skipping to change at page 21, line 4 ¶ | |||
| description | description | |||
| "Response index."; | "Response index."; | |||
| } | } | |||
| leaf protocol-id { | leaf protocol-id { | |||
| type identityref { | type identityref { | |||
| base protocol-id; | base protocol-id; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Protocol used in PD. This could be a standard | "Protocol used in PD. This could be a standard | |||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | protocol (e.g., TCP/IP protocols, MPLS etc.,) | |||
| or a proprietary protocol as identified by | or a proprietary protocol as identified by | |||
| this field."; | this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "An optional meta-data related to the protocol ID. | "An optional meta-data related to the protocol ID. | |||
| For eg., this could be the Internet Protocol number | For e.g., this could be the Internet Protocol number | |||
| for standard Internet Protocols for help in protocol | for standard Internet Protocols for help in protocol | |||
| processing."; | processing."; | |||
| } | } | |||
| leaf status-code { | leaf status-code { | |||
| type identityref{ | type identityref{ | |||
| base status-code; | base status-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Error code for path-discovery response message, that is | "Error code for path-discovery response message, that is | |||
| skipping to change at page 21, line 26 ¶ | skipping to change at page 21, line 38 ¶ | |||
| type identityref{ | type identityref{ | |||
| base status-sub-code; | base status-sub-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Error sub code for path-discovery message, that is | "Error sub code for path-discovery message, that is | |||
| relevant to the error-code reported of the protocol | relevant to the error-code reported of the protocol | |||
| that is used for PD."; | that is used for PD."; | |||
| } | } | |||
| } | } | |||
| uses coam:path-discovery-data; | uses cl-oam:path-discovery-data; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 5. Security Considerations | 5. Security Considerations | |||
| The YANG module defined in this document is designed to be accessed | The YANG module defined in this document is designed to be accessed | |||
| via network management protocols such as NETCONF [RFC6241] or | via network management protocols such as NETCONF [RFC6241] or | |||
| skipping to change at page 22, line 33 ¶ | skipping to change at page 22, line 45 ¶ | |||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
| This document registers a YANG module in the YANG Module Names | This document registers a YANG module in the YANG Module Names | |||
| registry [RFC6020]. | registry [RFC6020]. | |||
| 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: cloam-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, | |||
| skipping to change at page 25, line 5 ¶ | skipping to change at page 25, line 5 ¶ | |||
| Appendix A. Appdendix A.1 Extending Connectionless OAM Method Module | Appendix A. Appdendix A.1 Extending Connectionless OAM Method Module | |||
| Example | Example | |||
| The following is an example of extensions possible to "ietf- | The following is an example of extensions possible to "ietf- | |||
| connectionless-oam-methods" YANG model defined in this document. | connectionless-oam-methods" YANG model defined in this document. | |||
| The snippet below depicts an example of augmenting the "ietf- | The snippet below depicts an example of augmenting the "ietf- | |||
| connectionless-oam-methods" YANG model with ICMP ping attributes: | connectionless-oam-methods" YANG model with ICMP ping attributes: | |||
| augment "/coam-methods:continutiy-check" | augment "/cloam-methods:continutiy-check" | |||
| +"/coam-methods:output"{ | +"/cloam-methods:output"{ | |||
| container session-rtt-statistics{ | container session-rtt-statistics{ | |||
| leaf min-rtt{ | leaf min-rtt{ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "This minimum ping round-trip-time(RTT) received."; | "This minimum ping round-trip-time(RTT) received."; | |||
| } | } | |||
| leaf max-rtt{ | leaf max-rtt{ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "This maximum ping round-trip-time(RTT) received."; | "This maximum ping round-trip-time(RTT) received."; | |||
| skipping to change at page 25, line 50 ¶ | skipping to change at page 25, line 50 ¶ | |||
| export options and more can be added in future. | export options and more can be added in future. | |||
| The YANG module "example-cl-oam-persistent-methods" shown below is | The YANG module "example-cl-oam-persistent-methods" shown below is | |||
| intended as an illustration rather than a real definition of a RPC | intended as an illustration rather than a real definition of a RPC | |||
| operation model for persistent data retrieval. For the sake of | operation model for persistent data retrieval. For the sake of | |||
| brevity, this module does not obey all the guidelines specified in | brevity, this module does not obey all the guidelines specified in | |||
| [RFC6087]. | [RFC6087]. | |||
| module example-cl-oam-persistent-methods { | module example-cl-oam-persistent-methods { | |||
| namespace "http://example.com/cl-oam-persistent-methods"; | namespace "http://example.com/cl-oam-persistent-methods"; | |||
| prefix pcoam-methods; | prefix pcloam-methods; | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix if; | prefix if; | |||
| } | } | |||
| import ietf-connectionless-oam { | import ietf-connectionless-oam { | |||
| prefix coam; | prefix cl-oam; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| } | } | |||
| identity export-method { | identity export-method { | |||
| description | description | |||
| "Base identity to represent a conceptual export-method."; | "Base identity to represent a conceptual export-method."; | |||
| } | } | |||
| identity ipfix-export { | identity ipfix-export { | |||
| base export-method; | base export-method; | |||
| skipping to change at page 27, line 29 ¶ | skipping to change at page 27, line 29 ¶ | |||
| enum "modify" { | enum "modify" { | |||
| description | description | |||
| "Change due to an update."; | "Change due to an update."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Different types of changes that may occur."; | "Different types of changes that may occur."; | |||
| } | } | |||
| rpc cc-get-persistent-id { | rpc cc-get-persistent-id { | |||
| if-feature "coam:continuity-check"; | if-feature "cl-oam:continuity-check"; | |||
| description | description | |||
| "Obtains continuity-check persistent identification given mapping | "Obtains continuity-check persistent identification given mapping | |||
| parameters as input."; | parameters as input."; | |||
| input { | input { | |||
| container destination-tp { | container destination-tp { | |||
| uses coam:tp-address; | uses cl-oam:tp-address; | |||
| description | description | |||
| "Destination test point."; | "Destination test point."; | |||
| } | } | |||
| uses coam:session-type; | uses cl-oam:session-type; | |||
| leaf source-interface { | leaf source-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Source interface."; | "Source interface."; | |||
| } | } | |||
| leaf outbound-interface { | leaf outbound-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Outbound interface."; | "Outbound interface."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type coam:routing-instance-ref; | type cl-oam:routing-instance-ref; | |||
| description | description | |||
| "VRF instance."; | "VRF instance."; | |||
| } | } | |||
| } | } | |||
| output { | output { | |||
| container error-code { | container error-code { | |||
| leaf protocol-id { | leaf protocol-id { | |||
| type identityref { | type identityref { | |||
| base protocol-id; | base protocol-id; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Protocol used. This could be a standard | "Protocol used. This could be a standard | |||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | protocol (e.g., TCP/IP protocols, MPLS etc.,) | |||
| or a proprietary protocol as identified by | or a proprietary protocol as identified by | |||
| this field."; | this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "An optional meta-data related to the protocol ID. | "An optional meta-data related to the protocol ID. | |||
| For eg., this could be the Internet Protocol number | For e.g., this could be the Internet Protocol number | |||
| for standard Internet Protocols for help in protocol | for standard Internet Protocols for help in protocol | |||
| processing."; | processing."; | |||
| } | } | |||
| leaf status-code { | leaf status-code { | |||
| type identityref{ | type identityref{ | |||
| base status-code; | base status-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Error code."; | "Error code."; | |||
| skipping to change at page 29, line 10 ¶ | skipping to change at page 29, line 10 ¶ | |||
| leaf cc-persistent-id { | leaf cc-persistent-id { | |||
| type string; | type string; | |||
| description | description | |||
| "Id to act as a cookie."; | "Id to act as a cookie."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| rpc cc-persistent-get-export-details { | rpc cc-persistent-get-export-details { | |||
| if-feature "coam:continuity-check"; | if-feature "cl-oam:continuity-check"; | |||
| description | description | |||
| "Given the persistent id, gets the configuration | "Given the persistent id, gets the configuration | |||
| options, details related to the configured data | options, details related to the configured data | |||
| export."; | export."; | |||
| input { | input { | |||
| leaf cc-persistent-id { | leaf cc-persistent-id { | |||
| type string; | type string; | |||
| description | description | |||
| "Persistent Id for use as a key in search."; | "Persistent Id for use as a key in search."; | |||
| } | } | |||
| } | } | |||
| output { | output { | |||
| container error-code { | container error-code { | |||
| leaf protocol-id { | leaf protocol-id { | |||
| type identityref { | type identityref { | |||
| base protocol-id; | base protocol-id; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Protocol used. This could be a standard | "Protocol used. This could be a standard | |||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | protocol (e.g., TCP/IP protocols, MPLS etc.,) | |||
| or a proprietary protocol as identified by | or a proprietary protocol as identified by | |||
| this field."; | this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "An optional meta-data related to the protocol ID. | "An optional meta-data related to the protocol ID. | |||
| For eg., this could be the Internet Protocol number | For e.g., this could be the Internet Protocol number | |||
| for standard Internet Protocols for help in protocol | for standard Internet Protocols for help in protocol | |||
| processing."; | processing."; | |||
| } | } | |||
| leaf status-code { | leaf status-code { | |||
| type identityref{ | type identityref{ | |||
| base status-code; | base status-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Error code."; | "Error code."; | |||
| skipping to change at page 31, line 11 ¶ | skipping to change at page 31, line 11 ¶ | |||
| description | description | |||
| "Changes that will not trigger an update."; | "Changes that will not trigger an update."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| rpc pd-get-persistent-id { | rpc pd-get-persistent-id { | |||
| if-feature "coam:path-discovery"; | if-feature "cl-oam:path-discovery"; | |||
| description | description | |||
| "Obtains persistent path discovery identification."; | "Obtains persistent path discovery identification."; | |||
| input { | input { | |||
| container destination-tp { | container destination-tp { | |||
| uses coam:tp-address; | uses cl-oam:tp-address; | |||
| description | description | |||
| "Destination test point."; | "Destination test point."; | |||
| } | } | |||
| uses coam:session-type; | uses cl-oam:session-type; | |||
| leaf source-interface { | leaf source-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Source interface."; | "Source interface."; | |||
| } | } | |||
| leaf outbound-interface { | leaf outbound-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Outbound interface."; | "Outbound interface."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type coam:routing-instance-ref; | type cl-oam:routing-instance-ref; | |||
| description | description | |||
| "VRF"; | "VRF"; | |||
| } | } | |||
| } | } | |||
| output { | output { | |||
| list response-list { | list response-list { | |||
| key "response-index"; | key "response-index"; | |||
| description | description | |||
| "Path discovery response list."; | "Path discovery response list."; | |||
| leaf response-index { | leaf response-index { | |||
| skipping to change at page 32, line 7 ¶ | skipping to change at page 32, line 7 ¶ | |||
| description | description | |||
| "Response index."; | "Response index."; | |||
| } | } | |||
| leaf protocol-id { | leaf protocol-id { | |||
| type identityref { | type identityref { | |||
| base protocol-id; | base protocol-id; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Protocol used. This could be a standard | "Protocol used. This could be a standard | |||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | protocol (e.g., TCP/IP protocols, MPLS etc.,) | |||
| or a proprietary protocol as identified by | or a proprietary protocol as identified by | |||
| this field."; | this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "An optional meta-data related to the protocol ID. | "An optional meta-data related to the protocol ID. | |||
| For eg., this could be the Internet Protocol number | For e.g., this could be the Internet Protocol number | |||
| for standard Internet Protocols for help in protocol | for standard Internet Protocols for help in protocol | |||
| processing."; | processing."; | |||
| } | } | |||
| leaf status-code { | leaf status-code { | |||
| type identityref { | type identityref { | |||
| base status-code; | base status-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Error code for Persistent Path Discovery Information. "; | "Error code for Persistent Path Discovery Information. "; | |||
| skipping to change at page 32, line 45 ¶ | skipping to change at page 32, line 45 ¶ | |||
| leaf pd-persistent-id { | leaf pd-persistent-id { | |||
| type string; | type string; | |||
| description | description | |||
| "Id to act as a cookie."; | "Id to act as a cookie."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| rpc pd-persistent-get-export-details { | rpc pd-persistent-get-export-details { | |||
| if-feature "coam:path-discovery"; | if-feature "cl-oam:path-discovery"; | |||
| description | description | |||
| "Given the persistent id, gets the configuration | "Given the persistent id, gets the configuration | |||
| options, details related to the configured data | options, details related to the configured data | |||
| export."; | export."; | |||
| input { | input { | |||
| leaf cc-persistent-id { | leaf cc-persistent-id { | |||
| type string; | type string; | |||
| description | description | |||
| "Persistent Id for use as a key in search."; | "Persistent Id for use as a key in search."; | |||
| } | } | |||
| skipping to change at page 33, line 28 ¶ | skipping to change at page 33, line 28 ¶ | |||
| description | description | |||
| "Response index."; | "Response index."; | |||
| } | } | |||
| leaf protocol-id { | leaf protocol-id { | |||
| type identityref { | type identityref { | |||
| base protocol-id; | base protocol-id; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Protocol used. This could be a standard | "Protocol used. This could be a standard | |||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | protocol (e.g., TCP/IP protocols, MPLS etc.,) | |||
| or a proprietary protocol as identified by | or a proprietary protocol as identified by | |||
| this field."; | this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "An optional meta-data related to the protocol ID. | "An optional meta-data related to the protocol ID. | |||
| For eg., this could be the Internet Protocol number | For e.g., this could be the Internet Protocol number | |||
| for standard Internet Protocols for help in protocol | for standard Internet Protocols for help in protocol | |||
| processing."; | processing."; | |||
| } | } | |||
| leaf status-code { | leaf status-code { | |||
| type identityref{ | type identityref{ | |||
| base status-code; | base status-code; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Error code for Persistent Path Discovery Creation. "; | "Error code for Persistent Path Discovery Creation. "; | |||
| End of changes. 64 change blocks. | ||||
| 96 lines changed or deleted | 106 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/ | ||||