| < draft-ietf-lime-yang-connectionless-oam-methods-11.txt | draft-ietf-lime-yang-connectionless-oam-methods-12.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 27, 2018 Q. Wu | Expires: May 1, 2018 Q. Wu, Ed. | |||
| Huawei | Huawei | |||
| R. Rahman | R. Rahman | |||
| S. Raghavan | S. Raghavan | |||
| Cisco | Cisco | |||
| October 24, 2017 | October 28, 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-11 | draft-ietf-lime-yang-connectionless-oam-methods-12 | |||
| 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 27, 2018. | This Internet-Draft will expire on May 1, 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 | |||
| 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 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 . . . . . . . . . . . . . . . . . . . 23 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 7. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 23 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 24 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 24 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 25 | ||||
| Appendix A. Appdendix A.1 Extending Connectionless OAM Method | Appendix A. Appdendix A.1 Extending Connectionless OAM Method | |||
| Module Example . . . . . . . . . . . . . . . . . . . 24 | Module Example . . . . . . . . . . . . . . . . . . . 26 | |||
| Appendix B. Appendix A.2 Example of new retrieval procedures | Appendix B. Appendix A.2 Example of new retrieval procedures | |||
| Model . . . . . . . . . . . . . . . . . . . . . . . 25 | Model . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
| 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). | |||
| 3. Monitor Performance | 3. Monitor Performance | |||
| An overview of OAM tools is presented at [RFC7276]. | An overview of OAM tools is presented at [RFC7276]. | |||
| Ping and Traceroute [RFC792], [RFC4443] and BFD [RFC5880] are well- | Ping and Traceroute [RFC792], [RFC4443] and BFD [RFC5880] are well- | |||
| known fault verification and isolation tools, respectively, for IP | known fault verification and isolation tools, respectively, for IP | |||
| networks. Over the years, different technologies have developed | networks. Over the years, different technologies have developed | |||
| similar tools for similar purposes. | similar tools for similar purposes. | |||
| In this document, we present an on-demand retrieval method YANG Data | In this document, we present an on-demand retrieval method YANG Data | |||
| model for connectionless OAM protocols. This model provides | model for OAM protocols that use connectionless communication. This | |||
| technology-independent RPC operations for connectionless OAM | model provides technology-independent RPC operations for OAM | |||
| protocols. It is separated from the generic YANG model for | protocols that use connectionless communication(i.e., connectionless | |||
| connectionless OAM [I-D.ietf-lime-yang-connectionless-oam] and can | oam). It is separated from the generic YANG model for connectionless | |||
| avoid mixing the models for the retrieved-data from the retrieval | OAM [I-D.ietf-lime-yang-connectionless-oam] and can avoid mixing the | |||
| procedures. It is expected that retrieval procedures would evolve | models for the retrieved-data from the retrieval procedures. It is | |||
| faster than the data model [I-D.ietf-lime-yang-connectionless-oam] | expected that retrieval procedures would evolve faster than the data | |||
| and will allow new procedures to be defined for retrieval of the same | model [I-D.ietf-lime-yang-connectionless-oam] and will allow new | |||
| data defined by the base data model. | procedures to be defined for retrieval of the same data defined by | |||
| the generic YANG data model for connectionless OAM. | ||||
| 2. Conventions used in this document | 2. Conventions used in this document | |||
| The following terms are defined in [RFC6241] and are not redefined | The following terms are defined in [RFC6241] and are not redefined | |||
| here: | here: | |||
| o client | o client | |||
| o configuration data | o configuration data | |||
| skipping to change at page 4, line 49 ¶ | skipping to change at page 5, line 12 ¶ | |||
| <type> is the name of the type for leafs and leaf-lists | <type> is the name of the type for leafs and leaf-lists | |||
| 3. Overview of the Connectionless OAM retrieval methods Model | 3. Overview of the Connectionless OAM retrieval methods Model | |||
| In this document, we present an on-demand retrieval method YANG Data | In this document, we present an on-demand retrieval method YANG Data | |||
| model for connectionless OAM protocols. This model provides | model for connectionless OAM protocols. This model provides | |||
| technology-independent retrieval procedures (RPC operations) for | technology-independent retrieval procedures (RPC operations) for | |||
| connectionless OAM protocols. It provides a flexible way to retrieve | connectionless OAM protocols. It provides a flexible way to retrieve | |||
| the data which defined by the "ietf-connectionless-oam.yang" | the data which defined by the "ietf-connectionless-oam.yang" | |||
| [I-D.ietf-lime-yang-connectionless-oam]. | module[I-D.ietf-lime-yang-connectionless-oam]. | |||
| 3.1. RPC operation definitions | 3.1. RPC operation definitions | |||
| The RPC model facilitates issuing commands to a NETCONF server (in | The RPC model facilitates issuing commands to a NETCONF server (in | |||
| this case to the device that need to execute the OAM command) and | this case to the device that need to execute the OAM command) and | |||
| obtaining a response. | obtaining a response. | |||
| Under 'connectionless-oam-methods' module, we summarize common OAM | Under 'connectionless-oam-methods' module, we summarize common OAM | |||
| functions and define two generic RPC operations: 'continuity-check' | functions and define two generic RPC operations: 'continuity-check' | |||
| and 'path-discovery'. In practice, these RPC operations are | and 'path-discovery'. In practice, these RPC operations are | |||
| skipping to change at page 5, line 28 ¶ | skipping to change at page 5, line 37 ¶ | |||
| [RFC792] [RFC4443]. | [RFC792] [RFC4443]. | |||
| Note that the RPC operation presented in this document is the base | Note that the RPC operation presented in this document is the base | |||
| building block, which is used to derive a model for a technology- | building block, which is used to derive a model for a technology- | |||
| specific OAM (i.e., ICMP ping [RFC792] [RFC4443], LSP ping | specific OAM (i.e., ICMP ping [RFC792] [RFC4443], LSP ping | |||
| [RFC8029]), the base building block should be extended with | [RFC8029]), the base building block should be extended with | |||
| 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 'tp-address' grouping is used as data input from | |||
| groupings are used as data outputs from different RPCs described in | different RPCs described in this document. The generic 'path- | |||
| this document. Similar methods including other RPCs can retrieve the | discovery-data' and 'continuity-check-data' groupings defined by the | |||
| data using the same data model. | "ietf-connectionless-oam.yang" module | |||
| [I-D.ietf-lime-yang-connectionless-oam]are used as data outputs from | ||||
| different RPCs described in this document. Similar methods including | ||||
| other RPCs can retrieve the data using the same data model (i.e., the | ||||
| "ietf-connectionless-oam.yang" module ). | ||||
| rpc continuity-check { | rpc continuity-check { | |||
| if-feature cl-oam: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 { | list status-code-list { | |||
| key "response-index"; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "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 CC. This could be a standard | "Protocol used in CC. "; | |||
| protocol (e.g., TCP/IP protocols, MPLS etc.,) | ||||
| or a proprietary protocol as identified by | ||||
| this field."; | ||||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type identityref { | |||
| description | base protocol-id-meta-data; | |||
| "An optional meta-data related to the protocol ID. | } | |||
| For e.g., this could be the Internet Protocol number | description | |||
| for standard Internet Protocols for help in protocol | "An optional meta-data related to the protocol ID."; | |||
| 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."; | "Status code for CC."; | |||
| } | } | |||
| 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 CC."; | "Status Sub code for CC."; | |||
| } | } | |||
| description | description | |||
| "Error code and Sub Code for CC."; | "List of Status Code and Status Sub Code for CC."; | |||
| } | } | |||
| uses cl-oam: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 12 ¶ | skipping to change at page 7, line 27 ¶ | |||
| mandatory true; | mandatory true; | |||
| 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. "; | |||
| protocol (e.g., TCP/IP protocols, MPLS etc.,) | ||||
| or a proprietary protocol as identified by | ||||
| this field."; | ||||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type identityref { | |||
| description | base protocol-id-meta-data; | |||
| "An optional meta-data related to the protocol ID. | } | |||
| For e.g., this could be the Internet Protocol number | description | |||
| for standard Internet Protocols for help in protocol | "An optional meta-data related to the protocol ID."; | |||
| 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 { | |||
| skipping to change at page 8, line 48 ¶ | skipping to change at page 9, line 6 ¶ | |||
| | | | | +--:(mpls-mldp) | | | | | +--:(mpls-mldp) | |||
| | | | | +---w (root-address)? | | | | | +---w (root-address)? | |||
| | | | | +--:(ip-address) | | | | | +--:(ip-address) | |||
| | | | | | +---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 router-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? cl-oam: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 status-code-list* [response-index] | |||
| | | +--ro response-index uint32 | ||||
| | | +--ro protocol-id identityref | | | +--ro protocol-id identityref | |||
| | | +--ro protocol-id-meta-data? uint64 | | | +--ro protocol-id-meta-data? identityref | |||
| | | +--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 | |||
| skipping to change at page 9, line 48 ¶ | skipping to change at page 10, line 8 ¶ | |||
| | | | +--:(mpls-mldp) | | | | +--:(mpls-mldp) | |||
| | | | +--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 router-id? rt:router-id | |||
| | | +--ro egress-intf-name? if:interface-ref | | | +--ro egress-intf-name? if:interface-ref | |||
| | +--ro dest-test-point | | +--ro dest-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 | |||
| skipping to change at page 10, line 37 ¶ | skipping to change at page 10, line 45 ¶ | |||
| | | | +--:(mpls-mldp) | | | | +--:(mpls-mldp) | |||
| | | | +--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 router-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-loss-count? uint32 | | | +--ro packet-loss-count? uint32 | |||
| | | +--ro loss-ratio? uint8 | | | +--ro loss-ratio? percentage | |||
| | | +--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-interval-value? identityref | | | +--ro time-unit-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 interval-value? identityref | | +--ro unit-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 {cl-oam: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 | |||
| skipping to change at page 11, line 50 ¶ | skipping to change at page 12, line 10 ¶ | |||
| | | | +--:(mpls-mldp) | | | | +--:(mpls-mldp) | |||
| | | | +---w (root-address)? | | | | +---w (root-address)? | |||
| | | | +--:(ip-address) | | | | +--:(ip-address) | |||
| | | | | +---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 router-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? cl-oam: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? identityref | |||
| | +--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 | |||
| skipping to change at page 12, line 50 ¶ | skipping to change at page 13, line 10 ¶ | |||
| | | +--:(mpls-mldp) | | | +--:(mpls-mldp) | |||
| | | +--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 router-id? rt:router-id | |||
| +--ro dest-test-point | +--ro dest-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 38 ¶ | skipping to change at page 13, line 46 ¶ | |||
| | | +--:(mpls-mldp) | | | +--:(mpls-mldp) | |||
| | | +--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 router-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-loss-count? uint32 | | +--ro packet-loss-count? uint32 | |||
| | +--ro loss-ratio? uint8 | | +--ro loss-ratio? percentage | |||
| | +--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-interval-value? identityref | | +--ro time-unit-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 interval-value? identityref | | +--ro unit-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] | |||
| skipping to change at page 15, line 8 ¶ | skipping to change at page 15, line 16 ¶ | |||
| | +--:(mpls-mldp) | | +--:(mpls-mldp) | |||
| | +--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 router-id? rt:router-id | |||
| +--ro timestamp-type? identityref | +--ro timestamp-type? identityref | |||
| +--ro timestamp-64bit | +--ro timestamp-64bit | |||
| | +--ro timestamp-sec? uint32 | | +--ro timestamp-sec? uint32 | |||
| | +--ro timestamp-nanosec? uint32 | | +--ro timestamp-nanosec? uint32 | |||
| +--ro timestamp-80bit {ptp-long-format}? | +--ro timestamp-80bit {ptp-long-format}? | |||
| | +--ro timestamp-sec? uint64 | | +--ro timestamp-sec? uint64 | |||
| | +--ro timestamp-nanosec? uint32 | | +--ro timestamp-nanosec? uint32 | |||
| +--ro ntp-timestamp-32bit {ntp-short-format}? | +--ro ntp-timestamp-32bit {ntp-short-format}? | |||
| | +--ro timestamp-sec? uint16 | | +--ro timestamp-sec? uint16 | |||
| | +--ro timestamp-nanosec? uint16 | | +--ro timestamp-nanosec? uint16 | |||
| +--ro icmp-timestamp-32bit {icmp-timestamp}? | +--ro icmp-timestamp-32bit {icmp-timestamp}? | |||
| skipping to change at page 16, line 16 ¶ | skipping to change at page 16, line 25 ¶ | |||
| 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."; | "This is base identity for a generic protocol ID. The protocol | |||
| registry can be found in https://www.iana.org/protocols."; | ||||
| } | } | |||
| identity protocol-id-internet { | identity protocol-id-internet { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "Internet Protocols."; | "Identity for Internet Protocols."; | |||
| } | } | |||
| identity protocol-id-proprietary { | identity protocol-id-proprietary { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "Proprietary protocol (e.g.,IP SLA)."; | "Identity for proprietary protocol (e.g.,IP SLA)."; | |||
| } | } | |||
| identity protocol-id-sfc { | identity protocol-id-sfc { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "Service Function Chaining."; | "Identity for Service Function Chaining."; | |||
| } | } | |||
| identity protocol-id-mpls { | identity protocol-id-mpls { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "MPLS protocol."; | "MPLS protocol."; | |||
| } | } | |||
| identity protocol-id-mpls-tp { | identity protocol-id-mpls-tp { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "MPLS-TP protocol."; | "MPLS-TP protocol."; | |||
| } | } | |||
| identity protocol-id-twamp { | identity protocol-id-twamp { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "TWAMP protocol."; | "TWAMP protocol."; | |||
| } | } | |||
| skipping to change at page 17, line 9 ¶ | skipping to change at page 17, line 11 ¶ | |||
| identity protocol-id-mpls-tp { | identity protocol-id-mpls-tp { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "MPLS-TP protocol."; | "MPLS-TP protocol."; | |||
| } | } | |||
| identity protocol-id-twamp { | identity protocol-id-twamp { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "TWAMP protocol."; | "TWAMP protocol."; | |||
| } | } | |||
| identity protocol-id-bier { | identity protocol-id-bier { | |||
| base protocol-id; | base protocol-id; | |||
| description | description | |||
| "BIER protocol."; | "BIER protocol."; | |||
| } | } | |||
| identity status-code { | ||||
| identity status-code{ | ||||
| description | description | |||
| "Base status code"; | "This is Base Identity for status code."; | |||
| } | } | |||
| identity success-reach { | ||||
| identity invalid-cc{ | base status-code; | |||
| base status-code; | ||||
| description | description | |||
| "Indicates that the Continuity check message is invalid"; | "Indicate that the destination being verified | |||
| is reachable (See RFC7276)."; | ||||
| } | } | |||
| identity fail-reach { | ||||
| identity invalid-pd { | base status-code; | |||
| base status-code; | ||||
| description | description | |||
| "Indicates that the path discovery message is invalid"; | "Indicate that the destination being verified | |||
| is not reachable (See RFC7276)."; | ||||
| } | ||||
| identity success-path-verification { | ||||
| base status-code; | ||||
| description | ||||
| "Indicate that the path verification is performed | ||||
| successfully (See RFC7276)."; | ||||
| } | ||||
| identity fail-path-verification { | ||||
| base status-code; | ||||
| description | ||||
| "Indicate that the path verification fails (See RFC7276)."; | ||||
| } | } | |||
| identity status-sub-code { | identity status-sub-code { | |||
| description | description | |||
| "Base status sub code"; | "IdentityBase status sub code."; | |||
| } | ||||
| identity invalid-cc { | ||||
| base status-sub-code; | ||||
| description | ||||
| "Indicates that the Continuity check message is invalid (See RFC7276)."; | ||||
| } | ||||
| identity invalid-pd { | ||||
| base status-sub-code; | ||||
| description | ||||
| "Indicates that the path discovery message is invalid (See RFC7276)."; | ||||
| } | ||||
| identity protocol-id-meta-data { | ||||
| description | ||||
| "This is base identity for meta-data corresponding | ||||
| to protocol ID."; | ||||
| } | ||||
| identity protocol-internet-number { | ||||
| base protocol-id-meta-data; | ||||
| description | ||||
| "Internet Protocol Number for standard | ||||
| Internet Protocols (IANA assigned Internet | ||||
| Protocol numbers) to help in protocol processing. | ||||
| The protocol IDs registry can be found in | ||||
| https://www.iana.org/assignments/protocol-numbers | ||||
| /protocol-numbers.xhtml."; | ||||
| } | } | |||
| grouping rpc-input-parameters { | grouping rpc-input-parameters { | |||
| container destination-tp { | container destination-tp { | |||
| uses cl-oam: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 cl-oam: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 "cl-oam: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 cl-oam:session-type { | uses cl-oam:session-type { | |||
| description "If session-type is specified, then session-type | description | |||
| must be set to on-demand"; | "If session-type is specified, then session-type | |||
| must be set to on-demand"; | ||||
| } | } | |||
| leaf count { | leaf count { | |||
| type uint32 { | type uint32 { | |||
| range 0..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. The value of count will be set | |||
| it indicates that the session will be run forever"; | to zero (0) on creation and will thereafter increase | |||
| monotonically until it reaches a maximum value of 2^32-1 | ||||
| (4294967295 decimal), when it wraps around and starts | ||||
| increasing again from zero."; | ||||
| } | } | |||
| } | } | |||
| 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 | |||
| default, the packet number is | default, the packet number is | |||
| set to 5."; | set to 5."; | |||
| } | } | |||
| leaf ttl { | leaf ttl { | |||
| type uint8; | type uint8; | |||
| default "255"; | default "255"; | |||
| description | description | |||
| "Time to live (TTL) used to limit lifetime | "Time to live (TTL) used to limit lifetime | |||
| of data packet transmitted in the network | of data packet transmitted in the network | |||
| and prevent looping. The TTL value is decremented | and prevent looping. The TTL value is decremented | |||
| for every hop which the packet traverses. If the | for every hop which the packet traverses. If the | |||
| TTL is zero, the data packet will be discarded."; | TTL is zero, the data packet will be discarded."; | |||
| } | } | |||
| leaf packet-size { | leaf packet-size { | |||
| type uint32 { | type uint32 { | |||
| range "64..10000"; | range "64..10000"; | |||
| } | } | |||
| default "64"; | default "64"; | |||
| description | description | |||
| "Packet size of continuity-check message, in octets. | "Packet size of continuity-check message, in octets. | |||
| By default, the packet size is set to 64 octets."; | By default, the packet size is set to 64 octets."; | |||
| } | } | |||
| } | } | |||
| output { | output { | |||
| container error-code { | list status-code-list { | |||
| key "response-index"; | ||||
| leaf response-index { | ||||
| type uint32; | ||||
| description | ||||
| "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 CC. This could be a standard | "Protocol used in continuity check message. | |||
| protocol (e.g., TCP/IP protocols, MPLS etc.,) | This could be a standard protocol (e.g., | |||
| or a proprietary protocol as identified by | TCP/IP protocols, MPLS etc.,) or a proprietary | |||
| this field."; | protocol as identified by this field."; | |||
| } | } | |||
| leaf protocol-id-meta-data { | leaf protocol-id-meta-data { | |||
| type uint64; | type identityref { | |||
| description | base protocol-id-meta-data; | |||
| "An optional meta-data related to the protocol ID. | } | |||
| description | ||||
| "An optional meta-data related to the protocol ID. | ||||
| For e.g., 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 | "Status code for continuity check RPC operation. | |||
| relevant to the protocol under use for CC. | This could be a basic status code (e.g., destination | |||
| For example if ICMP is the protocol under use, the | is reachable or destination is not reachable (See RFC7276)) | |||
| error codes are as defined in [RFC4443]."; | or some customized status code as identified by this field."; | |||
| } | } | |||
| 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 | |||
| "Error sub code for continuity-check message, that is | "An optional status sub code for continuity check | |||
| relevant to the error-code reported of the protocol | RPC operation. If the basic status code is destination | |||
| that is used for CC."; | reachable, this status-sub-code doesn't need to be specified. | |||
| If the basic status code is destination unreachable, the | ||||
| status-sub-code can be used to specify the detailed reasons. | ||||
| This could be a basic sub-status-code(such as invalid cc) or | ||||
| other error codes specific to the protocol under use for CC | ||||
| For example if ICMP is the protocol under use, the error codes | ||||
| defined in [RFC4443] can be used to specify the reasons specific to | ||||
| ICMP. These technology specific status-sub-code can be defined | ||||
| in technology specific models."; | ||||
| } | } | |||
| description | description | |||
| "Error code and Sub Code for continuity-check message."; | "List of Status Code for continuity check RPC operation."; | |||
| } | } | |||
| uses cl-oam:continuity-check-data; | uses cl-oam:continuity-check-data; | |||
| } | } | |||
| } | } | |||
| rpc path-discovery { | rpc path-discovery { | |||
| if-feature "cl-oam: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 cl-oam:session-type { | uses cl-oam:session-type { | |||
| description "If session-type is specified, then session-type | description | |||
| must be set to on-demand"; | "If session-type is specified, then session-type | |||
| 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."; | |||
| } | } | |||
| } | } | |||
| 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 { | |||
| type uint32; | type uint32; | |||
| mandatory true; | mandatory true; | |||
| 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 (e.g., 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 identityref { | |||
| description | base protocol-id-meta-data; | |||
| "An optional meta-data related to the protocol ID. | } | |||
| description | ||||
| "An optional meta-data related to the protocol ID. | ||||
| For e.g., 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 | "Status code for continuity check RPC operation. | |||
| relevant to the protocol under use for PD. | This could be a basic status code (e.g., destination | |||
| For example if ICMP is the protocol under use, the | is reachable or destination is not reachable) or some | |||
| error codes are as defined in [RFC4443]."; | customized status code as identified by this field."; | |||
| } | } | |||
| 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 | |||
| "Error sub code for path-discovery message, that is | "An optional status sub code for continuity check | |||
| relevant to the error-code reported of the protocol | RPC operation. If the basic status code is destination | |||
| that is used for PD."; | reachable, this status-sub-code doesn't need to be specified. | |||
| If the basic status code is destination unreachable, the | ||||
| status-sub-code can be used to specify the detailed reasons. | ||||
| This could be a basic sub-status-code(such as invalid cc) or | ||||
| other error codes specific to the protocol under use for CC | ||||
| For example if ICMP is the protocol under use, the error codes | ||||
| defined in [RFC4443] can be used to specify the reasons specific to | ||||
| ICMP. These technology specific status-sub-code can be defined | ||||
| in technology specific models."; | ||||
| } | } | |||
| } | } | |||
| uses cl-oam: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 | |||
| RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport | RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport | |||
| layer, and the mandatory-to-implement secure transport is Secure | layer, and the mandatory-to-implement secure transport is Secure | |||
| Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the | Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the | |||
| skipping to change at page 22, line 23 ¶ | skipping to change at page 23, line 40 ¶ | |||
| sensitive or vulnerable in some network environments. It is thus | sensitive or vulnerable in some network environments. It is thus | |||
| important to control access to these operations. These are the | important to control access to these operations. These are the | |||
| operations and their sensitivity/vulnerability: | operations and their sensitivity/vulnerability: | |||
| o continuity-check: Generates continuity check. | o continuity-check: Generates continuity check. | |||
| o path-discovery: Generates path discovery. | o path-discovery: Generates path discovery. | |||
| These operations are used to retrieve the data from the device that | These operations are used to retrieve the data from the device that | |||
| need to execute the OAM command. Unauthorized source access to some | need to execute the OAM command. Unauthorized source access to some | |||
| sensitive information in the above data may lead to Denial-of-Service | sensitive information in the above data may be used for network | |||
| attack on both the local device and the network. | reconnaissance or lead to Denial-of-Service attack on both the local | |||
| device and the network. | ||||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This document registers a URI in the IETF XML registry [RFC3688]. | This document registers a URI in the IETF XML registry [RFC3688]. | |||
| Following the format in [RFC3688], the following registration is | Following the format in [RFC3688], the following registration is | |||
| requested to be made: | requested to be made: | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods | URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods | |||
| Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
| 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: cloam-methods | prefix: cloam-methods | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 7. References | 7. Acknowlegements | |||
| 7.1. Normative References | The authors of this document would like to thank Elwyn Davies, Alia | |||
| Atlas,Brian E Carpenter,Greg Mirsky,Adam Roach,Alissa Cooper,Eric | ||||
| Rescorla,Ben Campbell, Benoit Claise,Kathleen Moriarty,Benjamin Kaduk | ||||
| and others for their sustainable review and comments, proposals to | ||||
| improve and stabilize document. | ||||
| 8. References | ||||
| 8.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 Operations, Administration, | "Generic YANG Data Model for the Management of Operations, | |||
| and Maintenance(OAM) protocols for Connectionless | Administration, and Maintenance (OAM) Protocols that use | |||
| networks", draft-ietf-lime-yang-connectionless-oam-13 | Connectionless Communications", draft-ietf-lime-yang- | |||
| (work in progress), October 2017. | connectionless-oam-14 (work in progress), October 2017. | |||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.2", RFC 5246, | (TLS) Protocol Version 1.2", RFC 5246, | |||
| DOI 10.17487/RFC5246, August 2008, | DOI 10.17487/RFC5246, August 2008, | |||
| <https://www.rfc-editor.org/info/rfc5246>. | <https://www.rfc-editor.org/info/rfc5246>. | |||
| skipping to change at page 24, line 9 ¶ | skipping to change at page 25, line 32 ¶ | |||
| RFC 7011, DOI 10.17487/RFC7011, September 2013, | RFC 7011, DOI 10.17487/RFC7011, September 2013, | |||
| <https://www.rfc-editor.org/info/rfc7011>. | <https://www.rfc-editor.org/info/rfc7011>. | |||
| [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, | [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, | |||
| September 1981. | September 1981. | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| 7.2. Informative References | 8.2. Informative References | |||
| [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, "YANG Datastore | |||
| YANG datastore push updates", draft-ietf-netconf-yang- | Subscription", draft-ietf-netconf-yang-push-11 (work in | |||
| push-10 (work in progress), October 2017. | progress), October 2017. | |||
| [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | |||
| Control Message Protocol (ICMPv6) for the Internet | Control Message Protocol (ICMPv6) for the Internet | |||
| Protocol Version 6 (IPv6) Specification", STD 89, | Protocol Version 6 (IPv6) Specification", STD 89, | |||
| RFC 4443, DOI 10.17487/RFC4443, March 2006, | RFC 4443, DOI 10.17487/RFC4443, March 2006, | |||
| <https://www.rfc-editor.org/info/rfc4443>. | <https://www.rfc-editor.org/info/rfc4443>. | |||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc5880>. | <https://www.rfc-editor.org/info/rfc5880>. | |||
| skipping to change at page 26, line 30 ¶ | skipping to change at page 28, line 6 ¶ | |||
| } | } | |||
| identity yang-push-export { | identity yang-push-export { | |||
| base export-method; | base export-method; | |||
| description | description | |||
| "Yang-push from draft-ietf-netconf-yang-push"; | "Yang-push from draft-ietf-netconf-yang-push"; | |||
| } | } | |||
| identity protocol-id { | identity protocol-id { | |||
| description | description | |||
| "A generic protocol identifier."; | "A generic protocol identifier."; | |||
| } | } | |||
| identity status-code { | identity status-code { | |||
| description | description | |||
| "Base status code"; | "Base status code"; | |||
| } | } | |||
| identity success-reach { | ||||
| identity invalid-cc { | base status-code; | |||
| base status-code; | description | |||
| description | "Indicate that the destination being verified | |||
| "Indicates that the Continuity check message is invalid"; | is reachable"; | |||
| } | } | |||
| identity fail-reach { | ||||
| identity invalid-pd { | base status-code; | |||
| base status-code; | description | |||
| description | "Indicate that the destination being verified | |||
| "Indicates that the path discovery message is invalid"; | is not reachable"; | |||
| } | } | |||
| identity success-path-verification { | ||||
| identity status-sub-code { | base status-code; | |||
| description | description | |||
| "Base status sub code"; | "Indicate that the path verification is performed | |||
| } | successfully."; | |||
| } | ||||
| identity fail-path-verification { | ||||
| base status-code; | ||||
| description | ||||
| "Indicate that the path verification fails."; | ||||
| } | ||||
| identity status-sub-code { | ||||
| description | ||||
| "Base status sub code"; | ||||
| } | ||||
| identity invalid-cc { | ||||
| base status-sub-code; | ||||
| description | ||||
| "Indicates that the Continuity check message is invalid"; | ||||
| } | ||||
| identity invalid-pd { | ||||
| base status-sub-code; | ||||
| description | ||||
| "Indicates that the path discovery message is invalid"; | ||||
| } | ||||
| typedef export-method { | typedef export-method { | |||
| type identityref { | type identityref { | |||
| base export-method; | base export-method; | |||
| } | } | |||
| description | description | |||
| "Export method type."; | "Export method type."; | |||
| } | } | |||
| typedef change-type { | typedef change-type { | |||
| type enumeration { | type enumeration { | |||
| enum "create" { | enum "create" { | |||
| skipping to change at page 33, line 6 ¶ | skipping to change at page 34, line 51 ¶ | |||
| rpc pd-persistent-get-export-details { | rpc pd-persistent-get-export-details { | |||
| if-feature "cl-oam: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."; | |||
| } | } | |||
| } | } | |||
| 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 { | |||
| type uint32; | type uint32; | |||
| skipping to change at page 35, line 23 ¶ | skipping to change at page 37, line 23 ¶ | |||
| Email: dekumar@cisco.com | Email: dekumar@cisco.com | |||
| Michael Wang | Michael Wang | |||
| Huawei Technologies,Co.,Ltd | Huawei Technologies,Co.,Ltd | |||
| 101 Software Avenue, Yuhua District | 101 Software Avenue, Yuhua District | |||
| Nanjing 210012 | Nanjing 210012 | |||
| China | China | |||
| Email: wangzitao@huawei.com | Email: wangzitao@huawei.com | |||
| Qin Wu | Qin Wu (editor) | |||
| Huawei | Huawei | |||
| 101 Software Avenue, Yuhua District | 101 Software Avenue, Yuhua District | |||
| Nanjing, Jiangsu 210012 | Nanjing, Jiangsu 210012 | |||
| China | China | |||
| Email: bill.wu@huawei.com | Email: bill.wu@huawei.com | |||
| Reshad Rahman | Reshad Rahman | |||
| CISCO Systems | CISCO Systems | |||
| 2000 Innovation Drive | 2000 Innovation Drive | |||
| End of changes. 93 change blocks. | ||||
| 197 lines changed or deleted | 292 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/ | ||||