| < draft-ietf-lime-yang-connectionless-oam-methods-08.txt | draft-ietf-lime-yang-connectionless-oam-methods-09.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: March 24, 2018 Q. Wu | Expires: April 14, 2018 Q. Wu | |||
| Huawei | Huawei | |||
| R. Rahman | R. Rahman | |||
| S. Raghavan | S. Raghavan | |||
| Cisco | Cisco | |||
| September 20, 2017 | October 11, 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-08 | draft-ietf-lime-yang-connectionless-oam-methods-09 | |||
| 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 March 24, 2018. | This Internet-Draft will expire on April 14, 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 28 ¶ | skipping to change at page 2, line 28 ¶ | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . 7 | 3.2. OAM Retrieval Methods Hierarchy . . . . . . . . . . . . . 8 | |||
| 4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 14 | 4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 15 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 20 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 22 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 21 | 7.2. Informative References . . . . . . . . . . . . . . . . . 23 | |||
| Appendix A. Appdendix A.1 Extending Connectionless OAM Method | Appendix A. Appdendix A.1 Extending Connectionless OAM Method | |||
| Module Example . . . . . . . . . . . . . . . . . . . 21 | Module Example . . . . . . . . . . . . . . . . . . . 24 | |||
| Appendix B. Appendix A.2 Example of new retrieval procedures | Appendix B. Appendix A.2 Example of new retrieval procedures | |||
| Model . . . . . . . . . . . . . . . . . . . . . . . 22 | Model . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 | 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: | |||
| 1. Monitor reachability of destinations (Reachability Verification, | 1. Monitor reachability of destinations (Reachability Verification, | |||
| Continuity Check). | Continuity Check). | |||
| 2. Troubleshoot failures (Fault verification and localization). | 2. Troubleshoot failures (Fault verification and localization). | |||
| skipping to change at page 5, line 43 ¶ | skipping to change at page 5, line 43 ¶ | |||
| rpc continuity-check { | rpc continuity-check { | |||
| if-feature coam:continuity-check; | if-feature coam: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 { | ||||
| type identityref { | ||||
| base protocol-id; | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "Protocol used in CC. This could be a standard | ||||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | ||||
| or a proprietary protocol as identified by | ||||
| this field."; | ||||
| } | ||||
| leaf protocol-id-meta-data { | ||||
| type uint64; | ||||
| description | ||||
| "An optional meta-data related to the protocol ID. | ||||
| For eg., this could be the Internet Protocol number | ||||
| for standard Internet Protocols for help in protocol | ||||
| 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."; | |||
| } | } | |||
| leaf status-sub-code { | leaf status-sub-code { | |||
| type identityref{ | type identityref{ | |||
| skipping to change at page 6, line 35 ¶ | skipping to change at page 7, line 6 ¶ | |||
| 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 { | ||||
| type identityref { | ||||
| base protocol-id; | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "Protocol used in PD. This could be a standard | ||||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | ||||
| or a proprietary protocol as identified by | ||||
| this field."; | ||||
| } | ||||
| leaf protocol-id-meta-data { | ||||
| type uint64; | ||||
| description | ||||
| "An optional meta-data related to the protocol ID. | ||||
| For eg., this could be the Internet Protocol number | ||||
| for standard Internet Protocols for help in protocol | ||||
| 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{ | |||
| skipping to change at page 7, line 4 ¶ | skipping to change at page 7, line 41 ¶ | |||
| "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 coam: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 {coam:continuity-check}? | |||
| | +---w input | | +---w input | |||
| | | +---w destination-tp | | | +---w destination-tp | |||
| | | | +---w tp-location-type identityref | | | | +---w tp-location-type identityref | |||
| | | | +---w tp-address | | | | +---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 | | | | | +---w tp-attribute-type? address-attribute-type | |||
| | | | | +---w tp-attribute-type? address-attribute-type | | | | | +---w (tp-attribute-value)? | |||
| | | | | +---w (tp-attribute-value)? | | | | | +--:(ip-prefix) | |||
| | | | | +--:(ip-prefix) | | | | | | +---w ip-prefix? inet:ip-prefix | |||
| | | | | | +---w ip-prefix? inet:ip-prefix | | | | | +--:(bgp) | |||
| | | | | +--:(bgp) | | | | | | +---w bgp? inet:ip-prefix | |||
| | | | | | +---w bgp? inet:ip-prefix | | | | | +--:(tunnel) | |||
| | | | | +--:(tunnel) | | | | | | +---w tunnel-interface? uint32 | |||
| | | | | | +---w tunnel-interface? uint32 | | | | | +--:(pw) | |||
| | | | | +--:(pw) | | | | | | +---w remote-pe-address? inet:ip-address | |||
| | | | | | +---w remote-pe-address? inet:ip-address | | | | | | +---w pw-id? uint32 | |||
| | | | | | +---w pw-id? uint32 | | | | | +--:(vpls) | |||
| | | | | +--:(vpls) | | | | | | +---w route-distinguisher? rt:route-distinguisher | |||
| | | | | | +---w route-distinguisher? rt:route-distinguisher | | | | | | +---w sender-ve-id? uint16 | |||
| | | | | | +---w sender-ve-id? uint16 | | | | | | +---w receiver-ve-id? uint16 | |||
| | | | | | +---w receiver-ve-id? uint16 | | | | | +--:(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 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? coam:routing-instance-ref | |||
| | | +---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-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 tp-address | | | +--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) | | | | | +--ro ip-prefix? inet:ip-prefix | |||
| | | | | | +--ro ip-prefix? inet:ip-prefix | | | | +--:(bgp) | |||
| | | | | +--:(bgp) | | | | | +--ro bgp? inet:ip-prefix | |||
| | | | | | +--ro bgp? inet:ip-prefix | | | | +--:(tunnel) | |||
| | | | | +--:(tunnel) | | | | | +--ro tunnel-interface? uint32 | |||
| | | | | | +--ro tunnel-interface? uint32 | | | | +--:(pw) | |||
| | | | | +--:(pw) | | | | | +--ro remote-pe-address? inet:ip-address | |||
| | | | | | +--ro remote-pe-address? inet:ip-address | | | | | +--ro pw-id? uint32 | |||
| | | | | | +--ro pw-id? uint32 | | | | +--:(vpls) | |||
| | | | | +--:(vpls) | | | | | +--ro route-distinguisher? rt:route-distinguisher | |||
| | | | | | +--ro route-distinguisher? rt:route-distinguisher | | | | | +--ro sender-ve-id? uint16 | |||
| | | | | | +--ro sender-ve-id? uint16 | | | | | +--ro receiver-ve-id? uint16 | |||
| | | | | | +--ro receiver-ve-id? uint16 | | | | +--:(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 system-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 tp-address | | | +--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) | | | | | +--ro ip-prefix? inet:ip-prefix | |||
| | | | | | +--ro ip-prefix? inet:ip-prefix | | | | +--:(bgp) | |||
| | | | | +--:(bgp) | | | | | +--ro bgp? inet:ip-prefix | |||
| | | | | | +--ro bgp? inet:ip-prefix | | | | +--:(tunnel) | |||
| | | | | +--:(tunnel) | | | | | +--ro tunnel-interface? uint32 | |||
| | | | | | +--ro tunnel-interface? uint32 | | | | +--:(pw) | |||
| | | | | +--:(pw) | | | | | +--ro remote-pe-address? inet:ip-address | |||
| | | | | | +--ro remote-pe-address? inet:ip-address | | | | | +--ro pw-id? uint32 | |||
| | | | | | +--ro pw-id? uint32 | | | | +--:(vpls) | |||
| | | | | +--:(vpls) | | | | | +--ro route-distinguisher? rt:route-distinguisher | |||
| | | | | | +--ro route-distinguisher? rt:route-distinguisher | | | | | +--ro sender-ve-id? uint16 | |||
| | | | | | +--ro sender-ve-id? uint16 | | | | | +--ro receiver-ve-id? uint16 | |||
| | | | | | +--ro receiver-ve-id? uint16 | | | | +--:(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 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-drops-count? uint32 | |||
| skipping to change at page 10, line 24 ¶ | skipping to change at page 11, line 17 ¶ | |||
| | | +--ro average-delay-value? uint32 | | | +--ro average-delay-value? uint32 | |||
| | +--ro session-jitter-statistics | | +--ro session-jitter-statistics | |||
| | +--ro time-resolution-value? identityref | | +--ro time-resolution-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 {coam:path-discovery}? | |||
| +---w input | +---w input | |||
| | +---w destination-tp | | +---w destination-tp | |||
| | | +---w tp-location-type identityref | | | +---w tp-location-type identityref | |||
| | | +---w tp-address | | | +---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 | | | | +---w tp-attribute-type? address-attribute-type | |||
| | | | +---w tp-attribute-type? address-attribute-type | | | | +---w (tp-attribute-value)? | |||
| | | | +---w (tp-attribute-value)? | | | | +--:(ip-prefix) | |||
| | | | +--:(ip-prefix) | | | | | +---w ip-prefix? inet:ip-prefix | |||
| | | | | +---w ip-prefix? inet:ip-prefix | | | | +--:(bgp) | |||
| | | | +--:(bgp) | | | | | +---w bgp? inet:ip-prefix | |||
| | | | | +---w bgp? inet:ip-prefix | | | | +--:(tunnel) | |||
| | | | +--:(tunnel) | | | | | +---w tunnel-interface? uint32 | |||
| | | | | +---w tunnel-interface? uint32 | | | | +--:(pw) | |||
| | | | +--:(pw) | | | | | +---w remote-pe-address? inet:ip-address | |||
| | | | | +---w remote-pe-address? inet:ip-address | | | | | +---w pw-id? uint32 | |||
| | | | | +---w pw-id? uint32 | | | | +--:(vpls) | |||
| | | | +--:(vpls) | | | | | +---w route-distinguisher? rt:route-distinguisher | |||
| | | | | +---w route-distinguisher? rt:route-distinguisher | | | | | +---w sender-ve-id? uint16 | |||
| | | | | +---w sender-ve-id? uint16 | | | | | +---w receiver-ve-id? uint16 | |||
| | | | | +---w receiver-ve-id? uint16 | | | | +--:(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 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? coam:routing-instance-ref | |||
| | +---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-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 tp-address | | +--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) | | | | +--ro ip-prefix? inet:ip-prefix | |||
| | | | +--ro ip-prefix? inet:ip-prefix | | | +--:(bgp) | |||
| | | +--:(bgp) | | | | +--ro bgp? inet:ip-prefix | |||
| | | | +--ro bgp? inet:ip-prefix | | | +--:(tunnel) | |||
| | | +--:(tunnel) | | | | +--ro tunnel-interface? uint32 | |||
| | | | +--ro tunnel-interface? uint32 | | | +--:(pw) | |||
| | | +--:(pw) | | | | +--ro remote-pe-address? inet:ip-address | |||
| | | | +--ro remote-pe-address? inet:ip-address | | | | +--ro pw-id? uint32 | |||
| | | | +--ro pw-id? uint32 | | | +--:(vpls) | |||
| | | +--:(vpls) | | | | +--ro route-distinguisher? rt:route-distinguisher | |||
| | | | +--ro route-distinguisher? rt:route-distinguisher | | | | +--ro sender-ve-id? uint16 | |||
| | | | +--ro sender-ve-id? uint16 | | | | +--ro receiver-ve-id? uint16 | |||
| | | | +--ro receiver-ve-id? uint16 | | | +--:(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 system-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 tp-address | | +--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) | | | | +--ro ip-prefix? inet:ip-prefix | |||
| | | | +--ro ip-prefix? inet:ip-prefix | | | +--:(bgp) | |||
| | | +--:(bgp) | | | | +--ro bgp? inet:ip-prefix | |||
| | | | +--ro bgp? inet:ip-prefix | | | +--:(tunnel) | |||
| | | +--:(tunnel) | | | | +--ro tunnel-interface? uint32 | |||
| | | | +--ro tunnel-interface? uint32 | | | +--:(pw) | |||
| | | +--:(pw) | | | | +--ro remote-pe-address? inet:ip-address | |||
| | | | +--ro remote-pe-address? inet:ip-address | | | | +--ro pw-id? uint32 | |||
| | | | +--ro pw-id? uint32 | | | +--:(vpls) | |||
| | | +--:(vpls) | | | | +--ro route-distinguisher? rt:route-distinguisher | |||
| | | | +--ro route-distinguisher? rt:route-distinguisher | | | | +--ro sender-ve-id? uint16 | |||
| | | | +--ro sender-ve-id? uint16 | | | | +--ro receiver-ve-id? uint16 | |||
| | | | +--ro receiver-ve-id? uint16 | | | +--:(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 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-drops-count? uint32 | |||
| | +--ro packet-reorder-count? uint32 | | +--ro packet-reorder-count? uint32 | |||
| skipping to change at page 13, line 29 ¶ | skipping to change at page 14, line 22 ¶ | |||
| +--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 tp-address | +--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) | | | +--ro ip-prefix? inet:ip-prefix | |||
| | | | +--ro ip-prefix? inet:ip-prefix | | +--:(bgp) | |||
| | | +--:(bgp) | | | +--ro bgp? inet:ip-prefix | |||
| | | | +--ro bgp? inet:ip-prefix | | +--:(tunnel) | |||
| | | +--:(tunnel) | | | +--ro tunnel-interface? uint32 | |||
| | | | +--ro tunnel-interface? uint32 | | +--:(pw) | |||
| | | +--:(pw) | | | +--ro remote-pe-address? inet:ip-address | |||
| | | | +--ro remote-pe-address? inet:ip-address | | | +--ro pw-id? uint32 | |||
| | | | +--ro pw-id? uint32 | | +--:(vpls) | |||
| | | +--:(vpls) | | | +--ro route-distinguisher? rt:route-distinguisher | |||
| | | | +--ro route-distinguisher? rt:route-distinguisher | | | +--ro sender-ve-id? uint16 | |||
| | | | +--ro sender-ve-id? uint16 | | | +--ro receiver-ve-id? uint16 | |||
| | | | +--ro receiver-ve-id? uint16 | | +--:(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 system-id? rt:router-id | ||||
| +--ro timestamp-type? uint32 | +--ro timestamp-type? uint32 | |||
| +--ro timestamp-sec? uint32 | +--ro timestamp-sec? uint32 | |||
| +--ro timestamp-nanosec? uint32 | +--ro timestamp-nanosec? uint32 | |||
| +--ro ingress-intf-name? if:interface-ref | +--ro ingress-intf-name? if:interface-ref | |||
| +--ro egress-intf-name? if:interface-ref | +--ro egress-intf-name? if:interface-ref | |||
| +--ro queue-depth? uint32 | +--ro queue-depth? uint32 | |||
| +--ro transit-delay? uint32 | +--ro transit-delay? uint32 | |||
| +--ro app-meta-data? uint64 | +--ro app-meta-data? uint64 | |||
| data hierarchy of OAM Retrieval Methods | data hierarchy of OAM Retrieval Methods | |||
| skipping to change at page 15, line 12 ¶ | skipping to change at page 16, line 4 ¶ | |||
| 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 { | ||||
| description | ||||
| "A generic protocol identifier."; | ||||
| } | ||||
| identity protocol-id-internet { | ||||
| base protocol-id; | ||||
| description | ||||
| "Internet Protocols."; | ||||
| } | ||||
| identity protocol-id-propreitary { | ||||
| base protocol-id; | ||||
| description | ||||
| "Propreitary protocol (eg.,IP SLA)."; | ||||
| } | ||||
| identity protocol-id-sfc { | ||||
| base protocol-id; | ||||
| description | ||||
| "Service Function Chaining."; | ||||
| } | ||||
| identity protocol-id-mpls { | ||||
| base protocol-id; | ||||
| description | ||||
| "MPLS protocol."; | ||||
| } | ||||
| identity protocol-id-mpls-tp { | ||||
| base protocol-id; | ||||
| description | ||||
| "MPLS-TP protocol."; | ||||
| } | ||||
| identity protocol-id-twamp { | ||||
| base protocol-id; | ||||
| description | ||||
| "TWAMP protocol."; | ||||
| } | ||||
| identity protocol-id-bier { | ||||
| base protocol-id; | ||||
| description | ||||
| "BIER protocol."; | ||||
| } | ||||
| identity status-code{ | identity status-code{ | |||
| description | description | |||
| "Base status code"; | "Base status code"; | |||
| } | } | |||
| identity invalid-cc{ | identity invalid-cc{ | |||
| base status-code; | base status-code; | |||
| description | description | |||
| "Indicates that the Continuity check message is invalid"; | "Indicates that the Continuity check message is invalid"; | |||
| } | } | |||
| skipping to change at page 16, line 25 ¶ | skipping to change at page 18, line 15 ¶ | |||
| if-feature "coam:continuity-check"; | if-feature "coam: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 coam: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 { | ||||
| description | ||||
| "The overall number of packet to be transmitted | ||||
| by the sender. If the count is set to 4294967295, | ||||
| 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 | |||
| 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"; | |||
| skipping to change at page 17, line 4 ¶ | skipping to change at page 18, line 49 ¶ | |||
| } | } | |||
| 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 { | container error-code { | |||
| leaf protocol-id { | ||||
| type identityref { | ||||
| base protocol-id; | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "Protocol used in CC. This could be a standard | ||||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | ||||
| or a proprietary protocol as identified by | ||||
| this field."; | ||||
| } | ||||
| leaf protocol-id-meta-data { | ||||
| type uint64; | ||||
| description | ||||
| "An optional meta-data related to the protocol ID. | ||||
| For eg., this could be the Internet Protocol number | ||||
| for standard Internet Protocols for help in protocol | ||||
| 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. For example, Error code in | "Error code for continuity-check message, that is | |||
| ICMPv6 message includes | relevant to the protocol under use for CC. | |||
| 1-Destination Unreachable | For example if ICMP is the protocol under use, the | |||
| 2- Packet Too Big | error codes are as defined in [RFC4443]."; | |||
| 3- Time Exceeded | ||||
| 4- Parameter Problem [RFC4443]."; | ||||
| } | } | |||
| 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 continuity-check message. For example Sub code in | "Error sub code for continuity-check message, that is | |||
| ICMPv6 Parameter Problem Message includes: | relevant to the error-code reported of the protocol | |||
| 1-Erroneous header field encountered | that is used for CC."; | |||
| 2-Unrecognized Next Header type encountered | ||||
| 3-Unrecognized IPv6 option encountered."; | ||||
| } | } | |||
| 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 coam:continuity-check-data; | |||
| } | } | |||
| } | } | |||
| rpc path-discovery { | rpc path-discovery { | |||
| if-feature "coam:path-discovery"; | if-feature "coam:path-discovery"; | |||
| skipping to change at page 18, line 21 ¶ | skipping to change at page 20, line 33 ¶ | |||
| 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 { | ||||
| type identityref { | ||||
| base protocol-id; | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "Protocol used in PD. This could be a standard | ||||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | ||||
| or a proprietary protocol as identified by | ||||
| this field."; | ||||
| } | ||||
| leaf protocol-id-meta-data { | ||||
| type uint64; | ||||
| description | ||||
| "An optional meta-data related to the protocol ID. | ||||
| For eg., this could be the Internet Protocol number | ||||
| for standard Internet Protocols for help in protocol | ||||
| 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 message. | "Error code for path-discovery response message, that is | |||
| For example, Error code in ICMPv6 message includes | relevant to the protocol under use for PD. | |||
| 1-Destination Unreachable | For example if ICMP is the protocol under use, the | |||
| 2- Packet Too Big | error codes are as defined in [RFC4443]."; | |||
| 3- Time Exceeded | ||||
| 4- Parameter Problem [RFC4443]. "; | ||||
| } | } | |||
| 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 message. For example Sub code in | "Error sub code for path-discovery message, that is | |||
| ICMPv6 Parameter Problem Message includes: | relevant to the error-code reported of the protocol | |||
| 1-Erroneous header field encountered | that is used for PD."; | |||
| 2-Unrecognized Next Header type encountered | ||||
| 3-Unrecognized IPv6 option encountered "; | ||||
| } | } | |||
| } | } | |||
| uses coam:path-discovery-data; | uses coam: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 | |||
| mandatory-to-implement secure transport is TLS [RFC5246]. | mandatory-to-implement secure transport is TLS [RFC5246]. | |||
| skipping to change at page 20, line 4 ¶ | skipping to change at page 22, line 32 ¶ | |||
| 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: coam-methods | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [I-D.ietf-lime-yang-connectionless-oam] | [I-D.ietf-lime-yang-connectionless-oam] | |||
| Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | |||
| "Generic YANG Data Model for Connectionless Operations, | "Generic YANG Data Model for Connectionless Operations, | |||
| Administration, and Maintenance(OAM) protocols", draft- | Administration, and Maintenance(OAM) protocols", draft- | |||
| ietf-lime-yang-connectionless-oam-10 (work in progress), | ietf-lime-yang-connectionless-oam-11 (work in progress), | |||
| September 2017. | September 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 21, line 18 ¶ | skipping to change at page 23, line 48 ¶ | |||
| [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 | 7.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, "Subscribing to | |||
| YANG datastore push updates", draft-ietf-netconf-yang- | YANG datastore push updates", draft-ietf-netconf-yang- | |||
| push-09 (work in progress), September 2017. | push-10 (work in 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 23, line 28 ¶ | skipping to change at page 26, line 26 ¶ | |||
| identity ipfix-export { | identity ipfix-export { | |||
| base export-method; | base export-method; | |||
| description | description | |||
| "IPFIX based export. Configuration provided separately."; | "IPFIX based export. Configuration provided separately."; | |||
| } | } | |||
| 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 { | ||||
| description | ||||
| "A generic protocol identifier."; | ||||
| } | ||||
| identity status-code{ | identity status-code{ | |||
| description | description | |||
| "Base status code"; | "Base status code"; | |||
| } | } | |||
| identity invalid-cc{ | identity invalid-cc{ | |||
| base status-code; | base status-code; | |||
| description | description | |||
| "Indicates that the Continuity check message is invalid"; | "Indicates that the Continuity check message is invalid"; | |||
| } | } | |||
| skipping to change at page 25, line 9 ¶ | skipping to change at page 28, line 10 ¶ | |||
| "Outbound interface."; | "Outbound interface."; | |||
| } | } | |||
| leaf vrf { | leaf vrf { | |||
| type coam:routing-instance-ref; | type coam:routing-instance-ref; | |||
| description | description | |||
| "VRF instance."; | "VRF instance."; | |||
| } | } | |||
| } | } | |||
| output { | output { | |||
| container error-code { | container error-code { | |||
| leaf protocol-id { | ||||
| type identityref { | ||||
| base protocol-id; | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "Protocol used. This could be a standard | ||||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | ||||
| or a proprietary protocol as identified by | ||||
| this field."; | ||||
| } | ||||
| leaf protocol-id-meta-data { | ||||
| type uint64; | ||||
| description | ||||
| "An optional meta-data related to the protocol ID. | ||||
| For eg., this could be the Internet Protocol number | ||||
| for standard Internet Protocols for help in protocol | ||||
| 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."; | |||
| } | } | |||
| leaf status-sub-code { | leaf status-sub-code { | |||
| type identityref{ | type identityref{ | |||
| skipping to change at page 26, line 4 ¶ | skipping to change at page 29, line 24 ¶ | |||
| 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 { | ||||
| type identityref { | ||||
| base protocol-id; | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "Protocol used. This could be a standard | ||||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | ||||
| or a proprietary protocol as identified by | ||||
| this field."; | ||||
| } | ||||
| leaf protocol-id-meta-data { | ||||
| type uint64; | ||||
| description | ||||
| "An optional meta-data related to the protocol ID. | ||||
| For eg., this could be the Internet Protocol number | ||||
| for standard Internet Protocols for help in protocol | ||||
| 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."; | |||
| } | } | |||
| leaf status-sub-code { | leaf status-sub-code { | |||
| type identityref{ | type identityref{ | |||
| skipping to change at page 28, line 9 ¶ | skipping to change at page 31, line 49 ¶ | |||
| 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 { | ||||
| type identityref { | ||||
| base protocol-id; | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "Protocol used. This could be a standard | ||||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | ||||
| or a proprietary protocol as identified by | ||||
| this field."; | ||||
| } | ||||
| leaf protocol-id-meta-data { | ||||
| type uint64; | ||||
| description | ||||
| "An optional meta-data related to the protocol ID. | ||||
| For eg., this could be the Internet Protocol number | ||||
| for standard Internet Protocols for help in protocol | ||||
| 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. "; | |||
| } | } | |||
| leaf status-sub-code { | leaf status-sub-code { | |||
| type identityref{ | type identityref{ | |||
| skipping to change at page 29, line 11 ¶ | skipping to change at page 33, line 21 ¶ | |||
| 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 { | ||||
| type identityref { | ||||
| base protocol-id; | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "Protocol used. This could be a standard | ||||
| protocol (eg., TCP/IP protocols, MPLS etc.,) | ||||
| or a proprietary protocol as identified by | ||||
| this field."; | ||||
| } | ||||
| leaf protocol-id-meta-data { | ||||
| type uint64; | ||||
| description | ||||
| "An optional meta-data related to the protocol ID. | ||||
| For eg., this could be the Internet Protocol number | ||||
| for standard Internet Protocols for help in protocol | ||||
| 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. "; | |||
| } | } | |||
| leaf status-sub-code { | leaf status-sub-code { | |||
| type identityref{ | type identityref{ | |||
| End of changes. 43 change blocks. | ||||
| 291 lines changed or deleted | 492 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/ | ||||