| < draft-ietf-lime-yang-connectionless-oam-07.txt | draft-ietf-lime-yang-connectionless-oam-08.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: December 18, 2017 Q. Wu | Expires: March 3, 2018 Q. Wu | |||
| Huawei | Huawei | |||
| R. Rahman | R. Rahman | |||
| S. Raghavan | S. Raghavan | |||
| Cisco | Cisco | |||
| June 16, 2017 | August 30, 2017 | |||
| 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-07 | draft-ietf-lime-yang-connectionless-oam-08 | |||
| Abstract | Abstract | |||
| This document presents a base YANG Data model for connectionless | This document presents a base YANG Data model for connectionless | |||
| Operations Administration, and Maintenance(OAM) protocols. It | Operations Administration, and Maintenance(OAM) protocols. It | |||
| provides a technology-independent abstraction of key OAM constructs | provides a technology-independent abstraction of key OAM constructs | |||
| for connectionless protocols. The base model presented here can be | for connectionless protocols. The base model presented here can be | |||
| extended to include technology specific details. This is leading to | extended to include technology specific details. This is leading to | |||
| uniformity between OAM protocols and support both nested OAM | uniformity between OAM protocols and support both nested OAM | |||
| workflows (i.e., performing OAM functions at different or same levels | workflows (i.e., performing OAM functions at different or same levels | |||
| skipping to change at page 1, line 43 ¶ | skipping to change at page 1, line 43 ¶ | |||
| 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 December 18, 2017. | This Internet-Draft will expire on March 3, 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 | |||
| (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 23 ¶ | skipping to change at page 2, line 23 ¶ | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Overview of the Connectionless OAM Model . . . . . . . . . . 4 | 3. Overview of the Connectionless OAM Model . . . . . . . . . . 4 | |||
| 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.3. OAM-layers . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.3. OAM neighboring layers . . . . . . . . . . . . . . . . . 5 | |||
| 3.4. Test Point Locations Information . . . . . . . . . . . . 6 | 3.4. Test Point Locations Information . . . . . . . . . . . . 6 | |||
| 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 . . . . . . . . . . . . . . . . . . 7 | 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 7 | |||
| 4. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 7 | 4. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Connectionless model applicability . . . . . . . . . . . . . 33 | 5. Connectionless model applicability . . . . . . . . . . . . . 31 | |||
| 5.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 33 | 5.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 5.1.1. Augment Method . . . . . . . . . . . . . . . . . . . 33 | 5.1.1. Augment Method . . . . . . . . . . . . . . . . . . . 31 | |||
| 5.1.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 36 | 5.1.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 34 | |||
| 5.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 38 | 5.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 36 | |||
| 5.2.1. Augment Method . . . . . . . . . . . . . . . . . . . 38 | 5.2.1. Augment Method . . . . . . . . . . . . . . . . . . . 36 | |||
| 5.2.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 39 | 5.2.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 37 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 41 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 39 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 8. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 43 | 8. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 43 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 41 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 44 | 9.2. Informative References . . . . . . . . . . . . . . . . . 42 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 45 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43 | |||
| 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 5, line 47 ¶ | skipping to change at page 5, line 47 ¶ | |||
| type' is defined to indicate which kind of activation will be used by | type' is defined to indicate which kind of activation will be used by | |||
| the current session. | the current session. | |||
| 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 it can serve as a | toolset for fault detection and isolation. And it can serve as a | |||
| constraint condition when the base model be extended to specific OAM | constraint condition when the base model be extended to specific OAM | |||
| technology. For example, to fulfill the ICMP PING configuration, the | technology. For example, to fulfill the ICMP PING configuration, the | |||
| "../coam:continuity-check" should be set to "true", and then the lime | "../coam:continuity-check" should be set to "true", and then the lime | |||
| base model should be augmented with ICMP PING specific details. | base model should be augmented with ICMP PING specific details. | |||
| 3.3. OAM-layers | 3.3. OAM neighboring 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 may has | protocols similarly take a multi-layer structure; each layer may has | |||
| its own OAM protocol [RFC7276] and is corresponding to specific | its own OAM protocol [RFC7276] and is corresponding to specific | |||
| administrative domain or path and has associated test points. OAM- | administrative domain and has associated test points. OAM- - | |||
| layers is referred to a list of server layer, client layer that are | neighboring-layers is referred to a list of neighboring test points | |||
| related to current test point. This allows users to easily navigate | in the upstream layer and/or downstream layer that are related to | |||
| between related layer to efficiently troubleshoot a "loss of | current test point. This allows users to easily navigate between | |||
| continuity defect". In this model, we have kept level default as 0, | related neighboring layer to efficiently troubleshoot a defect. In | |||
| when all test points are located at the same layer. 'Level' defines | this model, we have kept level default as 0, when a list of | |||
| the relative technology level in a sequence of administrative | neighboring test points under oam-neighboring-layer are located at | |||
| domains, and is provided to allow correlation of faults in related | the same layer as the current test point. 'Technology-Level' defines | |||
| OAM domains. For example, there is a network in which data traffic | the relative technology level of neighboring test point corresponding | |||
| between two customer edges is transported over three consecutive | to the current test point in multi-layer and multi-technology | |||
| administrative domains, where the current test point is located in | networks , and is provided to allow correlation of faults at | |||
| the second administrative domain. In this scenario second | different administrative and technology layers . If there is one | |||
| administrative domain is acting as client to first administrative | neighboring test point at higher layer of the current test point, | |||
| domain and server to third administrative domain. For Test Point at | ?Technology-level? is set to 1. If there is one neighboring test | |||
| second administrative domain, client level is "-1", i.e. third | point at lower layer of the current test point, ?Technology-level? is | |||
| administrative domain and server level is "1", i.e. first | set to -1. | |||
| administrative domain. In another example, if the first | ||||
| administrative domain and the second are in same level then it's | ||||
| upstream or downstream administrative domain scenario and thus second | ||||
| administrative domain level is set to "0". | ||||
| list oam-layers { | list oam-neighboring-layers { | |||
| key "index"; | key "index"; | |||
| leaf index { | leaf index { | |||
| type uint16 { | type uint16 { | |||
| range "0..65535"; | range "0..65535"; | |||
| } | } | |||
| description | ||||
| ?index?; | ||||
| } | } | |||
| leaf level { | leaf technology-level { | |||
| type int32 { | type int32 { | |||
| range "-1..1"; | range "-1..1"; | |||
| } | } | |||
| description | description | |||
| "Level"; | "Level"; | |||
| } | } | |||
| description | description | |||
| "List of related oam layers."; | "List of related neighboring test points at upstream layer and or downstream layer or at the same layer."; | |||
| } | ||||
| } | ||||
| 3.4. Test Point Locations Information | 3.4. Test Point Locations Information | |||
| This is a generic grouping for Test Point Locations Information. It | This is a generic grouping for Test Point Locations Information. It | |||
| Provide details of Test Point Location using Tools, 'OAM-Layers' | Provide details of Test Point Location using Tools, 'OAM-Layers' | |||
| grouping defined above. | grouping defined above. | |||
| 3.5. Test Point Locations | 3.5. Test Point Locations | |||
| This is a generic grouping for Test Point Locations. Choice | This is a generic grouping for Test Point Locations. Choice | |||
| skipping to change at page 7, line 43 ¶ | skipping to change at page 7, line 43 ¶ | |||
| Continuity check data output from methods, includes 'src-test-point', | Continuity check data output from methods, includes 'src-test-point', | |||
| 'dst-test-point', 'sequence-number', 'hop-cnt' and session statistics | 'dst-test-point', 'sequence-number', 'hop-cnt' and session statistics | |||
| of various kinds. The continuity check data model is made generic | of various kinds. The continuity check data model is made generic | |||
| enough to allow different methods of data retrieval. None of the | enough to allow different methods of data retrieval. None of the | |||
| fields are made mandatory for that reason. Noted that the retrieval | fields are made mandatory for that reason. Noted that the retrieval | |||
| methods are defined in | methods are defined in | |||
| [I-D.ietf-lime-yang-connectionless-oam-methods]. | [I-D.ietf-lime-yang-connectionless-oam-methods]. | |||
| 4. OAM YANG Module | 4. OAM YANG Module | |||
| <CODE BEGINS> file "ietf-connectionless-oam@2017-06-09.yang" | <CODE BEGINS> file "ietf-connectionless-oam@2017-08-30.yang" | |||
| module ietf-connectionless-oam { | module ietf-connectionless-oam { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; | namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; | |||
| prefix coam; | prefix coam; | |||
| import ietf-yang-schema-mount { | import ietf-yang-schema-mount { | |||
| prefix yangmnt; | prefix yangmnt; | |||
| } | } | |||
| import ietf-network { | import ietf-network { | |||
| skipping to change at page 8, line 31 ¶ | skipping to change at page 8, line 31 ¶ | |||
| "IETF LIME Working Group"; | "IETF LIME Working Group"; | |||
| contact | contact | |||
| "Deepak Kumar dekumar@cisco.com | "Deepak Kumar dekumar@cisco.com | |||
| Qin Wu bill.wu@huawei.com | Qin Wu bill.wu@huawei.com | |||
| S Raghavan srihari@cisco.com | S Raghavan srihari@cisco.com | |||
| Zitao Wang wangzitao@huawei.com | Zitao Wang wangzitao@huawei.com | |||
| R Rahman rrahman@cisco.com"; | R Rahman rrahman@cisco.com"; | |||
| description | description | |||
| "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 | Also Functional level abstraction is independent 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 2017-06-09 { | revision 2017-08-30 { | |||
| description | description | |||
| " Base model for Connectionless | " Base model for Connectionless | |||
| Operations, Administration, | Operations, Administration, | |||
| and Maintenance(OAM) "; | and Maintenance(OAM) "; | |||
| reference | reference | |||
| " RFC XXXX: Connectionless | " RFC XXXX: Connectionless | |||
| Operations, Administration, and | Operations, Administration, and | |||
| Maintenance(OAM)YANG Data Model"; | Maintenance(OAM)YANG Data Model"; | |||
| } | } | |||
| skipping to change at page 9, line 44 ¶ | skipping to change at page 9, line 44 ¶ | |||
| typedef routing-instance-ref { | typedef routing-instance-ref { | |||
| type leafref { | type leafref { | |||
| path "/ni:network-instances/ni:network-instance/ni:name"; | path "/ni:network-instances/ni:network-instance/ni:name"; | |||
| } | } | |||
| description | description | |||
| "This type is used for leafs that reference a routing instance | "This type is used for leafs that reference a routing instance | |||
| configuration."; | configuration."; | |||
| } | } | |||
| typedef ipv4-multicast-group-address { | ||||
| type string { | ||||
| pattern "(2((2[4-9])|(3[0-9]))\\.)"+" | ||||
| (([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.)" | ||||
| +"{2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"; | ||||
| } | ||||
| description | ||||
| "The ipv4-multicast-group-address type | ||||
| represents an IPv4 multicast address | ||||
| in dotted-quad notation."; | ||||
| reference "RFC4607"; | ||||
| } | ||||
| typedef ipv6-multicast-group-address { | ||||
| type string { | ||||
| pattern "(((FF|ff)[0-9a-fA-F]{2}):)" | ||||
| +"([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)" | ||||
| +"?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|" | ||||
| +"[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|" | ||||
| +"[01]?[0-9]?[0-9])))"; | ||||
| pattern "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|" | ||||
| +"((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)"; | ||||
| } | ||||
| description | ||||
| "The ipv6-multicast-group-address | ||||
| type represents an IPv6 address in full, | ||||
| mixed, shortened, and shortened-mixed | ||||
| notation."; | ||||
| reference | ||||
| "RFC4291 2.7. | ||||
| ietf-inet-types:ipv6-address"; | ||||
| } | ||||
| typedef ip-multicast-group-address { | ||||
| type union { | ||||
| type ipv4-multicast-group-address; | ||||
| type ipv6-multicast-group-address; | ||||
| } | ||||
| description | ||||
| "The ip-multicast-group-address type | ||||
| represents an IP multicast address and | ||||
| is IP version neutral. The format of the | ||||
| textual representations implies the IP version."; | ||||
| } | ||||
| identity address-attribute-types { | identity address-attribute-types { | |||
| description | description | |||
| "This is base identity of address | "This is base identity of address | |||
| attribute types which are ip-prefix, | attribute types which are ip-prefix, | |||
| bgp, tunnel, pwe3, vpls, etc."; | bgp, tunnel, pwe3, vpls, etc."; | |||
| } | } | |||
| typedef address-attribute-type { | typedef address-attribute-type { | |||
| type identityref { | type identityref { | |||
| base address-attribute-types; | base address-attribute-types; | |||
| skipping to change at page 16, line 17 ¶ | skipping to change at page 15, line 20 ¶ | |||
| "Total number of OAM packets that | "Total number of OAM packets that | |||
| went through an unintended path."; | went through an unintended path."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping session-type { | grouping session-type { | |||
| description | description | |||
| "This object indicates the current session | "This object indicates the current session | |||
| definition."; | definition."; | |||
| leaf session-type-enum { | leaf session-type { | |||
| type enumeration { | type enumeration { | |||
| enum "proactive" { | enum "proactive" { | |||
| description | description | |||
| "The current session is proactive"; | "The current session is proactive"; | |||
| } | } | |||
| enum "on-demand" { | enum "on-demand" { | |||
| description | description | |||
| "The current session is on-demand."; | "The current session is on-demand."; | |||
| } | } | |||
| } | } | |||
| skipping to change at page 17, line 27 ¶ | skipping to change at page 16, line 31 ¶ | |||
| description | description | |||
| "System id address type"; | "System id address type"; | |||
| } | } | |||
| identity as-number-address-type { | identity as-number-address-type { | |||
| base tp-address-technology-type; | base tp-address-technology-type; | |||
| description | description | |||
| "AS number address type"; | "AS number address type"; | |||
| } | } | |||
| identity group-ip-address-type { | ||||
| base tp-address-technology-type; | ||||
| description | ||||
| "Group IP address type"; | ||||
| } | ||||
| identity route-distinguisher-address-type { | identity route-distinguisher-address-type { | |||
| base tp-address-technology-type; | base tp-address-technology-type; | |||
| description | description | |||
| "Route Distinguisher address type"; | "Route Distinguisher address type"; | |||
| } | } | |||
| identity ip-prefix-address-type { | ||||
| base tp-address-technology-type; | ||||
| description | ||||
| "IP prefix address type"; | ||||
| } | ||||
| identity tunnel-address-type { | ||||
| base tp-address-technology-type; | ||||
| description | ||||
| "Tunnel address type"; | ||||
| } | ||||
| grouping tp-address { | grouping tp-address { | |||
| leaf tp-location-type-value { | leaf tp-location-type { | |||
| type identityref { | type identityref { | |||
| base tp-address-technology-type; | base tp-address-technology-type; | |||
| } | } | |||
| description | description | |||
| "Test point address type."; | "Test point address type."; | |||
| } | } | |||
| choice tp-address { | container tp-address { | |||
| case mac-address { | container mac-address { | |||
| when "'tp-location-type-value' = 'mac-address-type'" { | when "derived-from-or-self(../tp-location-type, 'mac-address-type')" { | |||
| description | description | |||
| "MAC address type"; | "MAC address type"; | |||
| } | } | |||
| leaf mac-address { | leaf mac-address { | |||
| type yang:mac-address; | type yang:mac-address; | |||
| description | description | |||
| "MAC Address"; | "MAC Address"; | |||
| } | } | |||
| description | description | |||
| "MAC Address based MP Addressing."; | "MAC Address based MP Addressing."; | |||
| } | } | |||
| case ipv4-address { | container ipv4-address { | |||
| when "'tp-location-type-value' = 'ipv4-address-type'" { | when "derived-from-or-self(../tp-location-type, 'ipv4-address-type')" { | |||
| description | description | |||
| "IPv4 address type"; | "IPv4 address type"; | |||
| } | } | |||
| leaf ipv4-address { | leaf ipv4-address { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 Address"; | "IPv4 Address"; | |||
| } | } | |||
| description | description | |||
| "IP Address based MP Addressing."; | "IP Address based MP Addressing."; | |||
| } | } | |||
| case ipv6-address { | container ipv6-address { | |||
| when "'tp-location-type-value' = 'ipv6-address-type'" { | when "derived-from-or-self(../tp-location-type, 'ipv6-address-type')" { | |||
| description | description | |||
| "IPv6 address type"; | "IPv6 address type"; | |||
| } | } | |||
| leaf ipv6-address { | leaf ipv6-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Address"; | "IPv6 Address"; | |||
| } | } | |||
| description | description | |||
| "ipv6 Address based MP Addressing."; | "ipv6 Address based MP Addressing."; | |||
| } | } | |||
| case tp-attribute { | container tp-attribute { | |||
| when "'tp-location-type-value' = 'tp-attribute-type'" { | when "derived-from-or-self(../tp-location-type, 'tp-attribute-type')" { | |||
| description | description | |||
| "Test point attribute type"; | "Test point attribute type"; | |||
| } | } | |||
| leaf tp-attribute-type { | leaf tp-attribute-type { | |||
| type address-attribute-type; | type address-attribute-type; | |||
| description | description | |||
| "Test point type."; | "Test point type."; | |||
| } | } | |||
| choice tp-attribute-value { | choice tp-attribute-value { | |||
| description | description | |||
| skipping to change at page 20, line 4 ¶ | skipping to change at page 18, line 37 ¶ | |||
| "Remote pe address."; | "Remote pe address."; | |||
| } | } | |||
| leaf pw-id { | leaf pw-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Pseudowire ID is a non-zero 32-bit ID."; | "Pseudowire ID is a non-zero 32-bit ID."; | |||
| reference | reference | |||
| "RFC 4379 :Detecting Multi-Protocol Label | "RFC 4379 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| } | } | |||
| case vpls { | case vpls { | |||
| leaf route-distinguisher { | leaf route-distinguisher { | |||
| type uint32; | type uint64; | |||
| description | description | |||
| "Route Distinguisher is an 8 octets identifier | "Route Distinguisher is an 8 octets identifier | |||
| used to distinguish information about various | used to distinguish information about various | |||
| L2VPN advertised by a node."; | L2VPN advertised by a node."; | |||
| reference | reference | |||
| "RFC 4379 :Detecting Multi-Protocol Label | "RFC 4379 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| leaf sender-ve-id { | leaf sender-ve-id { | |||
| type uint32; | type uint16; | |||
| description | description | |||
| "Sender's VE ID. The VE ID (VPLS Edge Identifier) | "Sender's VE ID. The VE ID (VPLS Edge Identifier) | |||
| is a 2-octet identifier."; | is a 2-octet identifier."; | |||
| reference | reference | |||
| "RFC 4379 :Detecting Multi-Protocol Label | "RFC 4379 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| leaf receiver-ve-id { | leaf receiver-ve-id { | |||
| type uint32; | type uint16; | |||
| description | description | |||
| "Receiver's VE ID.The VE ID (VPLS Edge Identifier) | "Receiver's VE ID.The VE ID (VPLS Edge Identifier) | |||
| is a 2-octet identifier."; | is a 2-octet identifier."; | |||
| reference | reference | |||
| "RFC 4379 :Detecting Multi-Protocol Label | "RFC 4379 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| } | } | |||
| case mpls-mldp { | case mpls-mldp { | |||
| choice root-address { | choice root-address { | |||
| description | description | |||
| "Root address choice."; | "Root address choice."; | |||
| case ip-address { | case ip-address { | |||
| leaf source-address { | leaf source-address { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "IP address."; | "IP address."; | |||
| } | } | |||
| leaf group-ip-address { | leaf group-ip-address { | |||
| type ip-multicast-group-address; | type inet:ip-address; | |||
| description | description | |||
| "Group ip address."; | "Group ip address."; | |||
| } | } | |||
| } | } | |||
| case vpn { | case vpn { | |||
| leaf as-number { | leaf as-number { | |||
| type inet:as-number; | type inet:as-number; | |||
| description | description | |||
| "The AS number represents autonomous system | "The AS number represents autonomous system | |||
| numbers which identify an Autonomous System."; | numbers which identify an Autonomous System."; | |||
| skipping to change at page 21, line 25 ¶ | skipping to change at page 20, line 10 ¶ | |||
| "LSP ID is an identifier of a LSP | "LSP ID is an identifier of a LSP | |||
| within a MPLS network."; | within a MPLS network."; | |||
| reference | reference | |||
| "RFC 4379 :Detecting Multi-Protocol Label | "RFC 4379 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| description | ||||
| "Test Point Attribute Container"; | ||||
| } | } | |||
| case system-info { | container system-info { | |||
| when "'tp-location-type-value' = 'system-id-address-type'" { | when "derived-from-or-self(../tp-location-type, 'system-id-address-type')" { | |||
| description | description | |||
| "System id address type"; | "System id address type"; | |||
| } | } | |||
| leaf system-id { | leaf system-id { | |||
| type router-id; | type router-id; | |||
| description | description | |||
| "System ID assigned to this node."; | "System ID assigned to this node."; | |||
| } | } | |||
| description | ||||
| "system ID container."; | ||||
| } | } | |||
| description | description | |||
| "TP Addressing."; | "TP Addressing."; | |||
| } | } | |||
| description | description | |||
| "TP Address"; | "TP Address"; | |||
| } | } | |||
| grouping tp-address-vrf { | grouping tp-address-ni { | |||
| description | description | |||
| "Test point address with VRF."; | "Test point address with VRF."; | |||
| leaf vrf { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The ni is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses tp-address; | uses tp-address; | |||
| } | } | |||
| grouping connectionless-oam-layers { | grouping connectionless-oam-layers { | |||
| list oam-layers { | list oam-neighboring-layers { | |||
| key "index"; | key "index"; | |||
| leaf index { | leaf index { | |||
| type uint16 { | type uint16; | |||
| 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, | "Level 0 indicates default level, | |||
| -1 means server and +1 means client layer. | -1 means downstream layer related to current layer and +1 | |||
| means upstream layer related to current layer. | ||||
| In relationship 0 means same layer."; | In relationship 0 means same layer."; | |||
| } | } | |||
| choice tp-location { | choice tp-location { | |||
| case mac-address { | case mac-address { | |||
| leaf mac-address-location { | leaf mac-address-location { | |||
| type yang:mac-address; | type yang:mac-address; | |||
| description | description | |||
| "MAC Address"; | "MAC Address"; | |||
| } | } | |||
| description | description | |||
| "MAC Address based MP Addressing."; | "MAC Address based MP Addressing."; | |||
| } | } | |||
| case ipv4-address { | case ipv4-address { | |||
| leaf ipv4-location { | leaf ipv4-address-location { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "Ipv4 Address"; | "Ipv4 Address"; | |||
| } | } | |||
| description | description | |||
| "IP Address based MP Addressing."; | "IP Address based MP Addressing."; | |||
| } | } | |||
| case ipv6-location { | case ipv6-address { | |||
| leaf ipv6-address { | leaf ipv6-address-location { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Address"; | "IPv6 Address"; | |||
| } | } | |||
| description | description | |||
| "IPv6 Address based MP Addressing."; | "IPv6 Address based MP Addressing."; | |||
| } | } | |||
| case group-ip-address-location { | case as-number { | |||
| 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 { | leaf as-number-location { | |||
| type inet:as-number; | type inet:as-number; | |||
| description | description | |||
| "AS number location"; | "AS number location"; | |||
| } | } | |||
| description | description | |||
| "AS number for point to multipoint OAM"; | "AS number for point to multipoint OAM"; | |||
| } | } | |||
| case system-id-location { | case system-id { | |||
| leaf system-id-location { | leaf system-id-location { | |||
| type router-id; | type router-id; | |||
| description | description | |||
| "System id location"; | "System id location"; | |||
| } | } | |||
| description | description | |||
| "System ID"; | "System ID"; | |||
| } | } | |||
| description | description | |||
| "TP location."; | "TP location."; | |||
| } | } | |||
| description | description | |||
| "List of related oam layers. | "List of neighboring test points in the upstream layer and/or | |||
| 0 means they are in same level, especially | downstream layer or same layer that are related to current test | |||
| interworking scenarios of stitching multiple | point. If neighboring test-point in the upstream layer exist, the | |||
| technology at same layer. -1 means server layer, | technology-level is specified as +1. If neighboring test-point | |||
| for eg:- in case of Overlay and Underlay, | in the downstream layer exist, the technology-level is specified | |||
| Underlay is server layer for Overlay Test Point. | as -1, if neighboring test-points are located at the same layer | |||
| +1 means client layer, for example in case of | as the current test-point, the technology-level is specified as | |||
| Service OAM and Transport OAM, Service OAM is client | 0."; | |||
| layer to Transport OAM."; | ||||
| } | } | |||
| description | description | |||
| "Connectionless related OAM layer"; | "Connectionless related OAM neighboring layer"; | |||
| } | } | |||
| grouping tp-technology { | grouping tp-technology { | |||
| choice technology { | choice technology { | |||
| default "technology-null"; | default "technology-null"; | |||
| case technology-null { | case technology-null { | |||
| description | description | |||
| "This is a placeholder when no technology is needed."; | "This is a placeholder when no technology is needed."; | |||
| leaf tech-null { | leaf tech-null { | |||
| type empty; | type empty; | |||
| skipping to change at page 25, line 27 ¶ | skipping to change at page 24, line 4 ¶ | |||
| } | } | |||
| grouping test-point-location-info { | grouping test-point-location-info { | |||
| uses tp-technology; | uses tp-technology; | |||
| uses tp-tools; | uses tp-tools; | |||
| anydata root { | anydata root { | |||
| yangmnt:mount-point "root"; | yangmnt:mount-point "root"; | |||
| description | description | |||
| "Root for models supported per | "Root for models supported per | |||
| test point"; | 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 | description | |||
| "Group of test point locations."; | "Group of test point locations."; | |||
| leaf tp-location-type-value { | leaf tp-location-type { | |||
| type identityref { | type identityref { | |||
| base tp-address-technology-type; | base tp-address-technology-type; | |||
| } | } | |||
| description | description | |||
| "Test point location type."; | "Test point location type."; | |||
| } | } | |||
| choice location-type { | container location-type { | |||
| case ipv4-location-type { | container ipv4-location-type { | |||
| when "'tp-location-type-value' = 'ipv4-address-type'" { | when "derived-from-or-self(../tp-location-type, 'ipv4-address-type')" { | |||
| description | description | |||
| "When test point location type is equal to ipv4 address."; | "When test point location type is equal to ipv4 address."; | |||
| } | } | |||
| container test-point-ipv4-location-list { | container test-point-ipv4-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "ipv4-location"; | key "ipv4-location ni"; | |||
| leaf ipv4-location { | leaf ipv4-location { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 Address."; | "IPv4 Address."; | |||
| } | } | |||
| leaf vrf { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The ni is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| description | description | |||
| "List of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container | "Serves as top-level container | |||
| for test point location list."; | for test point location list."; | |||
| } | } | |||
| description | ||||
| "ipv4 location type container."; | ||||
| } | } | |||
| case ipv6-location-type { | container ipv6-location-type { | |||
| when "'tp-location-type-value' = 'ipv6-address-type'" { | when "derived-from-or-self(../tp-location-type, 'ipv6-address-type')" { | |||
| description | description | |||
| "when test point location is equal to ipv6 address"; | "when test point location is equal to ipv6 address"; | |||
| } | } | |||
| container test-point-ipv6-location-list { | container test-point-ipv6-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "ipv6-location"; | key "ipv6-location ni"; | |||
| leaf ipv6-location { | leaf ipv6-location { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Address."; | "IPv6 Address."; | |||
| } | } | |||
| leaf vrf { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The ni is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| description | description | |||
| "List of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container | "Serves as top-level container | |||
| for test point location list."; | for test point location list."; | |||
| } | } | |||
| description | ||||
| "ipv6 location type container."; | ||||
| } | } | |||
| case mac-location-type { | container mac-location-type { | |||
| when "'tp-location-type-value' = 'mac-address-type'" { | when "derived-from-or-self(../tp-location-type, 'mac-address-type')" { | |||
| description | description | |||
| "when test point location type is equal to mac address."; | "when test point location type is equal to mac address."; | |||
| } | } | |||
| container test-point-mac-address-location-list { | container test-point-mac-address-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "mac-address-location"; | key "mac-address-location"; | |||
| leaf mac-address-location { | leaf mac-address-location { | |||
| type yang:mac-address; | type yang:mac-address; | |||
| description | description | |||
| "MAC Address"; | "MAC Address"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| description | description | |||
| "List of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container | "Serves as top-level container | |||
| for test point location list."; | for test point location list."; | |||
| } | } | |||
| description | ||||
| "mac address location type container."; | ||||
| } | } | |||
| case group-ip-address-location-type { | container group-as-number-location-type { | |||
| when "'tp-location-type-value' = 'group-ip-address-type'" { | when "'tp-location-type' = 'as-number-address-type'" { | |||
| description | ||||
| "When test point location type is equal to | ||||
| group ip address."; | ||||
| } | ||||
| container test-point-group-ip-address-location-list { | ||||
| list test-point-locations { | ||||
| key "group-ip-address-location"; | ||||
| leaf group-ip-address-location { | ||||
| type ip-multicast-group-address; | ||||
| description | ||||
| "Group IP address."; | ||||
| } | ||||
| leaf vrf { | ||||
| type routing-instance-ref; | ||||
| description | ||||
| "The vrf is used to describe the | ||||
| corresponding network instance"; | ||||
| } | ||||
| uses test-point-location-info; | ||||
| description | ||||
| "List of test point locations."; | ||||
| } | ||||
| description | ||||
| "Serves as top-level container for | ||||
| test point location list."; | ||||
| } | ||||
| } | ||||
| case group-as-number-location-type { | ||||
| when "'tp-location-type-value' = 'as-number-address-type'" { | ||||
| description | description | |||
| "When test point location type is equal to | "When test point location type is equal to | |||
| as-number."; | as-number."; | |||
| } | } | |||
| container test-point-as-number-location-list { | container test-point-as-number-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "as-number-location"; | key "as-number-location"; | |||
| leaf as-number-location { | leaf as-number-location { | |||
| type inet:as-number; | type inet:as-number; | |||
| description | description | |||
| "AS number for point to multi point OAM."; | "AS number for point to multi point OAM."; | |||
| } | } | |||
| leaf vrf { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The ni is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| description | description | |||
| "List of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container | "Serves as top-level container | |||
| for test point location list."; | for test point location list."; | |||
| } | } | |||
| description | ||||
| "as number location type container."; | ||||
| } | } | |||
| case group-system-id-location-type { | container group-system-id-location-type { | |||
| when "'tp-location-type-value' = 'system-id-address-type'" { | when "'tp-location-type' = 'system-id-address-type'" { | |||
| description | description | |||
| "When test point location is equal to | "When test point location is equal to | |||
| system info."; | system info."; | |||
| } | } | |||
| container test-point-system-info-location-list { | container test-point-system-info-location-list { | |||
| list test-point-locations { | list test-point-locations { | |||
| key "system-id-location"; | key "system-id-location"; | |||
| leaf system-id-location { | leaf system-id-location { | |||
| type inet:uri; | type inet:uri; | |||
| description | description | |||
| "System Id."; | "System Id."; | |||
| } | } | |||
| leaf vrf { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The vrf is used to describe the | "The ni is used to describe the | |||
| corresponding network instance"; | corresponding network instance"; | |||
| } | } | |||
| uses test-point-location-info; | uses test-point-location-info; | |||
| description | description | |||
| "List of test point locations."; | "List of test point locations."; | |||
| } | } | |||
| description | description | |||
| "Serves as top-level container for | "Serves as top-level container for | |||
| test point location list."; | test point location list."; | |||
| } | } | |||
| description | ||||
| "system ID location type container."; | ||||
| } | } | |||
| description | description | |||
| "Choice of address types."; | "Choice of address types."; | |||
| } | } | |||
| } | } | |||
| augment "/nd:networks/nd:network/nd:node" { | augment "/nd:networks/nd:network/nd:node" { | |||
| description | description | |||
| "Augment test points of connectionless oam."; | "Augment test points of connectionless oam."; | |||
| uses test-point-locations; | uses test-point-locations; | |||
| skipping to change at page 29, line 47 ¶ | skipping to change at page 28, line 4 ¶ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Absolute timestamp in seconds as per IEEE1588v2 | "Absolute timestamp in seconds as per IEEE1588v2 | |||
| or seconds part in 64-bit NTP timestamp."; | or seconds part in 64-bit NTP timestamp."; | |||
| } | } | |||
| leaf timestamp-nanosec { | leaf timestamp-nanosec { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Fractional part in nanoseconds as per IEEE1588v2 | "Fractional part in nanoseconds as per IEEE1588v2 | |||
| or Fractional part in 64-bit NTP timestamp."; | or Fractional part in 64-bit NTP timestamp."; | |||
| } | } | |||
| } | } | |||
| grouping timestamp { | grouping timestamp { | |||
| description | description | |||
| "Grouping for timestamp."; | "Grouping for timestamp."; | |||
| leaf timestamp-type { | leaf timestamp-type { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Truncated PTP = 0, NTP = 1"; | "Truncated PTP = 0, NTP = 1"; | |||
| } | } | |||
| uses uint64-timestamp; | uses uint64-timestamp; | |||
| } | } | |||
| grouping path-discovery-data { | grouping path-discovery-data { | |||
| description | description | |||
| "Path discovery related data output from nodes."; | "Path discovery related data output from nodes."; | |||
| container src-test-point { | container src-test-point { | |||
| description | description | |||
| "Source test point."; | "Source test point."; | |||
| uses tp-address-vrf; | uses tp-address-ni; | |||
| } | } | |||
| container dest-test-point { | container dest-test-point { | |||
| description | description | |||
| "Destination test point."; | "Destination test point."; | |||
| uses tp-address-vrf; | uses tp-address-ni; | |||
| } | } | |||
| leaf sequence-number { | leaf sequence-number { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "Sequence number in data packets."; | "Sequence number in data packets."; | |||
| } | } | |||
| leaf hop-cnt { | leaf hop-cnt { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Hop count."; | "Hop count."; | |||
| skipping to change at page 30, line 47 ¶ | skipping to change at page 29, line 4 ¶ | |||
| uses session-error-statistics; | uses session-error-statistics; | |||
| uses session-delay-statistics; | uses session-delay-statistics; | |||
| uses session-jitter-statistics; | uses session-jitter-statistics; | |||
| container path-verification { | container path-verification { | |||
| description | description | |||
| "Optional path verification related information."; | "Optional path verification related information."; | |||
| leaf flow-info { | leaf flow-info { | |||
| type string; | type string; | |||
| description | description | |||
| "Informations that refers to the flow."; | "Informations that refers to the flow."; | |||
| } | } | |||
| uses session-path-verification-statistics; | uses session-path-verification-statistics; | |||
| } | } | |||
| container path-trace-info { | container path-trace-info { | |||
| description | description | |||
| "Optional path trace per-hop test point information. | "Optional path trace per-hop test point information. | |||
| The list has typically a single element for per-hop | The list has typically a single element for per-hop | |||
| cases like path-discovery RPC but allows a list of | cases like path-discovery RPC but allows a list of | |||
| hop related information for other types of | hop related information for other types of | |||
| data retrieval methods."; | data retrieval methods."; | |||
| list path-trace-info-list { | list path-trace-info-list { | |||
| key "index"; | key "index"; | |||
| description | description | |||
| "Path trace information list."; | "Path trace information list."; | |||
| leaf index { | leaf index { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Trace information index."; | "Trace information index."; | |||
| } | } | |||
| uses tp-address-vrf; | uses tp-address-ni; | |||
| uses timestamp; | uses timestamp; | |||
| leaf ingress-intf-name { | leaf ingress-intf-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Ingress interface name"; | "Ingress interface name"; | |||
| } | } | |||
| leaf egress-intf-name { | leaf egress-intf-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Egress interface name"; | "Egress interface name"; | |||
| } | } | |||
| leaf queue-depth { | leaf queue-depth { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Length of the egress interface | "Length of the queue of the interface from where | |||
| queue of the interface."; | the packet is forwarded out. The queue depth could | |||
| be the current number of memory buffers used by the | ||||
| queue and a packet can consume one or more memory buffers | ||||
| thus constituting device-level information."; | ||||
| } | } | |||
| leaf transit-delay { | leaf transit-delay { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Time in nano seconds | "Time in nano seconds | |||
| packet spent transiting a node."; | packet spent transiting a node."; | |||
| } | } | |||
| leaf app-meta-data { | leaf app-meta-data { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| skipping to change at page 32, line 4 ¶ | skipping to change at page 30, line 11 ¶ | |||
| } | } | |||
| leaf app-meta-data { | leaf app-meta-data { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "Application specific | "Application specific | |||
| data added by node."; | data added by node."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping continuity-check-data { | grouping continuity-check-data { | |||
| description | description | |||
| "Continuity check data output from nodes."; | "Continuity check data output from nodes."; | |||
| container src-test-point { | container src-test-point { | |||
| description | description | |||
| "Source test point."; | "Source test point."; | |||
| uses tp-address-vrf; | uses tp-address-ni; | |||
| leaf egress-intf-name { | leaf egress-intf-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Egress interface name"; | "Egress interface name"; | |||
| } | } | |||
| } | } | |||
| container dest-test-point { | container dest-test-point { | |||
| description | description | |||
| "Destination test point."; | "Destination test point."; | |||
| uses tp-address-vrf; | uses tp-address-ni; | |||
| leaf ingress-intf-name { | leaf ingress-intf-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Ingress interface name"; | "Ingress interface name"; | |||
| } | } | |||
| } | } | |||
| leaf sequence-number { | leaf sequence-number { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "Sequence number."; | "Sequence number."; | |||
| skipping to change at page 37, line 25 ¶ | skipping to change at page 35, line 25 ¶ | |||
| <use-schema> | <use-schema> | |||
| <name>root</name> | <name>root</name> | |||
| </use-schema> | </use-schema> | |||
| </mount-point> | </mount-point> | |||
| <schema> | <schema> | |||
| <name>root</name> | <name>root</name> | |||
| <module> | <module> | |||
| <name>ietf-bfd-ip-sh </name> | <name>ietf-bfd-ip-sh </name> | |||
| <revision>2016-07-04</revision> | <revision>2016-07-04</revision> | |||
| <namespace> | <namespace> | |||
| urn:ietf:params:xml:ns:yang: ietf-bfd-ip-sh | urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh | |||
| </namespace> | </namespace> | |||
| <conformance-type>implement</conformance-type> | <conformance-type>implement</conformance-type> | |||
| </module> | </module> | |||
| <module> | <module> | |||
| <name>ietf-bfd-ip-mh </name> | <name>ietf-bfd-ip-mh </name> | |||
| <revision> 2016-07-04</revision> | <revision> 2016-07-04</revision> | |||
| <namespace> | <namespace> | |||
| urn:ietf:params:xml:ns:yang: ietf-bfd-ip-mh | urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh | |||
| </namespace> | </namespace> | |||
| <conformance-type>implement</conformance-type> | <conformance-type>implement</conformance-type> | |||
| </module> | </module> | |||
| </schema> | </schema> | |||
| </schema-mounts> | </schema-mounts> | |||
| and the " ietf-connectionless-oam " module might have: | and the " ietf-connectionless-oam " module might have: | |||
| <ietf-connectionless-oam | <ietf-connectionless-oam | |||
| uri="urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"> | uri="urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"> | |||
| skipping to change at page 43, line 24 ¶ | skipping to change at page 41, line 24 ¶ | |||
| The authors of this document would like to thank Greg Mirsky and | The authors of this document would like to thank Greg Mirsky and | |||
| others for their sustainable review and comments, proposals to | others for their sustainable review and comments, proposals to | |||
| improve and stabilize document. | improve and stabilize document. | |||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [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- | |||
| <http://www.rfc-editor.org/info/rfc3688>. | editor.org/info/rfc3688>. | |||
| [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", RFC 4443, | Protocol Version 6 (IPv6) Specification", STD 89, | |||
| DOI 10.17487/RFC4443, March 2006, | RFC 4443, DOI 10.17487/RFC4443, March 2006, | |||
| <http://www.rfc-editor.org/info/rfc4443>. | <https://www.rfc-editor.org/info/rfc4443>. | |||
| [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, <https://www.rfc- | |||
| <http://www.rfc-editor.org/info/rfc6020>. | editor.org/info/rfc6020>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <http://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
| <http://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
| [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| Protocol (NETCONF) Access Control Model", RFC 6536, | Protocol (NETCONF) Access Control Model", RFC 6536, | |||
| DOI 10.17487/RFC6536, March 2012, | DOI 10.17487/RFC6536, March 2012, <https://www.rfc- | |||
| <http://www.rfc-editor.org/info/rfc6536>. | editor.org/info/rfc6536>. | |||
| [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
| RFC 6991, DOI 10.17487/RFC6991, July 2013, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
| <http://www.rfc-editor.org/info/rfc6991>. | <https://www.rfc-editor.org/info/rfc6991>. | |||
| [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | |||
| Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | |||
| <http://www.rfc-editor.org/info/rfc7223>. | <https://www.rfc-editor.org/info/rfc7223>. | |||
| [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, | [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, | |||
| September 1981. | September 1981. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| [G.8013] "OAM functions and mechanisms for Ethernet based | [G.8013] "OAM functions and mechanisms for Ethernet based | |||
| networks", ITU-T Recommendation G.8013/Y.1731, 2013. | networks", ITU-T Recommendation G.8013/Y.1731, 2013. | |||
| [I-D.ietf-bfd-yang] | [I-D.ietf-bfd-yang] | |||
| Rahman, R., Zheng, L., Networks, J., Jethanandani, M., and | Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and | |||
| G. Mirsky, "Yang Data Model for Bidirectional Forwarding | G. Mirsky, "YANG Data Model for Bidirectional Forwarding | |||
| Detection (BFD)", draft-ietf-bfd-yang-05 (work in | Detection (BFD)", draft-ietf-bfd-yang-06 (work in | |||
| progress), March 2017. | progress), June 2017. | |||
| [I-D.ietf-i2rs-yang-network-topo] | [I-D.ietf-i2rs-yang-network-topo] | |||
| Clemm, A., Medved, J., Varga, R., Bahadur, N., | Clemm, A., Medved, J., Varga, R., Bahadur, N., | |||
| Ananthakrishnan, H., and X. Liu, "A Data Model for Network | Ananthakrishnan, H., and X. Liu, "A Data Model for Network | |||
| Topologies", draft-ietf-i2rs-yang-network-topo-12 (work in | Topologies", draft-ietf-i2rs-yang-network-topo-14 (work in | |||
| progress), March 2017. | progress), June 2017. | |||
| [I-D.ietf-lime-yang-connection-oriented-oam-model] | [I-D.ietf-lime-yang-connection-oriented-oam-model] | |||
| Kumar, D., Wu, Q., and Z. Wang, "Generic YANG Data Model | Kumar, D., Wu, Q., and Z. Wang, "Generic YANG Data Model | |||
| for Connection Oriented Operations, Administration, and | for Connection Oriented Operations, Administration, and | |||
| Maintenance(OAM) protocols", draft-ietf-lime-yang- | Maintenance(OAM) protocols", draft-ietf-lime-yang- | |||
| connection-oriented-oam-model-00 (work in progress), June | connection-oriented-oam-model-00 (work in progress), June | |||
| 2017. | 2017. | |||
| [I-D.ietf-lime-yang-connectionless-oam-methods] | [I-D.ietf-lime-yang-connectionless-oam-methods] | |||
| Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | |||
| "Retrieval Methods YANG Data Model for Connectionless | "Retrieval Methods YANG Data Model for Connectionless | |||
| Operations, Administration, and Maintenance(OAM) | Operations, Administration, and Maintenance(OAM) | |||
| protocols", draft-ietf-lime-yang-connectionless-oam- | protocols", draft-ietf-lime-yang-connectionless-oam- | |||
| methods-04 (work in progress), June 2017. | methods-05 (work in progress), June 2017. | |||
| [I-D.ietf-netmod-schema-mount] | [I-D.ietf-netmod-schema-mount] | |||
| Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- | Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- | |||
| ietf-netmod-schema-mount-05 (work in progress), May 2017. | ietf-netmod-schema-mount-06 (work in progress), July 2017. | |||
| [I-D.ietf-spring-sr-yang] | [I-D.ietf-spring-sr-yang] | |||
| Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG | Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG | |||
| Data Model for Segment Routing", draft-ietf-spring-sr- | Data Model for Segment Routing", draft-ietf-spring-sr- | |||
| yang-06 (work in progress), March 2017. | yang-07 (work in progress), July 2017. | |||
| [I-D.zheng-mpls-lsp-ping-yang-cfg] | [I-D.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", draft-zheng-mpls- | Rahman, "Yang Data Model for LSP-PING", draft-zheng-mpls- | |||
| lsp-ping-yang-cfg-04 (work in progress), October 2016. | lsp-ping-yang-cfg-05 (work in progress), June 2017. | |||
| [RFC6136] Sajassi, A., Ed. and D. Mohan, Ed., "Layer 2 Virtual | [RFC6136] Sajassi, A., Ed. and D. Mohan, Ed., "Layer 2 Virtual | |||
| Private Network (L2VPN) Operations, Administration, and | Private Network (L2VPN) Operations, Administration, and | |||
| Maintenance (OAM) Requirements and Framework", RFC 6136, | Maintenance (OAM) Requirements and Framework", RFC 6136, | |||
| DOI 10.17487/RFC6136, March 2011, | DOI 10.17487/RFC6136, March 2011, <https://www.rfc- | |||
| <http://www.rfc-editor.org/info/rfc6136>. | editor.org/info/rfc6136>. | |||
| [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. | [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. | |||
| Weingarten, "An Overview of Operations, Administration, | Weingarten, "An Overview of Operations, Administration, | |||
| and Maintenance (OAM) Tools", RFC 7276, | and Maintenance (OAM) Tools", RFC 7276, | |||
| DOI 10.17487/RFC7276, June 2014, | DOI 10.17487/RFC7276, June 2014, <https://www.rfc- | |||
| <http://www.rfc-editor.org/info/rfc7276>. | editor.org/info/rfc7276>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Deepak Kumar | Deepak Kumar | |||
| CISCO Systems | CISCO Systems | |||
| 510 McCarthy Blvd | 510 McCarthy Blvd | |||
| Milpitas, CA 95035 | Milpitas, CA 95035 | |||
| USA | USA | |||
| Email: dekumar@cisco.com | Email: dekumar@cisco.com | |||
| End of changes. 98 change blocks. | ||||
| 255 lines changed or deleted | 166 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/ | ||||