| < draft-ietf-lime-yang-connectionless-oam-02.txt | draft-ietf-lime-yang-connectionless-oam-03.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: May 4, 2017 Q. Wu | Expires: June 26, 2017 Q. Wu | |||
| Huawei | Huawei | |||
| R. Rahman | R. Rahman | |||
| S. Raghavan | S. Raghavan | |||
| Cisco | Cisco | |||
| October 31, 2016 | December 23, 2016 | |||
| Generic YANG Data Model for Connectionless Operations, Administration, | Generic YANG Data Model for Connectionless Operations, Administration, | |||
| and Maintenance(OAM) protocols | and Maintenance(OAM) protocols | |||
| draft-ietf-lime-yang-connectionless-oam-02 | draft-ietf-lime-yang-connectionless-oam-03 | |||
| Abstract | Abstract | |||
| This document presents a base YANG Data model for connectionless OAM | This document presents a base YANG Data model for connectionless OAM | |||
| protocols. It provides a technology-independent abstraction of key | protocols. It provides a technology-independent abstraction of key | |||
| OAM constructs for connectionless protocols. The Based model | OAM constructs for connectionless protocols. The Based model | |||
| presented here can be extended to include technology specific | 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 nested OAM workflows (i.e., performing OAM functions at | support nested OAM workflows (i.e., performing OAM functions at | |||
| different or same levels through a unified interface). | different or same levels through a unified interface). | |||
| skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 4, 2017. | This Internet-Draft will expire on June 26, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 30 ¶ | skipping to change at page 2, line 30 ¶ | |||
| 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Overview of the Connectionless OAM Model . . . . . . . . . . 5 | 3. Overview of the Connectionless OAM Model . . . . . . . . . . 5 | |||
| 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. OAM-layers . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.3. OAM-layers . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.4. Test Point Locations Information . . . . . . . . . . . . 7 | 3.4. Test Point Locations Information . . . . . . . . . . . . 7 | |||
| 3.5. Test Point Locations . . . . . . . . . . . . . . . . . . 7 | 3.5. Test Point Locations . . . . . . . . . . . . . . . . . . 7 | |||
| 3.6. Path Discovery Data . . . . . . . . . . . . . . . . . . . 7 | 3.6. Path Discovery Data . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 8 | 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 8 | |||
| 3.8. OAM data hierarchy . . . . . . . . . . . . . . . . . . . 8 | 3.8. OAM data hierarchy . . . . . . . . . . . . . . . . . . . 8 | |||
| 4. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 16 | 4. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 5. CL model applicability . . . . . . . . . . . . . . . . . . . 43 | 5. CL model applicability . . . . . . . . . . . . . . . . . . . 46 | |||
| 5.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 44 | 5.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 47 | |||
| 5.1.1. technology type extension . . . . . . . . . . . . . . 44 | 5.1.1. Augment Method . . . . . . . . . . . . . . . . . . . 47 | |||
| 5.1.2. test point attributes extension . . . . . . . . . . . 44 | 5.1.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 49 | |||
| 5.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 46 | 5.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 51 | |||
| 5.2.1. technology type extension . . . . . . . . . . . . . . 47 | 5.2.1. technology type extension . . . . . . . . . . . . . . 51 | |||
| 5.2.2. test point attributes extension . . . . . . . . . . . 47 | 5.2.2. test point attributes extension . . . . . . . . . . . 52 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 48 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 52 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 48 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 52 | |||
| 8. Normative References . . . . . . . . . . . . . . . . . . . . 49 | 8. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49 | 9. Normative References . . . . . . . . . . . . . . . . . . . . 53 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 54 | ||||
| 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 networks connections (Reachability Verification, | 1. Monitor networks connections (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 6, line 11 ¶ | skipping to change at page 6, line 11 ¶ | |||
| o FEC | o FEC | |||
| o System-id to represent the device or node. | o System-id to represent the device or node. | |||
| 3.2. Tools | 3.2. Tools | |||
| In connectionless OAM, the tools attribute is used to describe a | In connectionless OAM, the tools attribute is used to describe a | |||
| toolset for fault detection and isolation, and for performance | toolset for fault detection and isolation, and for performance | |||
| measurement. And it can serve as a constraint condition when the | measurement. And it can serve as a constraint condition when the | |||
| base model be extended to specific OAM technology. For example, to | base model be extended to specific OAM technology. For example, to | |||
| fulfill the icmp ping configuration, the "../coam:tools-ip/ | fulfill the icmp ping configuration, the "../coam:continuity-check" | |||
| coam:rfc792" should be set to "true", and then the lime base model | should be set to "true", and then the lime base model should be | |||
| should be augmented with icmp ping specific details. | augmented with icmp ping specific details. | |||
| 3.3. OAM-layers | 3.3. OAM-layers | |||
| As typical networks have a multi-layer architecture, the set of OAM | As typical networks have a multi-layer architecture, the set of OAM | |||
| protocols similarly take a multi-layer structure; each layer has its | protocols similarly take a multi-layer structure; each layer has its | |||
| own OAM protocols [RFC7276] and is corresponding to specific network | own OAM protocols [RFC7276] and is corresponding to specific network | |||
| portion or pathand has associated test points. OAM-layers is | portion or path and has associated test points. OAM-layers is | |||
| referred to a list of upper layer, lower layer that are related to | referred to a list of upper layer, lower layer that are related to | |||
| current test point. This allow users to easily navigate up and down | current test point. This allow users to easily navigate up and down | |||
| to efficiently troubleshoot a connectivity issue at different layer. | to efficiently troubleshoot a connectivity issue at different layer. | |||
| In this model, we have kept level default as 0, when all test points | In this model, we have kept level default as 0, when all test points | |||
| are located at the same layer. Level is provided for scenarios where | are located at the same layer. Level is provided for scenarios where | |||
| it might be possible to define layering relationship as it can be | it might be possible to define layering relationship as it can be | |||
| used to stitching fault at related oam layers. For example, there is | used to stitching fault at related OAM layers. For example, there is | |||
| a network in which data traffic between two customer edges is | a network in which data traffic between two customer edges is | |||
| transported over three consecutive network portions, the current test | transported over three consecutive network portions, the current test | |||
| point is located in the second network portion. If there is a defect | point is located in the second network portion. If there is a defect | |||
| in the first network portion is located at the upstream of the second | in the first network portion is located at the upstream of the second | |||
| network portion, the level of the first network portion is set to | network portion, the level of the first network portion is set to | |||
| "-1". If the third network portion is located at the downstream of | "-1". If the third network portion is located at the downstream of | |||
| the second network portion and the level is set to "1". In another | the second network portion and the level is set to "1". In another | |||
| case, if the first network portion and the third network portion is | case, if the first network portion and the third network portion is | |||
| in the same level of thesecond network portion, the level is set to | in the same level of thesecond network portion, the level is set to | |||
| "0". The snippet below depicts an example of OAM layers. | "0". The snippet below depicts an example of OAM layers. | |||
| skipping to change at page 8, line 22 ¶ | skipping to change at page 8, line 22 ¶ | |||
| enough to allow active, passive and hybrid OAMs to do the retrieval. | enough to allow active, passive and hybrid OAMs to do the retrieval. | |||
| None of the fields are made mandatory for that reason. Noted that | None of the fields are made mandatory for that reason. Noted that | |||
| the retrieval methods are defined in [lime retrieval methods]. | the retrieval methods are defined in [lime retrieval methods]. | |||
| 3.8. OAM data hierarchy | 3.8. OAM data hierarchy | |||
| The complete data hierarchy related to the OAM YANG model is | The complete data hierarchy related to the OAM YANG model is | |||
| presented below. | presented below. | |||
| module: ietf-connectionless-oam | module: ietf-connectionless-oam | |||
| +--ro oper {continuity-check}? | +--ro oper {continuity-check}? | |||
| +--ro cc-ipv4-sessions-statistics | +--ro cc-ipv4-sessions-statistics | |||
| | +--ro cc-session-statistics | | +--ro cc-session-statistics | |||
| | +--ro session-count? uint32 | | +--ro session-count? uint32 | |||
| | +--ro session-up-count? uint32 | | +--ro session-up-count? uint32 | |||
| | +--ro session-down-count? uint32 | | +--ro session-down-count? uint32 | |||
| | +--ro session-admin-down-count? uint32 | | +--ro session-admin-down-count? uint32 | |||
| +--ro cc-ipv6-sessions-statistics | +--ro cc-ipv6-sessions-statistics | |||
| +--ro cc-session-statistics | +--ro cc-session-statistics | |||
| +--ro session-count? uint32 | +--ro session-count? uint32 | |||
| +--ro session-up-count? uint32 | +--ro session-up-count? uint32 | |||
| +--ro session-down-count? uint32 | +--ro session-down-count? uint32 | |||
| +--ro session-admin-down-count? uint32 | +--ro session-admin-down-count? uint32 | |||
| augment /nd:networks/nd:network/nd:node: | augment /nd:networks/nd:network/nd:node: | |||
| +--rw tp-address-type-value? identityref | +--rw tp-address-type-value? identityref | |||
| +--rw (location-type)? | +--rw (location-type)? | |||
| +--:(ipv4-location-type) | +--:(ipv4-location-type) | |||
| | +--rw test-point-ipv4-location-list | | +--rw test-point-ipv4-location-list | |||
| | +--rw test-point-locations* [ipv4-location] | | +--rw test-point-locations* [ipv4-location] | |||
| | +--rw ipv4-location inet:ipv4-address | | +--rw ipv4-location inet:ipv4-address | |||
| | +--rw vrf? routing-instance-ref | | +--rw vrf? routing-instance-ref | |||
| | +--rw (technology)? | | +--rw (technology)? | |||
| | | +--:(technology-null) | | | +--:(technology-null) | |||
| | | | +--rw tech-null? empty | | | | +--rw tech-null? empty | |||
| | | +--:(technology-string) | | | +--:(technology-string) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-icmp? string | |||
| | +--ro (tools)? | | +--rw tp-tools | |||
| | | +--:(tools-empty) | | | +--rw connectivity-verification? boolean | |||
| | | | +--ro tools-null? empty | | | +--rw continuity-check? boolean | |||
| | | +--:(tools-ip) | | | +--rw path-discovery? boolean | |||
| | | | +--ro rfc792? boolean | | +--rw root? | |||
| | | | +--ro rfc4443? boolean | | +--rw oam-layers* [index] | |||
| | | | +--ro rfc4884? boolean | | +--rw index uint16 | |||
| | | | +--ro rfc5837? boolean | | +--rw level? int32 | |||
| | | +--:(tools-bfd) | | +--rw (tp-address)? | |||
| | | | +--ro rfc5881? boolean | | +--:(mac-address) | |||
| | | | +--ro rfc5883? boolean | | | +--rw mac-address-location? yang:mac-address | |||
| | | | +--ro rfc5884? boolean | | +--:(ipv4-address) | |||
| | | | +--ro rfc5885? boolean | | | +--rw ipv4-location? inet:ipv4-address | |||
| | | +--:(tools-mpls) | | +--:(ipv6-location) | |||
| | | | +--ro rfc4379? boolean | | | +--rw ipv6-address? inet:ipv6-address | |||
| | | | +--ro rfc4687? boolean | | +--:(tunnel-location) | |||
| | | | +--ro rfc4950? boolean | | | +--rw tunnel-location? uint32 | |||
| | | | +--ro mpls-rfc5884? boolean | | +--:(ip-prefix-location) | |||
| | | +--:(tools-pw) | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | | +--ro rfc5085? boolean | | +--:(route-dist-location) | |||
| | | +--ro pw_rfc5885? boolean | | | +--rw route-dist-location? uint32 | |||
| | | +--ro rfc6423? boolean | | +--:(group-ip-address-location) | |||
| | | +--ro rfc6310? boolean | | | +--rw group-ip-address-location? IP-Multicast-Group-Address | |||
| | | +--ro rfc7023? boolean | | +--:(as-number-location) | |||
| | +--rw oam-layers* [index] | | | +--rw as-number-location? inet:as-number | |||
| | +--rw index uint16 | | +--:(lsp-id-location) | |||
| | +--rw level? int32 | | | +--rw lsp-id-location? string | |||
| +--:(ipv6-location-type) | | +--:(system-id-location) | |||
| | +--rw test-point-ipv6-location-list | | | +--rw system-id-location? inet:uri | |||
| | +--rw test-point-locations* [ipv6-location] | | +--:(connection-oriented-location) | |||
| | +--rw ipv6-location inet:ipv6-address | | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | |||
| | +--rw vrf? routing-instance-ref | | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | |||
| | +--rw (technology)? | | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | |||
| | | +--:(technology-null) | +--:(ipv6-location-type) | |||
| | | | +--rw tech-null? empty | | +--rw test-point-ipv6-location-list | |||
| | | +--:(technology-string) | | +--rw test-point-locations* [ipv6-location] | |||
| | | +--rw ipv4-icmp? string | | +--rw ipv6-location inet:ipv6-address | |||
| | +--ro (tools)? | | +--rw vrf? routing-instance-ref | |||
| | | +--:(tools-empty) | | +--rw (technology)? | |||
| | | | +--ro tools-null? empty | | | +--:(technology-null) | |||
| | | +--:(tools-ip) | | | | +--rw tech-null? empty | |||
| | | | +--ro rfc792? boolean | | | +--:(technology-string) | |||
| | | | +--ro rfc4443? boolean | | | +--rw ipv4-icmp? string | |||
| | | | +--ro rfc4884? boolean | | +--rw tp-tools | |||
| | | | +--ro rfc5837? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--:(tools-bfd) | | | +--rw continuity-check? boolean | |||
| | | | +--ro rfc5881? boolean | | | +--rw path-discovery? boolean | |||
| | | | +--ro rfc5883? boolean | | +--rw root? | |||
| | | | +--ro rfc5884? boolean | | +--rw oam-layers* [index] | |||
| | | | +--ro rfc5885? boolean | | +--rw index uint16 | |||
| | | +--:(tools-mpls) | | +--rw level? int32 | |||
| | | | +--ro rfc4379? boolean | | +--rw (tp-address)? | |||
| | | | +--ro rfc4687? boolean | | +--:(mac-address) | |||
| | | | +--ro rfc4950? boolean | | | +--rw mac-address-location? yang:mac-address | |||
| | | | +--ro mpls-rfc5884? boolean | | +--:(ipv4-address) | |||
| | | +--:(tools-pw) | | | +--rw ipv4-location? inet:ipv4-address | |||
| | | +--ro rfc5085? boolean | | +--:(ipv6-location) | |||
| | | +--ro pw_rfc5885? boolean | | | +--rw ipv6-address? inet:ipv6-address | |||
| | | +--ro rfc6423? boolean | | +--:(tunnel-location) | |||
| | | +--ro rfc6310? boolean | | | +--rw tunnel-location? uint32 | |||
| | | +--ro rfc7023? boolean | | +--:(ip-prefix-location) | |||
| | +--rw oam-layers* [index] | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--rw index uint16 | | +--:(route-dist-location) | |||
| | +--rw level? int32 | | | +--rw route-dist-location? uint32 | |||
| +--:(mac-location-type) | | +--:(group-ip-address-location) | |||
| | +--rw test-point-mac-address-location-list | | | +--rw group-ip-address-location? IP-Multicast-Group-Address | |||
| | +--rw test-point-locations* [mac-address-location] | | +--:(as-number-location) | |||
| | +--rw mac-address-location yang:mac-address | | | +--rw as-number-location? inet:as-number | |||
| | +--rw (technology)? | | +--:(lsp-id-location) | |||
| | | +--:(technology-null) | | | +--rw lsp-id-location? string | |||
| | | | +--rw tech-null? empty | | +--:(system-id-location) | |||
| | | +--:(technology-string) | | | +--rw system-id-location? inet:uri | |||
| | | +--rw ipv4-icmp? string | | +--:(connection-oriented-location) | |||
| | +--ro (tools)? | | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | |||
| | | +--:(tools-empty) | | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | |||
| | | | +--ro tools-null? empty | | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | |||
| | | +--:(tools-ip) | +--:(mac-location-type) | |||
| | | | +--ro rfc792? boolean | | +--rw test-point-mac-address-location-list | |||
| | | | +--ro rfc4443? boolean | | +--rw test-point-locations* [mac-address-location] | |||
| | | | +--ro rfc4884? boolean | | +--rw mac-address-location yang:mac-address | |||
| | | | +--ro rfc5837? boolean | | +--rw (technology)? | |||
| | | +--:(tools-bfd) | | | +--:(technology-null) | |||
| | | | +--ro rfc5881? boolean | | | | +--rw tech-null? empty | |||
| | | | +--ro rfc5883? boolean | | | +--:(technology-string) | |||
| | | | +--ro rfc5884? boolean | | | +--rw ipv4-icmp? string | |||
| | | | +--ro rfc5885? boolean | | +--rw tp-tools | |||
| | | +--:(tools-mpls) | | | +--rw connectivity-verification? boolean | |||
| | | | +--ro rfc4379? boolean | | | +--rw continuity-check? boolean | |||
| | | | +--ro rfc4687? boolean | | | +--rw path-discovery? boolean | |||
| | | | +--ro rfc4950? boolean | | +--rw root? | |||
| | | | +--ro mpls-rfc5884? boolean | | +--rw oam-layers* [index] | |||
| | | +--:(tools-pw) | | +--rw index uint16 | |||
| | | +--ro rfc5085? boolean | | +--rw level? int32 | |||
| | | +--ro pw_rfc5885? boolean | | +--rw (tp-address)? | |||
| | | +--ro rfc6423? boolean | | +--:(mac-address) | |||
| | | +--ro rfc6310? boolean | | | +--rw mac-address-location? yang:mac-address | |||
| | | +--ro rfc7023? boolean | | +--:(ipv4-address) | |||
| | +--rw oam-layers* [index] | | | +--rw ipv4-location? inet:ipv4-address | |||
| | +--rw index uint16 | | +--:(ipv6-location) | |||
| | +--rw level? int32 | | | +--rw ipv6-address? inet:ipv6-address | |||
| +--:(tunnel-location-type) | | +--:(tunnel-location) | |||
| | +--rw test-point-tunnel-address-location-list | | | +--rw tunnel-location? uint32 | |||
| | +--rw test-point-locations* [tunnel-location] | | +--:(ip-prefix-location) | |||
| | +--rw tunnel-location uint32 | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--rw vrf? routing-instance-ref | | +--:(route-dist-location) | |||
| | +--rw (technology)? | | | +--rw route-dist-location? uint32 | |||
| | | +--:(technology-null) | | +--:(group-ip-address-location) | |||
| | | | +--rw tech-null? empty | | | +--rw group-ip-address-location? IP-Multicast-Group-Address | |||
| | | +--:(technology-string) | | +--:(as-number-location) | |||
| | | +--rw ipv4-icmp? string | | | +--rw as-number-location? inet:as-number | |||
| | +--ro (tools)? | | +--:(lsp-id-location) | |||
| | | +--:(tools-empty) | | | +--rw lsp-id-location? string | |||
| | | | +--ro tools-null? empty | | +--:(system-id-location) | |||
| | | +--:(tools-ip) | | | +--rw system-id-location? inet:uri | |||
| | | | +--ro rfc792? boolean | | +--:(connection-oriented-location) | |||
| | | | +--ro rfc4443? boolean | | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | |||
| | | | +--ro rfc4884? boolean | | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | |||
| | | | +--ro rfc5837? boolean | | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | |||
| | | +--:(tools-bfd) | +--:(tunnel-location-type) | |||
| | | | +--ro rfc5881? boolean | | +--rw test-point-tunnel-address-location-list | |||
| | | | +--ro rfc5883? boolean | | +--rw test-point-locations* [tunnel-location] | |||
| | | | +--ro rfc5884? boolean | | +--rw tunnel-location uint32 | |||
| | | | +--ro rfc5885? boolean | | +--rw vrf? routing-instance-ref | |||
| | | +--:(tools-mpls) | | +--rw (technology)? | |||
| | | | +--ro rfc4379? boolean | | | +--:(technology-null) | |||
| | | | +--ro rfc4687? boolean | | | | +--rw tech-null? empty | |||
| | | | +--ro rfc4950? boolean | | | +--:(technology-string) | |||
| | | | +--ro mpls-rfc5884? boolean | | | +--rw ipv4-icmp? string | |||
| | | +--:(tools-pw) | | +--rw tp-tools | |||
| | | +--ro rfc5085? boolean | | | +--rw connectivity-verification? boolean | |||
| | | +--ro pw_rfc5885? boolean | | | +--rw continuity-check? boolean | |||
| | | +--ro rfc6423? boolean | | | +--rw path-discovery? boolean | |||
| | | +--ro rfc6310? boolean | | +--rw root? | |||
| | | +--ro rfc7023? boolean | | +--rw oam-layers* [index] | |||
| | +--rw oam-layers* [index] | | +--rw index uint16 | |||
| | +--rw index uint16 | | +--rw level? int32 | |||
| | +--rw level? int32 | | +--rw (tp-address)? | |||
| +--:(ip-prefix-location-type) | | +--:(mac-address) | |||
| | +--rw test-point-ip-prefix-location-list | | | +--rw mac-address-location? yang:mac-address | |||
| | +--rw test-point-locations* [ip-prefix-location] | | +--:(ipv4-address) | |||
| | +--rw ip-prefix-location inet:ip-prefix | | | +--rw ipv4-location? inet:ipv4-address | |||
| | +--rw vrf? routing-instance-ref | | +--:(ipv6-location) | |||
| | +--rw (technology)? | | | +--rw ipv6-address? inet:ipv6-address | |||
| | | +--:(technology-null) | | +--:(tunnel-location) | |||
| | | | +--rw tech-null? empty | | | +--rw tunnel-location? uint32 | |||
| | | +--:(technology-string) | | +--:(ip-prefix-location) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--ro (tools)? | | +--:(route-dist-location) | |||
| | | +--:(tools-empty) | | | +--rw route-dist-location? uint32 | |||
| | | | +--ro tools-null? empty | | +--:(group-ip-address-location) | |||
| | | +--:(tools-ip) | | | +--rw group-ip-address-location? IP-Multicast-Group-Address | |||
| | | | +--ro rfc792? boolean | | +--:(as-number-location) | |||
| | | | +--ro rfc4443? boolean | | | +--rw as-number-location? inet:as-number | |||
| | | | +--ro rfc4884? boolean | | +--:(lsp-id-location) | |||
| | | | +--ro rfc5837? boolean | | | +--rw lsp-id-location? string | |||
| | | +--:(tools-bfd) | | +--:(system-id-location) | |||
| | | | +--ro rfc5881? boolean | | | +--rw system-id-location? inet:uri | |||
| | | | +--ro rfc5883? boolean | | +--:(connection-oriented-location) | |||
| | | | +--ro rfc5884? boolean | | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | |||
| | | | +--ro rfc5885? boolean | | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | |||
| | | +--:(tools-mpls) | | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | |||
| | | | +--ro rfc4379? boolean | +--:(ip-prefix-location-type) | |||
| | | | +--ro rfc4687? boolean | | +--rw test-point-ip-prefix-location-list | |||
| | | | +--ro rfc4950? boolean | | +--rw test-point-locations* [ip-prefix-location] | |||
| | | | +--ro mpls-rfc5884? boolean | | +--rw ip-prefix-location inet:ip-prefix | |||
| | | +--:(tools-pw) | | +--rw vrf? routing-instance-ref | |||
| | | +--ro rfc5085? boolean | | +--rw (technology)? | |||
| | | +--ro pw_rfc5885? boolean | | | +--:(technology-null) | |||
| | | +--ro rfc6423? boolean | | | | +--rw tech-null? empty | |||
| | | +--ro rfc6310? boolean | | | +--:(technology-string) | |||
| | | +--ro rfc7023? boolean | | | +--rw ipv4-icmp? string | |||
| | +--rw oam-layers* [index] | | +--rw tp-tools | |||
| | +--rw index uint16 | | | +--rw connectivity-verification? boolean | |||
| | +--rw level? int32 | | | +--rw continuity-check? boolean | |||
| +--:(route-distinguisher-location-type) | | | +--rw path-discovery? boolean | |||
| | +--rw test-point-route-dist-location-list | | +--rw root? | |||
| | +--rw test-point-locations* [route-dist-location] | | +--rw oam-layers* [index] | |||
| | +--rw route-dist-location uint32 | | +--rw index uint16 | |||
| | +--rw vrf? routing-instance-ref | | +--rw level? int32 | |||
| | +--rw (technology)? | | +--rw (tp-address)? | |||
| | | +--:(technology-null) | | +--:(mac-address) | |||
| | | | +--rw tech-null? empty | | | +--rw mac-address-location? yang:mac-address | |||
| | | +--:(technology-string) | | +--:(ipv4-address) | |||
| | | +--rw ipv4-icmp? string | | | +--rw ipv4-location? inet:ipv4-address | |||
| | +--ro (tools)? | | +--:(ipv6-location) | |||
| | | +--:(tools-empty) | | | +--rw ipv6-address? inet:ipv6-address | |||
| | | | +--ro tools-null? empty | | +--:(tunnel-location) | |||
| | | +--:(tools-ip) | | | +--rw tunnel-location? uint32 | |||
| | | | +--ro rfc792? boolean | | +--:(ip-prefix-location) | |||
| | | | +--ro rfc4443? boolean | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | | | +--ro rfc4884? boolean | | +--:(route-dist-location) | |||
| | | | +--ro rfc5837? boolean | | | +--rw route-dist-location? uint32 | |||
| | | +--:(tools-bfd) | | +--:(group-ip-address-location) | |||
| | | | +--ro rfc5881? boolean | | | +--rw group-ip-address-location? IP-Multicast-Group-Address | |||
| | | | +--ro rfc5883? boolean | | +--:(as-number-location) | |||
| | | | +--ro rfc5884? boolean | | | +--rw as-number-location? inet:as-number | |||
| | | | +--ro rfc5885? boolean | | +--:(lsp-id-location) | |||
| | | +--:(tools-mpls) | | | +--rw lsp-id-location? string | |||
| | | | +--ro rfc4379? boolean | | +--:(system-id-location) | |||
| | | | +--ro rfc4687? boolean | | | +--rw system-id-location? inet:uri | |||
| | | | +--ro rfc4950? boolean | | +--:(connection-oriented-location) | |||
| | | | +--ro mpls-rfc5884? boolean | | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | |||
| | | +--:(tools-pw) | | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | |||
| | | +--ro rfc5085? boolean | | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | |||
| | | +--ro pw_rfc5885? boolean | +--:(route-distinguisher-location-type) | |||
| | | +--ro rfc6423? boolean | | +--rw test-point-route-dist-location-list | |||
| | | +--ro rfc6310? boolean | | +--rw test-point-locations* [route-dist-location] | |||
| | | +--ro rfc7023? boolean | | +--rw route-dist-location uint32 | |||
| | +--rw oam-layers* [index] | | +--rw vrf? routing-instance-ref | |||
| | +--rw index uint16 | | +--rw (technology)? | |||
| | +--rw level? int32 | | | +--:(technology-null) | |||
| +--:(group-ip-address-location-type) | | | | +--rw tech-null? empty | |||
| | +--rw test-point-group-ip-address-location-list | | | +--:(technology-string) | |||
| | +--rw test-point-locations* [group-ip-address-location] | | | +--rw ipv4-icmp? string | |||
| | +--rw group-ip-address-location IP-Multicast-Group-Address | | +--rw tp-tools | |||
| | +--rw vrf? routing-instance-ref | | | +--rw connectivity-verification? boolean | |||
| | +--rw (technology)? | | | +--rw continuity-check? boolean | |||
| | | +--:(technology-null) | | | +--rw path-discovery? boolean | |||
| | | | +--rw tech-null? empty | | +--rw root? | |||
| | | +--:(technology-string) | | +--rw oam-layers* [index] | |||
| | | +--rw ipv4-icmp? string | | +--rw index uint16 | |||
| | +--ro (tools)? | | +--rw level? int32 | |||
| | | +--:(tools-empty) | | +--rw (tp-address)? | |||
| | | | +--ro tools-null? empty | | +--:(mac-address) | |||
| | | +--:(tools-ip) | | | +--rw mac-address-location? yang:mac-address | |||
| | | | +--ro rfc792? boolean | | +--:(ipv4-address) | |||
| | | | +--ro rfc4443? boolean | | | +--rw ipv4-location? inet:ipv4-address | |||
| | | | +--ro rfc4884? boolean | | +--:(ipv6-location) | |||
| | | | +--ro rfc5837? boolean | | | +--rw ipv6-address? inet:ipv6-address | |||
| | | +--:(tools-bfd) | | +--:(tunnel-location) | |||
| | | | +--ro rfc5881? boolean | | | +--rw tunnel-location? uint32 | |||
| | | | +--ro rfc5883? boolean | | +--:(ip-prefix-location) | |||
| | | | +--ro rfc5884? boolean | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | | | +--ro rfc5885? boolean | | +--:(route-dist-location) | |||
| | | +--:(tools-mpls) | | | +--rw route-dist-location? uint32 | |||
| | | | +--ro rfc4379? boolean | | +--:(group-ip-address-location) | |||
| | | | +--ro rfc4687? boolean | | | +--rw group-ip-address-location? IP-Multicast-Group-Address | |||
| | | | +--ro rfc4950? boolean | | +--:(as-number-location) | |||
| | | | +--ro mpls-rfc5884? boolean | | | +--rw as-number-location? inet:as-number | |||
| | | +--:(tools-pw) | | +--:(lsp-id-location) | |||
| | | +--ro rfc5085? boolean | | | +--rw lsp-id-location? string | |||
| | | +--ro pw_rfc5885? boolean | | +--:(system-id-location) | |||
| | | +--ro rfc6423? boolean | | | +--rw system-id-location? inet:uri | |||
| | | +--ro rfc6310? boolean | | +--:(connection-oriented-location) | |||
| | | +--ro rfc7023? boolean | | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | |||
| | +--rw oam-layers* [index] | | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | |||
| | +--rw index uint16 | | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | |||
| | +--rw level? int32 | +--:(group-ip-address-location-type) | |||
| +--:(group-as-number-location-type) | | +--rw test-point-group-ip-address-location-list | |||
| | +--rw test-point-as-number-location-list | | +--rw test-point-locations* [group-ip-address-location] | |||
| | +--rw test-point-locations* [as-number-location] | | +--rw group-ip-address-location IP-Multicast-Group-Address | |||
| | +--rw as-number-location inet:as-number | | +--rw vrf? routing-instance-ref | |||
| | +--rw vrf? routing-instance-ref | | +--rw (technology)? | |||
| | +--rw (technology)? | | | +--:(technology-null) | |||
| | | +--:(technology-null) | | | | +--rw tech-null? empty | |||
| | | | +--rw tech-null? empty | | | +--:(technology-string) | |||
| | | +--:(technology-string) | | | +--rw ipv4-icmp? string | |||
| | | +--rw ipv4-icmp? string | | +--rw tp-tools | |||
| | +--ro (tools)? | | | +--rw connectivity-verification? boolean | |||
| | | +--:(tools-empty) | | | +--rw continuity-check? boolean | |||
| | | | +--ro tools-null? empty | | | +--rw path-discovery? boolean | |||
| | | +--:(tools-ip) | | +--rw root? | |||
| | | | +--ro rfc792? boolean | | +--rw oam-layers* [index] | |||
| | | | +--ro rfc4443? boolean | | +--rw index uint16 | |||
| | | | +--ro rfc4884? boolean | | +--rw level? int32 | |||
| | | | +--ro rfc5837? boolean | | +--rw (tp-address)? | |||
| | | +--:(tools-bfd) | | +--:(mac-address) | |||
| | | | +--ro rfc5881? boolean | | | +--rw mac-address-location? yang:mac-address | |||
| | | | +--ro rfc5883? boolean | | +--:(ipv4-address) | |||
| | | | +--ro rfc5884? boolean | | | +--rw ipv4-location? inet:ipv4-address | |||
| | | | +--ro rfc5885? boolean | | +--:(ipv6-location) | |||
| | | +--:(tools-mpls) | | | +--rw ipv6-address? inet:ipv6-address | |||
| | | | +--ro rfc4379? boolean | | +--:(tunnel-location) | |||
| | | | +--ro rfc4687? boolean | | | +--rw tunnel-location? uint32 | |||
| | | | +--ro rfc4950? boolean | | +--:(ip-prefix-location) | |||
| | | | +--ro mpls-rfc5884? boolean | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | | +--:(tools-pw) | | +--:(route-dist-location) | |||
| | | +--ro rfc5085? boolean | | | +--rw route-dist-location? uint32 | |||
| | | +--ro pw_rfc5885? boolean | | +--:(group-ip-address-location) | |||
| | | +--ro rfc6423? boolean | | | +--rw group-ip-address-location? IP-Multicast-Group-Address | |||
| | | +--ro rfc6310? boolean | | +--:(as-number-location) | |||
| | | +--ro rfc7023? boolean | | | +--rw as-number-location? inet:as-number | |||
| | +--rw oam-layers* [index] | | +--:(lsp-id-location) | |||
| | +--rw index uint16 | | | +--rw lsp-id-location? string | |||
| | +--rw level? int32 | | +--:(system-id-location) | |||
| +--:(group-lsp-id-location-type) | | | +--rw system-id-location? inet:uri | |||
| | +--rw test-point-lsp-id-location-list | | +--:(connection-oriented-location) | |||
| | +--rw test-point-locations* [lsp-id-location] | | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | |||
| | +--rw lsp-id-location string | | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | |||
| | +--rw vrf? routing-instance-ref | | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | |||
| | +--rw (technology)? | +--:(group-as-number-location-type) | |||
| | | +--:(technology-null) | | +--rw test-point-as-number-location-list | |||
| | | | +--rw tech-null? empty | | +--rw test-point-locations* [as-number-location] | |||
| | | +--:(technology-string) | | +--rw as-number-location inet:as-number | |||
| | | +--rw ipv4-icmp? string | | +--rw vrf? routing-instance-ref | |||
| | +--ro (tools)? | | +--rw (technology)? | |||
| | | +--:(tools-empty) | | | +--:(technology-null) | |||
| | | | +--ro tools-null? empty | | | | +--rw tech-null? empty | |||
| | | +--:(tools-ip) | | | +--:(technology-string) | |||
| | | | +--ro rfc792? boolean | | | +--rw ipv4-icmp? string | |||
| | | | +--ro rfc4443? boolean | | +--rw tp-tools | |||
| | | | +--ro rfc4884? boolean | | | +--rw connectivity-verification? boolean | |||
| | | | +--ro rfc5837? boolean | | | +--rw continuity-check? boolean | |||
| | | +--:(tools-bfd) | | | +--rw path-discovery? boolean | |||
| | | | +--ro rfc5881? boolean | | +--rw root? | |||
| | | | +--ro rfc5883? boolean | | +--rw oam-layers* [index] | |||
| | | | +--ro rfc5884? boolean | | +--rw index uint16 | |||
| | | | +--ro rfc5885? boolean | | +--rw level? int32 | |||
| | | +--:(tools-mpls) | | +--rw (tp-address)? | |||
| | | | +--ro rfc4379? boolean | | +--:(mac-address) | |||
| | | | +--ro rfc4687? boolean | | | +--rw mac-address-location? yang:mac-address | |||
| | | | +--ro rfc4950? boolean | | +--:(ipv4-address) | |||
| | | | +--ro mpls-rfc5884? boolean | | | +--rw ipv4-location? inet:ipv4-address | |||
| | | +--:(tools-pw) | | +--:(ipv6-location) | |||
| | | +--ro rfc5085? boolean | | | +--rw ipv6-address? inet:ipv6-address | |||
| | | +--ro pw_rfc5885? boolean | | +--:(tunnel-location) | |||
| | | +--ro rfc6423? boolean | | | +--rw tunnel-location? uint32 | |||
| | | +--ro rfc6310? boolean | | +--:(ip-prefix-location) | |||
| | | +--ro rfc7023? boolean | | | +--rw ip-prefix-location? inet:ip-prefix | |||
| | +--rw oam-layers* [index] | | +--:(route-dist-location) | |||
| | +--rw index uint16 | | | +--rw route-dist-location? uint32 | |||
| | +--rw level? int32 | | +--:(group-ip-address-location) | |||
| +--:(group-system-id-location-type) | | | +--rw group-ip-address-location? IP-Multicast-Group-Address | |||
| +--rw test-point-system-info-location-list | | +--:(as-number-location) | |||
| +--rw test-point-locations* [system-id-location] | | | +--rw as-number-location? inet:as-number | |||
| +--rw system-id-location inet:uri | | +--:(lsp-id-location) | |||
| +--rw vrf? routing-instance-ref | | | +--rw lsp-id-location? string | |||
| +--rw (technology)? | | +--:(system-id-location) | |||
| | +--:(technology-null) | | | +--rw system-id-location? inet:uri | |||
| | | +--rw tech-null? empty | | +--:(connection-oriented-location) | |||
| | +--:(technology-string) | | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | |||
| | +--rw ipv4-icmp? string | | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | |||
| +--ro (tools)? | | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | |||
| | +--:(tools-empty) | +--:(group-lsp-id-location-type) | |||
| | | +--ro tools-null? empty | | +--rw test-point-lsp-id-location-list | |||
| | +--:(tools-ip) | | +--rw test-point-locations* [lsp-id-location] | |||
| | | +--ro rfc792? boolean | | +--rw lsp-id-location string | |||
| | | +--ro rfc4443? boolean | | +--rw vrf? routing-instance-ref | |||
| | | +--ro rfc4884? boolean | | +--rw (technology)? | |||
| | | +--ro rfc5837? boolean | | | +--:(technology-null) | |||
| | +--:(tools-bfd) | | | | +--rw tech-null? empty | |||
| | | +--ro rfc5881? boolean | | | +--:(technology-string) | |||
| | | +--ro rfc5883? boolean | | | +--rw ipv4-icmp? string | |||
| | | +--ro rfc5884? boolean | | +--rw tp-tools | |||
| | | +--ro rfc5885? boolean | | | +--rw connectivity-verification? boolean | |||
| | +--:(tools-mpls) | | | +--rw continuity-check? boolean | |||
| | | +--ro rfc4379? boolean | | | +--rw path-discovery? boolean | |||
| | | +--ro rfc4687? boolean | | +--rw root? | |||
| | | +--ro rfc4950? boolean | | +--rw oam-layers* [index] | |||
| | | +--ro mpls-rfc5884? boolean | | +--rw index uint16 | |||
| | +--:(tools-pw) | | +--rw level? int32 | |||
| | +--ro rfc5085? boolean | | +--rw (tp-address)? | |||
| | +--ro pw_rfc5885? boolean | | +--:(mac-address) | |||
| | +--ro rfc6423? boolean | | | +--rw mac-address-location? yang:mac-address | |||
| | +--ro rfc6310? boolean | | +--:(ipv4-address) | |||
| | +--ro rfc7023? boolean | | | +--rw ipv4-location? inet:ipv4-address | |||
| +--rw oam-layers* [index] | | +--:(ipv6-location) | |||
| +--rw index uint16 | | | +--rw ipv6-address? inet:ipv6-address | |||
| +--rw level? int32 | | +--:(tunnel-location) | |||
| | | +--rw tunnel-location? uint32 | ||||
| | +--:(ip-prefix-location) | ||||
| | | +--rw ip-prefix-location? inet:ip-prefix | ||||
| | +--:(route-dist-location) | ||||
| | | +--rw route-dist-location? uint32 | ||||
| | +--:(group-ip-address-location) | ||||
| | | +--rw group-ip-address-location? IP-Multicast-Group-Address | ||||
| | +--:(as-number-location) | ||||
| | | +--rw as-number-location? inet:as-number | ||||
| | +--:(lsp-id-location) | ||||
| | | +--rw lsp-id-location? string | ||||
| | +--:(system-id-location) | ||||
| | | +--rw system-id-location? inet:uri | ||||
| | +--:(connection-oriented-location) | ||||
| | +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| | +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| | +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| +--:(group-system-id-location-type) | ||||
| +--rw test-point-system-info-location-list | ||||
| +--rw test-point-locations* [system-id-location] | ||||
| +--rw system-id-location inet:uri | ||||
| +--rw vrf? routing-instance-ref | ||||
| +--rw (technology)? | ||||
| | +--:(technology-null) | ||||
| | | +--rw tech-null? empty | ||||
| | +--:(technology-string) | ||||
| | +--rw ipv4-icmp? string | ||||
| +--rw tp-tools | ||||
| | +--rw connectivity-verification? boolean | ||||
| | +--rw continuity-check? boolean | ||||
| | +--rw path-discovery? boolean | ||||
| +--rw root? | ||||
| +--rw oam-layers* [index] | ||||
| +--rw index uint16 | ||||
| +--rw level? int32 | ||||
| +--rw (tp-address)? | ||||
| +--:(mac-address) | ||||
| | +--rw mac-address-location? yang:mac-address | ||||
| +--:(ipv4-address) | ||||
| | +--rw ipv4-location? inet:ipv4-address | ||||
| +--:(ipv6-location) | ||||
| | +--rw ipv6-address? inet:ipv6-address | ||||
| +--:(tunnel-location) | ||||
| | +--rw tunnel-location? uint32 | ||||
| +--:(ip-prefix-location) | ||||
| | +--rw ip-prefix-location? inet:ip-prefix | ||||
| +--:(route-dist-location) | ||||
| | +--rw route-dist-location? uint32 | ||||
| +--:(group-ip-address-location) | ||||
| | +--rw group-ip-address-location? IP-Multicast-Group-Address | ||||
| +--:(as-number-location) | ||||
| | +--rw as-number-location? inet:as-number | ||||
| +--:(lsp-id-location) | ||||
| | +--rw lsp-id-location? string | ||||
| +--:(system-id-location) | ||||
| | +--rw system-id-location? inet:uri | ||||
| +--:(connection-oriented-location) | ||||
| +--rw maintenance-domain? -> /goam:domains/domain/MD-name-string | ||||
| +--rw maintenance-association? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA/MA-name-string | ||||
| +--rw maintenance-association-end-point? -> /goam:domains/domain[goam:MD-name-string = current()/../maintenance-domain]/MAs/MA[goam:MA-name-string = current()/../maintenance-association]/MEP/mep-name | ||||
| data hierarchy of OAM | data hierarchy of OAM | |||
| 4. OAM YANG Module | 4. OAM YANG Module | |||
| <CODE BEGINS> file "ietf-connectionless-oam.yang" | <CODE BEGINS> file "ietf-connectionless-oam.yang" | |||
| module ietf-connectionless-oam { | module ietf-connectionless-oam { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; | ||||
| prefix coam; | prefix coam; | |||
| import ietf-yang-schema-mount { | ||||
| prefix yangmnt; | ||||
| } | ||||
| import ietf-network{ | import ietf-network{ | |||
| prefix nd; | prefix nd; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix if; | prefix if; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| } | } | |||
| import ietf-network-instance { | import ietf-network-instance { | |||
| prefix "ni"; | prefix "ni"; | |||
| } | } | |||
| import ietf-conn-oam{ | ||||
| prefix "goam"; | ||||
| } | ||||
| organization "IETF LIME Working Group"; | organization "IETF LIME Working Group"; | |||
| contact | contact | |||
| "Deepak Kumar dekumar@cisco.com | "Deepak Kumar dekumar@cisco.com | |||
| Qin Wu bill.wu@huawei.com | Qin Wu bill.wu@huawei.com | |||
| S Raghavan srihari@cisco.com | S Raghavan srihari@cisco.com | |||
| Zitao Wang wangzitao@huawei.com | Zitao Wang wangzitao@huawei.com | |||
| R Rahman rrahman@cisco.com"; | R Rahman rrahman@cisco.com"; | |||
| description | description | |||
| "This YANG module defines the generic configuration, | "This YANG module defines the generic configuration, | |||
| data model, statistics for connectionless OAM to be | data model, statistics for connectionless OAM to be | |||
| used within IETF in a protocol indpendent manner. | used within IETF in a protocol indpendent manner. | |||
| Functional level abstraction is indendent with | Functional level abstraction is indendent with | |||
| YANG modeling. It is assumed that each protocol maps | YANG modeling. 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 2016-10-31 { | revision 2016-12-16 { | |||
| description | description | |||
| "Initial revision. - 07 version"; | "Initial revision. - 08 version"; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| /* features */ | /* features */ | |||
| feature connection-less { | feature connection-less { | |||
| description | description | |||
| "this feature indicates that OAM solution is connection less."; | "this feature indicates that OAM solution is connection less."; | |||
| } | } | |||
| feature continuity-check { | feature continuity-check { | |||
| description | description | |||
| "This feature indicates that the server supports | "This feature indicates that the server supports | |||
| skipping to change at page 31, line 4 ¶ | skipping to change at page 32, line 34 ¶ | |||
| type uint16 { | type uint16 { | |||
| range "0..65535"; | range "0..65535"; | |||
| } | } | |||
| description | description | |||
| "Index"; | "Index"; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type int32 { | type int32 { | |||
| range "-1..1"; | range "-1..1"; | |||
| } | } | |||
| default 0; | default 0; | |||
| description | description | |||
| "Level 0 indicates default level, -1 means server | "Level 0 indicates default level, -1 means server | |||
| and +1 means client layer. | and +1 means client layer. | |||
| In relationship 0 means same layer."; | In relationship 0 means same layer."; | |||
| } | } | |||
| choice tp-address { | ||||
| case mac-address { | ||||
| leaf mac-address-location { | ||||
| type yang:mac-address; | ||||
| description | ||||
| "MAC Address"; | ||||
| } | ||||
| description | ||||
| "MAC Address based MP Addressing."; | ||||
| } | ||||
| case ipv4-address { | ||||
| leaf ipv4-location { | ||||
| type inet:ipv4-address; | ||||
| description | ||||
| "Ipv4 Address"; | ||||
| } | ||||
| description | ||||
| "Ip Address based MP Addressing."; | ||||
| } | ||||
| case ipv6-location { | ||||
| leaf ipv6-address { | ||||
| type inet:ipv6-address; | ||||
| description | ||||
| "Ipv6 Address"; | ||||
| } | ||||
| description | ||||
| "ipv6 Address based MP Addressing."; | ||||
| } | ||||
| case tunnel-location{ | ||||
| leaf tunnel-location{ | ||||
| type uint32; | ||||
| description | ||||
| "VPN Prefix"; | ||||
| } | ||||
| description | ||||
| "tunnel location"; | ||||
| } | ||||
| case ip-prefix-location{ | ||||
| leaf ip-prefix-location{ | ||||
| type inet:ip-prefix; | ||||
| description | ||||
| "Ip prefix location"; | ||||
| } | ||||
| description | ||||
| "IP prefix location"; | ||||
| } | ||||
| case route-dist-location{ | ||||
| leaf route-dist-location{ | ||||
| type uint32; | ||||
| description | ||||
| "Route Distinguisher (8 octets)"; | ||||
| } | ||||
| description | ||||
| "Route distinguisher location"; | ||||
| } | ||||
| case group-ip-address-location{ | ||||
| leaf group-ip-address-location{ | ||||
| type IP-Multicast-Group-Address; | ||||
| description | ||||
| "Group IP address location"; | ||||
| } | ||||
| description | ||||
| "Group IP address"; | ||||
| } | ||||
| case as-number-location{ | ||||
| leaf as-number-location{ | ||||
| type inet:as-number; | ||||
| description | ||||
| "AS number location"; | ||||
| } | ||||
| description | ||||
| "AS number"; | ||||
| } | ||||
| case lsp-id-location{ | ||||
| leaf lsp-id-location{ | ||||
| type string; | ||||
| description | ||||
| "LSP id"; | ||||
| } | ||||
| description | ||||
| "LSP ID"; | ||||
| } | ||||
| case system-id-location{ | ||||
| leaf system-id-location{ | ||||
| type inet:uri; | ||||
| description | ||||
| "system id location"; | ||||
| } | ||||
| description | ||||
| "System ID"; | ||||
| } | ||||
| case connection-oriented-location{ | ||||
| uses goam:maintenance-association-end-point-reference; | ||||
| description | ||||
| "connection oriented location"; | ||||
| } | ||||
| description | ||||
| "TP location."; | ||||
| } | ||||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "list of related oam layers. | "list of related oam layers. | |||
| 0 means they are in same level, especially | 0 means they are in same level, especially | |||
| interworking scenarios of stiching multiple | interworking scenarios of stiching multiple | |||
| technology at same layer. | technology at same layer. | |||
| -1 means server layer, for eg:- in case of | -1 means server layer, for eg:- in case of | |||
| Overlay and Underlay, Underlay is server layer for | Overlay and Underlay, Underlay is server layer for | |||
| Overlay Test Point. | Overlay Test Point. | |||
| skipping to change at page 32, line 4 ¶ | skipping to change at page 35, line 49 ¶ | |||
| case technology-string { | case technology-string { | |||
| description | description | |||
| "oam technology string"; | "oam technology string"; | |||
| leaf ipv4-icmp { | leaf ipv4-icmp { | |||
| type string; | type string; | |||
| description | description | |||
| "name to identify oam technology"; | "name to identify oam technology"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "OAM Technology"; | "OAM Technology"; | |||
| } | } | |||
| grouping tp-tools { | grouping tp-tools { | |||
| description | description | |||
| "Test Point OAM Toolset."; | "Test Point OAM Toolset."; | |||
| choice tools { | container tp-tools{ | |||
| default tools-empty; | leaf connectivity-verification{ | |||
| config false; | ||||
| description | ||||
| "choice of test point tools. | ||||
| Empty tools means based on Test Point it's implicit | ||||
| all OAM tools are present and no further configuration | ||||
| is supported."; | ||||
| case tools-empty { | ||||
| description | ||||
| "this is a placeholder when oam toolset is not needed."; | ||||
| leaf tools-null { | ||||
| type empty; | ||||
| description | ||||
| "there is no oam toolset defined."; | ||||
| } | ||||
| } | ||||
| case tools-ip{ | ||||
| description | ||||
| "Oam Toolset for Ip"; | ||||
| leaf rfc792 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc792 (icmpv4) supported."; | ||||
| } | ||||
| leaf rfc4443 { | ||||
| type boolean; | type boolean; | |||
| description | description | |||
| "rfc4443 supported."; | "A flag indicating whether or not the | |||
| } | connectivity-verification function is supported."; | |||
| leaf rfc4884 { | reference | |||
| "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. | ||||
| RFC 4443: Internet Control Message Protocol (ICMPv6) | ||||
| for the Internet Protocol Version 6 (IPv6) Specification. | ||||
| RFC 5880: Bidirectional Forwarding Detection. | ||||
| RFC 5881: BFD for IPv4 and IPv6. | ||||
| RFC 5883: BFD for Multihop Paths. | ||||
| RFC 5884: BFD for MPLS Label Switched Paths. | ||||
| RFC 5885: BFD for PW VCCV. | ||||
| RFC 4379: LSP-PING."; | ||||
| } | ||||
| leaf continuity-check{ | ||||
| type boolean; | type boolean; | |||
| description | description | |||
| "rfc4884 supported."; | "A flag indicating whether or not the | |||
| } | continuity check function is supported."; | |||
| leaf rfc5837 { | reference | |||
| "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. | ||||
| RFC 4443: Internet Control Message Protocol (ICMPv6) | ||||
| for the Internet Protocol Version 6 (IPv6) Specification. | ||||
| RFC 5880: Bidirectional Forwarding Detection. | ||||
| RFC 5881: BFD for IPv4 and IPv6. | ||||
| RFC 5883: BFD for Multihop Paths. | ||||
| RFC 5884: BFD for MPLS Label Switched Paths. | ||||
| RFC 5885: BFD for PW VCCV."; | ||||
| } | ||||
| leaf path-discovery{ | ||||
| type boolean; | type boolean; | |||
| description | description | |||
| "rfc5837 supported."; | "A flag indicating whether or not the | |||
| } | path discovery function is supported."; | |||
| reference | ||||
| "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. | ||||
| RFC 4443: Internet Control Message Protocol (ICMPv6) | ||||
| for the Internet Protocol Version 6 (IPv6) Specification. | ||||
| RFC 4884: Extended ICMP to Support Multi-part Message. | ||||
| RFC 5837:Extending ICMP for Interface and Next-Hop Identification. | ||||
| } | RFC 4379: LSP-PING."; | |||
| case tools-bfd { | } | |||
| leaf rfc5881 { | description | |||
| type boolean; | "Container for test point OAM tools set."; | |||
| description | ||||
| "rfc5881 supported."; | ||||
| } | ||||
| leaf rfc5883 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc5883 supported."; | ||||
| } | } | |||
| leaf rfc5884 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc5884 supported."; | ||||
| } | ||||
| leaf rfc5885 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc5885 supported."; | ||||
| } | ||||
| } | ||||
| case tools-mpls { | ||||
| description | ||||
| "Oam Toolset for mpls"; | ||||
| leaf rfc4379 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc4379 supported."; | ||||
| } | ||||
| leaf rfc4687 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc4687 supported."; | ||||
| } | ||||
| leaf rfc4950 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc4950 supported."; | ||||
| } | ||||
| leaf mpls-rfc5884 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc5884 supported."; | ||||
| } | ||||
| } | ||||
| case tools-pw { | ||||
| description | ||||
| "Oam Toolset for pw oam."; | ||||
| leaf rfc5085 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc5085 supported."; | ||||
| } | ||||
| leaf pw_rfc5885 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc5885 supported."; | ||||
| } | ||||
| leaf rfc6423 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc6423 supported."; | ||||
| } | ||||
| leaf rfc6310 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc6310 supported."; | ||||
| } | ||||
| leaf rfc7023 { | ||||
| type boolean; | ||||
| description | ||||
| "rfc7023 supported."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | } | |||
| grouping test-point-location-info { | grouping test-point-location-info { | |||
| uses tp-technology; | uses tp-technology; | |||
| uses tp-tools; | uses tp-tools; | |||
| anydata root { | ||||
| yangmnt:mount-point root; | ||||
| description | ||||
| "Root for models supported per | ||||
| test point"; | ||||
| } | ||||
| uses connectionless-oam-layers; | uses connectionless-oam-layers; | |||
| description | description | |||
| "Test point Location"; | "Test point Location"; | |||
| } | } | |||
| grouping test-point-locations { | grouping test-point-locations { | |||
| description "Group of test point locations."; | description "Group of test point locations."; | |||
| leaf tp-address-type-value { | leaf tp-address-type-value { | |||
| type identityref { | type identityref { | |||
| skipping to change at page 44, line 14 ¶ | skipping to change at page 47, line 7 ¶ | |||
| This section demonstrates the usability of the connectionless YANG | This section demonstrates the usability of the connectionless YANG | |||
| OAM data model to various connectionless OAM technologies, e.g., BFD, | OAM data model to various connectionless OAM technologies, e.g., BFD, | |||
| LSP ping. Note that, in this section, we only present several | LSP ping. Note that, in this section, we only present several | |||
| snippets of technology-specific model extensions for illustrative | snippets of technology-specific model extensions for illustrative | |||
| purposes. The complete model extensions should be worked on in | purposes. The complete model extensions should be worked on in | |||
| respective protocol working groups. | respective protocol working groups. | |||
| 5.1. BFD Extension | 5.1. BFD Extension | |||
| 5.1.1. Augment Method | ||||
| The following sections shows how the "ietf-connectionless-oam" model | The following sections shows how the "ietf-connectionless-oam" model | |||
| can be extended to cover BFD technology. For this purpose, a set of | can be extended to cover BFD technology. For this purpose, a set of | |||
| extension are introduced such as technology-type extension and test- | extension are introduced such as technology-type extension and test- | |||
| point attributes extension. | point attributes extension. | |||
| Note that in BFD WG, there is a BFD yang data model | Note that in BFD WG, there is a BFD yang data model | |||
| [I-D.ietf-bfd-yang] to be produced. Users can choose to use both BFD | [I-D.ietf-bfd-yang] to be produced. Users can choose to use "ietf- | |||
| model and "ietf-connectioless-oam" as basis and augment the "ietf- | connectioless-oam" as basis and augment the "ietf-connectionless-oam" | |||
| connectionless-oam" model with bfd specific details. The bfd | model with bfd specific details. The bfd specific details can be the | |||
| specific details can be the grouping defined in the BFD model. | grouping defined in the BFD model. | |||
| 5.1.1. technology type extension | 5.1.1.1. technology type extension | |||
| No BFD technology type has been defined in the "ietf-connectionless- | No BFD technology type has been defined in the "ietf-connectionless- | |||
| oam" model. Therefore a technology type extension is required in the | oam" model. Therefore a technology type extension is required in the | |||
| LIME BFD model. | model Extension. | |||
| The snippet below depicts an example of augmenting "bfd" type into | The snippet below depicts an example of augmenting "bfd" type into | |||
| the ietf-connectionless-oam": | the ietf-connectionless-oam": | |||
| augment "/nd:networks/nd:network/nd:node/" | augment "/nd:networks/nd:network/nd:node/" | |||
| +"coam:location-type/coam:ipv4-location-type" | +"coam:location-type/coam:ipv4-location-type" | |||
| +"/coam:test-point-ipv4-location-list/" | +"/coam:test-point-ipv4-location-list/" | |||
| +"coam:test-point-locations/coam:technology" | +"coam:test-point-locations/coam:technology" | |||
| +"/coam:technology-string" | +"/coam:technology-string" | |||
| { | { | |||
| leaf bfd{ | leaf bfd{ | |||
| type string; | type string; | |||
| } | } | |||
| } | } | |||
| 5.1.2. test point attributes extension | 5.1.1.2. test point attributes extension | |||
| To derive a model for bfd technology, the "ietf-connectionless-oam" | To support bfd technology, the "ietf-connectionless-oam" model can be | |||
| model can be extended. Some data nodes for bfd specific parameters | extended and add bfd specific parameters under "test-point-location" | |||
| can be defined and inserted into the proper "test-point-location" | list and/or add new location type such as "bfd over MPLS-TE" under | |||
| list. Or some new "location-type" cases can be added to support the | "location-type". | |||
| some bfd technologies such as "bfd over MPLS-TE", etc. | ||||
| 5.1.2.1. Define and insert new nodes into corresponding test-point- | 5.1.1.2.1. Define and insert new nodes into corresponding test-point- | |||
| location | location | |||
| In the "ietf-connectionless-oam" model, multiple "test-point- | In the "ietf-connectionless-oam" model, multiple "test-point- | |||
| location" lists are defined under the "location-type" choice node. | location" lists are defined under the "location-type" choice node. | |||
| Therefore, to derive model for some bfd technologies( such as ip | Therefore, to derive a model for some bfd technologies ( such as ip | |||
| single-hop, ip multi-hops, etc), data nodes for bfd specific details | single-hop, ip multi-hops, etc), data nodes for bfd specific details | |||
| can be defined and inserted into corresponding "test-point-locations" | need to be added into corresponding "test-point-locations" list. In | |||
| list. In this section, we reuse some groupings which are defined in | this section, we reuse some groupings which are defined in | |||
| [I-D.ietf-bfd-yang] to derive following example. | [I-D.ietf-bfd-yang] as following: | |||
| The snippet below shows how the "ietf-connectionless-oam" model can | The snippet below shows how the "ietf-connectionless-oam" model can | |||
| be extended to "BFD IP single-hop": | be extended to support "BFD IP single-hop": | |||
| augment "/nd:networks/nd:network/nd:node/" | augment "/nd:networks/nd:network/nd:node/" | |||
| +"coam:location-type/coam:ipv4-location-type" | +"coam:location-type/coam:ipv4-location-type" | |||
| +"/coam:test-point-ipv4-location-list/" | +"/coam:test-point-ipv4-location-list/" | |||
| +"coam:test-point-locations" | +"coam:test-point-locations" | |||
| { | { | |||
| container session-cfg { | container session-cfg { | |||
| description "BFD IP single-hop session configuration"; | description "BFD IP single-hop session configuration"; | |||
| list sessions { | list sessions { | |||
| key "interface dest-addr"; | key "interface dest-addr"; | |||
| description "List of IP single-hop sessions"; | description "List of IP single-hop sessions"; | |||
| leaf interface { | leaf interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Interface on which the BFD session is running."; | "Interface on which the BFD session is running."; | |||
| } | } | |||
| skipping to change at page 45, line 40 ¶ | skipping to change at page 48, line 31 ¶ | |||
| description "List of IP single-hop sessions"; | description "List of IP single-hop sessions"; | |||
| leaf interface { | leaf interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Interface on which the BFD session is running."; | "Interface on which the BFD session is running."; | |||
| } | } | |||
| leaf dest-addr { | leaf dest-addr { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description "IP address of the peer"; | description "IP address of the peer"; | |||
| } | } | |||
| uses bfd:bfd-grouping-common-cfg-parms; | uses bfd:bfd-grouping-common-cfg-parms; | |||
| uses bfd:bfd-grouping-echo-cfg-parms; | uses bfd:bfd-grouping-echo-cfg-parms; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Edit note: To prevent new attribute to be defined in the CL extension | ||||
| model,[I-D.ietf-bfd-yang] should define the attributes that are used | ||||
| by CL model as grouping, then CL extension model can reuse these | ||||
| grouping. We will make accordingly change when these grouping are | ||||
| available in the BFD model. | ||||
| Similar augmentations can be defined to support other BFD | Similar augmentations can be defined to support other BFD | |||
| technologies such as BFD IP multi-hop, BFD over MPLS, etc. | technologies such as BFD IP multi-hop, BFD over MPLS, etc. | |||
| 5.1.2.2. Add new location-type cases | 5.1.1.2.2. Add new location-type cases | |||
| In the "ietf-connectionless-oam" model, If no a proper "test-point- | In the "ietf-connectionless-oam" model, If there is no appropriate | |||
| locations" can be extended, new "location-type" cases can be defined | "location type" case that can be extended, a new "location-type" case | |||
| and inserted into the "location-type" choice node. | can be defined and inserted into the "location-type" choice node. | |||
| Therefore, the model user can flexible add "location-type" to support | Therefore, the model user can flexibly add "location-type" to support | |||
| other kinds of test point which are not defined in the "ietf- | other type of test point which are not defined in the "ietf- | |||
| connectionless-oam" model. In this section, we add a new "location- | connectionless-oam" model. In this section, we add a new "location- | |||
| type" case and reuse some groupings which are defined in | type" case and reuse some groupings which are defined in | |||
| [I-D.ietf-bfd-yang] to derive the following example. | [I-D.ietf-bfd-yang] as follows: | |||
| The snippet below shows how the "ietf-connectionless-oam" model can | The snippet below shows how the "ietf-connectionless-oam" model can | |||
| be extended to "BFD over MPLS-TE": | be extended to support "BFD over MPLS-TE": | |||
| augment "/nd:networks/nd:network/nd:node/coam:location-type"{ | augment "/nd:networks/nd:network/nd:node/coam:location-type"{ | |||
| case te-location{ | case te-location{ | |||
| list test-point-location-list{ | list test-point-location-list{ | |||
| key "tunnel-name"; | key "tunnel-name"; | |||
| leaf tunnel-name{ | leaf tunnel-name{ | |||
| type leafref{ | type leafref{ | |||
| path "/te:te/te:tunnels/te:tunnel/te:name"; | path "/te:te/te:tunnels/te:tunnel/te:name"; | |||
| } | } | |||
| description | description | |||
| "point to a te instance."; | "point to a te instance."; | |||
| } | } | |||
| uses bfd:bfd-grouping-common-cfg-parms; | uses bfd:bfd-grouping-common-cfg-parms; | |||
| uses bfd-mpls:bfd-encap-cfg; | uses bfd-mpls:bfd-encap-cfg; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Similar augmentations can be defined to support other BFD | Similar augmentations can be defined to support other BFD | |||
| technologies such as BFD over LAG, etc. | technologies such as BFD over LAG, etc. | |||
| 5.1.2. Schema Mount | ||||
| And anohter alternative method is using schema mount mechanism | ||||
| [draft-ietf-netmod-schema-mount] in the "ietf-connectionless-oam". | ||||
| Within the "test-point-location" list, a "root" attribute is defined | ||||
| to provide a mounted point for models mounted per "test-point- | ||||
| location". Therefore, the "ietf-connectionless-oam" model can | ||||
| provide a place in the node hierarchy where other OAM YANG data | ||||
| models can be attached, without any special extension in the "ietf- | ||||
| connectionless-oam" YANG data models [draft-ietf-netmod-schema- | ||||
| mount]. Note that the limitation of the Schema Mount method is it is | ||||
| not allowed to specify certain modules that are required to be | ||||
| mounted under a mount point. | ||||
| The snippet below depicts the definition of "root" attribute. | ||||
| anydata root { | ||||
| yangmnt:mount-point root; | ||||
| description | ||||
| "Root for models supported per | ||||
| test point"; | ||||
| } | ||||
| The following section shows how the "ietf-connectionless-oam" model | ||||
| can use schema mount to support BFD technology. | ||||
| 5.1.2.1. BFD Modules be populated in schema-mount | ||||
| To support BFD technology, "ietf-bfd-ip-sh" and "ietf-bfd-ip-mh" YANG | ||||
| modules might be populated in the "schema-mounts" container: | ||||
| <schema-mounts | ||||
| xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount"> | ||||
| <mount-point> | ||||
| <module> ietf-connectionless-oam </module> | ||||
| <name>root</name> | ||||
| <use-schema> | ||||
| <name>root</name> | ||||
| </use-schema> | ||||
| </mount-point> | ||||
| <schema> | ||||
| <name>root</name> | ||||
| <module> | ||||
| <name>ietf-bfd-ip-sh </name> | ||||
| <revision>2016-07-04</revision> | ||||
| <namespace> | ||||
| urn:ietf:params:xml:ns:yang: ietf-bfd-ip-sh | ||||
| </namespace> | ||||
| <conformance-type>implement</conformance-type> | ||||
| </module> | ||||
| <module> | ||||
| <name>ietf-bfd-ip-mh </name> | ||||
| <revision> 2016-07-04</revision> | ||||
| <namespace> | ||||
| urn:ietf:params:xml:ns:yang: ietf-bfd-ip-mh | ||||
| </namespace> | ||||
| <conformance-type>implement</conformance-type> | ||||
| </module> | ||||
| </schema> | ||||
| </schema-mounts> | ||||
| and the " ietf-connectionless-oam " module might have: | ||||
| <ietf-connectionless-oam uri="urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"> | ||||
| ...... | ||||
| <test-point-locations> | ||||
| <ipv4-location> 1.1.1.1</ipv4-location> | ||||
| ...... | ||||
| <root> | ||||
| <ietf-bfd-ip-sh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"> | ||||
| <ip-sh> | ||||
| foo | ||||
| ...... | ||||
| </ip-sh> | ||||
| </ietf-bfd-ip-sh> | ||||
| <ietf-bfd-ip-mh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"> | ||||
| <ip-mh> | ||||
| foo | ||||
| ...... | ||||
| </ip-mh> | ||||
| </ietf-bfd-ip-mh> | ||||
| </root> | ||||
| </test-point-locations> | ||||
| </ietf-connectionless-oam> | ||||
| 5.2. LSP ping extension | 5.2. LSP ping extension | |||
| The following sections shows how the "ietf-connectionless-oam" model | The following sections shows how the "ietf-connectionless-oam" model | |||
| can be extended to cover LSP ping technology. For this purpose, a | can be extended to support LSP ping technology. For this purpose, a | |||
| set of extension are introduced such as technology-type extension and | set of extension are introduced such as technology-type extension and | |||
| test-point attributes extension. | test-point attributes extension. | |||
| Note that in MPLS WG, there is a LSP Ping yang data model | Note that in MPLS WG, there is a LSP Ping yang data model | |||
| [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] to be produced. Users can | [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] to be produced. Users can | |||
| choose to use both LSP Ping model and "ietf-connectioless-oam" as | choose to use "ietf-connectioless-oam" as basis and augment the | |||
| basis and augment the "ietf-connectionless-oam" model with LSP Ping | "ietf-connectionless-oam" model with LSP Ping specific details in the | |||
| specific details. The LSP Ping specific details can be the grouping | model extension. The LSP Ping specific details can be the grouping | |||
| defined in the LSP ping model. | defined in the LSP ping model. | |||
| 5.2.1. technology type extension | 5.2.1. technology type extension | |||
| No lsp-ping technology type has been defined in the "ietf- | No lsp-ping technology type has been defined in the "ietf- | |||
| connectionless-oam" model. Therefore a technology type extension is | connectionless-oam" model. Therefore a technology type extension is | |||
| required in the LIME LSP ping model. | required in the model extension. | |||
| The snippet below depicts an example of augmenting "lsp-ping" type | The snippet below depicts an example of augmenting the "ietf- | |||
| into the "ietf-connectionless-oam": | connectionless-oam" with "lsp-ping" type: | |||
| augment "/nd:networks/nd:network/nd:node/" | augment "/nd:networks/nd:network/nd:node/" | |||
| +"coam:location-type/coam:ipv4-location-type" | +"coam:location-type/coam:ipv4-location-type" | |||
| +"/coam:test-point-ipv4-location-list/" | +"/coam:test-point-ipv4-location-list/" | |||
| +"coam:test-point-locations/coam:technology" | +"coam:test-point-locations/coam:technology" | |||
| +"/coam:technology-string" | +"/coam:technology-string" | |||
| { | { | |||
| leaf lsp-ping{ | leaf lsp-ping{ | |||
| type string; | type string; | |||
| } | } | |||
| } | } | |||
| 5.2.2. test point attributes extension | 5.2.2. test point attributes extension | |||
| In order to derive a model for lsp-ping, the "ietf-connectionless- | To support lsp-ping, the "ietf-connectionless-oam" model can be | |||
| oam" model can be extended. Some data nodes for lsp-ping specific | extended and add lsp-ping specific parameters can be defined and | |||
| parameters can be defined and inserted into the proper "test-point- | under "test-point-location" list. | |||
| location" list. | ||||
| User can reuse the attributes or groupings which are defined in | User can reuse the attributes or groupings which are defined in | |||
| [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] to derive the "lime lsp | [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] as follows: | |||
| ping" model. | ||||
| The snippet below depicts an example of augmenting lsp ping | The snippet below depicts an example of augmenting the "test-point- | |||
| attributes into the "test-point-locations" list: | locations" list with lsp ping attributes: | |||
| augment "/nd:networks/nd:network/nd:node/" | augment "/nd:networks/nd:network/nd:node/" | |||
| +"coam:location-type/coam:ipv4-location-type" | +"coam:location-type/coam:ipv4-location-type" | |||
| +"/coam:test-point-ipv4-location-list/" | +"/coam:test-point-ipv4-location-list/" | |||
| +"coam:test-point-locations" | +"coam:test-point-locations" | |||
| { | { | |||
| list lsp-ping { | list lsp-ping { | |||
| key "lsp-ping-name"; | key "lsp-ping-name"; | |||
| leaf lsp-ping-name { | leaf lsp-ping-name { | |||
| type string { | type string { | |||
| length "1..31"; | length "1..31"; | |||
| } | } | |||
| mandatory "true"; | mandatory "true"; | |||
| description "LSP Ping test name."; | description "LSP Ping test name."; | |||
| ...... | ...... | |||
| } | } | |||
| Edit note: To prevent new attribute to be defined in the CL extension | ||||
| model,[I-D.draft-zheng-mpls-lsp-ping-yang-cfg] should define the | ||||
| attributes that are used by CL model as grouping, then CL extension | ||||
| model can reuse these grouping. We will make accordingly change when | ||||
| these grouping are available in the LSP ping model. | ||||
| 6. Security Considerations | 6. Security Considerations | |||
| TBD. | TBD. | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| This document registers a URI in the IETF XML registry [RFC3688] | This document registers a URI in the IETF XML registry [RFC3688] | |||
| [RFC3688]. Following the format in RFC 3688, the following | [RFC3688]. Following the format in RFC 3688, the following | |||
| registration is requested to be made: | registration is requested to be made: | |||
| skipping to change at page 49, line 5 ¶ | skipping to change at page 53, line 17 ¶ | |||
| 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 namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | name: ietf-connectionless-oam namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | |||
| prefix: goam reference: RFC XXXX | prefix: goam reference: RFC XXXX | |||
| 8. Normative References | 8. Acknowlegements | |||
| The authors of this document would like to thank Greg Mirskey and | ||||
| others for their sustainable review and comments, proposals to | ||||
| improve and stablize document. | ||||
| 9. Normative References | ||||
| [I-D.draft-ietf-i2rs-yang-network-topo] | [I-D.draft-ietf-i2rs-yang-network-topo] | |||
| Clemm, A., Medved, J., Tkacik, T., Varga, R., Bahadur, N., | Clemm, A., Medved, J., Tkacik, T., Varga, R., Bahadur, N., | |||
| Ananthakrishnan, H., and X. Liu, "A YANG Data Model for | Ananthakrishnan, H., and X. Liu, "A YANG Data Model for | |||
| Network Topologies", I-D draft-ietf-i2rs-yang-network- | Network Topologies", I-D draft-ietf-i2rs-yang-network- | |||
| topo-05, July 2016. | topo-05, July 2016. | |||
| [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] | [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] | |||
| Zheng, L., Aldrin, S., Zheng, G., Mirsky, G., and R. | Zheng, L., Aldrin, S., Zheng, G., Mirsky, G., and R. | |||
| Rahman, "Yang Data Model for LSP-PING", I-D draft-zheng- | Rahman, "Yang Data Model for LSP-PING", I-D draft-zheng- | |||
| mpls-lsp-ping-yang-cfg-03, March 2016. | mpls-lsp-ping-yang-cfg-03, March 2016. | |||
| [I-D.ietf-bfd-yang] | [I-D.ietf-bfd-yang] | |||
| Zheng, L., Rahman, R., Networks, J., Jethanandani, M., and | Zheng, L., Rahman, R., Networks, J., Jethanandani, M., and | |||
| G. Mirsky, "Yang Data Model for Bidirectional Forwarding | G. Mirsky, "Yang Data Model for Bidirectional Forwarding | |||
| Detection (BFD)", draft-ietf-bfd-yang-03 (work in | Detection (BFD)", draft-ietf-bfd-yang-03 (work in | |||
| progress), July 2016. | progress), July 2016. | |||
| [I-D.ietf-netmod-schema-mount] | ||||
| Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- | ||||
| ietf-netmod-schema-mount-03 (work in progress), October | ||||
| 2016. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
| <http://www.rfc-editor.org/info/rfc6020>. | <http://www.rfc-editor.org/info/rfc6020>. | |||
| End of changes. 64 change blocks. | ||||
| 623 lines changed or deleted | 825 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/ | ||||